减免审核

This commit is contained in:
hongchao 2026-01-06 16:20:16 +08:00
parent 650afdb89f
commit 8fd7b25de3
9 changed files with 260 additions and 37 deletions

View File

@ -319,4 +319,7 @@ public class SltAgreementInfo extends BaseEntity {
private String sltTask;
private List<SltInfoVo> signUrlList;
@ApiModelProperty(value = "任务状态列表")
private List<Integer> statusList;
}

View File

@ -1,6 +1,7 @@
package com.bonus.material.settlement.service.impl;
import com.bonus.common.biz.constant.GlobalConstants;
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.WorkFlowStatusEnum;
@ -9,6 +10,7 @@ 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.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.event.InsertWorkflowEvent;
import com.bonus.material.settlement.domain.SltAgreementReduce;
import com.bonus.material.settlement.mapper.SltAgreementReduceMapper;
import com.bonus.material.settlement.service.ISltAgreementReduceService;
@ -19,6 +21,7 @@ import com.bonus.material.work.domain.SysWorkflowType;
import com.bonus.material.work.domain.dto.SysWorkflowAuditDto;
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.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
@ -26,14 +29,12 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.util.CollectionUtils;
import org.springframework.web.util.UriComponentsBuilder;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
@ -195,10 +196,10 @@ public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService
}
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(sysWorkflowRecordHistory);
// if (count > 0 && userList != null && !userList.isEmpty()) {
// createWorkOrderAndPeople(sysUser, event, Long.valueOf(sysWorkflowRecord.getTaskId()), newId,sysWorkflowRecordHistory.getNodeId(),userList);
// }
// return newId;
if (count > 0 && userList != null && !userList.isEmpty()) {
SysUser sysUser = SecurityUtils.getLoginUser().getSysUser();
createWorkOrderAndPeopleReduction(sysUser,projectId , sysWorkflowRecord, newId,sysWorkflowRecordHistory.getNodeId(),userList);
}
}
// ******************************** 减免审核工作流 ***********************************//
@ -218,6 +219,53 @@ public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService
}
}
//减免新增工单接入
private void createWorkOrderAndPeopleReduction(SysUser sysUser, int proId, SysWorkflowRecord sysWorkflowRecord, int newId, int nodeId, List<WorkPeopleInfo> userList) {
//获取工程名称
String projectName = directAuditMapper.getProjectNameById(proId);
String id = UUID.randomUUID().toString().replace("-", "");
String webUrlBase = "/mea-h5/#/pages/businessAudit/reductionAudit/details";
String queryParams = UriComponentsBuilder.newInstance()
.queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702")
.queryParam("taskId", sysWorkflowRecord.getTaskId())
.queryParam("nodeId", nodeId)
.build().encode().toUriString();
WorkApplyInfo workApplyInfo = new WorkApplyInfo();
workApplyInfo.setId(id);
workApplyInfo.setTitle("智能机具-减免申请待审核");
workApplyInfo.setCreateUserName(sysUser.getUserName());
workApplyInfo.setContent(sysUser.getNickName() + ":" + sysWorkflowRecord.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) {
for (WorkPeopleInfo user : userList) {
WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo();
workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", ""));
workPeopleInfo.setInformationId(id);
workPeopleInfo.setReceiverUsername(user.getUserName());
workPeopleInfo.setReadState(0);
workPeopleInfo.setHandleState(0);
workPeopleInfo.setIsExamine(0);
directAuditMapper.insertWorkPeople(workPeopleInfo);
}
}
}
@Override
public List<SltAgreementReduce> selectByMatype(SltAgreementReduce sltAgreement) {
return sltAgreementRecudceMapper.selectByMatype(sltAgreement);

View File

@ -107,4 +107,7 @@ public class SysWorkflowRecordHistory {
private String directUserIds;
private String userName;
//备注类型1.PC端 2.APP端
private int remarkType;
}

View File

@ -1,9 +1,10 @@
package com.bonus.material.work.mapper;
import com.bonus.common.biz.domain.lease.WorkApplyInfo;
import com.bonus.common.biz.domain.lease.WorkPeopleInfo;
import com.bonus.material.work.domain.SysWorkflowRecord;
import com.bonus.material.work.domain.SysWorkflowRecordHistory;
import feign.Param;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -30,7 +31,7 @@ public interface SysWorkflowRecordHistoryMapper {
void deleteNowNode(SysWorkflowRecordHistory sysWorkflowRecordHistory);
String getRecordCodeByTaskId(@Param("taskId") int taskId, @Param("taskTypeId") int taskTypeId);
String getRecordCodeByTaskId(@Param("taskId") Integer taskId, @Param("taskTypeId") Integer taskTypeId);
/**
* 获取当前节点信息
@ -67,4 +68,8 @@ public interface SysWorkflowRecordHistoryMapper {
int getReductionAgreementIdByTaskId(SysWorkflowRecordHistory sysWorkflowRecordHistory);
String getReductionNodeUserIds(SysWorkflowRecordHistory history);
WorkPeopleInfo getReductionUser(int userId);
String getReductionUserName(int userId);
}

View File

@ -13,6 +13,7 @@ import com.bonus.common.biz.enums.LeaseTaskStatusEnum;
import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.core.exception.ServiceException;
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.material.back.domain.BackApplyDetails;
import com.bonus.material.back.domain.BackApplyInfo;
@ -30,7 +31,9 @@ import com.bonus.material.ma.domain.Type;
import com.bonus.material.ma.mapper.DirectRotationMapper;
import com.bonus.material.ma.mapper.TypeMapper;
import com.bonus.material.settlement.domain.SltAgreementInfo;
import com.bonus.material.settlement.domain.SltAgreementReduce;
import com.bonus.material.settlement.mapper.SltAgreementInfoMapper;
import com.bonus.material.settlement.mapper.SltAgreementReduceMapper;
import com.bonus.material.settlement.service.ISltAgreementReduceService;
import com.bonus.material.task.domain.TmTask;
import com.bonus.material.task.domain.TmTaskAgreement;
@ -114,6 +117,12 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
@Resource
private LeaseTaskMapper lMapper;
@Resource
private SysWorkflowRecordMapper workflowRecordMapper;
@Resource
private SltAgreementReduceMapper sltAgreementRecudceMapper;
/**
* 审批
*/
@ -410,6 +419,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
//插入history表中
SysWorkflowRecordHistory history = sysWorkflowRecordHistory;
history.setRemarkType(sysWorkflowRecordHistory.getRemarkType());
history.setNodeId(sysWorkflowRecordHistory.getNextNodeId());
if(i!=sysWorkflowNodeList.size()-1){
history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId());
@ -446,6 +456,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
directApplyInfo.setDeptId(deptId);
//插入history表中
SysWorkflowRecordHistory history = sysWorkflowRecordHistory;
history.setRemarkType(sysWorkflowRecordHistory.getRemarkType());
history.setNodeId(sysWorkflowRecordHistory.getNextNodeId());
if(i!=sysWorkflowNodeList.size()-1){
history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId());
@ -513,6 +524,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
//插入history表中
SysWorkflowRecordHistory history = sysWorkflowRecordHistory;
history.setRemarkType(sysWorkflowRecordHistory.getRemarkType());
history.setNodeId(sysWorkflowRecordHistory.getNextNodeId());
if(i!=sysWorkflowNodeList.size()-1){
history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId());
@ -549,6 +561,7 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
directApplyInfo.setDeptId(deptId);
//插入history表中
SysWorkflowRecordHistory history = sysWorkflowRecordHistory;
history.setRemarkType(sysWorkflowRecordHistory.getRemarkType());
history.setNodeId(sysWorkflowRecordHistory.getNextNodeId());
if(i!=sysWorkflowNodeList.size()-1){
history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId());
@ -961,16 +974,36 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
//根据deptId判断送一还是送二
if(deptId == 327){ //送一
if (userIdArray.length > 0) {
boolean hasTrue = Arrays.asList(userIdArray).contains("1916"); //送二的武抒理
if (hasTrue) {
history.setDirectUserIds("1916");
for (int j = 0; j < userIdArray.length; j++) {
WorkPeopleInfo workPeopleInfo = sysWorkflowRecordHistoryMapper.getReductionUser(Integer.parseInt(userIdArray[j]));
if(workPeopleInfo != null && workPeopleInfo.getDeptId() == 327){ //送一的吕猛
history.setDirectUserIds(String.valueOf(userIdArray[j]));
userList.add(workPeopleInfo);
break;
}
}
}
}else if(deptId == 102){ //送二
if (userIdArray.length > 0) {
boolean hasTrue = Arrays.asList(userIdArray).contains("293"); //送二的武抒理
if (hasTrue) {
history.setDirectUserIds("293");
for (int j = 0; j < userIdArray.length; j++) {
WorkPeopleInfo workPeopleInfo = sysWorkflowRecordHistoryMapper.getReductionUser(Integer.parseInt(userIdArray[j]));
if(workPeopleInfo != null && workPeopleInfo.getDeptId() == 102){ //送二的武抒理
history.setDirectUserIds(String.valueOf(userIdArray[j]));
userList.add(workPeopleInfo);
break;
}
}
}
}else if(deptId == 309){ //宏源
if (userIdArray.length > 0) {
for (int j = 0; j < userIdArray.length; j++) {
WorkPeopleInfo workPeopleInfo = sysWorkflowRecordHistoryMapper.getReductionUser(Integer.parseInt(userIdArray[j]));
if(workPeopleInfo != null && workPeopleInfo.getDeptId() == 309){ //送二的武抒理
history.setDirectUserIds(String.valueOf(userIdArray[j]));
userList.add(workPeopleInfo);
break;
}
}
}
}else{
@ -981,25 +1014,30 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
}
}else if(i==2){//分公司分管领导审核
history.setNextNodeId(sysWorkflowNodeList.get(i+1).getId());
history.setDirectUserIds("1756"); //张必余
String userIds = sysWorkflowRecordHistoryMapper.getReductionNodeUserIds(history);
String[] userIdArray = userIds != null ? userIds.split(",") : new String[0];
if(userIdArray.length > 0){
String userName = sysWorkflowRecordHistoryMapper.getReductionUserName(Integer.parseInt(userIdArray[0]));
history.setDirectUserIds(userIdArray[0]);
WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo();
workPeopleInfo.setUserName(userName);
userList.add(workPeopleInfo);
}
}else{//公司分管领导审核
history.setNextNodeId(null);
nextNodeId = null;
history.setDirectUserIds(null);
}
sysWorkflowRecordHistoryMapper.addSysWorkflowRecordHistory(history);
}
//获取当前node的directUserIds
String userIdsNow = sysWorkflowRecordHistoryMapper.getNowUserIds(sysWorkflowRecordHistory);
// 判断当前用户是否是当前节点的配置用户
if (userIdsNow.contains(sysUser.getUserId().toString())) {
log.info("-------------✅通过校验,当前用户是该节点审批人员,进行更新任务信息-------------");
// 根据任务ID 更新审批流状态
updateWorkflowStatus(taskId, 1);
// 根据任务ID 更新任务状态
updateTmTask(taskId.longValue(), LeaseTaskStatusEnum.LEASE_AUDIT_ING.getStatus());
updateWorkflowStatusReduction(taskId, 1);
found = true;
break;
} else {
@ -1008,18 +1046,44 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
throw new ServiceException("您不是当前节点配置的审批人员,无法进行操作!!");
}
}
}
/**************** ******************/
// 如果前面更新失败 -> 方法停止 -> 不进行下一步操作否则继续
if (!found) {
return;
}
try {
log.info("-------------节点更新工单信息✔-------------");
// 修改工单信息
updateWorkOrder(recordId, sysUser.getUserName());
// 如果下个节点存在的话那么就创建下个节点的工单信息
if (nextNodeId != null && proId != null) {
createWorkOrderAndPeopleReduction(sysUser,proId, taskId, recordCode, recordId, nextNodeId,userList);
}
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);
checkFinalNodeReductionApproval(sysWorkflowRecordHistory, sysWorkflowNodeList);
}
@ -1074,6 +1138,22 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
handleBusinessLogic(dto.getTaskType(), sysWorkflowRecordHistory.getTaskId());
}
private void checkFinalNodeReductionApproval(SysWorkflowRecordHistory sysWorkflowRecordHistory, List<SysWorkflowNode> sysWorkflowNodeList) {
// List<SysWorkflowRecordHistory> historyList = sysWorkflowRecordHistoryMapper.seleteSysWorkflowRecordHistory(sysWorkflowRecordHistory);
// SysWorkflowNode lastNode = sysWorkflowNodeList.get(sysWorkflowNodeList.size() - 1);
updateWorkflowStatusReduction(sysWorkflowRecordHistory.getTaskId(), 2);
log.info("-------------节点更新任务信息为完成-------------");
SysWorkflowAuditDto workflowRecordInfo = workflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId());
if (workflowRecordInfo == null) {
throw new ServiceException("审批记录不存在");
}
SltAgreementReduce sltAgreement = new SltAgreementReduce();
sltAgreement.setId(Long.valueOf(sysWorkflowRecordHistory.getTaskId()));
sltAgreement.setStatus("1");
sltAgreementRecudceMapper.updateReduce(sltAgreement);
}
private void handleBusinessLogic(int taskType, Integer taskId) {
switch (taskType) {
@ -1216,6 +1296,14 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
}
private void updateWorkflowStatusReduction(Integer taskId, int status) {
SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord();
sysWorkflowRecord.setTaskId(taskId);
sysWorkflowRecord.setWorkflowStatus(status);
sysWorkflowRecord.setTaskType(13);
sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord);
}
// 工具方法更新 TmTask 状态
private void updateTmTask(Long taskId, Integer taskStatus) {
TmTask tmTask = new TmTask();
@ -1421,6 +1509,49 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis
}
}
//减免工单插入
private void createWorkOrderAndPeopleReduction(SysUser sysUser, int proId, int taskId,String taskCode, int newId,int nodeId,List<WorkPeopleInfo> userList) {
//获取工程名称
String projectName = directAuditMapper.getProjectNameById(proId);
String id = UUID.randomUUID().toString().replace("-", "");
String webUrlBase = "/mea-h5/#/pages/businessAudit/reductionAudit/details";
String queryParams = UriComponentsBuilder.newInstance()
.queryParam("appId", "9fa73f046ef520b09e94bbffc3b07702")
.queryParam("taskId", taskId)
.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) {
for (WorkPeopleInfo user : userList) {
WorkPeopleInfo workPeopleInfo = new WorkPeopleInfo();
workPeopleInfo.setId(UUID.randomUUID().toString().replace("-", ""));
workPeopleInfo.setInformationId(id);
workPeopleInfo.setReceiverUsername(user.getUserName());
workPeopleInfo.setReadState(0);
workPeopleInfo.setHandleState(0);
workPeopleInfo.setIsExamine(0);
directAuditMapper.insertWorkPeople(workPeopleInfo);
}
}
}
/**
* 插入领料出库详情表 lease_out_details表数据
* @param sltAgreementInfo

View File

@ -878,7 +878,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
lpd.code as businessCode,
lpd.lease_person AS leasePerson,
tt.task_status as taskStatus,
lpd.create_time AS releaseTime,
tt.create_time AS releaseTime,
bu.unit_name as leaseUnit ,
bp.pro_name as leaseProject,
lod.out_num as alNum,
@ -911,7 +911,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where
tt.task_type = '19'
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
and DATE_FORMAT( lpd.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
and tt.create_time BETWEEN #{startTime} AND #{endTime}
</if>
<if test="leaseUnitId != null ">
and lpd.unit_id = #{leaseUnitId}

View File

@ -123,6 +123,7 @@
<select id="getAuditList" resultType="com.bonus.material.settlement.domain.SltAgreementReduce">
SELECT
sra.id as id,swr.task_id as taskId,
sra.code as code,
sra.create_time as createTime,
su.user_name as createBy,
bu.unit_name as unitName,
@ -148,7 +149,17 @@
LEFT JOIN sys_workflow_type swt on swr.workflow_id = swt.id
LEFT JOIN sys_workflow_node swn on swt.id = swn.type_id
LEFT JOIN sys_workflow_config swc on swn.id = swc.node_id
left join sys_workflow_record_history swrs on swr.id = swrs.record_id
left join (
select swrs.*
from sys_workflow_record_history swrs
inner join (
-- 第一步:按 record_id 分组,获取每组最新的 create_time
select record_id, max(id) as max_id
from sys_workflow_record_history
group by record_id
) t on swrs.record_id = t.record_id
and swrs.id = t.max_id -- 第二步:关联原表,获取最新时间对应的完整记录
) swrs on swr.id = swrs.record_id
LEFT JOIN
(
SELECT
@ -164,10 +175,16 @@
<!-- <if test="userId != null and userId != ''">-->
<!-- AND swc.config_value = #{userId}-->
<!-- </if>-->
<if test="startTime != null and endTime != ''">
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT(sra.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test="startDate != null and endDate != ''">
<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="startDate != null and startDate != '' and endDate != null and endDate != ''">
AND DATE_FORMAT(sra.create_time, '%Y-%m-%d' ) BETWEEN #{startDate} AND #{endDate}
</if>
<if test="keyWord != null and keyWord != ''">
@ -178,12 +195,12 @@
)
</if>
<if test="status != null and status!=''">
AND sra.status = #{status}
AND swr.workflow_status = #{status}
</if>
<!-- <if test="taskStatus !=null">-->
<!-- AND sra.status = #{taskStatus}-->
<!-- </if>-->
GROUP BY sra.id
GROUP BY swr.id
ORDER BY sra.create_time DESC
</select>
<select id="getAuditPrice" resultType="com.bonus.material.settlement.domain.SltAgreementReduce">

View File

@ -46,11 +46,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.workflow_id as workflowId,
a.workflow_status as workflowStatus
from sys_workflow_record a
<where>
where
a.task_type = 13
<if test="taskId != null">
and a.task_id = #{taskId}
</if>
</where>
</select>
<select id="getSysWorkflowRecodeByTaskIdTwo" parameterType="Integer" resultType="com.bonus.material.work.domain.dto.SysWorkflowAuditDto">

View File

@ -15,6 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createBy != null">create_by,</if>
create_time,
<if test="remark != null">remark,</if>
<if test="remarkType != null">remarkType,</if>
<if test="directUserIds != null">direct_user,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@ -25,6 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="createBy != null">#{createBy},</if>
now(),
<if test="remark != null">#{remark},</if>
<if test="remarkType != null">#{remarkType},</if>
<if test="directUserIds != null">#{directUserIds},</if>
</trim>
</insert>
@ -99,7 +101,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
task_code as recordCode
from sys_workflow_record
where task_id = #{taskId}
and task_type = #{taskTypeId}
and task_type = #{taskTypeId}
</select>
@ -125,7 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select
bai.project_id as proId
from slt_reduce_apply sra
left join bm_agreement_info bai ON sra.agreeement_id = bai.agreement_id
left join bm_agreement_info bai ON sra.agreement_id = bai.agreement_id
where id = #{taskId}
</select>
<select id="getReductionNodeUserIds" resultType="java.lang.String">
@ -134,6 +136,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from sys_workflow_config
where node_id = #{nextNodeId} limit 1
</select>
<select id="getReductionUser" resultType="com.bonus.common.biz.domain.lease.WorkPeopleInfo">
select
user_id as userId,
dept_id as deptId,
user_name as userName
from sys_user
where user_id = #{userId}
</select>
<select id="getReductionUserName" resultType="java.lang.String">
select
user_name as userName
from sys_user
where user_id = #{userId}
</select>
<delete id="deleteNowNode">
delete from sys_workflow_record_history where record_id = #{recordId} and node_id = #{nodeId}