jiazx0107
2026-01-16 36509d940d14361429516b9f66f62fa2d4b7a706
调整工单审批
已删除1个文件
已修改11个文件
已添加4个文件
252 ■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeInMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeOutMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/data/OrderStatus.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkStatus.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/mapper/WorkOrderMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/resources/mapper/InoutNoticeInMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/resources/mapper/InoutNoticeOutMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/resources/mapper/WorkOrderMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeIn.java
@@ -2,8 +2,8 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bstek.dorado.annotation.PropertyDef;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fzzy.work.data.WorkStatus;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.*;
@@ -78,18 +78,18 @@
    @TableField("complete_number")
    private Double completeNumber = 0.0;
    @Column(name = "audit_status", columnDefinition = "varchar(10) COMMENT '审核状态(10=监管审核,20=银行审核,30=通过)'")
    @Column(name = "audit_status", columnDefinition = "varchar(10)")
    @TableField("audit_status")
    private String auditStatus = "10";
    private String auditStatus = WorkStatus.STATUS_10.getCode();
    @Column(name = "audit_user", columnDefinition = "varchar(20) COMMENT '审核人'")
    @TableField("audit_user")
    private String auditUser;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "audit_date", columnDefinition = "datetime COMMENT '审批时间'")
    @TableField("audit_date")
    private Date auditDate;
//    @Column(name = "audit_user", columnDefinition = "varchar(20) COMMENT '审核人'")
//    @TableField("audit_user")
//    private String auditUser;
//
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
//    @Column(name = "audit_date", columnDefinition = "datetime COMMENT '审批时间'")
//    @TableField("audit_date")
//    private Date auditDate;
    @Column(name = "complete_status", columnDefinition = "varchar(20) COMMENT '完成状态(NONE=未完成,COMPLETE=已完成)'")
    @TableField("complete_status")
