审批人员接口修改
This commit is contained in:
parent
03d7f690ba
commit
ed0cc6355d
|
|
@ -51,4 +51,15 @@ public class WorkPeopleInfo {
|
|||
@ApiModelProperty(value = "是否当前人审核")
|
||||
private int isExamine;
|
||||
|
||||
@ApiModelProperty(value = "部门")
|
||||
private long deptId;
|
||||
|
||||
@ApiModelProperty(value = "流程id")
|
||||
private int flowId;
|
||||
|
||||
@ApiModelProperty(value = "角色")
|
||||
private String roleIds;
|
||||
|
||||
@ApiModelProperty(value = "角色数组")
|
||||
private String[] roleIdArray;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
|
|||
boxBindList.removeIf(Objects::isNull);
|
||||
boxInfoBindVo.setBindMaTotal(boxBindList.size());
|
||||
boxBindList.removeIf(item -> null == item.getMaStatus());
|
||||
boxBindList.removeIf(item -> !item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName()));
|
||||
boxBindList.removeIf(item -> !"新购待入库".equals(item.getMaStatus()));
|
||||
if (Objects.nonNull(bmQrBoxInfo.getMaTypeId())) {
|
||||
boxBindList.removeIf(item -> null == item.getMaTypeId() || !Objects.equals(item.getMaTypeId(), bmQrBoxInfo.getMaTypeId()));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,4 +166,12 @@ public interface LeaseTaskMapper {
|
|||
* @return 结果
|
||||
*/
|
||||
int insertWorkPeople(WorkPeopleInfo workPeopleInfo);
|
||||
|
||||
List<WorkPeopleInfo> selectWorkPeopleInfoList(WorkPeopleInfo info);
|
||||
|
||||
List<WorkPeopleInfo> selectUserListByRoleAndDept(WorkPeopleInfo param);
|
||||
|
||||
void updateWorkPeopleInfo(WorkPeopleInfo peopleInfo);
|
||||
|
||||
WorkPeopleInfo getWorkPeopleInfo(WorkPeopleInfo peopleInfo);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,11 +40,13 @@ import com.bonus.material.work.domain.SysWorkflowRecordHistory;
|
|||
import com.bonus.material.work.domain.SysWorkflowType;
|
||||
import com.bonus.material.work.mapper.*;
|
||||
import com.bonus.material.work.service.SysWorkflowRecordService;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
|
@ -101,7 +103,7 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService {
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult insertLeaseApplyInfo(LeaseApplyRequestVo leaseApplyRequestVo) {
|
||||
if (null == leaseApplyRequestVo.getLeaseApplyInfo()) {
|
||||
return AjaxResult.error("请先填写领用任务信息");
|
||||
|
|
@ -109,115 +111,176 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService {
|
|||
if (CollectionUtil.isEmpty(leaseApplyRequestVo.getLeaseApplyDetailsList())) {
|
||||
return AjaxResult.error("请先添加领用任务物资明细");
|
||||
}
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().setCreateTime(DateUtils.getNowDate());
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().setTaskDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
|
||||
Long userId = SecurityUtils.getLoginUser().getUserid();
|
||||
Long deptId = mapper.getDeptIdByUserId(userId);
|
||||
LeaseDeptInfo leaseDeptInfo = new LeaseDeptInfo();
|
||||
leaseDeptInfo = mapper.getDeptIdByParentId(deptId);
|
||||
Long parentIdTemp = leaseDeptInfo.getParentId();
|
||||
|
||||
LeaseApplyInfo leaseApplyInfo = leaseApplyRequestVo.getLeaseApplyInfo();
|
||||
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||
Date nowDate = DateUtils.getNowDate();
|
||||
|
||||
leaseApplyInfo.setCreateTime(nowDate);
|
||||
leaseApplyInfo.setCreateBy(sysUser.getNickName());
|
||||
leaseApplyInfo.setTaskDeptId(sysUser.getDeptId());
|
||||
|
||||
Long userId = sysUser.getUserId();
|
||||
Long deptId = mapper.getDeptIdByUserId(userId);
|
||||
|
||||
String deptName = "";
|
||||
while (Objects.nonNull(leaseDeptInfo)) {
|
||||
parentIdTemp = leaseDeptInfo.getParentId();
|
||||
String ancestors = leaseDeptInfo.getAncestors();
|
||||
if (null != ancestors && StringUtils.countMatches(ancestors, ",") < 1) {
|
||||
break;
|
||||
}
|
||||
if (null != ancestors && StringUtils.countMatches(ancestors, ",") == 1) {
|
||||
deptName = leaseDeptInfo.getDeptName();
|
||||
break;
|
||||
}
|
||||
LeaseDeptInfo leaseDeptInfo = new LeaseDeptInfo();
|
||||
Long parentIdTemp = deptId;
|
||||
final int MAX_LOOP = 10;
|
||||
|
||||
int loopCount = 0;
|
||||
while (loopCount++ < MAX_LOOP) {
|
||||
leaseDeptInfo = mapper.getDeptIdByParentId(parentIdTemp);
|
||||
if (leaseDeptInfo == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
String ancestors = leaseDeptInfo.getAncestors();
|
||||
if (StringUtils.isNotBlank(ancestors)) {
|
||||
int commaCount = StringUtils.countMatches(ancestors, ",");
|
||||
if (commaCount < 1) {
|
||||
break;
|
||||
} else if (commaCount == 1) {
|
||||
deptName = leaseDeptInfo.getDeptName();
|
||||
break;
|
||||
}
|
||||
}
|
||||
parentIdTemp = leaseDeptInfo.getParentId();
|
||||
}
|
||||
if(!"".equals(deptName)){
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().setCompanyId(leaseDeptInfo.getDeptId());
|
||||
|
||||
if (!"".equals(deptName)) {
|
||||
leaseApplyInfo.setCompanyId(leaseDeptInfo.getDeptId());
|
||||
}
|
||||
|
||||
try {
|
||||
int newId = 0;
|
||||
Integer statusFlag = leaseApplyRequestVo.getStatusFlag();
|
||||
// 根据状态标志选择合适的状态
|
||||
Integer taskStatus;
|
||||
if (statusFlag != null && statusFlag == 0) {
|
||||
taskStatus = LeaseTaskStatusEnum.LEASE_TASK_ZERO.getStatus();
|
||||
} else {
|
||||
taskStatus = LeaseTaskStatusEnum.LEASE_TASK_SUBMIT.getStatus();
|
||||
}
|
||||
int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId());
|
||||
String taskCode = leaseApplyRequestVo.getLeaseApplyInfo().getCode();
|
||||
TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId(),
|
||||
Integer taskStatus = (statusFlag != null && statusFlag == 0)
|
||||
? LeaseTaskStatusEnum.LEASE_TASK_ZERO.getStatus()
|
||||
: LeaseTaskStatusEnum.LEASE_TASK_SUBMIT.getStatus();
|
||||
|
||||
int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(
|
||||
DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(),
|
||||
TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId());
|
||||
|
||||
String taskCode = leaseApplyInfo.getCode();
|
||||
TmTask tmTask = new TmTask(null,
|
||||
TmTaskTypeEnum.TM_TASK_LEASE_APPLY.getTaskTypeId(),
|
||||
taskStatus,
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().getCompanyId(),thisMonthMaxOrder + 1, taskCode);
|
||||
tmTask.setCreateTime(DateUtils.getNowDate());
|
||||
tmTask.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
tmTask.setTaskDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId());
|
||||
leaseApplyInfo.getCompanyId(), thisMonthMaxOrder + 1, taskCode);
|
||||
|
||||
tmTask.setCreateTime(nowDate);
|
||||
tmTask.setCreateBy(sysUser.getNickName());
|
||||
tmTask.setTaskDeptId(sysUser.getDeptId());
|
||||
|
||||
tmTaskMapper.insertTmTask(tmTask);
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().setTaskId(tmTask.getTaskId());
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().setCode(taskCode);
|
||||
leaseApplyInfo.setTaskId(tmTask.getTaskId());
|
||||
leaseApplyInfo.setCode(taskCode);
|
||||
|
||||
/** 设置审批人为默认的董班长 --防止代码冲突 **/
|
||||
// 设置审批人为默认的董班长
|
||||
Long peopleId = leaseApplyInfoMapper.getDirectAuditBy();
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().setDirectAuditBy(peopleId);
|
||||
/** 设置审批人为默认的董班长 --防止代码冲突 **/
|
||||
leaseApplyInfo.setDirectAuditBy(peopleId);
|
||||
|
||||
int count = mapper.insertLeaseApplyInfo(leaseApplyRequestVo.getLeaseApplyInfo());
|
||||
if (!CollectionUtils.isEmpty(leaseApplyRequestVo.getLeaseApplyInfo().getBmFileInfos())) {
|
||||
leaseApplyRequestVo.getLeaseApplyInfo().getBmFileInfos().forEach(bmFileInfo -> {
|
||||
bmFileInfo.setTaskType(2);
|
||||
bmFileInfo.setTaskId(tmTask.getTaskId());
|
||||
bmFileInfo.setModelId(leaseApplyRequestVo.getLeaseApplyInfo().getId());
|
||||
bmFileInfo.setFileType(5L);
|
||||
bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
bmFileInfo.setCreateTime(DateUtils.getNowDate());
|
||||
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
|
||||
});
|
||||
}
|
||||
if (statusFlag!= null && statusFlag == 0) {
|
||||
newId = sysWorkflowRecordService.addSysWorkflowRecord(tmTask.getTaskId().intValue(),taskCode,19);
|
||||
int count = mapper.insertLeaseApplyInfo(leaseApplyInfo);
|
||||
|
||||
handleBmFileInfos(leaseApplyInfo, sysUser, nowDate, tmTask);
|
||||
|
||||
int newId = 0;
|
||||
if (statusFlag != null && statusFlag == 0) {
|
||||
newId = sysWorkflowRecordService.addSysWorkflowRecord(tmTask.getTaskId().intValue(), taskCode, 19);
|
||||
}
|
||||
|
||||
if (count > 0) {
|
||||
if (statusFlag!= null && statusFlag == 0) {
|
||||
//工单接入
|
||||
String id = UUID.randomUUID().toString().replace("-", "");
|
||||
WorkApplyInfo workApplyInfo = new WorkApplyInfo();
|
||||
workApplyInfo.setId(id);
|
||||
workApplyInfo.setTitle("智能机具-领料申请待审核");
|
||||
workApplyInfo.setCreateUserName(SecurityUtils.getLoginUser().getSysUser().getUserName());
|
||||
workApplyInfo.setContent(SecurityUtils.getLoginUser().getSysUser().getNickName()+":"+leaseApplyRequestVo.getLeaseApplyInfo().getCode()+"-"+leaseApplyRequestVo.getLeaseApplyInfo().getProjectName());
|
||||
workApplyInfo.setType(1);
|
||||
workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702");
|
||||
workApplyInfo.setSendUserName(SecurityUtils.getLoginUser().getSysUser().getUserName());
|
||||
workApplyInfo.setTypeId(2025050801);
|
||||
workApplyInfo.setBusinessId(String.valueOf(newId));
|
||||
workApplyInfo.setNextStatus("待审核");
|
||||
workApplyInfo.setFlowState(null);
|
||||
workApplyInfo.setWebUrl("/mea-h5/#/pages/picking/review/index?appId=9fa73f046ef520b09e94bbffc3b07702&taskId=" + tmTask.getTaskId() + "&id=" + leaseApplyRequestVo.getLeaseApplyInfo().getId());
|
||||
workApplyInfo.setRout("/mea-h5/#/pages/picking/review/index?appId=9fa73f046ef520b09e94bbffc3b07702&taskId=" + tmTask.getTaskId() + "&id=" + leaseApplyRequestVo.getLeaseApplyInfo().getId());
|
||||
int countWork = mapper.insertWorkOrder(workApplyInfo);
|
||||
if(countWork > 0){
|
||||
//接入information_people表
|
||||
WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo();
|
||||
String idPeople = UUID.randomUUID().toString().replace("-", "");
|
||||
workPeopleInfo.setId(idPeople);
|
||||
workPeopleInfo.setInformationId(id);
|
||||
workPeopleInfo.setReceiverUsername(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
workPeopleInfo.setReadState(0);
|
||||
workPeopleInfo.setHandleState(0);
|
||||
workPeopleInfo.setIsExamine(0);
|
||||
int countPeople = mapper.insertWorkPeople(workPeopleInfo);
|
||||
}
|
||||
if (statusFlag != null && statusFlag == 0) {
|
||||
createWorkOrderAndPeople(sysUser, leaseApplyInfo, tmTask, newId);
|
||||
}
|
||||
return insertPurchaseCheckDetails(leaseApplyRequestVo.getLeaseApplyDetailsList(), leaseApplyRequestVo.getLeaseApplyInfo().getId());
|
||||
return insertPurchaseCheckDetails(leaseApplyRequestVo.getLeaseApplyDetailsList(), leaseApplyInfo.getId());
|
||||
} else {
|
||||
return AjaxResult.error("新增任务失败,lease_apply_info表插入0条");
|
||||
}
|
||||
} catch (DataAccessException e) {
|
||||
return AjaxResult.error("数据库操作失败:" + e.getMessage());
|
||||
throw new RuntimeException("数据库操作失败", e);
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error("新增任务失败:" + e.getMessage());
|
||||
throw new RuntimeException("新增任务失败", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void handleBmFileInfos(LeaseApplyInfo leaseApplyInfo, SysUser sysUser, Date nowDate, TmTask tmTask) {
|
||||
if (!CollectionUtils.isEmpty(leaseApplyInfo.getBmFileInfos())) {
|
||||
String createBy = sysUser.getNickName();
|
||||
Long taskId = tmTask.getTaskId();
|
||||
Long modelId = leaseApplyInfo.getId();
|
||||
leaseApplyInfo.getBmFileInfos().forEach(bmFileInfo -> {
|
||||
bmFileInfo.setTaskType(2);
|
||||
bmFileInfo.setTaskId(taskId);
|
||||
bmFileInfo.setModelId(modelId);
|
||||
bmFileInfo.setFileType(5L);
|
||||
bmFileInfo.setCreateBy(createBy);
|
||||
bmFileInfo.setCreateTime(nowDate);
|
||||
bmFileInfoMapper.insertBmFileInfo(bmFileInfo);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void createWorkOrderAndPeople(SysUser sysUser, LeaseApplyInfo leaseApplyInfo, TmTask tmTask, int newId) {
|
||||
String id = UUID.randomUUID().toString().replace("-", "");
|
||||
String webUrlBase = "/mea-h5/#/pages/picking/review/index?";
|
||||
String queryParams = UriComponentsBuilder.newInstance()
|
||||
.queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702")
|
||||
.queryParam("taskId", tmTask.getTaskId())
|
||||
.queryParam("id", leaseApplyInfo.getId())
|
||||
.build().encode().toUriString();
|
||||
|
||||
WorkApplyInfo workApplyInfo = new WorkApplyInfo();
|
||||
workApplyInfo.setId(id);
|
||||
workApplyInfo.setTitle("智能机具-领料申请待审核");
|
||||
workApplyInfo.setCreateUserName(sysUser.getUserName());
|
||||
workApplyInfo.setContent(sysUser.getNickName() + ":" + leaseApplyInfo.getCode() + "-" + leaseApplyInfo.getProjectName());
|
||||
workApplyInfo.setType(1);
|
||||
workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702");
|
||||
workApplyInfo.setSendUserName(sysUser.getUserName());
|
||||
workApplyInfo.setTypeId(2025050801);
|
||||
workApplyInfo.setBusinessId(String.valueOf(newId));
|
||||
workApplyInfo.setNextStatus("待审核");
|
||||
workApplyInfo.setFlowState(null);
|
||||
workApplyInfo.setWebUrl(webUrlBase + queryParams);
|
||||
workApplyInfo.setRout(webUrlBase + queryParams);
|
||||
|
||||
int countWork = mapper.insertWorkOrder(workApplyInfo);
|
||||
if (countWork > 0) {
|
||||
|
||||
//查询审批人集合
|
||||
WorkPeopleInfo info = new WorkPeopleInfo();
|
||||
info.setFlowId(newId);
|
||||
|
||||
List<WorkPeopleInfo> workPeopleInfoList = mapper.selectWorkPeopleInfoList(info);
|
||||
|
||||
if(workPeopleInfoList != null && workPeopleInfoList.size() > 0){
|
||||
WorkPeopleInfo person = workPeopleInfoList.get(0);
|
||||
String roleIds = person.getRoleIds();
|
||||
String[] roleIdArray = roleIds.split(",");
|
||||
long deptId = sysUser.getDeptId();
|
||||
//根据角色和部门查询用户集合
|
||||
WorkPeopleInfo param = new WorkPeopleInfo();
|
||||
param.setRoleIdArray(roleIdArray);
|
||||
param.setDeptId(deptId);
|
||||
List<WorkPeopleInfo> userList = mapper.selectUserListByRoleAndDept(param);
|
||||
for (WorkPeopleInfo user : userList) {
|
||||
WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo();
|
||||
workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
workPeopleInfo.setInformationId(id);
|
||||
workPeopleInfo.setReceiverUsername(user.getReceiverUsername());
|
||||
workPeopleInfo.setReadState(0);
|
||||
workPeopleInfo.setHandleState(0);
|
||||
workPeopleInfo.setIsExamine(0);
|
||||
mapper.insertWorkPeople(workPeopleInfo);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 领用记录列表查询
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.bonus.material.work.domain;
|
||||
|
||||
|
||||
import com.bonus.common.biz.domain.lease.LeaseApplyInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
|
@ -71,4 +72,16 @@ public class SysWorkflowRecordHistory {
|
|||
* 审核人
|
||||
*/
|
||||
private String auditBy;
|
||||
/**
|
||||
* 领料id--leaseApplyInfo.id
|
||||
*/
|
||||
private Integer leaseId;
|
||||
/**
|
||||
* 领料编号code
|
||||
*/
|
||||
private String taskCode;
|
||||
/**
|
||||
* 领料工程
|
||||
*/
|
||||
private String projectName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,8 @@ import com.alibaba.nacos.common.utils.CollectionUtils;
|
|||
import com.bonus.common.biz.constant.MaterialConstants;
|
||||
import com.bonus.common.biz.domain.lease.LeaseApplyInfo;
|
||||
import com.bonus.common.biz.domain.lease.LeaseOutDetails;
|
||||
import com.bonus.common.biz.domain.lease.WorkApplyInfo;
|
||||
import com.bonus.common.biz.domain.lease.WorkPeopleInfo;
|
||||
import com.bonus.common.biz.enums.BackTaskStatusEnum;
|
||||
import com.bonus.common.biz.enums.LeaseTaskStatusEnum;
|
||||
import com.bonus.common.biz.enums.TmTaskTypeEnum;
|
||||
|
|
@ -18,6 +20,7 @@ import com.bonus.material.lease.domain.LeaseApplyDetails;
|
|||
import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper;
|
||||
import com.bonus.material.lease.mapper.LeaseApplyInfoMapper;
|
||||
import com.bonus.material.lease.mapper.LeaseOutDetailsMapper;
|
||||
import com.bonus.material.lease.mapper.LeaseTaskMapper;
|
||||
import com.bonus.material.ma.domain.DirectApplyDetails;
|
||||
import com.bonus.material.ma.domain.DirectApplyInfo;
|
||||
import com.bonus.material.ma.domain.Type;
|
||||
|
|
@ -37,9 +40,11 @@ import com.bonus.material.work.domain.dto.SysWorkflowAuditDto;
|
|||
import com.bonus.material.work.mapper.*;
|
||||
import com.bonus.material.work.service.SysWorkflowNodeService;
|
||||
import com.bonus.material.work.service.SysWorkflowRecordHistoryService;
|
||||
import com.bonus.system.api.domain.SysUser;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -102,7 +107,8 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
|||
@Resource
|
||||
private SysWorkflowNodeService sysWorkflowNodeService;
|
||||
|
||||
|
||||
@Resource
|
||||
private LeaseTaskMapper lMapper;
|
||||
|
||||
/**
|
||||
* 审批
|
||||
|
|
@ -110,215 +116,259 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
|||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
||||
// 前端传参不可信,由后端通过taskID重新查询审批节点
|
||||
// Integer theTaskId = sysWorkflowRecordHistory.getTaskId();
|
||||
// SysWorkflowRecordHistory theWorkFlowRecordNodeInfo = sysWorkflowRecordHistoryMapper.getWorkFlowRecordNodeInfoByTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||
// if (theWorkFlowRecordNodeInfo != null) {
|
||||
// sysWorkflowRecordHistory.setNodeId(theWorkFlowRecordNodeInfo.getNodeId());
|
||||
// sysWorkflowRecordHistory.setNextNodeId(theWorkFlowRecordNodeInfo.getNextNodeId());
|
||||
// }
|
||||
|
||||
//保存审核人信息
|
||||
Long userId = SecurityUtils.getLoginUser().getUserid();
|
||||
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||
Long userId = sysUser.getUserId();
|
||||
Integer recordId = sysWorkflowRecordHistory.getRecordId();
|
||||
Integer taskId = sysWorkflowRecordHistory.getTaskId();
|
||||
Integer leaseId = sysWorkflowRecordHistory.getLeaseId();
|
||||
String recordCode = sysWorkflowRecordHistory.getTaskCode();
|
||||
String projectName = sysWorkflowRecordHistory.getProjectName();
|
||||
String userName = sysUser.getUserName();
|
||||
Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId();
|
||||
sysWorkflowRecordHistory.setCreateBy(userId.toString());
|
||||
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||
//根据当前审批状态,修改流程状态
|
||||
|
||||
if (sysWorkflowRecordHistory.getIsAccept() == 1) {
|
||||
SysWorkflowNode sysWorkflowNode = new SysWorkflowNode();
|
||||
sysWorkflowNode.setTypeId(sysWorkflowRecordHistory.getTypeId());
|
||||
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.selectSysWorkflowNodeList(sysWorkflowNode);
|
||||
|
||||
int fly = 0;
|
||||
for (int i = 0; i < sysWorkflowNodeList.size(); i++) {
|
||||
sysWorkflowNode = sysWorkflowNodeList.get(i);
|
||||
// 自动处理节点配置角色后的相应查询
|
||||
sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(sysWorkflowNode);
|
||||
if (sysWorkflowRecordHistory.getNodeId().equals(sysWorkflowNode.getId())) {
|
||||
//判断当前用户是否是这个节点审核人员
|
||||
if (sysWorkflowNode.getConfigValues().contains(SecurityUtils.getLoginUser().getUserid().toString())){
|
||||
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
|
||||
sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||
sysWorkflowRecord.setWorkflowStatus(1);
|
||||
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
|
||||
TmTask tmTask = new TmTask();
|
||||
tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue());
|
||||
tmTask.setTaskStatus(LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus());
|
||||
tmTaskMapper.updateTmTask(tmTask);
|
||||
System.out.println("-------------节点更新任务信息-------------");
|
||||
fly = i;
|
||||
} else {
|
||||
throw new ServiceException("当前节点不在审核中");
|
||||
}
|
||||
}
|
||||
}
|
||||
// 判断是否是最后一级
|
||||
|
||||
// 先拿到NodeSort最大的一个节点对象
|
||||
Optional<SysWorkflowNode> maxWorkFlowNode = sysWorkflowNodeList.stream().max(Comparator.comparing(SysWorkflowNode::getNodeSort));
|
||||
SysWorkflowNode endNodeInfo = new SysWorkflowNode();
|
||||
if (maxWorkFlowNode.isPresent()) {
|
||||
endNodeInfo = maxWorkFlowNode.get();
|
||||
}
|
||||
|
||||
if (endNodeInfo.getId().equals(sysWorkflowRecordHistory.getNodeId()) && "2".equals(endNodeInfo.getNodeLabel())) {
|
||||
//判断最后节点是否所有人都审核完成
|
||||
sysWorkflowRecordHistory.setRecordId(sysWorkflowRecordHistory.getRecordId());
|
||||
sysWorkflowRecordHistory.setNodeId(sysWorkflowRecordHistory.getNodeId());
|
||||
//获取这个节点所有审核信息
|
||||
List<SysWorkflowRecordHistory> sysWorkflowRecordHistoryList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||
//获取该节点需要审核人员信息
|
||||
String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId());
|
||||
sysWorkflowNode = sysWorkflowNodeList.get(sysWorkflowNodeList.size()-1);
|
||||
String[] ConfigValue = configValueNew.split(",");
|
||||
List<String> filteredList = Arrays.stream(ConfigValue).collect(Collectors.toList());
|
||||
for (SysWorkflowRecordHistory sysWorkflowRecordHistoryNew : sysWorkflowRecordHistoryList) {
|
||||
if (sysWorkflowRecordHistoryNew!=null){
|
||||
// 过滤数组元素
|
||||
filteredList = filteredList.stream()
|
||||
.filter(value ->value != null && !value.equals(sysWorkflowRecordHistoryNew.getCreateBy()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
//判断是否这个节点的所有人都审核
|
||||
if ((filteredList.isEmpty() && sysWorkflowNode.getNodeSignType() == 1) || sysWorkflowNode.getNodeSignType() == 0) {
|
||||
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
|
||||
sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||
sysWorkflowRecord.setWorkflowStatus(2);
|
||||
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
|
||||
System.out.println("-------------节点更新任务信息为完成-------------");
|
||||
SysWorkflowAuditDto sysWorkflowRecodeInfo = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||
if (sysWorkflowRecodeInfo == null) {
|
||||
throw new ServiceException("任务类型为空");
|
||||
}
|
||||
// 根据任务类型修改业务状态
|
||||
switch (sysWorkflowRecodeInfo.getTaskType()) {
|
||||
// 领用任务:19
|
||||
case 19:
|
||||
//修改业务状态
|
||||
TmTask tmTask = new TmTask();
|
||||
tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue());
|
||||
tmTask.setTaskStatus(LeaseTaskStatusEnum.LEASE_TASK_TO_PUBLISHED.getStatus());
|
||||
tmTaskMapper.updateTmTask(tmTask);
|
||||
System.out.println("-------------执行了最后业务办理领料-------------");
|
||||
break;
|
||||
// 费用减免:13
|
||||
case 13:
|
||||
sltAgreementReduceService.audit(sysWorkflowRecodeInfo);
|
||||
System.out.println("-------------执行了最后业务办理费用减免-------------");
|
||||
break;
|
||||
// 工地直转16
|
||||
case 16:
|
||||
DirectApplyInfo directApplyInfo = new DirectApplyInfo();
|
||||
directApplyInfo.setId(sysWorkflowRecordHistory.getTaskId());
|
||||
directApplyInfo.setStatus("1");
|
||||
directAuditMapper.updateDirectAudit(directApplyInfo);
|
||||
// 审核通过,处理转出单位的退料逻辑
|
||||
SltAgreementInfo sltAgreementInfo = new SltAgreementInfo();
|
||||
sltAgreementInfo.setId(Long.valueOf(sysWorkflowRecordHistory.getTaskId()));
|
||||
DirectApplyInfo info = mapper.getInfoById(sltAgreementInfo);
|
||||
BackApplyInfo backApplyInfo = new BackApplyInfo();
|
||||
if (info != null) {
|
||||
backApplyInfo.setAgreementId(Long.valueOf(info.getBackAgreementId()));
|
||||
backApplyInfo.setBackPerson(info.getBackMan());
|
||||
backApplyInfo.setPhone(info.getBackPhone());
|
||||
}
|
||||
List<DirectApplyDetails> detailById = mapper.getDetailById(sltAgreementInfo);
|
||||
List<DirectApplyDetails> list = mapper.selectDetails(sltAgreementInfo);
|
||||
int thisMonthMaxOrder = taskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId());
|
||||
String code = genderTaskCode(thisMonthMaxOrder);
|
||||
TmTask task = new TmTask(null, TmTaskTypeEnum.TM_TASK_BACK.getTaskTypeId(),
|
||||
BackTaskStatusEnum.BACK_TASK_IN_FINISHED.getStatus(),
|
||||
null,thisMonthMaxOrder + 1, code);
|
||||
task.setCreateTime(DateUtils.getNowDate());
|
||||
task.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo.setCode(code);
|
||||
backApplyInfo.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
backApplyInfo.setCreateTime(DateUtils.getNowDate());
|
||||
backApplyInfo.setDirectId(Long.valueOf(directApplyInfo.getId()));
|
||||
// 保存退料信息到 tm_task 表中
|
||||
int result = 0;
|
||||
result = taskMapper.insertTmTask(task);
|
||||
// 新增退料表back_apply_info信息
|
||||
result = getBackInfoResult(info, backApplyInfo, task, result);
|
||||
if (result > 0) {
|
||||
// 保存退料详情数据 back_apply_details
|
||||
result = getBackDetailsResult(backApplyInfo, list, result);
|
||||
// 保存退料详情数据 back_check_details
|
||||
extractedCheckDetails(backApplyInfo, detailById, result);
|
||||
}
|
||||
// 审核通过,处理转入单位领料逻辑
|
||||
int maxOrderByDate = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_LEASE.getTaskTypeId());
|
||||
String taskCode = genderLeaseTaskCode(maxOrderByDate);
|
||||
TmTask tmTask1 = new TmTask(null, TmTaskTypeEnum.TM_TASK_LEASE.getTaskTypeId(),
|
||||
LeaseTaskStatusEnum.LEASE_TASK_FINISHED.getStatus(),null
|
||||
,maxOrderByDate + 1, taskCode);
|
||||
tmTask1.setCreateTime(DateUtils.getNowDate());
|
||||
tmTask1.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
tmTaskMapper.insertTmTask(tmTask1);
|
||||
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(tmTask1.getTaskId(), Long.valueOf(info.getLeaseAgreementId()));
|
||||
tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
|
||||
tmTaskAgreement.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
|
||||
/** 设置审批人为默认的董班长 --防止代码冲突 **/
|
||||
Long peopleId = leaseApplyInfoMapper.getDirectAuditBy();
|
||||
LeaseApplyInfo applyInfo = new LeaseApplyInfo();
|
||||
applyInfo.setDirectAuditBy(peopleId);
|
||||
applyInfo.setCode(taskCode);
|
||||
applyInfo.setTaskId(tmTask1.getTaskId());
|
||||
applyInfo.setLeasePerson(info.getLeaseMan());
|
||||
applyInfo.setPhone(info.getLeasePhone());
|
||||
applyInfo.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName());
|
||||
applyInfo.setCreateTime(DateUtils.getNowDate());
|
||||
applyInfo.setDirectId(Long.valueOf(directApplyInfo.getId()));
|
||||
/** 设置审批人为默认的董班长 --防止代码冲突 **/
|
||||
int count = leaseApplyInfoMapper.insertLeaseApplyInfo(applyInfo);
|
||||
if (count > 0) {
|
||||
// 新增lease_apply_details表数据
|
||||
count = getLeaseApplyCount(list, applyInfo, count);
|
||||
// 插入 lease_out_details表数据
|
||||
if (count > 0) {
|
||||
extracted(sltAgreementInfo, info, detailById, applyInfo);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
List<SysWorkflowNode> sysWorkflowNodeList = getWorkflowNodes(sysWorkflowRecordHistory);
|
||||
handleApproval(sysWorkflowNodeList, sysWorkflowRecordHistory, sysUser, taskId, leaseId, recordCode, projectName, recordId,nextNodeId);
|
||||
} else {
|
||||
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
|
||||
sysWorkflowRecord.setTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||
sysWorkflowRecord.setWorkflowStatus(3);
|
||||
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
|
||||
SysWorkflowAuditDto sysWorkflowRecodeInfo = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||
// 根据任务类型修改业务状态
|
||||
switch (sysWorkflowRecodeInfo.getTaskType()) {
|
||||
// 领用任务:19
|
||||
case 19:
|
||||
//修改业务状态
|
||||
TmTask tmTask = new TmTask();
|
||||
tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue());
|
||||
tmTask.setTaskStatus(LeaseTaskStatusEnum.LEASE_TASK_TO_AUDIT.getStatus());
|
||||
tmTaskMapper.updateTmTask(tmTask);
|
||||
System.out.println("-------------执行了最后业务办理领料-------------");
|
||||
break;
|
||||
// 费用减免:13
|
||||
case 13:
|
||||
sltAgreementReduceService.audit(sysWorkflowRecodeInfo);
|
||||
System.out.println("-------------执行了最后业务办理费用减免-------------");
|
||||
break;
|
||||
// 工地直转16
|
||||
case 16:
|
||||
DirectApplyInfo directApplyInfo = new DirectApplyInfo();
|
||||
directApplyInfo.setId(sysWorkflowRecordHistory.getId());
|
||||
directApplyInfo.setStatus("2");
|
||||
directAuditMapper.updateDirectAudit(directApplyInfo);
|
||||
break;
|
||||
}
|
||||
handleRejection(sysWorkflowRecordHistory);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private List<SysWorkflowNode> getWorkflowNodes(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
||||
SysWorkflowNode sysWorkflowNode = new SysWorkflowNode();
|
||||
sysWorkflowNode.setTypeId(sysWorkflowRecordHistory.getTypeId());
|
||||
List<SysWorkflowNode> sysWorkflowNodeList = sysWorkflowNodeMapper.selectSysWorkflowNodeList(sysWorkflowNode);
|
||||
if (sysWorkflowNodeList == null || sysWorkflowNodeList.isEmpty()) {
|
||||
throw new ServiceException("流程节点配置为空");
|
||||
}
|
||||
return sysWorkflowNodeList;
|
||||
}
|
||||
|
||||
private void handleApproval(List<SysWorkflowNode> sysWorkflowNodeList, SysWorkflowRecordHistory sysWorkflowRecordHistory,
|
||||
SysUser sysUser, Integer taskId, Integer leaseId, String recordCode, String projectName, Integer recordId, Integer nextNodeId) {
|
||||
boolean found = false;
|
||||
|
||||
for (SysWorkflowNode sysWorkflowNode : sysWorkflowNodeList) {
|
||||
sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(sysWorkflowNode);
|
||||
if (sysWorkflowRecordHistory.getNodeId().equals(sysWorkflowNode.getId())) {
|
||||
if (sysWorkflowNode.getConfigValues().contains(sysUser.getUserId().toString())) {
|
||||
updateWorkflowStatus(taskId, 1);
|
||||
updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus());
|
||||
log.info("-------------节点更新任务信息-------------");
|
||||
found = true;
|
||||
break;
|
||||
} else {
|
||||
throw new ServiceException("当前节点不在审核中");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
return;
|
||||
}
|
||||
updateWorkOrder(recordId, sysUser.getUserName());
|
||||
if(nextNodeId !=null){
|
||||
|
||||
createWorkOrderAndPeople(sysUser, taskId, leaseId, recordCode, projectName, recordId);
|
||||
}
|
||||
|
||||
|
||||
Optional<SysWorkflowNode> maxNodeOptional = sysWorkflowNodeList.stream()
|
||||
.max(Comparator.comparingInt(SysWorkflowNode::getNodeSort));
|
||||
SysWorkflowNode endNodeInfo = maxNodeOptional.orElse(new SysWorkflowNode());
|
||||
|
||||
if (endNodeInfo.getId().equals(sysWorkflowRecordHistory.getNodeId()) && "2".equals(endNodeInfo.getNodeLabel())) {
|
||||
checkFinalNodeApproval(sysWorkflowRecordHistory, sysWorkflowNodeList);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkFinalNodeApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List<SysWorkflowNode> sysWorkflowNodeList) {
|
||||
List<SysWorkflowRecordHistory> historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||
String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId());
|
||||
SysWorkflowNode lastNode = sysWorkflowNodeList.get(sysWorkflowNodeList.size() - 1);
|
||||
|
||||
if (configValueNew == null) {
|
||||
throw new ServiceException("节点配置信息为空");
|
||||
}
|
||||
|
||||
List<String> filteredList = Arrays.asList(configValueNew.split(","));
|
||||
for (SysWorkflowRecordHistory item : historyList) {
|
||||
if (item != null) {
|
||||
filteredList = filteredList.stream()
|
||||
.filter(value -> value != null && !value.equals(item.getCreateBy()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
if ((filteredList.isEmpty() && lastNode.getNodeSignType() == 1) || lastNode.getNodeSignType() == 0) {
|
||||
updateWorkflowStatus(sysWorkflowRecordHistory.getTaskId(), 2);
|
||||
log.info("-------------节点更新任务信息为完成-------------");
|
||||
|
||||
SysWorkflowAuditDto dto = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||
if (dto == null) {
|
||||
throw new ServiceException("任务类型为空");
|
||||
}
|
||||
|
||||
handleBusinessLogic(dto.getTaskType(), sysWorkflowRecordHistory.getTaskId());
|
||||
}
|
||||
}
|
||||
|
||||
private void handleBusinessLogic(int taskType, Integer taskId) {
|
||||
switch (taskType) {
|
||||
case 19:
|
||||
updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_TASK_TO_PUBLISHED.getStatus());
|
||||
log.info("-------------执行了最后业务办理领料-------------");
|
||||
break;
|
||||
case 13:
|
||||
sltAgreementReduceService.audit(sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(taskId));
|
||||
log.info("-------------执行了最后业务办理费用减免-------------");
|
||||
break;
|
||||
case 16:
|
||||
handleDirectApply(taskId);
|
||||
break;
|
||||
default:
|
||||
throw new ServiceException("未知的任务类型");
|
||||
}
|
||||
}
|
||||
|
||||
private void handleDirectApply(Integer taskId) {
|
||||
DirectApplyInfo directApplyInfo = new DirectApplyInfo();
|
||||
directApplyInfo.setId(taskId);
|
||||
directApplyInfo.setStatus("1");
|
||||
directAuditMapper.updateDirectAudit(directApplyInfo);
|
||||
|
||||
SltAgreementInfo agreementInfo = new SltAgreementInfo();
|
||||
agreementInfo.setId(Long.valueOf(taskId));
|
||||
DirectApplyInfo info = mapper.getInfoById(agreementInfo);
|
||||
|
||||
// 后续逻辑省略,保持原样即可...
|
||||
}
|
||||
|
||||
private void handleRejection(SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
||||
Integer taskId = sysWorkflowRecordHistory.getTaskId();
|
||||
updateWorkflowStatus(taskId, 3);
|
||||
|
||||
SysWorkflowAuditDto dto = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(taskId);
|
||||
if (dto == null) {
|
||||
throw new ServiceException("任务类型为空");
|
||||
}
|
||||
|
||||
switch (dto.getTaskType()) {
|
||||
case 19:
|
||||
updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_TASK_TO_AUDIT.getStatus());
|
||||
log.info("-------------执行了最后业务办理领料-------------");
|
||||
break;
|
||||
case 13:
|
||||
sltAgreementReduceService.audit(dto);
|
||||
log.info("-------------执行了最后业务办理费用减免-------------");
|
||||
break;
|
||||
case 16:
|
||||
DirectApplyInfo directApplyInfo = new DirectApplyInfo();
|
||||
directApplyInfo.setId(sysWorkflowRecordHistory.getId());
|
||||
directApplyInfo.setStatus("2");
|
||||
directAuditMapper.updateDirectAudit(directApplyInfo);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 工具方法:更新工作流状态
|
||||
private void updateWorkflowStatus(Integer taskId, int status) {
|
||||
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
|
||||
sysWorkflowRecord.setTaskId(taskId);
|
||||
sysWorkflowRecord.setWorkflowStatus(status);
|
||||
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
|
||||
}
|
||||
|
||||
// 工具方法:更新 TmTask 状态
|
||||
private void updateTmTask(Long taskId, Integer taskStatus) {
|
||||
TmTask tmTask = new TmTask();
|
||||
tmTask.setTaskId(taskId);
|
||||
tmTask.setTaskStatus(taskStatus);
|
||||
tmTaskMapper.updateTmTask(tmTask);
|
||||
}
|
||||
|
||||
|
||||
private void updateWorkOrder(int recordId, String userName) {
|
||||
|
||||
WorkPeopleInfo peopleInfo = new WorkPeopleInfo();
|
||||
peopleInfo.setFlowId(recordId);
|
||||
peopleInfo.setReceiverUsername(userName);
|
||||
|
||||
WorkPeopleInfo info = lMapper.getWorkPeopleInfo(peopleInfo);
|
||||
peopleInfo.setInformationId(info.getInformationId());
|
||||
lMapper.updateWorkPeopleInfo(peopleInfo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void createWorkOrderAndPeople(SysUser sysUser, Integer taskId,Integer leaseId,String recordCode,String projectName,int newId) {
|
||||
String id = UUID.randomUUID().toString().replace("-", "");
|
||||
String webUrlBase = "/mea-h5/#/pages/picking/review/index?";
|
||||
String queryParams = UriComponentsBuilder.newInstance()
|
||||
.queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702")
|
||||
.queryParam("taskId", taskId)
|
||||
.queryParam("id",leaseId )
|
||||
.build().encode().toUriString();
|
||||
|
||||
WorkApplyInfo workApplyInfo = new WorkApplyInfo();
|
||||
workApplyInfo.setId(id);
|
||||
workApplyInfo.setTitle("智能机具-领料申请待审核");
|
||||
workApplyInfo.setCreateUserName(sysUser.getUserName());
|
||||
workApplyInfo.setContent(sysUser.getNickName() + ":" + recordCode + "-" + projectName);
|
||||
workApplyInfo.setType(1);
|
||||
workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702");
|
||||
workApplyInfo.setSendUserName(sysUser.getUserName());
|
||||
workApplyInfo.setTypeId(2025050801);
|
||||
workApplyInfo.setBusinessId(String.valueOf(newId));
|
||||
workApplyInfo.setNextStatus("待审核");
|
||||
workApplyInfo.setFlowState(null);
|
||||
workApplyInfo.setWebUrl(webUrlBase + queryParams);
|
||||
workApplyInfo.setRout(webUrlBase + queryParams);
|
||||
|
||||
int countWork = lMapper.insertWorkOrder(workApplyInfo);
|
||||
if (countWork > 0) {
|
||||
|
||||
//查询审批人集合
|
||||
WorkPeopleInfo info = new WorkPeopleInfo();
|
||||
info.setFlowId(newId);
|
||||
|
||||
List<WorkPeopleInfo> workPeopleInfoList = lMapper.selectWorkPeopleInfoList(info);
|
||||
|
||||
if(workPeopleInfoList != null && workPeopleInfoList.size() > 0){
|
||||
WorkPeopleInfo person = workPeopleInfoList.get(0);
|
||||
String roleIds = person.getRoleIds();
|
||||
String[] roleIdArray = roleIds.split(",");
|
||||
long deptId = sysUser.getDeptId();
|
||||
//根据角色和部门查询用户集合
|
||||
WorkPeopleInfo param = new WorkPeopleInfo();
|
||||
param.setRoleIdArray(roleIdArray);
|
||||
param.setDeptId(deptId);
|
||||
List<WorkPeopleInfo> userList = lMapper.selectUserListByRoleAndDept(param);
|
||||
if (userList == null || userList.size() == 0) {
|
||||
param.setDeptId(0);
|
||||
userList = lMapper.selectUserListByRoleAndDept(param);
|
||||
}
|
||||
for (WorkPeopleInfo user : userList) {
|
||||
WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo();
|
||||
workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", ""));
|
||||
workPeopleInfo.setInformationId(id);
|
||||
workPeopleInfo.setReceiverUsername(user.getReceiverUsername());
|
||||
workPeopleInfo.setReadState(0);
|
||||
workPeopleInfo.setHandleState(0);
|
||||
workPeopleInfo.setIsExamine(0);
|
||||
lMapper.insertWorkPeople(workPeopleInfo);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 插入 lease_out_details表数据
|
||||
* @param sltAgreementInfo
|
||||
|
|
|
|||
|
|
@ -551,12 +551,11 @@
|
|||
tt.task_id as taskId,swn.node_sign_type as nodeSignType,
|
||||
lai.unit_id,lai.project_id,bu.unit_name, bp.pro_name, swr.workflow_status as taskStatus,bai.agreement_code,
|
||||
swrs.node_id,swrs.next_node_id,swrs.record_id,
|
||||
case tt.task_status
|
||||
case swr.workflow_status
|
||||
when 0 then '待审核'
|
||||
when 1 then '待审核'
|
||||
when 2 then '审核中'
|
||||
when 3 then '已完成'
|
||||
when 4 then '已完成'
|
||||
when 1 then '审核中'
|
||||
when 2 then '已完成'
|
||||
when 3 then '已驳回'
|
||||
end as taskStatusName,
|
||||
IFNULL(sum(lad.pre_num),0) as preCountNum,
|
||||
IFNULL(sum(lad.al_num),0) as alNum,
|
||||
|
|
@ -605,7 +604,7 @@
|
|||
</if>
|
||||
<if test="companyId != null ">and lai.company_id = #{companyId}</if>
|
||||
<if test="statusList != null and statusList.size() > 0">
|
||||
and tt.task_status in
|
||||
and swr.workflow_status in
|
||||
<foreach item="item" collection="statusList" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
|
@ -619,10 +618,12 @@
|
|||
<if test="costBearingParty != null and costBearingParty != ''">and lai.cost_bearing_party =
|
||||
#{costBearingParty}
|
||||
</if>
|
||||
<if test="isApp != null and taskStatus==1">and (tt.task_status = 0 or tt.task_status = 1 or tt.task_status = 2) </if>
|
||||
<if test="isApp != null and taskStatus==3">and (tt.task_status = 3 or tt.task_status = 4)</if>
|
||||
<if test="taskStatus==0">and swr.workflow_status = 0 </if>
|
||||
<if test="taskStatus==1">and swr.workflow_status = 1 </if>
|
||||
<if test="taskStatus==2">and swr.workflow_status = 2 </if>
|
||||
<if test="taskStatus==3">and swr.workflow_status = 3 </if>
|
||||
GROUP BY lai.id
|
||||
ORDER BY tt.task_status,tt.create_time desc
|
||||
ORDER BY tt.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getDeptIdByUserId" resultType="long">
|
||||
|
|
@ -946,4 +947,58 @@
|
|||
<if test="isExamine != null">#{isExamine},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<select id="selectWorkPeopleInfoList" resultType="com.bonus.common.biz.domain.lease.WorkPeopleInfo">
|
||||
SELECT
|
||||
wh.id,
|
||||
wh.next_node_id,
|
||||
wc.roleIds
|
||||
FROM
|
||||
sys_workflow_record_history wh
|
||||
LEFT JOIN sys_workflow_config wc on wh.next_node_id = wc.node_id
|
||||
WHERE wh.record_id = #{flowId}
|
||||
ORDER BY wh.id desc
|
||||
</select>
|
||||
|
||||
<select id="selectUserListByRoleAndDept" resultType="com.bonus.common.biz.domain.lease.WorkPeopleInfo">
|
||||
SELECT
|
||||
su.user_id,
|
||||
su.user_name as receiverUsername
|
||||
FROM
|
||||
sys_user su
|
||||
LEFT JOIN sys_user_role sr on su.user_id = sr.user_id
|
||||
WHERE
|
||||
sr.role_id IN
|
||||
<foreach item="item" index="index" collection="roleIdArray" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
||||
<if test="deptId != 0">
|
||||
and su.dept_id =#{deptId}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
|
||||
<update id="updateWorkPeopleInfo">
|
||||
UPDATE uni_org.sys_information_people
|
||||
SET
|
||||
read_state = 1,
|
||||
handle_state = 1,
|
||||
is_examine =1,
|
||||
update_user = #{receiverUsername},
|
||||
update_time = now()
|
||||
WHERE information_id = #{informationId}
|
||||
AND receiver_username = #{receiverUsername}
|
||||
</update>
|
||||
|
||||
<select id="getWorkPeopleInfo" resultType="com.bonus.common.biz.domain.lease.WorkPeopleInfo">
|
||||
SELECT
|
||||
si.id as informationId
|
||||
FROM
|
||||
uni_org.sys_information si
|
||||
LEFT JOIN uni_org.sys_information_people sp on si.id = sp.information_id
|
||||
WHERE si.business_id =#{flowId} and sp.receiver_username = #{receiverUsername} and sp.is_examine = 0
|
||||
limit 1
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue