From da480b1828fbb4c14c65ebaf1d2830b9c15487a7 Mon Sep 17 00:00:00 2001 From: qqkj Date: Fri, 16 Apr 2021 16:25:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=A1=E6=89=B9=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xm/core/service/XmProjectService.java | 42 ++++++++++++------- .../core/service/XmTaskExecuserService.java | 23 +++++----- 2 files changed, 40 insertions(+), 25 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/service/XmProjectService.java b/xm-core/src/main/java/com/xm/core/service/XmProjectService.java index 8e012bbc..1cb91027 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmProjectService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmProjectService.java @@ -168,25 +168,31 @@ public class XmProjectService extends BaseService { String eventName=(String) flowVars.get("eventName"); String agree=(String) flowVars.get("agree"); String bizKey=(String) flowVars.get("bizKey"); + XmProject bizProject=new XmProject(); + if(!flowVars.containsKey("data")){ + throw new BizException("缺乏项目信息,请将项目的待审批信息放在flowVars.data中"); + }else{ - if("xm_project_baseinfo_change_approva".equals(bizKey) ) { //项目基本信息修改 - if(!flowVars.containsKey("data")) { - throw new BizException("缺乏项目信息,请将项目的基础信息及预算信息放在flowVars.data中"); + bizProject= BaseUtils.fromMap((Map)flowVars.get("data"), XmProject.class); + if(!StringUtils.hasText(bizProject.getId())){ + throw new BizException("缺乏项目编号,请将项目编号放在flowVars.data.id中上传"); } - }else if("xm_project_start_approva".equals(bizKey) ) { //项目立项 - if(!flowVars.containsKey("data")) { - throw new BizException("缺乏项目信息,请将项目的基础信息及预算信息放在flowVars.data中"); + if(StringUtils.isEmpty(bizProject.getBranchId())) { + throw new BizException("请上送机构编号flowVars.data.branchId"); } + } + if("xm_project_baseinfo_change_approva".equals(bizKey) ) { //项目基本信息修改 + + }else if("xm_project_start_approva".equals(bizKey) ) { //项目立项 + }else if("xm_project_delay_approva".equals(bizKey) ) { //项目逾期 - if(!flowVars.containsKey("data")) { + if(bizProject.getEndTime()==null) { throw new BizException("缺乏日期信息,请将变更的日期信息放在flowVars.data.endTime中"); } }else if("xm_project_over_approva".equals(bizKey) ) { //结项 - if(!flowVars.containsKey("data")) { - throw new BizException("缺乏项目编号,请将项目编号放在flowVars.data.id中"); - } + }else if("xm_project_budget_change_approva".equals(bizKey) ) { //总预算调整 - if(!flowVars.containsKey("data")) { + if( bizProject.getPlanTotalCost() ==null ) { throw new BizException("缺乏预算信息,请将变更的预算信息放在flowVars.data中"); } }else if("xm_project_restart_approva".equals(bizKey) ) { //总预算调整 @@ -211,7 +217,6 @@ public class XmProjectService extends BaseService { } }else { - XmProject bizProject=new XmProject(); bizProject= BaseUtils.fromMap((Map)flowVars.get("data"), XmProject.class); flowVars.put("projectId", bizProject.getId()); if("PROCESS_STARTED".equals(eventName)) { @@ -233,6 +238,7 @@ public class XmProjectService extends BaseService { throw new BizException("该项目正在审批中,不能再发起审批"); } } + flowVars.put("id", this.createKey("id")); this.insert("insertProcessApprova", flowVars); this.updateFlowStateByProcInst("1", flowVars); @@ -248,16 +254,21 @@ public class XmProjectService extends BaseService { project.setUrgent(bizProject.getUrgent()); project.setBaseRemark(bizProject.getBaseRemark()); project.setAssess(bizProject.getAssess()); + project.setName(bizProject.getName()); + project.setBudgetCtrl(bizProject.getBudgetCtrl()); + project.setDescription(bizProject.getDescription()); project.setAssessRemarks(bizProject.getAssessRemarks()); //project.setCode(project.getCode()); this.updateSomeFieldByPk(project); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-基本信息", "修改基本信息" ); this.createBaseline(bizProject.getId(),"项目修改基本信息"); - }else if("xm_project_start_approva".equals(bizKey)) {//立项 + }else if("xm_project_start_approva".equals(bizKey)) {//立项 立项通过需要把预算数据同步到财务系统,把项目数据同步到财务系统 XmProject project=new XmProject(); project.setId(bizProject.getId()); project.setStatus("2"); + //todo 立项通过需要把预算数据同步到财务系统,把项目数据同步到财务系统 + this.updateSomeFieldByPk(project); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-立项", "项目立项通过审批" ); this.createBaseline(bizProject.getId(),"项目立项通过审批"); @@ -275,7 +286,7 @@ public class XmProjectService extends BaseService { this.updateSomeFieldByPk(project); this.createBaseline(bizProject.getId(),"项目结项申请通过审批"); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-结项", "项目结项申请通过审批" ); - }else if("xm_project_budget_change_approva".equals(bizKey) ) { //总预算调整 + }else if("xm_project_budget_change_approva".equals(bizKey) ) { //总预算调整,需要同步预算到财务系统 this.editBudget(bizProject); @@ -332,6 +343,9 @@ public class XmProjectService extends BaseService { } } public XmProject editBudget(XmProject xmProject) { + + //todo 同步预算数据到财务系统 + BigDecimal planTotalCost=xmProject.getPlanTotalCost(); BigDecimal planInnerUserAt=xmProject.getPlanInnerUserAt(); BigDecimal planOutUserAt=xmProject.getPlanOutUserAt(); diff --git a/xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java b/xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java index 1e6c86d2..dc2e5051 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java @@ -253,7 +253,6 @@ public class XmTaskExecuserService extends BaseService { throw new BizException(xmTaskExecuser.getUsername()+"不在执行人列表中,不允许结算"); } - if("0".equals(xmTaskExecuserDB.getStatus())) { throw new BizException(xmTaskExecuser.getUsername()+"候选排队中人员不能申请结算"); } @@ -263,13 +262,13 @@ public class XmTaskExecuserService extends BaseService { throw new BizException(xmTaskExecuser.getUsername()+"无需结算"); } if("4".equals(xmTaskExecuserDB.getSettleStatus())) { - throw new BizException(xmTaskExecuser.getUsername()+"已有申请在审核中,不能再申请"); + throw new BizException(xmTaskExecuserDB.getUsername()+"已有申请在审核中,不能再申请"); } if("6".equals(xmTaskExecuserDB.getSettleStatus())) { - throw new BizException(xmTaskExecuser.getUsername()+"已经结算完毕,不能再申请"); + throw new BizException(xmTaskExecuserDB.getUsername()+"已经结算完毕,不能再申请"); } - if( !StringUtils.hasText(xmTaskExecuserDB.getSettleStatus()) && !"0".equals(xmTaskExecuserDB.getSettleStatus()) && !"1".equals(xmTaskExecuserDB.getSettleStatus()) && !"5".equals(xmTaskExecuserDB.getSettleStatus())) { - throw new BizException(xmTaskExecuser.getUsername()+"暂时还不能申请结算"); + if( StringUtils.hasText(xmTaskExecuserDB.getSettleStatus()) && !"0".equals(xmTaskExecuserDB.getSettleStatus()) && !"1".equals(xmTaskExecuserDB.getSettleStatus()) && !"5".equals(xmTaskExecuserDB.getSettleStatus())) { + throw new BizException(xmTaskExecuserDB.getUsername()+"暂时还不能申请结算"); } BigDecimal settleAmount=NumberUtil.getBigDecimal(xmTaskExecuser.getSettleAmount(), BigDecimal.ZERO); BigDecimal quoteAmount=NumberUtil.getBigDecimal(xmTaskExecuserDB.getQuoteAmount(), BigDecimal.ZERO); @@ -281,15 +280,15 @@ public class XmTaskExecuserService extends BaseService { userActCostAmount=NumberUtil.getBigDecimal(userActCostAmountRow.get("actCostAmount"),BigDecimal.ZERO); } if(settleAmount.add(userActCostAmount).compareTo(quoteAmount)>0) { - throw new BizException(xmTaskExecuser.getUsername()+"的结算金额不能大于报价金额,剩余"+quoteAmount.subtract(userActCostAmount)+"元可结算"); + throw new BizException(xmTaskExecuserDB.getUsername()+"的结算金额不能大于报价金额,剩余"+quoteAmount.subtract(userActCostAmount)+"元可结算"); } if(settleAmount.add(userActCostAmount).compareTo(taskBudgetCost)>0) { - throw new BizException(xmTaskExecuser.getUsername()+"的总结算金额不能大于任务总预算金额"); + throw new BizException(xmTaskExecuserDB.getUsername()+"的总结算金额不能大于任务总预算金额"); } } if(allActCostAmount.add(addSettleAmount).compareTo(taskBudgetCost)>0) { - throw new BizException("结算总金额已经超出任务预算"); + throw new BizException(task.getName()+"结算总金额已经超出任务预算"); } for (XmTaskExecuser xmTaskExecuser : xmTaskExecuserList) { @@ -298,6 +297,7 @@ public class XmTaskExecuserService extends BaseService { if(userActCostAmountRow!=null) { userActCostAmount=NumberUtil.getBigDecimal(userActCostAmountRow.get("actCostAmount"),BigDecimal.ZERO); } + XmTaskExecuser xmTaskExecuserDB =xmTaskExecuserDBMap.get(xmTaskExecuser.getUserid()); XmTaskExecuser xmTaskExecuser2=new XmTaskExecuser(); xmTaskExecuser2.setId(xmTaskExecuser.getId()); xmTaskExecuser2.setSettleStatus("4"); @@ -307,11 +307,11 @@ public class XmTaskExecuserService extends BaseService { this.updateSomeFieldByPk(xmTaskExecuser2); projectId=xmTaskExecuser.getProjectId(); taskId=xmTaskExecuser.getTaskId(); - usernames.add(xmTaskExecuser.getUsername()); + usernames.add(xmTaskExecuserDB.getUsername()); XmProjectMCostUser costUser=new XmProjectMCostUser(); costUser.setUserid(xmTaskExecuser.getUserid()); - costUser.setUsername(xmTaskExecuser.getUsername()); + costUser.setUsername(xmTaskExecuserDB.getUsername()); costUser.setActCostAmount(xmTaskExecuser.getSettleAmount()); costUser.setActWorkload(xmTaskExecuser.getSettleWorkload()); costUser.setBizDate(DateUtils.getDate()); @@ -456,7 +456,8 @@ public class XmTaskExecuserService extends BaseService { flowVars.put("settleStatus", "4"); this.updateFlowStateByProcInst("1", flowVars); }else if("PROCESS_COMPLETED".equals(eventName)) { - if("1".equals(agree)) { + if("1".equals(agree)) { //结算通过,需要调用财务系统进行记账结算到用户的结算账户中。//用户可以通过该账户提现取现金 + // todo 需要调用财务系统进行记账结算到用户的结算账户中。用户可以通过该账户提现取现金 //flowVars.put("settleStatus", "4"); this.updateFlowStateByProcInst("2", flowVars); //结算通过,更新费用表状态未1,申请通过