diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/WorkFlowStatusEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/WorkFlowStatusEnum.java new file mode 100644 index 00000000..aaebc473 --- /dev/null +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/WorkFlowStatusEnum.java @@ -0,0 +1,27 @@ +package com.bonus.common.biz.enums; + +import lombok.Getter; + +/** + * @author : 阮世耀 + * @version : 1.0 + * @PackagePath: com.bonus.common.biz.enums + * @CreateTime: 2025-02-21 00:53 + * @Description: 审批流状态枚举类 + */ +@Getter +public enum WorkFlowStatusEnum { + + WAIT_AUDIT(0, "待审批"), + AUDIT_IN(1, "执行中"), + AUDIT_FINISH(2, "执行完成"), + AUDIT_FAIL(3, "执行中断"); + + private final Integer code; + private final String label; + + WorkFlowStatusEnum(Integer code, String label) { + this.code = code; + this.label = label; + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/controller/DerateRecordQueryController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/controller/DerateRecordQueryController.java index c6e13f73..5bd36e10 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/controller/DerateRecordQueryController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/controller/DerateRecordQueryController.java @@ -49,6 +49,21 @@ public class DerateRecordQueryController extends BaseController { } } + /** + * 减免记录查询列表 + */ + @ApiOperation(value = "减免记录查询列表--限制流程节点用户查看") + @GetMapping("/getAuditList") + public TableDataInfo getAuditList(SltAgreementInfo bean) { + startPage(); + try { + List list = service.getAuditList(bean); + return getDataTable(list); + } catch (Exception e) { + return getDataTable(new ArrayList<>()); + } + } + /** * 减免记录查询列表--app */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/mapper/DerateRecordQueryMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/mapper/DerateRecordQueryMapper.java index 9fcb2b58..64b9177a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/mapper/DerateRecordQueryMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/mapper/DerateRecordQueryMapper.java @@ -21,6 +21,14 @@ public interface DerateRecordQueryMapper { */ List getList(SltAgreementInfo bean); + + /** + * 减免记录查询列表 + * @param bean + * @return + */ + List getAuditList(SltAgreementInfo bean); + /** * 删除减免记录 * @param id diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/IDerateReocrdQueryService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/IDerateReocrdQueryService.java index 7fffd5b3..1a657d2b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/IDerateReocrdQueryService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/IDerateReocrdQueryService.java @@ -20,6 +20,13 @@ public interface IDerateReocrdQueryService { */ List getList(SltAgreementInfo bean); + /** + * 根据条件获取减免记录 + * @param bean + * @return + */ + List getAuditList(SltAgreementInfo bean); + /** * 删除减免记录 * @param id diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/impl/DerateRecordQueryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/impl/DerateRecordQueryServiceImpl.java index 1aa987c2..1595f541 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/impl/DerateRecordQueryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/record/service/impl/DerateRecordQueryServiceImpl.java @@ -1,6 +1,7 @@ package com.bonus.material.record.service.impl; import com.bonus.common.biz.domain.BmFileInfo; +import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.record.mapper.DerateRecordQueryMapper; import com.bonus.material.record.mapper.SltRecordQueryMapper; import com.bonus.material.record.service.IDerateReocrdQueryService; @@ -27,6 +28,13 @@ public class DerateRecordQueryServiceImpl implements IDerateReocrdQueryService { return mapper.getList(bean); } + @Override + public List getAuditList(SltAgreementInfo bean) { + Long userId = SecurityUtils.getUserId(); + bean.setUserId(userId); + return mapper.getAuditList(bean); + } + @Override public int delData(Long id) { try { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java index 65e64ee6..b5bd0461 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/domain/SltAgreementInfo.java @@ -70,6 +70,8 @@ public class SltAgreementInfo extends BaseEntity { @ApiModelProperty(value = "领料数量") private BigDecimal num; + private Long userId; + private Integer backNum; /** 领料时间 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/ISltAgreementReduceService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/ISltAgreementReduceService.java index 3de19035..acbf5a33 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/ISltAgreementReduceService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/ISltAgreementReduceService.java @@ -3,6 +3,7 @@ package com.bonus.material.settlement.service; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.settlement.domain.SltAgreementReduce; import org.springframework.transaction.annotation.Transactional; +import com.bonus.material.work.domain.dto.SysWorkflowAuditDto; import java.util.List; @@ -27,5 +28,10 @@ public interface ISltAgreementReduceService { @Transactional(rollbackFor = Exception.class) AjaxResult editApply(SltAgreementReduce sltAgreement); + /** + * 修改数据审核状态,当所有审批流全部执行完毕时调用 + */ + AjaxResult audit(SysWorkflowAuditDto workflowAuditDto); + List selectAuditReduceList(SltAgreementReduce sltAgreement); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementReduceServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementReduceServiceImpl.java index c4f84e36..b9967cef 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementReduceServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/settlement/service/impl/SltAgreementReduceServiceImpl.java @@ -1,6 +1,7 @@ package com.bonus.material.settlement.service.impl; import com.bonus.common.biz.enums.TmTaskTypeEnum; +import com.bonus.common.biz.enums.WorkFlowStatusEnum; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; @@ -8,6 +9,8 @@ import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.settlement.domain.SltAgreementReduce; import com.bonus.material.settlement.mapper.SltAgreementReduceMapper; import com.bonus.material.settlement.service.ISltAgreementReduceService; +import com.bonus.material.work.domain.dto.SysWorkflowAuditDto; +import com.bonus.material.work.mapper.SysWorkflowRecordMapper; import com.bonus.material.work.service.SysWorkflowRecordService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -15,12 +18,15 @@ import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; +import org.springframework.util.CollectionUtils; +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.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; @@ -33,15 +39,19 @@ import java.util.stream.Collectors; @Service @Slf4j public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService { - @Autowired + + @Resource private SltAgreementReduceMapper sltAgreementRecudceMapper; - @Autowired + @Resource private BmFileInfoMapper bmFileInfoMapper; - @Autowired + @Resource private SysWorkflowRecordService workflowRecordService; + @Resource + private SysWorkflowRecordMapper workflowRecordMapper; + @Override public List selectSltAgreementReduceList(SltAgreementReduce sltAgreement) { return sltAgreementRecudceMapper.selectSltAgreementReduceList(sltAgreement); @@ -180,6 +190,40 @@ public class SltAgreementReduceServiceImpl implements ISltAgreementReduceService return sltAgreementRecudceMapper.selectAuditReduceList(sltAgreement); } + /** + * 审核 + * @param workflowAuditDto 费用减免审核 + * @return AjaxResult结构 返回审核结果 + */ + @Override + public AjaxResult audit(SysWorkflowAuditDto workflowAuditDto) { + if (null == workflowAuditDto || null == workflowAuditDto.getTaskId()) { + return AjaxResult.error("参数为空"); + } + SysWorkflowAuditDto workflowRecordInfo = workflowRecordMapper.getSysWorkflowRecodeByTaskId(workflowAuditDto.getTaskId()); + if (null == workflowRecordInfo) { + return AjaxResult.error("审核记录不存在"); + } + // 判断审核流是否执行完毕 + if (Objects.equals(workflowRecordInfo.getWorkflowStatus(), WorkFlowStatusEnum.AUDIT_FINISH.getCode())) { + // 判断传入任务ID的类型,类型异常直接终止 + if (Objects.equals(workflowRecordInfo.getTaskType(), TmTaskTypeEnum.TM_TASK_PART_TYPE.getTaskTypeId())) { + try { + SltAgreementReduce sltAgreement = new SltAgreementReduce(); + sltAgreement.setId(Long.valueOf(workflowAuditDto.getTaskId())); + sltAgreement.setStatus("1"); + return AjaxResult.success("执行完成"); + } catch (Exception e) { + return AjaxResult.error("修改任务状态失败,SQL执行异常"); + } + } else { + return AjaxResult.error("该业务非费用减免任务,无法执行操作!"); + } + } else { + return AjaxResult.error("审批流程未执行完毕,请检查!"); + } + } + private void initSltAgreement(SltAgreementReduce sltAgreement) { sltAgreement.setCode(generateCode()); sltAgreement.setCreateTime(new Date()); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/dto/SysWorkflowAuditDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/dto/SysWorkflowAuditDto.java new file mode 100644 index 00000000..070e75e4 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/domain/dto/SysWorkflowAuditDto.java @@ -0,0 +1,51 @@ +package com.bonus.material.work.domain.dto; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author : 阮世耀 + * @version : 1.0 + * @PackagePath: com.bonus.material.work.domain.dto + * @CreateTime: 2025-02-21 01:01 + * @Description: 审批流审批业务请求DTO + */ +@Data +@Accessors(chain = true) +public class SysWorkflowAuditDto { + + /** + * 审批流执行任务id + */ + private Integer taskId; + + /** + * 审批流执行任务类型 + */ + private Integer taskType; + + /** + * 审批流执行任务编码 + */ + private String taskCode; + + /** + * 审批流ID + */ + private Integer workflowId; + + /** + * 审批流节点ID + */ + private Integer workflowNode; + + /** + * 审批流状态 0:待审批 1:审批中 2:审批完成 3:审批中断 + */ + private Integer workflowStatus; + + /** + * 审批意见 0:拒绝 1:同意 + */ + private Integer isAccept; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordMapper.java index 6ff7ae93..084db1d5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/mapper/SysWorkflowRecordMapper.java @@ -1,12 +1,16 @@ package com.bonus.material.work.mapper; -import com.bonus.material.work.domain.SysWorkflowConfig; import com.bonus.material.work.domain.SysWorkflowRecord; +import com.bonus.material.work.domain.dto.SysWorkflowAuditDto; public interface SysWorkflowRecordMapper { - + // 增加审批流任务信息 int addSysWorkflowRecord(SysWorkflowRecord sysWorkflowRecord); + // 修改审批流任务信息 int updateSysWorkflowRecord(SysWorkflowRecord sysWorkflowRecord); + + // 根据任务id,查询审批流任务信息 + SysWorkflowAuditDto getSysWorkflowRecodeByTaskId(Integer taskId); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java index 91d2f67e..8caa46dc 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowNodeServiceImpl.java @@ -88,9 +88,10 @@ public class SysWorkflowNodeServiceImpl implements SysWorkflowNodeService { if (sysWorkflowNode.getConfigValues().isEmpty()){ throw new ServiceException("请选择审核人员"); } - sysWorkflowNodeMapper.deleteSysWorkflowNode(sysWorkflowNode); + SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig(); + sysWorkflowConfig.setNodeId(sysWorkflowNode.getId()); + sysWorkflowConfigMapper.deleteSysWorkflowConfig(sysWorkflowConfig); for (int i = 0; i < ConfigValue.length; i++) { - SysWorkflowConfig sysWorkflowConfig = new SysWorkflowConfig(); sysWorkflowConfig.setNodeId(sysWorkflowNode.getId()); sysWorkflowConfig.setConfigType(sysWorkflowNode.getNodeSignType()); sysWorkflowConfig.setConfigValue(Integer.valueOf(ConfigValue[i])); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java index 3c8699f1..ae133e97 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/work/service/impl/SysWorkflowRecordHistoryServiceImpl.java @@ -3,12 +3,14 @@ package com.bonus.material.work.service.impl; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.settlement.service.ISltAgreementReduceService; import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.material.work.domain.SysWorkflowNode; import com.bonus.material.work.domain.SysWorkflowRecord; import com.bonus.material.work.domain.SysWorkflowRecordHistory; import com.bonus.material.work.domain.SysWorkflowType; +import com.bonus.material.work.domain.dto.SysWorkflowAuditDto; import com.bonus.material.work.mapper.SysWorkflowNodeMapper; import com.bonus.material.work.mapper.SysWorkflowRecordHistoryMapper; import com.bonus.material.work.mapper.SysWorkflowRecordMapper; @@ -27,6 +29,9 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis @Resource private SysWorkflowRecordMapper sysWorkflowRecordMapper; + @Resource + private ISltAgreementReduceService sltAgreementReduceService; + @Resource private SysWorkflowTypeMapper sysWorkflowTypeMapper; @@ -40,6 +45,8 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis private TmTaskMapper tmTaskMapper; + + @Override @Transactional public int updateSysWorkflowRecordHistory(SysWorkflowRecordHistory sysWorkflowRecordHistory) { @@ -72,11 +79,30 @@ public class SysWorkflowRecordHistoryServiceImpl implements SysWorkflowRecordHis sysWorkflowRecord.setWorkflowStatus(2); sysWorkflowRecordMapper.updateSysWorkflowRecord(sysWorkflowRecord); - //修改业务状态 - TmTask tmTask = new TmTask(); - tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue()); - tmTask.setTaskStatus(1); - tmTaskMapper.updateTmTask(tmTask); + SysWorkflowAuditDto sysWorkflowRecodeInfo = sysWorkflowRecordMapper.getSysWorkflowRecodeByTaskId(sysWorkflowRecordHistory.getTaskId()); + if (sysWorkflowRecodeInfo == null) { + throw new ServiceException("任务类型为空"); + } + + // 根据任务类型修改业务状态 + switch (sysWorkflowRecodeInfo.getTaskType()) { + // 领料任务:2 + case 2: + //修改业务状态 + TmTask tmTask = new TmTask(); + tmTask.setTaskId(sysWorkflowRecordHistory.getTaskId().longValue()); + tmTask.setTaskStatus(1); + tmTaskMapper.updateTmTask(tmTask); + break; + // 费用减免:13 + case 13: + sltAgreementReduceService.audit(sysWorkflowRecodeInfo); + break; + // 工地直转16 + case 16: + break; + } + } }else { SysWorkflowRecord sysWorkflowRecord = new SysWorkflowRecord(); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml index 69479745..3e7f8ef4 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml @@ -392,7 +392,7 @@ where m.del_flag = '0' and m.parent_id = #{typeId} - select lai.id, lai.code, lai.task_id, lai.lease_person, lai.phone, lai.type, lai.company_audit_by,lai.apply_code, lai.company_audit_time, lai.company_audit_remark, lai.dept_audit_by, lai.dept_audit_time, diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/record/DerateRecordQueryMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/record/DerateRecordQueryMapper.xml index 6a12f793..492e12c6 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/record/DerateRecordQueryMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/record/DerateRecordQueryMapper.xml @@ -117,4 +117,65 @@ from slt_reduce_details where apply_id = #{id} + + \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordMapper.xml index 53781ccf..fb3f7920 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/work/SysWorkflowRecordMapper.xml @@ -26,4 +26,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update sys_workflow_record set workflow_status = #{workflowStatus} where task_id = #{taskId} and task_type = #{taskType} + +