Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
b47fe47338
  1. 31
      xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java
  2. 8
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java
  3. 6
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectMCostUserMapper.xml
  4. 2
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskExecuserMapper.xml
  5. 10
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

31
xm-core/src/main/java/com/xm/core/service/XmTaskExecuserService.java

@ -17,6 +17,7 @@ import com.xm.core.service.push.XmPushMsgService;
import com.xm.core.vo.XmGroupVo; import com.xm.core.vo.XmGroupVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -233,14 +234,23 @@ public class XmTaskExecuserService extends BaseService {
String subjectId="rwcl"; String subjectId="rwcl";
String subjectName="任务酬劳"; String subjectName="任务酬劳";
Map<String,Object> params=new HashMap<>(); Map<String,Object> params=new HashMap<>();
params.put("projectId", projectId);
params.put("taskId", taskId); params.put("taskId", taskId);
XmTask task=xmTaskService.selectOneObject(new XmTask(taskId));
String projectName=task.getProjectName();
XmTask xmTaskDb=xmTaskService.selectOneObject(new XmTask(taskId));
if(xmTaskDb==null){
throw new BizException("任务已不存在,不允许申请结算");
}
if("3".equals(xmTaskDb.getTaskState())){
throw new BizException("任务状态为已结算,不能再申请结算");
} else if(!"2".equals(xmTaskDb.getTaskState())){
throw new BizException("任务状态必须是完工状态,才可以进行结算申请");
}
String projectName=xmTaskDb.getProjectName();
List<Map<String,Object>> actCostAmountList=xmProjectMCostUserService.listSumForSettleGroupByTaskIdAndUserid(params); List<Map<String,Object>> actCostAmountList=xmProjectMCostUserService.listSumForSettleGroupByTaskIdAndUserid(params);
BigDecimal addSettleAmount=BigDecimal.ZERO; BigDecimal addSettleAmount=BigDecimal.ZERO;
BigDecimal allActCostAmount=BigDecimal.ZERO; BigDecimal allActCostAmount=BigDecimal.ZERO;
BigDecimal taskBudgetCost=NumberUtil.getBigDecimal(task.getBudgetCost(),BigDecimal.ZERO);
BigDecimal taskBudgetCost=NumberUtil.getBigDecimal(xmTaskDb.getBudgetCost(),BigDecimal.ZERO);
Map<String,Map<String,Object>> actCostAmountMap=new HashMap<>(); Map<String,Map<String,Object>> actCostAmountMap=new HashMap<>();
XmTaskExecuser execuserQuery=new XmTaskExecuser(); XmTaskExecuser execuserQuery=new XmTaskExecuser();
execuserQuery.setTaskId(taskId); execuserQuery.setTaskId(taskId);
@ -275,6 +285,10 @@ public class XmTaskExecuserService extends BaseService {
if("6".equals(xmTaskExecuserDB.getSettleStatus())) { if("6".equals(xmTaskExecuserDB.getSettleStatus())) {
throw new BizException(xmTaskExecuserDB.getUsername()+"已经结算完毕,不能再申请"); throw new BizException(xmTaskExecuserDB.getUsername()+"已经结算完毕,不能再申请");
} }
if("1".equals(xmTaskExecuserDB.getBizFlowState())) {
throw new BizException(xmTaskExecuserDB.getUsername()+"已有申请在审判中,不能重复申请结算");
}
if( StringUtils.hasText(xmTaskExecuserDB.getSettleStatus()) && !"0".equals(xmTaskExecuserDB.getSettleStatus()) && !"1".equals(xmTaskExecuserDB.getSettleStatus()) && !"5".equals(xmTaskExecuserDB.getSettleStatus())) { if( StringUtils.hasText(xmTaskExecuserDB.getSettleStatus()) && !"0".equals(xmTaskExecuserDB.getSettleStatus()) && !"1".equals(xmTaskExecuserDB.getSettleStatus()) && !"5".equals(xmTaskExecuserDB.getSettleStatus())) {
throw new BizException(xmTaskExecuserDB.getUsername()+"暂时还不能申请结算"); throw new BizException(xmTaskExecuserDB.getUsername()+"暂时还不能申请结算");
} }
@ -296,7 +310,7 @@ public class XmTaskExecuserService extends BaseService {
} }
if(allActCostAmount.add(addSettleAmount).compareTo(taskBudgetCost)>0) { if(allActCostAmount.add(addSettleAmount).compareTo(taskBudgetCost)>0) {
throw new BizException(task.getName()+"结算总金额已经超出任务预算");
throw new BizException(xmTaskDb.getName()+"结算总金额已经超出任务预算");
} }
for (XmTaskExecuser xmTaskExecuser : xmTaskExecuserList) { for (XmTaskExecuser xmTaskExecuser : xmTaskExecuserList) {
@ -329,9 +343,9 @@ public class XmTaskExecuserService extends BaseService {
costUser.setBizzStartDate(xmTaskExecuser.getStartTime()); costUser.setBizzStartDate(xmTaskExecuser.getStartTime());
costUser.setBizzEndDate(xmTaskExecuser.getEndTime()); costUser.setBizzEndDate(xmTaskExecuser.getEndTime());
costUser.setBizFlowState("0"); costUser.setBizFlowState("0");
costUser.setCostType("1".equals(task.getTaskOut())?"1":"2");
costUser.setCostType("1".equals(xmTaskDb.getTaskOut())?"1":"2");
costUser.setTaskId(xmTaskExecuser.getTaskId()); costUser.setTaskId(xmTaskExecuser.getTaskId());
costUser.setTaskName(task.getName());
costUser.setTaskName(xmTaskDb.getName());
costUser.setCreateTime(new Date()); costUser.setCreateTime(new Date());
costUser.setProjectId(xmTaskExecuser.getProjectId()); costUser.setProjectId(xmTaskExecuser.getProjectId());
costUser.setProjectName(projectName); costUser.setProjectName(projectName);
@ -400,6 +414,7 @@ public class XmTaskExecuserService extends BaseService {
* @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey} * @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey}
* @return 如果tips.isOk==false将影响流程提交 * @return 如果tips.isOk==false将影响流程提交
**/ **/
@Transactional
public void processApprova(Map<String, Object> flowVars) { public void processApprova(Map<String, Object> flowVars) {
String eventName=(String) flowVars.get("eventName"); String eventName=(String) flowVars.get("eventName");
@ -475,6 +490,8 @@ public class XmTaskExecuserService extends BaseService {
//结算通过,更新费用表状态未1申请通过 //结算通过,更新费用表状态未1申请通过
this.xmProjectMCostUserService.updateExecuserStatusByExecuserProcInstId(procInstId,"1"); this.xmProjectMCostUserService.updateExecuserStatusByExecuserProcInstId(procInstId,"1");
this.xmTaskService.updateActCostAndActWorkloadAfterSettle(bizExecuser.getTaskId(),"3");
}else { }else {
//结算申请不通过需要删除成本表中相关数据还原执行表中相关数据 //结算申请不通过需要删除成本表中相关数据还原执行表中相关数据
flowVars.put("settleStatus", "5"); flowVars.put("settleStatus", "5");

8
xm-core/src/main/java/com/xm/core/service/XmTaskService.java

@ -713,5 +713,13 @@ public class XmTaskService extends BaseService {
super.update("batchChangeParent",map("taskIds",xmTasks.stream().map(i->i.getId()).collect(Collectors.toList()),"parentTaskid",parentTask.getId(),"parentPidPaths",parentTask.getPidPaths())); super.update("batchChangeParent",map("taskIds",xmTasks.stream().map(i->i.getId()).collect(Collectors.toList()),"parentTaskid",parentTask.getId(),"parentPidPaths",parentTask.getPidPaths()));
this.sumParents(parentTask); this.sumParents(parentTask);
} }
/**
* 结算审批通过后更新任务表数据
* @param taskId
*/
public void updateActCostAndActWorkloadAfterSettle(String taskId,String toTaskState) {
super.update("updateActCostAndActWorkloadAfterSettle",map("id",taskId,"taskState",toTaskState));
}
} }

6
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmProjectMCostUserMapper.xml

@ -116,14 +116,14 @@
res.task_id, res.task_id,
res.userid, res.userid,
max( res.username ) as username, max( res.username ) as username,
sum( res.act_cost_amount ) AS act_cost_amount,
max( t.budget_cost ) AS task_budget_cost,
sum( ifnull(res.act_cost_amount,0) ) AS act_cost_amount,
max( ifnull(t.budget_cost,0) ) AS task_budget_cost,
max( t.project_name ) AS project_name max( t.project_name ) AS project_name
FROM xm_task t FROM xm_task t
LEFT JOIN LEFT JOIN
XM.xm_project_m_cost_user res ON res.task_id = t.id AND res.project_id = t.project_id XM.xm_project_m_cost_user res ON res.task_id = t.id AND res.project_id = t.project_id
<where> <where>
t.project_id=#{projectId}
<if test="projectId != null and projectId !='' "> and t.project_id =#{projectId} </if>
<if test="subjectId != null and subjectId !='' "> and res.subject_id =#{subjectId} </if> <if test="subjectId != null and subjectId !='' "> and res.subject_id =#{subjectId} </if>
<if test="costType != null and costType !='' "> and res.cost_type =#{costType} </if> <if test="costType != null and costType !='' "> and res.cost_type =#{costType} </if>
<if test="taskId != null and taskId !='' "> and res.task_id =#{taskId} </if> <if test="taskId != null and taskId !='' "> and res.task_id =#{taskId} </if>

2
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskExecuserMapper.xml

@ -100,7 +100,7 @@
WHEN e.STATUS = '4' THEN WHEN e.STATUS = '4' THEN
'(验收不过)' '(验收不过)'
WHEN e.STATUS = '6' THEN WHEN e.STATUS = '6' THEN
'(已付款)'
'(已结算)'
WHEN e.STATUS = '7' THEN WHEN e.STATUS = '7' THEN
'(放弃任务)' '(放弃任务)'
WHEN e.STATUS = '8' THEN WHEN e.STATUS = '8' THEN

10
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmTaskMapper.xml

@ -345,6 +345,16 @@
res.lvl= LENGTH(replace(res.pid_paths,t1.pid_paths,concat(#{parentPidPaths},res.id,',')))-LENGTH(REPLACE(replace(res.pid_paths,t1.pid_paths,concat(#{parentPidPaths},res.id,',')),',',''))-1 res.lvl= LENGTH(replace(res.pid_paths,t1.pid_paths,concat(#{parentPidPaths},res.id,',')))-LENGTH(REPLACE(replace(res.pid_paths,t1.pid_paths,concat(#{parentPidPaths},res.id,',')),',',''))-1
</update> </update>
<update id="updateActCostAndActWorkloadAfterSettle" parameterType="HashMap">
update xm_task res left join (
select u.task_id, sum(u.act_cost_amount) as act_cost_amount ,sum(u.act_workload) as act_workload from xm_project_m_cost_user u
where u.task_id=#{id}
group by u.task_id
) as cu on cu.task_id=res.id
set res.act_workload=ifnull(cu.act_workload,0),res.act_cost=ifnull(cu.act_cost_amount,0),
res.task_state=ifnull(#{taskState},res.task_state)
where id=#{id}
</update>
<!--结束 自定义sql函数区域--> <!--结束 自定义sql函数区域-->

Loading…
Cancel
Save