fzzy-igdss-core/src/main/java/com/fzzy/igds/domain/InoutNoticeOut.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.bstek.dorado.annotation.PropertyDef;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeInMapper.java
@@ -3,8 +3,10 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzzy.igds.domain.InoutNoticeIn;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface InoutNoticeInMapper extends BaseMapper<InoutNoticeIn> {
    void auditComplete(@Param("businessId") String businessId, @Param("status") String status);
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/mapper/InoutNoticeOutMapper.java
@@ -3,8 +3,10 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzzy.igds.domain.InoutNoticeOut;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface InoutNoticeOutMapper extends BaseMapper<InoutNoticeOut> {
    void auditComplete(@Param("businessId") String businessId, @Param("status") String status);
}
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -185,7 +185,7 @@
        //流程不启用
        if (null == conf || Constant.YN_N.equals(conf.getValTag())) {
            data.setAuditStatus(AuditStatus.STATUS_20.getCode());
            data.setAuditDate(data.getCreateTime());
            //data.setAuditDate(data.getCreateTime());
        } else {
            BaseResp resp = workService.startByNoticeIn(data, conf);
            log.info("---------启动工单流程------{}", resp);
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
@@ -101,6 +101,11 @@
        return null == user ? "系统" : user.getUserName();
    }
    public static String getLoginName() {
        SysUser user = ShiroUtils.getSysUser();
        return null == user ? "sys" : user.getLoginName();
    }
    public static SysUser getLoginUser() {
        return ShiroUtils.getSysUser();
    }
fzzy-igdss-core/src/main/java/com/fzzy/work/data/OrderStatus.java
ÎļþÒÑɾ³ý
fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkStatus.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
package com.fzzy.work.data;
/**
 * @Desc:
 * @Author: Andy.jia
 * @Date: 2025/12/18
 */
public enum WorkStatus {
    STATUS_10("10", "已提交"),
    STATUS_20("20", "已派单"),
    STATUS_30("30", "处理中"),
    STATUS_40("40", "已解决"),
    STATUS_50("50", "已完成"),
    STATUS_60("60", "已拒绝"),
    STATUS_70("70", "挂起");
    private String code;
    private String msg;
    WorkStatus(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public String getCode() {
        return code;
    }
    public String getMsg() {
        return msg;
    }
    public static String getMsg(String code) {
        if(null == code) return null;
        if(WorkStatus.STATUS_10.getCode().equals(code)) return WorkStatus.STATUS_10.getMsg();
        if(WorkStatus.STATUS_20.getCode().equals(code)) return WorkStatus.STATUS_20.getMsg();
        if(WorkStatus.STATUS_30.getCode().equals(code)) return WorkStatus.STATUS_30.getMsg();
        if(WorkStatus.STATUS_40.getCode().equals(code)) return WorkStatus.STATUS_40.getMsg();
        if(WorkStatus.STATUS_50.getCode().equals(code)) return WorkStatus.STATUS_50.getMsg();
        if(WorkStatus.STATUS_60.getCode().equals(code)) return WorkStatus.STATUS_60.getMsg();
        return code;
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/work/mapper/WorkOrderMapper.java
@@ -3,8 +3,11 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzzy.work.domain.WorkOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface WorkOrderMapper extends BaseMapper<WorkOrder> {
    void updateStatus(@Param("id") String id, @Param("status") String status);
}
fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
@@ -5,7 +5,7 @@
import com.fzzy.igds.domain.InoutNoticeIn;
import com.fzzy.igds.domain.InoutNoticeOut;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.work.data.OrderStatus;
import com.fzzy.work.data.WorkStatus;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.data.WorkNode;
import com.fzzy.work.domain.WorkOrder;
@@ -50,6 +50,7 @@
     * @return å“åº”结果
     */
    public BaseResp startByNoticeIn(InoutNoticeIn data, WorkOrderConf conf) {
        if (null == conf) conf = confService.getByDeptId(data.getDeptId(), WorkBizType.TYPE_10);
        if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("流程未启用");
@@ -67,7 +68,7 @@
        work.setUpdateTime(new Date());
        work.setTitle("入库通知单审批");
        work.setConfId(conf.getId());
        work.setStatus(OrderStatus.STATUS_30.getCode());
        work.setStatus(WorkStatus.STATUS_30.getCode());
        work.setReceiveTime(new Date());
        String nextNode = this.getNextNode(WorkNode.NODE_START.getCode(), conf).getCode();
@@ -95,7 +96,7 @@
     * @return å“åº”结果
     */
    public BaseResp startByNoticeOut(InoutNoticeOut data, WorkOrderConf conf) {
        if (null == conf) conf = confService.getByDeptId(data.getDeptId(), WorkBizType.TYPE_10);
        if (null == conf) conf = confService.getByDeptId(data.getDeptId(), WorkBizType.TYPE_20);
        if (Constant.YN_N.equals(conf.getValTag())) return BaseResp.error("流程未启用");
@@ -112,7 +113,7 @@
        work.setUpdateTime(new Date());
        work.setTitle("出库通知单审批");
        work.setConfId(conf.getId());
        work.setStatus(OrderStatus.STATUS_30.getCode());
        work.setStatus(WorkStatus.STATUS_30.getCode());
        work.setReceiveTime(new Date());
        String nextNode = this.getNextNode(WorkNode.NODE_START.getCode(), conf).getCode();
@@ -165,24 +166,60 @@
     * èŽ·å–å¾…å¤„ç†å·¥å•
     * @return å¤„理结果
     */
    public BaseResp todoByProcess(WorkOrderProcess data) {
    public BaseResp todoByProcess(WorkOrderProcess process) {
        log.info("-----工单处理-----{}", data);
        log.info("-----工单处理-----{}", process);
        //获取工单
        WorkOrder work = orderService.selectById(data.getOrderId());
        WorkOrder work = orderService.selectById(process.getOrderId());
        if (null == work) return BaseResp.error("当前工单已不存在");
        String action = data.getAction();
        String curNode = process.getNode();
        //获取处理人
        if (!curNode.equals(work.getNode())) {
            return BaseResp.error("当前工单已被处理,请刷新页面重试!!");
        }
        //获取配置信息
        WorkOrderConf conf = confService.selectById(work.getConfId());
        if (null == conf) return BaseResp.error("当前工单未配置流程");
        String action = process.getAction();
        //添加记录
        process.setId(ContextUtil.UUID());
        process.setCreateTime(new Date());
        process.setOrderId(work.getId());
        process.setAssigneeName(ContextUtil.getLoginUserName());
        process.setAssigneeId(ContextUtil.getLoginName());
        WorkNode node = this.getNextNode(work.getNode(), conf);
        log.info("工单审批:{},当前节点:{},下一节点:{}", work.getTitle(), work.getNode(), node);
        //通过操作
        if ("pass".equals(action)) {
            process.setAction("通过");
            process.setNode(node.getCode());
            //结束判断,如果是结束节点,则结束工单
            if(WorkNode.NODE_END.getCode().equals(process.getNode())){
                work.setStatus(WorkStatus.STATUS_50.getCode());
                orderService.complete(work);
            }
        }
        //拒绝操作
        if ("refuse".equals(action)) {
            process.setAction("拒绝");
            process.setNode(WorkNode.NODE_END.getCode());
            work.setStatus(WorkStatus.STATUS_60.getCode());
            orderService.complete(work);
        }
        //增加审批记录
        orderProcessService.addData(process);
        return BaseResp.success();
    }
}
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -2,9 +2,12 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fzzy.igds.constant.InoutConstant;
import com.fzzy.igds.mapper.InoutNoticeInMapper;
import com.fzzy.igds.mapper.InoutNoticeOutMapper;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.fzzy.work.data.OrderStatus;
import com.fzzy.work.data.WorkStatus;
import com.fzzy.work.data.WorkBizType;
import com.fzzy.work.data.WorkOrderParam;
import com.fzzy.work.domain.WorkOrder;
@@ -30,7 +33,10 @@
public class WorkOrderService {
    @Resource
    private WorkOrderMapper workOrderMapper;
    @Resource
    private InoutNoticeInMapper noticeInMapper;
    @Resource
    private InoutNoticeOutMapper noticeOutMapper;
    public void addData(WorkOrder data) {
@@ -77,7 +83,7 @@
    public List<SysDictData> triggerStatus() {
        List<SysDictData> list = new ArrayList<SysDictData>();
        for (OrderStatus w : OrderStatus.values()) {
        for (WorkStatus w : WorkStatus.values()) {
            list.add(new SysDictData(w.getMsg(), w.getCode()));
        }
        return list;
@@ -123,4 +129,19 @@
        if(null == orderId) return null;
        return workOrderMapper.selectById(orderId);
    }
    public void complete(WorkOrder work) {
        //更新工单状态
        workOrderMapper.updateStatus(work.getId(), work.getStatus());
        //更新入库通知单状态
        if (work.getBizType().equals(WorkBizType.TYPE_10.getCode())) {
            noticeInMapper.auditComplete(work.getBusinessId(), work.getStatus());
        }
        //更新入库通知单状态
        if (work.getBizType().equals(WorkBizType.TYPE_20.getCode())) {
            noticeOutMapper.auditComplete(work.getBusinessId(), work.getStatus());
        }
    }
}
fzzy-igdss-core/src/main/resources/mapper/InoutNoticeInMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fzzy.igds.mapper.InoutNoticeInMapper">
    <update id="auditComplete" parameterType="String">
        update d_inout_notice_out set audit_status = #{status},update_time = sysdate()
        where id = #{businessId}
    </update>
</mapper>
fzzy-igdss-core/src/main/resources/mapper/InoutNoticeOutMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fzzy.igds.mapper.InoutNoticeOutMapper">
    <update id="auditComplete" parameterType="String">
        update d_inout_notice_out set audit_status = #{status},update_time = sysdate()
        where id = #{businessId}
    </update>
</mapper>
fzzy-igdss-core/src/main/resources/mapper/WorkOrderMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fzzy.work.mapper.WorkOrderMapper">
    <update id="updateStatus" parameterType="String">
        update work_order
        <set>
            <if test="status != null and status != ''">status = #{status},</if>
             update_time = sysdate()
        </set>
        where id = #{id}
    </update>
</mapper>
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
@@ -6,7 +6,7 @@
import com.bstek.dorado.data.provider.Page;
import com.fzzy.igds.data.BaseResp;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.work.data.OrderStatus;
import com.fzzy.work.data.WorkStatus;
import com.fzzy.work.domain.WorkOrder;
import com.fzzy.work.data.WorkOrderParam;
import com.fzzy.work.domain.WorkOrderConf;
@@ -76,7 +76,7 @@
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<WorkOrder> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
        if (null == param) param = new WorkOrderParam();
        param.setStatus(OrderStatus.STATUS_50.getCode());
        param.setStatus(WorkStatus.STATUS_50.getCode());
        param.setCompanyId(ContextUtil.getCompanyId());
        workOrderService.pageQuery(corePage, param);
fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java
@@ -9,7 +9,7 @@
import com.fzzy.igds.service.*;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.fzzy.work.data.OrderStatus;
import com.fzzy.work.data.WorkStatus;
import com.fzzy.work.service.WorkOrderService;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysDictData;
@@ -244,7 +244,7 @@
        MainData mainData = new MainData();
        //待办工单数
        Integer orderNum = workOrderService.getNumByUser(OrderStatus.STATUS_30.getCode(), user.getLoginName());
        Integer orderNum = workOrderService.getNumByUser(WorkStatus.STATUS_30.getCode(), user.getLoginName());
        mainData.setOrderNum(orderNum);
        //统计出入库信息