diff --git a/src/main/java/com/xdap/self_development/listener/EngineModelListener.java b/src/main/java/com/xdap/self_development/listener/EngineModelListener.java index b20e1b5..00b8fe5 100644 --- a/src/main/java/com/xdap/self_development/listener/EngineModelListener.java +++ b/src/main/java/com/xdap/self_development/listener/EngineModelListener.java @@ -18,6 +18,8 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -135,8 +137,8 @@ public class EngineModelListener implements ReadListener personPojos = responsiblePerService.selectByDepName(parameter.getDepartment()); diff --git a/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java index f66d97f..d14d391 100644 --- a/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/ActivitiProcessServiceImpl.java @@ -20,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -104,7 +106,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { dataChangeCommentPojo.setUnit(parameter.getUnit()); dataChangeCommentPojo.setParameterValue(engineParamDetailPojo.getMinorVersion()); dataChangeCommentPojo.setCreatedBy(userID); - dataChangeCommentPojo.setCreationDate(new Date()); + dataChangeCommentPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); activitiDataDTOS.add(activitiDataDTO); das.add(dataChangeCommentPojo); @@ -170,7 +172,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { engineReviewListPojo.setNodeName(firstNode.getNodeName()); engineReviewListPojo.setApproverPersons(String.join(",", firstNode.getAssignees())); engineReviewListPojo.setReviewComment(approvalNodeRequest.getComment()); - engineReviewListPojo.setCreationDate(new Date()); + engineReviewListPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); engineReviewListPojo.setCreatedBy(userId); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(engineReviewListPojo); @@ -189,7 +191,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { todoTaskPojo.setModelName(modelPojoOld.getModelName()); todoTaskPojo.setCreatedById(userId); todoTaskPojo.setCreatedBy(createBy); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setIsDelete(0); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); @@ -222,7 +224,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { config.setAssignees(String.join(",", nodeDTO.getAssignees())); config.setNodeOrder(nodeOrder); config.setCreatedBy(userId); - config.setCreationDate(new Date()); + config.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(config); b = false; } @@ -233,8 +235,8 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { record.setOperator("提交"); record.setNodeName("提交"); record.setNodeOrder(0); - record.setOperateTime(new Date()); - record.setCreationDate(new Date()); + record.setOperateTime(Timestamp.valueOf(LocalDateTime.now())); + record.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); record.setApprovalComment("提交流程"); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(record); @@ -290,8 +292,8 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { record.setOperator(operator); record.setNodeName(reviewListPojo.getNodeName()); record.setNodeOrder(nodeOrder); - record.setOperateTime(new Date()); - record.setCreationDate(new Date()); + record.setOperateTime(Timestamp.valueOf(LocalDateTime.now())); + record.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); record.setApprovalComment(comment); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(record); @@ -401,7 +403,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { todoTaskPojo.setModelName(modelPojo.getModelName()); todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy()); todoTaskPojo.setCreatedBy(createBy); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setIsDelete(0); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); } @@ -500,7 +502,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { todoTaskPojo.setModelName(modelPojo.getModelName()); todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy()); todoTaskPojo.setCreatedBy(createBy); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setIsDelete(0); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); } @@ -532,7 +534,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService { engineReviewListPojo.setStatusDescription(ParamValueVersionEnum.UNDER.getDesc()); engineReviewListPojo.setNodeName(request.getNodeName()); engineReviewListPojo.setApproverPersons(String.join(",", request.getApproverPersons())); - engineReviewListPojo.setCreationDate(new Date()); + engineReviewListPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); engineReviewListPojo.setCreatedBy(request.getApplicant()); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(engineReviewListPojo); diff --git a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java index 36f1dd8..658ebe3 100644 --- a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java @@ -34,6 +34,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -281,8 +282,8 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ modelPojo.setIsDelete(0); modelPojo.setCreatedBy(userId); modelPojo.setLastUpdatedBy(""); - modelPojo.setLastUpdateDate(new Date()); - modelPojo.setCreationDate(new Date()); + modelPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + modelPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); modelPojo.setId(UUID.randomUUID().toString()); sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(modelPojo); @@ -337,8 +338,8 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); engineParamDetailPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getId() : null); engineParamDetailPojo.setLastUpdatedBy(""); - engineParamDetailPojo.setLastUpdateDate(new Date()); - engineParamDetailPojo.setCreationDate(new Date()); + engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); //为每个参数生成默认责任人 List personPojos = responsiblePerService.selectByDepName(parameter.getDepartment()); if (ObjectUtils.isNotEmpty(personPojos)) { diff --git a/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java index 4ddc34d..4ed72cf 100644 --- a/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/EngineParamDetailServiceImpl.java @@ -9,6 +9,7 @@ import com.definesys.mpaas.query.MpaasQueryFactory; import com.xdap.api.moudle.user.pojo.XdapUsers; import com.xdap.runtime.service.RuntimeAppContextService; import com.xdap.self_development.common.UserPermissionGetter; +import com.xdap.self_development.config.BusinessDatabase; import com.xdap.self_development.controller.request.EngineParamDetailExcel; import com.xdap.self_development.controller.request.EngineParamDetailRequest; import com.xdap.self_development.enums.CurrentNodeEnum; @@ -31,6 +32,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; +import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -442,12 +444,32 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { }); //填写后检查是否完全填写完成用来消除待办 if (ObjectUtils.isNotEmpty(paramDetailPojoStream)) { + TodoTaskPojo todoTaskPojo = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq("owner_id", currentUserId) + .eq("model_id", engineParamDetailPojo.getId()) + .eq("data_type", "数据维护") + .doQueryFirst(TodoTaskPojo.class); + //修改待办和发起的任务状态 sw.buildFromDatasource("xdap_app_223770822127386625") .update("is_delete", 1) + .update("current_node", "已维护") .update("last_update_date", new Date()) - .eq("owner_id", currentUserId) - .eq("data_type", "数据维护") + .eq("document_no", todoTaskPojo.getDocumentNo()) .doUpdate(TodoTaskPojo.class); + sw.buildFromDatasource("xdap_app_223770822127386625") + .update("current_node", "已维护") + .update("last_update_date", new Date()) + .eq("document_no", todoTaskPojo.getDocumentNo()) + .doUpdate(InitiatedTaskPojo.class); + //新增这个人的已办 + CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, completedTaskPojo); + completedTaskPojo.setId(UUID.randomUUID().toString().replaceAll("-","")); + completedTaskPojo.setDocumentNo(todoTaskPojo.getDocumentNo()); + completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + completedTaskPojo.setIsDelete(0); + completedTaskPojo.setCurrentNode("已维护"); + sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(completedTaskPojo); } //应该不会有新增参数 要不然还要给参数绑定部门,责任人,填写人 // EngineParamDetailPojo ei = new EngineParamDetailPojo(); @@ -514,7 +536,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { ArrayList todoTaskPojos = new ArrayList<>(); - + ArrayList taskPojos = new ArrayList<>(); //分解任务更新填写人 for (EngineParamDetailPojo engineParamDetailPojo : engineParamDetailPojos) { sw.buildFromDatasource("xdap_app_223770822127386625") @@ -533,7 +555,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { todoTaskPojo.setStatusCode(null); todoTaskPojo.setModelName(modelPojo.getModelName()); todoTaskPojo.setModelId(modelPojo.getId()); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setDataType(CurrentNodeEnum.REPAIR.getDesc()); todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber()); todoTaskPojo.setOwnerId(filledBy); @@ -541,8 +563,12 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { todoTaskPojo.setIsDelete(0); todoTaskPojo.setCreatedBy(ObjectUtils.isNotEmpty(XdapUsers) ? XdapUsers.getUsername() : ""); todoTaskPojos.add(todoTaskPojo); + InitiatedTaskPojo initiatedTaskPojo = new InitiatedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, initiatedTaskPojo); + taskPojos.add(initiatedTaskPojo); } batchInsertTodoTask(todoTaskPojos); + batchInsertInitiatedTask(taskPojos); //每次分发填写人时进行检测 //这个责任人相关的填写人是否都已经填写完成如果没有则待办不动 如果填写完了待办完成 List detailPojos = selectByResId(userID); @@ -550,13 +576,31 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { .filter(x -> x.getEngineModelId().equals(engineModelId) && ObjectUtils.isEmpty(x.getFilledBy())).collect(Collectors.toList()); if (ObjectUtils.isEmpty(paramDetailPojos) || paramDetailPojos.isEmpty()) { //软删除这个代办人的任务 - sw.buildFromDatasource("xdap_app_223770822127386625") + TodoTaskPojo todoTaskPojo = sw.buildFromDatasource("xdap_app_223770822127386625") .eq("owner_id", userID) .eq("model_id", engineModelId) - .eq("data_type", "任务分解") + .eq("data_type", "任务分解").doQueryFirst(TodoTaskPojo.class); + //更新待办和发起的任务状态 + sw.buildFromDatasource("xdap_app_223770822127386625") .update("is_delete", 1) + .update("current_node", "已分解") .update("last_update_date", new Date()) + .eq("document_no", todoTaskPojo.getId()) .doUpdate(TodoTaskPojo.class); + sw.buildFromDatasource("xdap_app_223770822127386625") + .update("current_node", "已分解") + .update("last_update_date", new Date()) + .eq("document_no", todoTaskPojo.getId()) + .doUpdate(InitiatedTaskPojo.class); + //新增这个人的已办 + CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, completedTaskPojo); + completedTaskPojo.setId(UUID.randomUUID().toString().replaceAll("-","")); + completedTaskPojo.setDocumentNo(todoTaskPojo.getDocumentNo()); + completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + completedTaskPojo.setIsDelete(0); + completedTaskPojo.setCurrentNode("已分解"); + sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(completedTaskPojo); // //机型的分发状态改为已分发 // DistributeStatusEnum byDesc = DistributeStatusEnum.getByDesc("已分发"); // Integer status = byDesc != null ? byDesc.getCode() : null; @@ -571,6 +615,10 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService { public void batchInsertTodoTask(List todoTaskPojos) { sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(todoTaskPojos); } + @Transactional(rollbackFor = Exception.class) // 发生任何异常都回滚 + public void batchInsertInitiatedTask(List taskPojos) { + sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(taskPojos); + } @Override public List selectAllByNewVersion() { diff --git a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java index ba4269a..dc15e30 100644 --- a/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/TodoTaskServiceImpl.java @@ -23,9 +23,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -217,6 +219,7 @@ public class TodoTaskServiceImpl implements TodoTaskService { .stream() .collect(Collectors.toList()); ArrayList todoTaskPojos = new ArrayList<>(); + ArrayList taskPojos = new ArrayList<>(); XdapUsers xdapUsersPojo = xdapDeptUsersService.selectUserByID(userID); DataEntryEngineModelPojo modelPojo = dataEntryEngineModelService.selectBymodelId(modelId); @@ -231,15 +234,19 @@ public class TodoTaskServiceImpl implements TodoTaskService { todoTaskPojo.setStatusCode(null/*String.valueOf(ParamValueVersionEnum.DRAFT.getCode())*/); todoTaskPojo.setModelName(ObjectUtils.isNotEmpty(modelPojo) ? modelPojo.getModelName() : ""); todoTaskPojo.setModelId(modelId); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setDataType(CurrentNodeEnum.JOBSPLIT.getDesc()); todoTaskPojo.setVersionNumber(ObjectUtils.isNotEmpty(modelPojo) ? modelPojo.getVersionNumber() : 0); todoTaskPojo.setIsDelete(0); todoTaskPojo.setOwnerId(engineParamDetailDTO.getResPersonId()); todoTaskPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getUsername() : ""); todoTaskPojos.add(todoTaskPojo); + InitiatedTaskPojo initiatedTaskPojo = new InitiatedTaskPojo(); + BeanUtils.copyProperties(todoTaskPojo, initiatedTaskPojo); + taskPojos.add(initiatedTaskPojo); } batchInsertTodoTask(todoTaskPojos); + batchInsertInitiatedTask(taskPojos); List detailPojos = engineParamDetailService.selectByModelNewVersion(modelId); List paramDetailPojos = detailPojos.stream() .filter(x -> ObjectUtils.isEmpty(x.getResponsiblePersonId())).collect(Collectors.toList()); @@ -292,7 +299,7 @@ public class TodoTaskServiceImpl implements TodoTaskService { todoTaskPojo.setStatusCode(null/*String.valueOf(ParamValueVersionEnum.DRAFT.getCode())*/); todoTaskPojo.setModelName(todoTaskPojo1.getModelName()); todoTaskPojo.setModelId(todoTaskPojo1.getModelId()); - todoTaskPojo.setCreationDate(new Date()); + todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); todoTaskPojo.setDataType(todoTaskPojo1.getDataType()); todoTaskPojo.setVersionNumber(todoTaskPojo1.getVersionNumber()); todoTaskPojo.setIsDelete(0); @@ -446,5 +453,9 @@ public class TodoTaskServiceImpl implements TodoTaskService { public void batchInsertTodoTask(List todoTaskPojos) { sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(todoTaskPojos); } + @Transactional(rollbackFor = Exception.class) // 发生任何异常都回滚 + public void batchInsertInitiatedTask(List taskPojos) { + sw.buildFromDatasource("xdap_app_223770822127386625").doBatchInsert(taskPojos); + } }