diff --git a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java index d117a878..e4628570 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java +++ b/src/main/java/com/ydw/bat/wkflow/business_activiti/task/TodoTaskController.java @@ -109,6 +109,9 @@ public class TodoTaskController extends BaseAction { @Autowired private IZchgxxmscSybDataEOService zchgxxmscSybDataEOService; + @Autowired + private IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService; + @ApiOperation(value = "我的待办任务列表") @ApiImplicitParams({@ApiImplicitParam(name = "name", value = "名称"), @ApiImplicitParam(name = "current", value = "当前页"), @@ -589,6 +592,23 @@ public class TodoTaskController extends BaseAction { zchgxxmscSybDataEOList.forEach(sybDataEO -> {sybDataEO.setZrrUserId(assignee);}); this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); } + + List zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) { + zchgxxmscCpghbDataEOList.forEach(cpghbDataEO -> {cpghbDataEO.setZrrUserId(assignee);}); + this.zchgxxmscCpghbDataEOService.updateBatchById(zchgxxmscCpghbDataEOList); + } + } else if (StringUtils.equals(task.getTaskDefinitionKey(),"PolicyComplianceProgramReviewProcessKey9")){ + Map params = new HashMap<>(); + params.put("taskDefinitionKey","PolicyComplianceProgramReviewProcessKey8"); + params.put("currentUserId",userId); + params.put("pId",task.getProcessInstanceId()); + + List zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) { + zchgxxmscCpghbDataEOList.forEach(cpghbDataEO -> {cpghbDataEO.setZrrUserId(assignee);}); + this.zchgxxmscCpghbDataEOService.updateBatchById(zchgxxmscCpghbDataEOList); + } } this.changeFlowUserRelInfoAssignee(assignee, userId, pId, str, FlowTypeEnum.ZCHGXXMSCLC.getValue(),task); @@ -1993,6 +2013,11 @@ public class TodoTaskController extends BaseAction { zchgxxmscSybDataEOList.add(zchgxxmscSybDataEO); } this.zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); + } else if (StringUtils.equals(departmentType,"productPlanning") && jsonForm.containsKey("cpghbDataList")) { + // 保存产品规划部的责任人填写的信息 + object.put("currentUserId",one.getUserId()); + object.put("prcId",busProcessName.getPrcId()); + this.zchgxxmscCpghbDataEOService.batchInsert(object); } } return WrapMapper.ok("保存成功"); @@ -3266,7 +3291,12 @@ public class TodoTaskController extends BaseAction { jsonForm.put("sybDataList",zchgxxmscSybDataEOList); } -// object3.put("cpghbDataList",""); + List zchgxxmscCpghbDataEOList = this.zchgxxmscCpghbDataEOService.queryZchgxxmscCpghbDataEOList(params); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataEOList)) { + JSONObject jsonForm = object3.getJSONObject("form"); + jsonForm.put("cpghbDataList",zchgxxmscCpghbDataEOList); + } + processNew.setMesg(object3.toJSONString()); QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("TODO_ID",processNew.getId()); diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java new file mode 100644 index 00000000..87e8bf34 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataDetailEO.java @@ -0,0 +1,43 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 重点认证标准/政策合规性项目审查-产品规划部数据明细表 + * @author: wangzhijiang + * @date: 2023-10-26 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("ZCHGXXMSC_CPGHB_DATA_DETAIL") +@ApiModel(value="ZchgxxmscCpghbDataDetail对象", description="") +public class ZchgxxmscCpghbDataDetailEO { + private static final long serialVersionUID=1L; + + @TableId(value = "ID", type = IdType.UUID) + private String id; + + // 流程实例id + @TableField("PRC_ID") + private String prcId; + + // 产品规划部数据id + @TableField("ZCHGXXMSC_CPGHB_DATA_ID") + private String zchgxxmscCpghbDataId; + + // 标准/政策id + @TableField("LAW_ID") + private String lawId; + + // 输入值 + @TableField("INPUT_VALUE") + private String inputValue; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java new file mode 100644 index 00000000..8ea4d6d8 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/entity/ZchgxxmscCpghbDataEO.java @@ -0,0 +1,185 @@ +package com.ydw.bat.wkflow.business_main.datas.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; +import java.util.List; + +/** + * @Description: 重点认证标准/政策合规性项目审查-产品规划部数据表 + * @author: wangzhijiang + * @date: 2023-10-26 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("ZCHGXXMSC_CPGHB_DATA") +@ApiModel(value="ZchgxxmscCpghbData对象", description="") +public class ZchgxxmscCpghbDataEO { + private static final long serialVersionUID=1L; + + @TableId(value = "ID", type = IdType.UUID) + private String id; + + // 流程实例id + @TableField("PRC_ID") + private String prcId; + + // 责任人用户id + @TableField("ZRR_USER_ID") + private String zrrUserId; + + // 业务 + @TableField("BUSINESS") + private String business; + + // 平台 + @TableField("PLATFORM") + private String platform; + + // 项目 + @TableField("PROJECT") + private String project; + + // 项目描述 + @TableField("PROJECT_DESCRIPTION") + private String projectDescription; + + // 当前节点 + @TableField("CURRENT_NODE") + private String currentNode; + + // G0 + @TableField("G_ZERO_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gZeroDate; + + // G1 + @TableField("G_ONE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gOneDate; + + // G2 + @TableField("G_TWO_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gTwoDate; + + // G3 + @TableField("G_THREE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gThreeDate; + + // G4 + @TableField("G_FOUR_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gFourDate; + + // G5 + @TableField("G_FIVE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gFiveDate; + + // G6 + @TableField("G_SIX_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gSixDate; + + // G7 + @TableField("G_SEVEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gSevenDate; + + // G8 + @TableField("G_EIGHT_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gEightDate; + + // G9 + @TableField("G_NINE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gNineDate; + + // G10 + @TableField("G_TEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gTenDate; + + // G11 + @TableField("G_ELEVEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gElevenDate; + + // G12 + @TableField("G_TWELVE_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gTwelveDate; + + // G13 + @TableField("G_THIRTEEN_DATE") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date gThirteenDate; + + // 提出人/创建人 + @TableField("CREATE_USER_ID") + private String createUserId; + + // 标准填写信息 + @TableField("INFO_TABLE_DATA") + private String infoTableData; + + // 概念状态 + @TableField("CONCEPTUAL_STATE") + private String conceptualState; + + // 概念计划下发时间 + @TableField("CONCEPT_PLAN_RELEASE_TIME") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + private Date conceptPlanReleaseTime; + + // 概念修订计划 + @TableField("CONCEPT_REVISION_PLAN") + private String conceptRevisionPlan; + + // 其它说明 + @TableField("ADDITIONAL_NOTES") + private String additionalNotes; + + // 创建时间 + @TableField("CREATE_TIME") + private Date createTime; + + // 更新人 + @TableField("MODIFY_USER_ID") + private String modifyUserId; + + // 更新时间 + @TableField("MODIFY_TIME") + private Date modifyTime; + +// @TableField(exist = false) +// private List zchgxxmscCpghbDataDetailEOList; +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java new file mode 100644 index 00000000..134a5f06 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataDetailEOMapper.java @@ -0,0 +1,7 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataDetailEO; + +public interface ZchgxxmscCpghbDataDetailEOMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java new file mode 100644 index 00000000..d94c057a --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/mapper/ZchgxxmscCpghbDataEOMapper.java @@ -0,0 +1,7 @@ +package com.ydw.bat.wkflow.business_main.datas.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO; + +public interface ZchgxxmscCpghbDataEOMapper extends BaseMapper { +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java new file mode 100644 index 00000000..1293ad1b --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataDetailEOService.java @@ -0,0 +1,13 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataDetailEO; + +import java.util.List; + +public interface IZchgxxmscCpghbDataDetailEOService extends IService { + + void batchInsert(List zchgxxmscCpghbDataDetailEOList); + + List queryZchgxxmscCpghbDataDetailEOList(List zchgxxmscCpghbDataIdList); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java new file mode 100644 index 00000000..1bc4987c --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/IZchgxxmscCpghbDataEOService.java @@ -0,0 +1,15 @@ +package com.ydw.bat.wkflow.business_main.datas.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO; + +import java.util.List; +import java.util.Map; + +public interface IZchgxxmscCpghbDataEOService extends IService { + + void batchInsert(JSONObject json); + + List queryZchgxxmscCpghbDataEOList(Map params); +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java new file mode 100644 index 00000000..863fe409 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataDetailEOServiceImpl.java @@ -0,0 +1,36 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataDetailEO; +import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscCpghbDataDetailEOMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataDetailEOService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class ZchgxxmscCpghbDataDetailEOServiceImpl extends ServiceImpl implements IZchgxxmscCpghbDataDetailEOService { + + @Override + public void batchInsert(List zchgxxmscCpghbDataDetailEOList) { + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataDetailEOList)) { + this.saveBatch(zchgxxmscCpghbDataDetailEOList); + } + } + + @Override + public List queryZchgxxmscCpghbDataDetailEOList(List zchgxxmscCpghbDataIdList) { + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(zchgxxmscCpghbDataIdList)) { + zchgxxmscCpghbDataIdList = zchgxxmscCpghbDataIdList.stream().distinct().collect(Collectors.toList()); + QueryWrapper cpghbDataDetailQueryWrap = new QueryWrapper<>(); + cpghbDataDetailQueryWrap.lambda().in(ZchgxxmscCpghbDataDetailEO::getZchgxxmscCpghbDataId,zchgxxmscCpghbDataIdList); + result = this.list(cpghbDataDetailQueryWrap); + } + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java new file mode 100644 index 00000000..83471ebb --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscCpghbDataEOServiceImpl.java @@ -0,0 +1,134 @@ +package com.ydw.bat.wkflow.business_main.datas.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ydw.bat.wkflow.business_main.datas.entity.FlowUserRelInfo; +import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscCpghbDataEO; +import com.ydw.bat.wkflow.business_main.datas.mapper.ZchgxxmscCpghbDataEOMapper; +import com.ydw.bat.wkflow.business_main.datas.service.IFlowUserRelInfoService; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataDetailEOService; +import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscCpghbDataEOService; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class ZchgxxmscCpghbDataEOServiceImpl extends ServiceImpl implements IZchgxxmscCpghbDataEOService { + + @Autowired + private IFlowUserRelInfoService flowUserRelInfoService; + @Autowired + private IZchgxxmscCpghbDataDetailEOService zchgxxmscCpghbDataDetailEOService; + + @Override + public void batchInsert(JSONObject json) { + String currentUserId = json.getString("currentUserId"); + String prcId = json.getString("prcId"); + String removeIds = json.getString("removeIds"); + + JSONObject jsonForm = json.getJSONObject("form"); + if (StringUtils.isNotEmpty(removeIds)) { + List removeIdList = Arrays.asList(removeIds.split(",")); + this.removeByIds(removeIdList); + } + JSONArray cpghbDataListArr = jsonForm.getJSONArray("cpghbDataList"); + List addZchgxxmscCpghbDataEOList = new ArrayList<>(); + List updateZchgxxmscCpghbDataEOList = new ArrayList<>(); + ZchgxxmscCpghbDataEO zchgxxmscCpghbDataEO = null; + + for (Object cpghbData : cpghbDataListArr) { + zchgxxmscCpghbDataEO = JSONObject.parseObject(JSONObject.toJSONString(cpghbData), ZchgxxmscCpghbDataEO.class); + + zchgxxmscCpghbDataEO.setPrcId(prcId); + if (StringUtils.isEmpty(zchgxxmscCpghbDataEO.getId())) { + zchgxxmscCpghbDataEO.setId(UUID.randomUUID().toString()); + zchgxxmscCpghbDataEO.setZrrUserId(currentUserId); + zchgxxmscCpghbDataEO.setCreateUserId(currentUserId); + zchgxxmscCpghbDataEO.setCreateTime(new Date()); + addZchgxxmscCpghbDataEOList.add(zchgxxmscCpghbDataEO); + } else { + zchgxxmscCpghbDataEO.setModifyUserId(currentUserId); + zchgxxmscCpghbDataEO.setModifyTime(new Date()); + updateZchgxxmscCpghbDataEOList.add(zchgxxmscCpghbDataEO); + } + } + + if (CollectionUtils.isNotEmpty(addZchgxxmscCpghbDataEOList)) { + this.saveBatch(addZchgxxmscCpghbDataEOList); + } + if (CollectionUtils.isNotEmpty(updateZchgxxmscCpghbDataEOList)) { + this.updateBatchById(updateZchgxxmscCpghbDataEOList); + } + } + + @Override + public List queryZchgxxmscCpghbDataEOList(Map params) { + + List result = new ArrayList<>(); + String taskDefinitionKey = (String) params.get("taskDefinitionKey"); + String currentUserId = (String) params.get("currentUserId"); + String prcId = (String) params.get("pId"); + + QueryWrapper cpghbEoQueryWrap = new QueryWrapper<>(); + cpghbEoQueryWrap.lambda().eq(ZchgxxmscCpghbDataEO::getPrcId, prcId); + + if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey8")) { + // 责任人处理 + cpghbEoQueryWrap.lambda().eq(ZchgxxmscCpghbDataEO::getZrrUserId, currentUserId); + } else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey9")) { + // 责任对接人汇总 + // 查询当前责任对接人分配出去的责任人,获取这些责任人填写的数据列表 + List userIdList = new ArrayList<>(); + userIdList.add(currentUserId); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + furQueryWrap.lambda().eq(FlowUserRelInfo::getParentUserId, currentUserId); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + cpghbEoQueryWrap.lambda().in(ZchgxxmscCpghbDataEO::getZrrUserId, userIdList); + } else if (StringUtils.equals(taskDefinitionKey, "PolicyComplianceProgramReviewProcessKey10")) { + // 责任单位审批 + // 查询当前责任单位被分配出去的责任人对接人,根据责任对接人获取分配出去的责任人,获取这些责任人填写的数据列表 + List userIdList = new ArrayList<>(); + + QueryWrapper furQueryWrap = new QueryWrapper<>(); + furQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + furQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + furQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrdw"); // 责任对接人分配责任单位审批 + furQueryWrap.lambda().eq(FlowUserRelInfo::getUserId, currentUserId); + List zrdwflowUserRelInfoList = this.flowUserRelInfoService.list(furQueryWrap); + if (CollectionUtils.isNotEmpty(zrdwflowUserRelInfoList)) { + List zrdjrUserIdList = zrdwflowUserRelInfoList.stream().map(FlowUserRelInfo::getParentUserId).distinct().collect(Collectors.toList()); + userIdList.addAll(zrdjrUserIdList); + + QueryWrapper zrdjrQueryWrap = new QueryWrapper<>(); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getActiProcInstId, prcId); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getFlowType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + zrdjrQueryWrap.lambda().eq(FlowUserRelInfo::getDataType, "zrdjrfpzrr"); // 责任对接人分配责任人 + zrdjrQueryWrap.lambda().in(FlowUserRelInfo::getParentUserId, zrdjrUserIdList); + List zrdjrFlowUserRelInfoList = this.flowUserRelInfoService.list(zrdjrQueryWrap); + if (CollectionUtils.isNotEmpty(zrdjrFlowUserRelInfoList)) { + userIdList.addAll(zrdjrFlowUserRelInfoList.stream().map(FlowUserRelInfo::getUserId).distinct().collect(Collectors.toList())); + } + } else { + userIdList.add("设置一个无法满足的条件"); + } + cpghbEoQueryWrap.lambda().in(ZchgxxmscCpghbDataEO::getZrrUserId, userIdList); + } + cpghbEoQueryWrap.orderByAsc("create_time"); + result = this.list(cpghbEoQueryWrap); + return result; + } +} diff --git a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java index 9c54f49b..11ed024c 100644 --- a/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java +++ b/src/main/java/com/ydw/bat/wkflow/business_main/datas/service/impl/ZchgxxmscSybDataEOServiceImpl.java @@ -45,7 +45,7 @@ public class ZchgxxmscSybDataEOServiceImpl extends ServiceImpl userIdList = new ArrayList<>(); userIdList.add(currentUserId); @@ -61,7 +61,7 @@ public class ZchgxxmscSybDataEOServiceImpl extends ServiceImpl userIdList = new ArrayList<>(); QueryWrapper furQueryWrap = new QueryWrapper<>(); diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java index f77262db..19fa8ae0 100644 --- a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/PolicyComplianceProgramReviewProcess8After.java @@ -7,10 +7,7 @@ import com.ydw.bat.wkflow.business_activiti.service.TaskTodoService; import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; import com.ydw.bat.wkflow.business_main.datas.entity.Datas; import com.ydw.bat.wkflow.business_main.datas.entity.ZchgxxmscSybDataEO; -import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; -import com.ydw.bat.wkflow.business_main.datas.service.IDatasService; -import com.ydw.bat.wkflow.business_main.datas.service.IPolicySolicitOpinionEOService; -import com.ydw.bat.wkflow.business_main.datas.service.IZchgxxmscSybDataEOService; +import com.ydw.bat.wkflow.business_main.datas.service.*; import com.ydw.bat.wkflow.util.SpringContextUtil; import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.TaskListener; @@ -25,9 +22,8 @@ public class PolicyComplianceProgramReviewProcess8After implements TaskListener public void notify(DelegateTask delegateTask) { IDatasService datasService = SpringContextUtil.getBean(IDatasService.class); IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class); - TaskTodoService taskTodoService = SpringContextUtil.getBean(TaskTodoService.class); - IPolicySolicitOpinionEOService policySolicitOpinionEOService = SpringContextUtil.getBean(IPolicySolicitOpinionEOService.class); IZchgxxmscSybDataEOService zchgxxmscSybDataEOService = SpringContextUtil.getBean(IZchgxxmscSybDataEOService.class); + IZchgxxmscCpghbDataEOService zchgxxmscCpghbDataEOService = SpringContextUtil.getBean(IZchgxxmscCpghbDataEOService.class); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("ACTI_TASK_ID", delegateTask.getId()); @@ -63,7 +59,10 @@ public class PolicyComplianceProgramReviewProcess8After implements TaskListener } zchgxxmscSybDataEOService.updateBatchById(zchgxxmscSybDataEOList); } else if (StringUtils.equals(departmentType,"productPlanning")) { - + // 保存产品规划部的责任人填写的信息 + object.put("currentUserId",delegateTask.getAssignee()); + object.put("prcId",delegateTask.getProcessInstanceId()); + zchgxxmscCpghbDataEOService.batchInsert(object); } submitMethod = "pageSubmit"; diff --git a/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java new file mode 100644 index 00000000..6e6ea008 --- /dev/null +++ b/src/main/java/com/ydw/bat/wkflow/listener/policyComplianceProgramReviewProcess/timer/PolicyComplianceProgramReviewProcessTimer.java @@ -0,0 +1,144 @@ +package com.ydw.bat.wkflow.listener.policyComplianceProgramReviewProcess.timer; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessName; +import com.ydw.bat.wkflow.business_main.datas.entity.BusProcessNew; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNameService; +import com.ydw.bat.wkflow.business_main.datas.service.IBusProcessNewService; +import com.ydw.bat.wkflow.business_wkflow.form.dto.FormSubmitDto; +import com.ydw.bat.wkflow.business_wkflow.form.service.FormValsService; +import com.ydw.bat.wkflow.util.enums.ApprovalFlagEnum; +import com.ydw.bat.wkflow.util.enums.FlowTypeEnum; +import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.TaskService; +import org.activiti.engine.task.Task; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @Description: 重点认证标准/政策合规性项目审查流程定时器 + * @author: wangzhijiang + * @date: 2023-10-26 + */ +@Component +@EnableScheduling +@Slf4j +public class PolicyComplianceProgramReviewProcessTimer { + + @Autowired + private IBusProcessNameService busProcessNameService; + @Autowired + private TaskService taskService; + @Autowired + private IBusProcessNewService busProcessNewService; + @Autowired + private FormValsService formValsService; + + /** + * @Description: 自动提交待办任务 + * @author: wangzhijiang + * @date: 2023-10-23 + * @Param: + * @return: + */ + @Scheduled(cron = "10 11 11 * * ? ")//每天十点执行 +// @Scheduled(cron = "0/15 * * * * ? ") + public void autoSubmitZrbmTask() { + QueryWrapper bpnQueryWrap = new QueryWrapper<>(); + bpnQueryWrap.lambda().eq(BusProcessName::getPrcType, FlowTypeEnum.ZCHGXXMSCLC.getValue()); + bpnQueryWrap.lambda().lt(BusProcessName::getResponsibleUnitDeadlineDate, new Date()); + List busProcessNameList = this.busProcessNameService.list(bpnQueryWrap); + + if (CollectionUtils.isNotEmpty(busProcessNameList)) { + List actiProcInstIdList = busProcessNameList.stream().map(BusProcessName::getPrcId).distinct().collect(Collectors.toList()); + this.recursionComplteZrbmTask(actiProcInstIdList); + } + } + + /** + * 递归提交待办任务 + * + * @param actiProcInstIdList + */ + public void recursionComplteZrbmTask(List actiProcInstIdList) { + for (String actiProcInstId : actiProcInstIdList) { + List taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> { + boolean flag = false; + if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey7") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey8") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey9") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey10")) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(taskList)) { + for (Task task : taskList) { + JSONObject formJson = new JSONObject(); + + QueryWrapper newQueryWrapper = new QueryWrapper<>(); + newQueryWrapper.lambda().eq(BusProcessNew::getTaskId, task.getId()); + BusProcessNew busProcessNew = this.busProcessNewService.getOne(newQueryWrapper); + if (ObjectUtils.isNotEmpty(busProcessNew)) { + formJson = JSONObject.parseObject(busProcessNew.getMesg()); + JSONObject jsonForm = formJson.getJSONObject("form"); + jsonForm.put("approvalFlag",ApprovalFlagEnum.PASS.getValue()); + jsonForm.put("internalReviewFlag", "1"); + formJson.put("commentText",""); + } + formJson.put("submitMethod", "timerAutoSubmit"); + formJson.put("approvalFlag", ApprovalFlagEnum.PASS.getValue()); + formJson.put("internalReviewFlag", "1"); + + FormSubmitDto formSubmitDto = new FormSubmitDto(); + formSubmitDto.setForm(formJson.toString()); + formSubmitDto.setTask_id(task.getId()); + this.formValsService.saveFormVals(formSubmitDto, task.getTaskDefinitionKey()); + + this.taskService.complete(task.getId()); + } + } + } + List actiProcInstIds = this.queryZrbmTaskByActiProcInstId(actiProcInstIdList); + if (CollectionUtils.isNotEmpty(actiProcInstIds)) { + this.recursionComplteZrbmTask(actiProcInstIds); + } + } + + /** + * 根据流程实例id,查询还有待办任务的流程。 + * + * @param actiProcInstIdList + * @return + */ + public List queryZrbmTaskByActiProcInstId(List actiProcInstIdList) { + List result = new ArrayList<>(); + for (String actiProcInstId : actiProcInstIdList) { + List taskList = this.taskService.createTaskQuery().processInstanceId(actiProcInstId).list().stream().filter(task -> { + boolean flag = false; + if (StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey7") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey8") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey9") + || StringUtils.equals(task.getTaskDefinitionKey(), "PolicyComplianceProgramReviewProcessKey10")) { + flag = true; + } + return flag; + }).distinct().collect(Collectors.toList()); + if (taskList.size() != 0) { + result.add(actiProcInstId); + } + } + return result; + } +} diff --git a/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml new file mode 100644 index 00000000..6cd2a1bd --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataDetailEOMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml new file mode 100644 index 00000000..3c5441e0 --- /dev/null +++ b/src/main/resources/mapper/datas/ZchgxxmscCpghbDataEOMapper.xml @@ -0,0 +1,5 @@ + + + + +