直转审核流程
This commit is contained in:
parent
082330c4a2
commit
f08ce31bd0
|
|
@ -61,5 +61,5 @@ public class WorkPeopleInfo implements Serializable {
|
||||||
@ApiModelProperty(value = "角色数组")
|
@ApiModelProperty(value = "角色数组")
|
||||||
private String[] roleIdArray;
|
private String[] roleIdArray;
|
||||||
|
|
||||||
private int nextNodeId;
|
private Integer nextNodeId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,31 @@
|
||||||
package com.bonus.material.event;
|
package com.bonus.material.event;
|
||||||
|
|
||||||
|
import com.bonus.common.biz.domain.lease.LeaseApplyInfo;
|
||||||
|
import com.bonus.common.biz.domain.lease.WorkApplyInfo;
|
||||||
|
import com.bonus.common.biz.domain.lease.WorkPeopleInfo;
|
||||||
import com.bonus.common.biz.enums.TmTaskTypeEnum;
|
import com.bonus.common.biz.enums.TmTaskTypeEnum;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.utils.DateUtils;
|
import com.bonus.common.core.utils.DateUtils;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
import com.bonus.material.basic.domain.dto.SysUserRoleVo;
|
||||||
import com.bonus.material.ma.domain.DirectApplyInfo;
|
import com.bonus.material.ma.domain.DirectApplyInfo;
|
||||||
|
import com.bonus.material.task.domain.TmTask;
|
||||||
import com.bonus.material.work.domain.SysWorkflowNode;
|
import com.bonus.material.work.domain.SysWorkflowNode;
|
||||||
import com.bonus.material.work.domain.SysWorkflowRecord;
|
import com.bonus.material.work.domain.SysWorkflowRecord;
|
||||||
import com.bonus.material.work.domain.SysWorkflowRecordHistory;
|
import com.bonus.material.work.domain.SysWorkflowRecordHistory;
|
||||||
import com.bonus.material.work.domain.SysWorkflowType;
|
import com.bonus.material.work.domain.SysWorkflowType;
|
||||||
import com.bonus.material.work.mapper.*;
|
import com.bonus.material.work.mapper.*;
|
||||||
|
import com.bonus.system.api.domain.SysUser;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Objects;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class ApplyEventListener {
|
public class ApplyEventListener {
|
||||||
|
|
@ -38,9 +46,10 @@ public class ApplyEventListener {
|
||||||
private DirectAuditMapper directAuditMapper;
|
private DirectAuditMapper directAuditMapper;
|
||||||
|
|
||||||
@EventListener
|
@EventListener
|
||||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
// @Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||||
public int addSysWorkflowRecord(InsertWorkflowEvent event) {
|
public int addSysWorkflowRecord(InsertWorkflowEvent event) {
|
||||||
|
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||||
|
int count = 0;
|
||||||
System.out.println("Workflow工作流监听器收到事件: ");
|
System.out.println("Workflow工作流监听器收到事件: ");
|
||||||
|
|
||||||
//获取审批流id
|
//获取审批流id
|
||||||
|
|
@ -61,21 +70,26 @@ public class ApplyEventListener {
|
||||||
sysWorkflowRecord.setTaskType(event.getTaskType());
|
sysWorkflowRecord.setTaskType(event.getTaskType());
|
||||||
sysWorkflowRecord.setTaskCode(event.getTaskCode());
|
sysWorkflowRecord.setTaskCode(event.getTaskCode());
|
||||||
//创建审批任务
|
//创建审批任务
|
||||||
int count = sysWorkflowRecordMapper.addSysWorkflowRecord(sysWorkflowRecord);
|
count = sysWorkflowRecordMapper.addSysWorkflowRecord(sysWorkflowRecord);
|
||||||
if (0 == count) {
|
if (0 == count) {
|
||||||
throw new RuntimeException("创建审批任务失败!");
|
throw new RuntimeException("创建审批任务失败!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
sysWorkflowRecord = new SysWorkflowRecord();
|
sysWorkflowRecord = new SysWorkflowRecord();
|
||||||
sysWorkflowRecord.setTaskId(event.getTaskId());
|
sysWorkflowRecord.setTaskId(event.getTaskId());
|
||||||
sysWorkflowRecord.setTaskType(event.getTaskType());
|
sysWorkflowRecord.setTaskType(event.getTaskType());
|
||||||
sysWorkflowRecord.setTaskCode(event.getTaskCode());
|
sysWorkflowRecord.setTaskCode(event.getTaskCode());
|
||||||
//创建审批任务
|
//创建审批任务
|
||||||
int count = sysWorkflowRecordMapper.addSysWorkflowRecord(sysWorkflowRecord);
|
count = sysWorkflowRecordMapper.addSysWorkflowRecord(sysWorkflowRecord);
|
||||||
if (0 == count) {
|
// int newId = 0;
|
||||||
throw new RuntimeException("创建审批任务失败!");
|
//
|
||||||
}
|
// newId = sysWorkflowRecord.getId() ;
|
||||||
|
// if (count > 0) {
|
||||||
|
// createWorkOrderAndPeople(sysUser, event, Long.valueOf(sysWorkflowRecord.getTaskId()), newId);
|
||||||
|
// }
|
||||||
// 如果该任务类型配置了多个审批流,则根据任务信息判断使用
|
// 如果该任务类型配置了多个审批流,则根据任务信息判断使用
|
||||||
if (event.getTaskType() == TmTaskTypeEnum.TM_TASK_DIRECT.getTaskTypeId()) {
|
if (event.getTaskType() == TmTaskTypeEnum.TM_TASK_DIRECT.getTaskTypeId()) {
|
||||||
// 直转审批任务,则根据转出和转入的部门判断,同一部门使用无需接收审批流,不同部门则使用需要接收审批流
|
// 直转审批任务,则根据转出和转入的部门判断,同一部门使用无需接收审批流,不同部门则使用需要接收审批流
|
||||||
|
|
@ -139,7 +153,78 @@ public class ApplyEventListener {
|
||||||
sysWorkflowRecordHistory.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
sysWorkflowRecordHistory.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
||||||
sysWorkflowRecordHistory.setCreateTime(DateUtils.getNowDate());
|
sysWorkflowRecordHistory.setCreateTime(DateUtils.getNowDate());
|
||||||
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
if (count > 0) {
|
||||||
|
createWorkOrderAndPeople(sysUser, event, Long.valueOf(sysWorkflowRecord.getTaskId()), newId,sysWorkflowRecordHistory.getNodeId());
|
||||||
|
}
|
||||||
return newId;
|
return newId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createWorkOrderAndPeople(SysUser sysUser, InsertWorkflowEvent event, Long taskId, int newId,int nodeId) {
|
||||||
|
//获取工程名称
|
||||||
|
int projectId = directAuditMapper.getProjectIdById(event.getLeaseAgreementId());
|
||||||
|
String projectName = directAuditMapper.getProjectNameById(projectId);
|
||||||
|
String id = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
String webUrlBase = "/mea-h5/#/pages/businessAudit/directAudit/details";
|
||||||
|
String queryParams = UriComponentsBuilder.newInstance()
|
||||||
|
.queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702")
|
||||||
|
.queryParam("taskId", taskId)
|
||||||
|
.queryParam("id", newId)
|
||||||
|
.queryParam("nodeId", nodeId)
|
||||||
|
.build().encode().toUriString();
|
||||||
|
|
||||||
|
WorkApplyInfo workApplyInfo = new WorkApplyInfo();
|
||||||
|
workApplyInfo.setId(id);
|
||||||
|
workApplyInfo.setTitle("智能机具-直转申请待审核");
|
||||||
|
workApplyInfo.setCreateUserName(sysUser.getUserName());
|
||||||
|
workApplyInfo.setContent(sysUser.getNickName() + ":" + event.getTaskCode() + "-" + projectName);
|
||||||
|
workApplyInfo.setType(1);
|
||||||
|
workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702");
|
||||||
|
workApplyInfo.setSendUserName(sysUser.getUserName());
|
||||||
|
workApplyInfo.setTypeId(2025050901);
|
||||||
|
workApplyInfo.setBusinessId(String.valueOf(newId));
|
||||||
|
workApplyInfo.setNextStatus("待审核");
|
||||||
|
workApplyInfo.setFlowState(null);
|
||||||
|
workApplyInfo.setWebUrl(webUrlBase + queryParams);
|
||||||
|
workApplyInfo.setRout(webUrlBase + queryParams);
|
||||||
|
|
||||||
|
int countWork = directAuditMapper.insertWorkOrder(workApplyInfo);
|
||||||
|
if (countWork > 0) {
|
||||||
|
|
||||||
|
//查询审批人集合
|
||||||
|
WorkPeopleInfo info = new WorkPeopleInfo();
|
||||||
|
info.setFlowId(newId);
|
||||||
|
|
||||||
|
List<WorkPeopleInfo> workPeopleInfoList = directAuditMapper.selectWorkPeopleInfoList(info.getFlowId());
|
||||||
|
// 过滤掉nextNodeId为null的数据
|
||||||
|
if (workPeopleInfoList != null) {
|
||||||
|
workPeopleInfoList = workPeopleInfoList.stream()
|
||||||
|
.filter(person -> person.getNextNodeId() != null) // 过滤条件:nextNodeId不为null
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
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 = directAuditMapper.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);
|
||||||
|
directAuditMapper.insertWorkPeople(workPeopleInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,15 @@ public class InsertWorkflowEvent {
|
||||||
private final int taskId;
|
private final int taskId;
|
||||||
private final int taskType;
|
private final int taskType;
|
||||||
private final String taskCode;
|
private final String taskCode;
|
||||||
|
private final int leaseAgreementId;
|
||||||
|
private final String leaseMan;
|
||||||
|
|
||||||
public InsertWorkflowEvent(int taskId, String taskCode, int taskType) {
|
public InsertWorkflowEvent(int taskId, String taskCode, int taskType,int leaseAgreementId, String leaseMan) {
|
||||||
this.taskId = taskId;
|
this.taskId = taskId;
|
||||||
this.taskCode = taskCode;
|
this.taskCode = taskCode;
|
||||||
this.taskType = taskType;
|
this.taskType = taskType;
|
||||||
|
this.leaseAgreementId = leaseAgreementId;
|
||||||
|
this.leaseMan = leaseMan;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -201,4 +201,7 @@ public class DirectApplyInfo extends BaseEntity {
|
||||||
|
|
||||||
@ApiModelProperty(value = "结束时间")
|
@ApiModelProperty(value = "结束时间")
|
||||||
private String endTime;
|
private String endTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "任务状态列表")
|
||||||
|
private List<Integer> statusList;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,13 +126,15 @@ public class DirectRotationImpl implements DirectRotationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(propagation = Propagation.REQUIRES_NEW)
|
// @Transactional(propagation = Propagation.REQUIRES_NEW)
|
||||||
public AjaxResult submit(DirectApplyInfoDetails directApplyInfoDetails) throws SQLException {
|
public AjaxResult submit(DirectApplyInfoDetails directApplyInfoDetails) throws SQLException {
|
||||||
try (Connection connection = dataSource.getConnection()) {
|
try (Connection connection = dataSource.getConnection()) {
|
||||||
System.out.println("连接池是否 auto-commit: " + connection.getAutoCommit());
|
System.out.println("连接池是否 auto-commit: " + connection.getAutoCommit());
|
||||||
}
|
}
|
||||||
int id;
|
int id;
|
||||||
String code;
|
String code;
|
||||||
|
String leaseMan;
|
||||||
|
int leaseAgreementId;
|
||||||
if (directApplyInfoDetails != null) {
|
if (directApplyInfoDetails != null) {
|
||||||
if (directApplyInfoDetails.getDirectApplyInfo() != null) {
|
if (directApplyInfoDetails.getDirectApplyInfo() != null) {
|
||||||
DirectApplyInfo directApplyInfos = directApplyInfoDetails.getDirectApplyInfo();
|
DirectApplyInfo directApplyInfos = directApplyInfoDetails.getDirectApplyInfo();
|
||||||
|
|
@ -152,6 +154,8 @@ public class DirectRotationImpl implements DirectRotationService {
|
||||||
directApplyInfos.setDirUrl(String.join(",", urls));
|
directApplyInfos.setDirUrl(String.join(",", urls));
|
||||||
}
|
}
|
||||||
directApplyInfos.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
directApplyInfos.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString());
|
||||||
|
leaseMan = directApplyInfos.getLeaseMan();
|
||||||
|
leaseAgreementId = directApplyInfos.getLeaseAgreementId();
|
||||||
int i = workSiteDirectManageService.saveDirectApplyInfo(directApplyInfos);
|
int i = workSiteDirectManageService.saveDirectApplyInfo(directApplyInfos);
|
||||||
if (i < 0) {
|
if (i < 0) {
|
||||||
return AjaxResult.error("保存失败");
|
return AjaxResult.error("保存失败");
|
||||||
|
|
@ -178,13 +182,13 @@ public class DirectRotationImpl implements DirectRotationService {
|
||||||
// 执行审批流方法🚀
|
// 执行审批流方法🚀
|
||||||
//sysWorkflowRecordService.addSysWorkflowRecord(id, code, TM_TASK_DIRECT.getTaskTypeId());
|
//sysWorkflowRecordService.addSysWorkflowRecord(id, code, TM_TASK_DIRECT.getTaskTypeId());
|
||||||
// 注册一个在事务提交之后触发事件发布的回调,防止事物未提交时查询数据库数据为空
|
// 注册一个在事务提交之后触发事件发布的回调,防止事物未提交时查询数据库数据为空
|
||||||
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
// TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||||
@Override
|
// @Override
|
||||||
public void afterCommit() {
|
// public void afterCommit() {
|
||||||
// 发布审批流程事件
|
// 发布审批流程事件
|
||||||
applicationEventPublisher.publishEvent(new InsertWorkflowEvent(id, code, TM_TASK_DIRECT.getTaskTypeId()));
|
applicationEventPublisher.publishEvent(new InsertWorkflowEvent(id, code, TM_TASK_DIRECT.getTaskTypeId(),leaseAgreementId,leaseMan));
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
|
||||||
//initAuditDir(id,code);
|
//initAuditDir(id,code);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,24 @@ public class SysWorkflowRecordHisController extends BaseController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批
|
||||||
|
*/
|
||||||
|
@ApiOperation(value = "直转审批")
|
||||||
|
@PostMapping("/directUpdate")
|
||||||
|
@PreventRepeatSubmit
|
||||||
|
public AjaxResult directUpdate(@RequestBody SysWorkflowRecordHistory sysWorkflowRecordHistory)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
sysWorkflowRecordHistoryService.updateDirectSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
|
return new AjaxResult(200,"修改成功!");
|
||||||
|
}catch (Exception e){
|
||||||
|
logger.error("修改失败{}", e.getMessage(), e);
|
||||||
|
System.err.println("修改失败" + e.getMessage());
|
||||||
|
return error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批
|
* 审批
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package com.bonus.material.work.mapper;
|
||||||
|
|
||||||
|
|
||||||
import com.bonus.common.biz.domain.lease.LeaseApplyInfo;
|
import com.bonus.common.biz.domain.lease.LeaseApplyInfo;
|
||||||
|
import com.bonus.common.biz.domain.lease.WorkApplyInfo;
|
||||||
|
import com.bonus.common.biz.domain.lease.WorkPeopleInfo;
|
||||||
import com.bonus.material.lease.domain.LeaseApplyDetails;
|
import com.bonus.material.lease.domain.LeaseApplyDetails;
|
||||||
import com.bonus.material.ma.domain.DirectApplyInfo;
|
import com.bonus.material.ma.domain.DirectApplyInfo;
|
||||||
import com.bonus.material.ma.domain.Type;
|
import com.bonus.material.ma.domain.Type;
|
||||||
|
|
@ -30,4 +32,16 @@ public interface DirectAuditMapper {
|
||||||
void updateDirectAudit(DirectApplyInfo directApplyInfo);
|
void updateDirectAudit(DirectApplyInfo directApplyInfo);
|
||||||
|
|
||||||
int getImpUnit(@Param("proId") String backProId);
|
int getImpUnit(@Param("proId") String backProId);
|
||||||
|
|
||||||
|
int getProjectIdById(int leaseAgreementId);
|
||||||
|
|
||||||
|
String getProjectNameById(int projectId);
|
||||||
|
|
||||||
|
int insertWorkOrder(WorkApplyInfo workApplyInfo);
|
||||||
|
|
||||||
|
List<WorkPeopleInfo> selectWorkPeopleInfoList(int flowId);
|
||||||
|
|
||||||
|
List<WorkPeopleInfo> selectUserListByRoleAndDept(WorkPeopleInfo param);
|
||||||
|
|
||||||
|
void insertWorkPeople(WorkPeopleInfo workPeopleInfo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,4 +31,6 @@ public interface SysWorkflowRecordMapper {
|
||||||
List<SysWorkflowRecordHistory> getAuditUserByRecordId(@Param("recordId") Integer recordId);
|
List<SysWorkflowRecordHistory> getAuditUserByRecordId(@Param("recordId") Integer recordId);
|
||||||
|
|
||||||
int updateSysWorkflowType(SysWorkflowRecord sysWorkflowRecord);
|
int updateSysWorkflowType(SysWorkflowRecord sysWorkflowRecord);
|
||||||
|
|
||||||
|
int selectLeaseAgreementIdByRecordId(Integer taskId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,6 @@ public interface SysWorkflowRecordHistoryService {
|
||||||
int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
|
|
||||||
SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
SysWorkflowRecordHistory getAuditStatus(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
int updateDirectSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -242,7 +242,7 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService {
|
||||||
String[] roleIdArray = roleIds.split(",");
|
String[] roleIdArray = roleIds.split(",");
|
||||||
for (String forRoleId : roleIdArray) {
|
for (String forRoleId : roleIdArray) {
|
||||||
List<SysUserRoleVo> userList = bmUserRoleMapper.getUserRoleListByDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId(), Long.valueOf(forRoleId));
|
List<SysUserRoleVo> userList = bmUserRoleMapper.getUserRoleListByDeptId(SecurityUtils.getLoginUser().getSysUser().getDeptId(), Long.valueOf(forRoleId));
|
||||||
if(forSysWorkflowNode.getNodeName().contains("接收方")){
|
if(forSysWorkflowNode.getNodeName().contains("接收")){
|
||||||
int proIdLease = sysWorkflowConfigMapper.getImpUnit(directApplyInfo.getLeaseProId());
|
int proIdLease = sysWorkflowConfigMapper.getImpUnit(directApplyInfo.getLeaseProId());
|
||||||
// 使用 Iterator 迭代器遍历,支持安全删除元素
|
// 使用 Iterator 迭代器遍历,支持安全删除元素
|
||||||
Iterator<SysUserRoleVo> iterator = userList.iterator();
|
Iterator<SysUserRoleVo> iterator = userList.iterator();
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ import com.bonus.common.security.utils.SecurityUtils;
|
||||||
import com.bonus.material.back.domain.BackApplyDetails;
|
import com.bonus.material.back.domain.BackApplyDetails;
|
||||||
import com.bonus.material.back.domain.BackApplyInfo;
|
import com.bonus.material.back.domain.BackApplyInfo;
|
||||||
import com.bonus.material.back.mapper.BackApplyInfoMapper;
|
import com.bonus.material.back.mapper.BackApplyInfoMapper;
|
||||||
|
import com.bonus.material.event.InsertWorkflowEvent;
|
||||||
import com.bonus.material.lease.domain.LeaseApplyDetails;
|
import com.bonus.material.lease.domain.LeaseApplyDetails;
|
||||||
import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper;
|
import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper;
|
||||||
import com.bonus.material.lease.mapper.LeaseApplyInfoMapper;
|
import com.bonus.material.lease.mapper.LeaseApplyInfoMapper;
|
||||||
|
|
@ -150,6 +151,51 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 直转审批
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int updateDirectSysWorkflowRecordHistory(@NotNull(message = "审批方法参数不能为空") SysWorkflowRecordHistory sysWorkflowRecordHistory) {
|
||||||
|
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
|
||||||
|
Long userId = sysUser.getUserId();
|
||||||
|
Integer recordId = sysWorkflowRecordHistory.getRecordId();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//String flag = checkAuditUser(recordId,sysUser);
|
||||||
|
String flag = "0";
|
||||||
|
if("0".equals( flag)){
|
||||||
|
Integer taskId = sysWorkflowRecordHistory.getTaskId();
|
||||||
|
String recordCode = sysWorkflowRecordHistory.getTaskCode();
|
||||||
|
Integer nextNodeId = sysWorkflowRecordHistory.getNextNodeId();
|
||||||
|
Integer nodeId = sysWorkflowRecordHistory.getNodeId();
|
||||||
|
sysWorkflowRecordHistory.setCreateBy(userId.toString());
|
||||||
|
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
|
|
||||||
|
if (sysWorkflowRecordHistory.getIsAccept() == null) {
|
||||||
|
throw new ServiceException("请选择是否接受审批");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询出【当前任务所属审批流】的所有节点
|
||||||
|
List<SysWorkflowNode> sysWorkflowNodeList = getWorkflowNodes(sysWorkflowRecordHistory);
|
||||||
|
if (sysWorkflowRecordHistory.getIsAccept() == 1) {
|
||||||
|
// 处理审批通过✅
|
||||||
|
handleDirectApproval(sysWorkflowNodeList, sysWorkflowRecordHistory, sysUser, taskId, recordCode, recordId,nextNodeId,nodeId);
|
||||||
|
} else {
|
||||||
|
// 处理审核驳回❌
|
||||||
|
handleRejection(sysWorkflowNodeList, sysWorkflowRecordHistory);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
throw new ServiceException("当前账号没有审批权限!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private String checkAuditUser(Integer recordId, SysUser sysUser) {
|
private String checkAuditUser(Integer recordId, SysUser sysUser) {
|
||||||
|
|
||||||
String flag = "0";
|
String flag = "0";
|
||||||
|
|
@ -302,6 +348,97 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 直转审批通过的方法 更新任务和审批流以及工单信息
|
||||||
|
private void handleDirectApproval(List<SysWorkflowNode> sysWorkflowNodeList, SysWorkflowRecordHistory sysWorkflowRecordHistory,
|
||||||
|
SysUser sysUser, Integer taskId, String recordCode, Integer recordId, Integer nextNodeId, Integer nodeId) {
|
||||||
|
boolean found = false;
|
||||||
|
|
||||||
|
for (SysWorkflowNode sysWorkflowNode : sysWorkflowNodeList) {
|
||||||
|
// 判断列表中哪个节点是当前审批的节点,如果不是审批的节点不处理
|
||||||
|
if (sysWorkflowRecordHistory.getNodeId().equals(sysWorkflowNode.getId())) {
|
||||||
|
log.info("-------------进入到了当前审批的节点-------------");
|
||||||
|
// 根据传入的节点信息,去判断配置的是角色or用户 自动处理
|
||||||
|
sysWorkflowNodeService.copeNodeConfigPersonValuesByNode(sysWorkflowNode);
|
||||||
|
|
||||||
|
// 增加节点code编码判断,是否有节点审批限制
|
||||||
|
if (StringUtils.isNotBlank(sysWorkflowNode.getNodeRestrictCode())) {
|
||||||
|
log.info("-------------当前节点有审批限制,进行限制🚫-------------");
|
||||||
|
switch (sysWorkflowNode.getNodeRestrictCode()) {
|
||||||
|
case "unit":
|
||||||
|
// 限制同一unit单位
|
||||||
|
// 根据任务类型 + 任务ID + 节点ID 去查询满足限制的用户,然后更新configValues值
|
||||||
|
if (Objects.equals(sysWorkflowRecordHistory.getTaskTypeId(), TmTaskTypeEnum.TM_TASK_DIRECT.getTaskTypeId())) {
|
||||||
|
// 直转任务, 根据任务ID去查询当前任务的接收项目部有哪些人员
|
||||||
|
String thisUnitUserIds = sysWorkflowConfigMapper.selectUnitConfigValuesByTaskId(sysWorkflowRecordHistory.getTaskId());
|
||||||
|
String filterConfigValuesResult = filterStringByReference(sysWorkflowNode.getConfigValues(), thisUnitUserIds);
|
||||||
|
if (StringUtils.isBlank(filterConfigValuesResult)) {
|
||||||
|
throw new ServiceException("您不满足当前节点的审批限制🚫,无法进行此操作!!");
|
||||||
|
}
|
||||||
|
sysWorkflowNode.setConfigValues(filterConfigValuesResult);
|
||||||
|
} else {
|
||||||
|
System.err.println("非直转任务限制同一单位,系统暂不支持!!!" + sysWorkflowRecordHistory.getTypeId());
|
||||||
|
throw new ServiceException("非直转任务限制同一单位,系统暂不支持此配置,请联系管理员");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "project":
|
||||||
|
// 限制工程,暂无相关需求,暂定
|
||||||
|
break;
|
||||||
|
case "org":
|
||||||
|
// 限制分公司,暂无相关需求,暂定
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ServiceException("当前节点有审批限制code,却是非法字符,请联系管理员!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断当前用户是否是当前节点的配置用户
|
||||||
|
if (sysWorkflowNode.getConfigValues().contains(sysUser.getUserId().toString())) {
|
||||||
|
log.info("-------------✅通过校验,当前用户是该节点审批人员,进行更新任务信息-------------");
|
||||||
|
// 根据任务ID 更新审批流状态
|
||||||
|
updateWorkflowStatus(taskId, 1);
|
||||||
|
// 根据任务ID 更新任务状态
|
||||||
|
updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus());
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
throw new ServiceException("您不是当前节点配置的审批人员,无法进行操作!!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 如果前面更新失败 -> 方法停止 -> 不进行下一步操作,否则继续
|
||||||
|
if (!found) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
log.info("-------------节点更新工单信息✔-------------");
|
||||||
|
// 修改工单信息
|
||||||
|
updateWorkOrder(recordId, sysUser.getUserName());
|
||||||
|
|
||||||
|
// 如果下个节点⬇存在的话,那么就创建下个节点⬇的工单信息
|
||||||
|
if (nextNodeId != null) {
|
||||||
|
//获取leaseAgreementId
|
||||||
|
int leaseAgreementId = sysWorkflowRecordMapper.selectLeaseAgreementIdByRecordId(taskId);
|
||||||
|
createWorkOrderAndPeopleDirect(sysUser,leaseAgreementId, taskId, recordCode, recordId, nodeId);
|
||||||
|
}
|
||||||
|
log.info("-------------节点更新工单信息结束-------------");
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.err.println("更新工单信息失败:" + e.getMessage());
|
||||||
|
log.error("更新工单信息失败: {}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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())) {
|
||||||
|
checkFinalNodeDirectApproval(sysWorkflowRecordHistory, sysWorkflowNodeList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void checkFinalNodeApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List<SysWorkflowNode> sysWorkflowNodeList) {
|
private void checkFinalNodeApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List<SysWorkflowNode> sysWorkflowNodeList) {
|
||||||
List<SysWorkflowRecordHistory> historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
List<SysWorkflowRecordHistory> historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId());
|
String configValueNew = sysWorkflowConfigMapper.selectConfigValueByNodeId(sysWorkflowRecordHistory.getNodeId());
|
||||||
|
|
@ -333,6 +470,25 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void checkFinalNodeDirectApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List<SysWorkflowNode> sysWorkflowNodeList) {
|
||||||
|
// List<SysWorkflowRecordHistory> historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
|
||||||
|
// SysWorkflowNode lastNode = sysWorkflowNodeList.get(sysWorkflowNodeList.size() - 1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
updateWorkflowStatus(sysWorkflowRecordHistory.getTaskId(), 2);
|
||||||
|
log.info("-------------节点更新任务信息为完成-------------");
|
||||||
|
|
||||||
|
SysWorkflowAuditDto dto = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskIdAndType(sysWorkflowRecordHistory.getTaskId(), null, sysWorkflowRecordHistory.getTypeId());
|
||||||
|
if (dto == null) {
|
||||||
|
throw new ServiceException("任务类型为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
handleBusinessLogic(dto.getTaskType(), sysWorkflowRecordHistory.getTaskId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void handleBusinessLogic(int taskType, Integer taskId) {
|
private void handleBusinessLogic(int taskType, Integer taskId) {
|
||||||
switch (taskType) {
|
switch (taskType) {
|
||||||
case 19:
|
case 19:
|
||||||
|
|
@ -558,6 +714,73 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void createWorkOrderAndPeopleDirect(SysUser sysUser, int leaseAgreementId, int taskId,String taskCode, int newId,int nodeId) {
|
||||||
|
//获取工程名称
|
||||||
|
int projectId = directAuditMapper.getProjectIdById(leaseAgreementId);
|
||||||
|
String projectName = directAuditMapper.getProjectNameById(projectId);
|
||||||
|
String id = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
String webUrlBase = "/mea-h5/#/pages/businessAudit/directAudit/details";
|
||||||
|
String queryParams = UriComponentsBuilder.newInstance()
|
||||||
|
.queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702")
|
||||||
|
.queryParam("taskId", taskId)
|
||||||
|
.queryParam("id", newId)
|
||||||
|
.queryParam("nodeId", nodeId)
|
||||||
|
.build().encode().toUriString();
|
||||||
|
|
||||||
|
WorkApplyInfo workApplyInfo = new WorkApplyInfo();
|
||||||
|
workApplyInfo.setId(id);
|
||||||
|
workApplyInfo.setTitle("智能机具-直转申请待审核");
|
||||||
|
workApplyInfo.setCreateUserName(sysUser.getUserName());
|
||||||
|
workApplyInfo.setContent(sysUser.getNickName() + ":" + taskCode + "-" + projectName);
|
||||||
|
workApplyInfo.setType(1);
|
||||||
|
workApplyInfo.setWebAppId("9fa73f046ef520b09e94bbffc3b07702");
|
||||||
|
workApplyInfo.setSendUserName(sysUser.getUserName());
|
||||||
|
workApplyInfo.setTypeId(2025050901);
|
||||||
|
workApplyInfo.setBusinessId(String.valueOf(newId));
|
||||||
|
workApplyInfo.setNextStatus("待审核");
|
||||||
|
workApplyInfo.setFlowState(null);
|
||||||
|
workApplyInfo.setWebUrl(webUrlBase + queryParams);
|
||||||
|
workApplyInfo.setRout(webUrlBase + queryParams);
|
||||||
|
|
||||||
|
int countWork = directAuditMapper.insertWorkOrder(workApplyInfo);
|
||||||
|
if (countWork > 0) {
|
||||||
|
|
||||||
|
//查询审批人集合
|
||||||
|
WorkPeopleInfo info = new WorkPeopleInfo();
|
||||||
|
info.setFlowId(newId);
|
||||||
|
|
||||||
|
List<WorkPeopleInfo> workPeopleInfoList = directAuditMapper.selectWorkPeopleInfoList(info.getFlowId());
|
||||||
|
// 过滤掉nextNodeId为null的数据
|
||||||
|
if (workPeopleInfoList != null) {
|
||||||
|
workPeopleInfoList = workPeopleInfoList.stream()
|
||||||
|
.filter(person -> person.getNextNodeId() != null) // 过滤条件:nextNodeId不为null
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
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 = directAuditMapper.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);
|
||||||
|
directAuditMapper.insertWorkPeople(workPeopleInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 插入(领料出库详情表) lease_out_details表数据
|
* 插入(领料出库详情表) lease_out_details表数据
|
||||||
* @param sltAgreementInfo
|
* @param sltAgreementInfo
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,12 @@
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.bonus.material.work.mapper.DirectAuditMapper">
|
<mapper namespace="com.bonus.material.work.mapper.DirectAuditMapper">
|
||||||
|
|
||||||
|
<resultMap type="com.bonus.common.biz.domain.lease.WorkPeopleInfo" id="WorkPeopleInfoResult">
|
||||||
|
<result property="id" column="id"/>
|
||||||
|
<result property="nextNodeId" column="next_node_id"/>
|
||||||
|
<result property="roleIds" column="roleIds"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
<select id="getList" resultType="com.bonus.material.ma.domain.DirectApplyInfo">
|
<select id="getList" resultType="com.bonus.material.ma.domain.DirectApplyInfo">
|
||||||
SELECT
|
SELECT
|
||||||
dai.Id,
|
dai.Id,
|
||||||
|
|
@ -57,6 +63,12 @@
|
||||||
<if test="status != null and status != ''">
|
<if test="status != null and status != ''">
|
||||||
and swr.workflow_status = #{status}
|
and swr.workflow_status = #{status}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="statusList != null and statusList.size() > 0">
|
||||||
|
and swr.workflow_status in
|
||||||
|
<foreach item="item" collection="statusList" open="(" separator="," close=")">
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
<if test="isApp != null and taskStatus==0">and dai.status = 0 </if>
|
<if test="isApp != null and taskStatus==0">and dai.status = 0 </if>
|
||||||
<if test="isApp != null and taskStatus==1">and (dai.status = 1 or dai.status = 2)</if>
|
<if test="isApp != null and taskStatus==1">and (dai.status = 1 or dai.status = 2)</if>
|
||||||
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
||||||
|
|
@ -87,6 +99,7 @@
|
||||||
LEFT JOIN sys_workflow_node wn2 on wc.node_id = wn2.id
|
LEFT JOIN sys_workflow_node wn2 on wc.node_id = wn2.id
|
||||||
WHERE wh.record_id = #{flowId}
|
WHERE wh.record_id = #{flowId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getImpUnit" resultType="java.lang.Integer">
|
<select id="getImpUnit" resultType="java.lang.Integer">
|
||||||
select
|
select
|
||||||
imp_unit as impUnit
|
imp_unit as impUnit
|
||||||
|
|
@ -96,10 +109,125 @@
|
||||||
pro_id = #{proId}
|
pro_id = #{proId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getProjectIdById" resultType="java.lang.Integer">
|
||||||
|
select
|
||||||
|
project_id as projectId
|
||||||
|
from
|
||||||
|
bm_agreement_info
|
||||||
|
where
|
||||||
|
agreement_Id = #{leaseAgreementId}
|
||||||
|
</select>
|
||||||
|
<select id="getProjectNameById" resultType="java.lang.String">
|
||||||
|
select
|
||||||
|
pro_name as projectName
|
||||||
|
from
|
||||||
|
bm_project
|
||||||
|
where
|
||||||
|
pro_id = #{projectId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectWorkPeopleInfoList" resultType="com.bonus.common.biz.domain.lease.WorkPeopleInfo">
|
||||||
|
SELECT
|
||||||
|
wh.id as id,
|
||||||
|
wh.next_node_id as nextNodeId,
|
||||||
|
wc.roleIds as 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="updateWorkflowRecord">
|
<update id="updateWorkflowRecord">
|
||||||
update sys_workflow_record set workflow_status = #{flowStatus} where id = #{id}
|
update sys_workflow_record set workflow_status = #{flowStatus} where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
<update id="updateDirectAudit">
|
<update id="updateDirectAudit">
|
||||||
update direct_apply_info set status = #{status} where id = #{id}
|
update direct_apply_info set status = #{status} where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<insert id="insertWorkOrder" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into uni_org.sys_information
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">id,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="createUserName != null">create_user_name,</if>
|
||||||
|
<if test="title != null">title,</if>
|
||||||
|
<if test="content != null">content,</if>
|
||||||
|
<if test="webAppId != null">web_app_id,</if>
|
||||||
|
<if test="type != null">type,</if>
|
||||||
|
<if test="extend != null">extend,</if>
|
||||||
|
<if test="sendUserName != null">send_user_name,</if>
|
||||||
|
<if test="webUrl != null">web_url,</if>
|
||||||
|
<if test="typeId != null">type_id,</if>
|
||||||
|
<if test="businessId != null">business_id,</if>
|
||||||
|
<if test="flowState != null">flow_state,</if>
|
||||||
|
<if test="rout != null">rout,</if>
|
||||||
|
<if test="nextStatus != null">next_status,</if>
|
||||||
|
<if test="extendName != null">extend_name,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">#{id},</if>
|
||||||
|
<if test="createTime != null">now(),</if>
|
||||||
|
<if test="createUserName != null">#{createUserName},</if>
|
||||||
|
<if test="title != null">#{title},</if>
|
||||||
|
<if test="content != null">#{content},</if>
|
||||||
|
<if test="webAppId != null">#{webAppId},</if>
|
||||||
|
<if test="type != null">#{type},</if>
|
||||||
|
<if test="extend != null">#{extend},</if>
|
||||||
|
<if test="sendUserName != null">#{sendUserName},</if>
|
||||||
|
<if test="webUrl != null">#{webUrl},</if>
|
||||||
|
<if test="typeId != null">#{typeId},</if>
|
||||||
|
<if test="businessId != null">#{businessId},</if>
|
||||||
|
<if test="flowState != null">#{flowState},</if>
|
||||||
|
<if test="rout != null">#{rout},</if>
|
||||||
|
<if test="nextStatus != null">#{nextStatus},</if>
|
||||||
|
<if test="extendName != null">#{extendName},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<insert id="insertWorkPeople">
|
||||||
|
insert into uni_org.sys_information_people
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">id,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
<if test="informationId != null">information_id,</if>
|
||||||
|
<if test="readState != null">read_state,</if>
|
||||||
|
<if test="handleState != null">handle_state,</if>
|
||||||
|
<if test="receiverUsername != null">receiver_username,</if>
|
||||||
|
<if test="updateUser != null">update_user,</if>
|
||||||
|
<if test="isExamine != null">is_examine,</if>
|
||||||
|
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="id != null">#{id},</if>
|
||||||
|
<if test="createTime != null">now(),</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
<if test="informationId != null">#{informationId},</if>
|
||||||
|
<if test="readState != null">#{readState},</if>
|
||||||
|
<if test="handleState != null">#{handleState},</if>
|
||||||
|
<if test="receiverUsername != null">#{receiverUsername},</if>
|
||||||
|
<if test="updateUser != null">#{updateUser},</if>
|
||||||
|
<if test="isExamine != null">#{isExamine},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -111,4 +111,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
and sp.is_examine = 0
|
and sp.is_examine = 0
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectLeaseAgreementIdByRecordId" resultType="java.lang.Integer">
|
||||||
|
select
|
||||||
|
dai.lease_agreement_id as leaseAgreementId
|
||||||
|
from
|
||||||
|
direct_apply_info dai
|
||||||
|
WHERE id= #{taskId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue