Lius
3 天以前 e334d8afd0a654aa845f720122b876807459b90d
设备调拨、借用、归还流程审批调整
已修改18个文件
已删除4个文件
1614 ■■■■■ 文件已修改
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentLeanOutStatusEnum.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentTransferStatusEnum.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentLeanOut.java 169 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentTransfer.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentTransferController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartRequisitionController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentLeanOut.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentScrap.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentSealUp.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentTransfer.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentSealUpMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentLeanOutRequest.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentTransferRequest.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentLeanOutService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSparePartRequisitionService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentTransferServiceImpl.java 257 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSparePartRequisitionServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/constant/CommonConstant.java
@@ -366,6 +366,17 @@
    String YN_Y = "Y";
    String YN_N = "N";
    /**
     * 1是0否
     */
    String YN_O = "0";
    String YN_1 = "1";
    /**
     * 1通过 2驳回
     */
    String APPROVED = "1";
    String REJECTED = "2";
    /**===============================================================================================*/
    /**
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -68,5 +68,9 @@
    String PCR0006 = "PCR0006";
    //备件管理员
    String PCR0007 = "PCR0007";
    //单位领导
    String PCR0008 = "PCR0008";
    //公司领导
    String PCR0009 = "PCR0009";
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentLeanOutStatusEnum.java
@@ -2,9 +2,12 @@
public enum EquipmentLeanOutStatusEnum {
    WAIT_SUBMIT, //待提交
    WAIT_APPROVAL, //待审批
    WAIT_APPROVAL_OUT, //待使用单位出厂审批
    WAIT_APPROVAL_IN, //待入厂审批
    WAIT_RETURN, //待归还
    WAIT_CONFIRM, //待确认
    WAIT_CONFIRM_RETURN, //待归还方确认
    WAIT_CONFIRM_BORROW, //待借用方确认
    REJECT, //已驳回
    COMPLETE, //已完成
    ;
    public static EquipmentLeanOutStatusEnum getInstance(String code) {
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/EquipmentTransferStatusEnum.java
@@ -6,7 +6,11 @@
 */
public enum EquipmentTransferStatusEnum {
    WAIT_SUBMIT, //待提交
    WAIT_CHECK, //待审核
    WAIT_USE_LEADER_CHECK, //待使用单位领导审批
    WAIT_TRANSFER_LEADER_CHECK, //待调入单位领导审批
    WAIT_EXTERNAL_CONFIRM, //待机动办确认人
    WAIT_COMPANY_LEADER_CHECK, //待公司领导审批
    REJECT, //已驳回
    COMPLETE, //已完成
    ;
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentLeanOut.java
@@ -16,157 +16,144 @@
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: è®¾å¤‡å€Ÿå‡ºå½’还
 * @Author: jeecg-boot
 * @Date: 2025-05-13
 * @Date:   2025-05-13
 * @Version: V1.0
 */
@Data
@TableName("eam_equipment_lean_out")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "eam_equipment_lean_out对象", description = "设备借出归还")
@ApiModel(value="eam_equipment_lean_out对象", description="设备借出归还")
public class EamEquipmentLeanOut implements Serializable {
    /**
     * ä¸»é”®
     */
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * åˆ›å»ºäºº
     */
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * æ›´æ–°äºº
     */
    /**更新人*/
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**
     * æ›´æ–°æ—¶é—´
     */
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**
     * åˆ é™¤æ ‡è®°
     */
    /**删除标记*/
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;
    /**
     * è®¾å¤‡ID
     */
    /**设备ID*/
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**
     * å•据号
     */
    /**单据号*/
    @Excel(name = "单据号", width = 15)
    @ApiModelProperty(value = "单据号")
    private String code;
    /**
     * å€Ÿå…¥éƒ¨é—¨
     */
    /**借入部门*/
    @Excel(name = "借入部门", width = 15, dictTable = "mdc_production", dicText = "production_name", dicCode = "id")
    @ApiModelProperty(value = "借入部门")
    @Dict(dicCode = "mdc_production, production_name, id")
    private String leanDepartId;
    /**
     * å€Ÿå…¥è´£ä»»äºº
     */
    /**借入责任人*/
    @Excel(name = "借入责任人", width = 15)
    @ApiModelProperty(value = "借入责任人")
    @Dict(dicCode = "sys_user, realname, username")
    private String leanPerson;
    /**
     * å€Ÿç”¨åŽŸå› 
     */
    /**借用原因*/
    @ApiModelProperty(value = "借用原因")
    private String leanReason;
    /**
     * å®¡æ‰¹ç±»åž‹
     */
    @ApiModelProperty(value = "审批类型")
    @Dict(dicCode = "approved_rejected")
    private String approvalDealType;
    /**
     * å€Ÿå‡ºçŠ¶æ€
     */
    /**借出状态*/
    @Excel(name = "借出状态", width = 15)
    @ApiModelProperty(value = "借出状态")
    @Dict(dicCode = "equipment_lean_out_status")
    private String leanStatus;
    /**
     * å€Ÿå‡ºå¼€å§‹æ—¶é—´
     */
    /**借出开始时间*/
    @ApiModelProperty(value = "借出时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leanStartTime;
    /**
     * å€Ÿå‡ºå½’还时间
     */
    /**借出归还时间*/
    @ApiModelProperty(value = "归还时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leanEndTime;
    /**
     * å®¡æ ¸äºº
     */
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    /**使用车间审核人*/
    @Excel(name = "使用车间审核人", width = 15)
    @ApiModelProperty(value = "使用车间审核人")
    @Dict(dicCode = "sys_user, realname, username")
    private String approvalUser;
    /**
     * å®¡æ ¸æ„è§
     */
    @Excel(name = "审核意见", width = 15)
    @ApiModelProperty(value = "审核意见")
    private String approvalComment;
    /**
     * å®¡æ ¸æ—¶é—´
     */
    @ApiModelProperty(value = "审核时间")
    private String useApprovalUser;
    /**使用车间审批类型*/
    @ApiModelProperty(value = "使用车间审批类型")
    @Dict(dicCode = "approved_rejected")
    private String useApprovalDealType;
    /**使用车间审核意见*/
    @Excel(name = "使用车间审核意见", width = 15)
    @ApiModelProperty(value = "使用车间审核意见")
    private String useApprovalComment;
    /**使用车间审核时间*/
    @ApiModelProperty(value = "使用车间审核时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date approvalTime;
    /**
     * ç¡®è®¤äºº
     */
    @Excel(name = "确认人", width = 15)
    @ApiModelProperty(value = "确认人")
    private Date useApprovalTime;
    /**借用车间审核人*/
    @Excel(name = "借用车间审核人", width = 15)
    @ApiModelProperty(value = "借用车间审核人")
    @Dict(dicCode = "sys_user, realname, username")
    private String confirmUser;
    /**
     * ç¡®è®¤æ„è§
     */
    @Excel(name = "确认意见", width = 15)
    @ApiModelProperty(value = "确认意见")
    private String confirmComment;
    /**
     * ç¡®è®¤æ—¶é—´
     */
    @ApiModelProperty(value = "确认时间")
    private String leanOutApprovalUser;
    /**借用车间审批类型*/
    @ApiModelProperty(value = "借用车间审批类型")
    @Dict(dicCode = "approved_rejected")
    private String leanOutApprovalDealType;
    /**借用车间审核意见*/
    @Excel(name = "借用车间审核意见", width = 15)
    @ApiModelProperty(value = "使用车间审核意见")
    private String leanOutApprovalComment;
    /**借用车间审核时间*/
    @ApiModelProperty(value = "借用车间审核时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
    /**
     * å¤‡æ³¨
     */
    private Date leanOutApprovalTime;
    /**使用车间确认人*/
    @Excel(name = "使用车间确认人", width = 15)
    @ApiModelProperty(value = "使用车间确认人")
    @Dict(dicCode = "sys_user, realname, username")
    private String useConfirmUser;
    /**确认意见*/
    @Excel(name = "使用车间确认意见", width = 15)
    @ApiModelProperty(value = "使用车间确认意见")
    private String useConfirmComment;
    /**使用车间确认时间*/
    @ApiModelProperty(value = "使用车间确认时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date useConfirmTime;
    /**借用车间确认人*/
    @Excel(name = "借用车间确认人", width = 15)
    @ApiModelProperty(value = "借用车间确认人")
    @Dict(dicCode = "sys_user, realname, username")
    private String leanOutConfirmUser;
    /**借用车间确认意见*/
    @Excel(name = "借用车间确认意见", width = 15)
    @ApiModelProperty(value = "借用车间确认意见")
    private String leanOutConfirmComment;
    /**借用车间确认时间*/
    @ApiModelProperty(value = "借用车间确认时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leanOutConfirmTime;
    /**备注*/
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * å¤‡æ³¨
     */
    /**备注*/
    @Excel(name = "归还备注", width = 15)
    @ApiModelProperty(value = "归还备注")
    private String returnComment;
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentTransfer.java
@@ -1,8 +1,6 @@
package org.jeecg.modules.eam.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -10,6 +8,7 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.common.system.base.entity.JeecgEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@@ -26,36 +25,10 @@
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "eam_equipment_transfer对象", description = "设备归属变动")
public class EamEquipmentTransfer implements Serializable {
public class EamEquipmentTransfer extends JeecgEntity implements Serializable {
    /**
     * ä¸»é”®
     */
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * åˆ›å»ºäºº
     */
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * æ›´æ–°äºº
     */
    @Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**
     * æ›´æ–°æ—¶é—´
     */
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    private static final long serialVersionUID = -1869845900682810093L;
    /**
     * åˆ é™¤æ ‡è®°
     */
@@ -114,28 +87,94 @@
    @ApiModelProperty(value = "变动日期")
    private Date transferTime;
    /**
     * å®¡æ ¸äºº
     * ä½¿ç”¨å•位领导
     */
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    @Excel(name = "使用单位领导", width = 15)
    @ApiModelProperty(value = "使用单位领导")
    @Dict(dicCode = "sys_user, realname, username")
    private String approvalUser;
    private String useLeader;
    /**
     * å®¡æ ¸ç±»åž‹
     * ä½¿ç”¨å•位领导审核类型
     */
    @ApiModelProperty(value = "审核类型")
    @ApiModelProperty(value = "使用单位领导审核类型")
    @Dict(dicCode = "approved_rejected")
    private String approvalDealType;
    private String useLeaderApprovalDealType;
    /**
     * å®¡æ ¸æ„è§
     * ä½¿ç”¨å•位领导审核意见
     */
    @ApiModelProperty(value = "审核意见")
    private String approvalComment;
    @ApiModelProperty(value = "使用单位领导审核意见")
    private String useLeaderApprovalComment;
    /**
     * å®¡æ ¸æ—¶é—´
     * ä½¿ç”¨å•位领导审核时间
     */
    @ApiModelProperty(value = "审核时间")
    private Date approvalTime;
    @ApiModelProperty(value = "使用单位领导审核时间")
    private Date useLeaderApprovalTime;
    /**
     * è°ƒå…¥å•位领导
     */
    @Excel(name = "调入单位领导", width = 15)
    @ApiModelProperty(value = "调入单位领导")
    @Dict(dicCode = "sys_user, realname, username")
    private String transferLeader;
    /**
     * è°ƒå…¥å•位领导审核类型
     */
    @ApiModelProperty(value = "调入单位领导审核类型")
    @Dict(dicCode = "approved_rejected")
    private String transferLeaderApprovalDealType;
    /**
     * è°ƒå…¥å•位领导审核意见
     */
    @ApiModelProperty(value = "调入单位领导审核意见")
    private String transferLeaderApprovalComment;
    /**
     * è°ƒå…¥å•位领导审核时间
     */
    @ApiModelProperty(value = "调入单位领导审核时间")
    private Date transferLeaderApprovalTime;
    /**
     * æœºåŠ¨åŠžç¡®è®¤äºº
     */
    @Excel(name = "机动办确认人", width = 15)
    @ApiModelProperty(value = "机动办确认人")
    @Dict(dicCode = "sys_user, realname, username")
    private String externalConfirm;
    /**
     * æœºåŠ¨åŠžç¡®è®¤æ—¶é—´
     */
    @ApiModelProperty(value = "机动办确认时间")
    private Date externalConfirmTime;
    /**
     * æ˜¯å¦éœ€è¦å…¬å¸é¢†å¯¼å®¡æ‰¹
     */
    @Excel(name = "是否需要公司领导审批", width = 15)
    @ApiModelProperty(value = "是否需要公司领导审批")
    @Dict(dicCode = "yn")
    private String companyLeaderCheck;
    /**
     * å…¬å¸é¢†å¯¼
     */
    @Excel(name = "公司领导", width = 15)
    @ApiModelProperty(value = "公司领导")
    @Dict(dicCode = "sys_user, realname, username")
    private String companyLeader;
    /**
     * å…¬å¸é¢†å¯¼å®¡æ ¸ç±»åž‹
     */
    @ApiModelProperty(value = "公司领导审核类型")
    @Dict(dicCode = "approved_rejected")
    private String companyLeaderApprovalDealType;
    /**
     * å…¬å¸é¢†å¯¼å®¡æ ¸æ„è§
     */
    @ApiModelProperty(value = "公司领导审核意见")
    private String companyLeaderApprovalComment;
    /**
     * å…¬å¸é¢†å¯¼å®¡æ ¸æ—¶é—´
     */
    @ApiModelProperty(value = "公司领导审核时间")
    private Date companyLeaderApprovalTime;
    /**
     * å¤‡æ³¨
     */
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentTransferController.java
@@ -123,9 +123,8 @@
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
        EamEquipmentTransfer entity = eamEquipmentTransferService.getById(id);
        if (entity != null) {
            entity.setDelFlag(CommonConstant.DEL_FLAG_1);
            eamEquipmentTransferService.updateById(entity);
        if (entity != null && !EquipmentTransferStatusEnum.WAIT_SUBMIT.name().equals(entity.getTransferStatus())) {
            eamEquipmentTransferService.removeById(entity);
        }
        return Result.OK("删除成功!");
    }
@@ -140,13 +139,12 @@
    @ApiOperation(value = "设备归属变动-批量删除", notes = "设备归属变动-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        this.eamEquipmentTransferService.removeByIds(Arrays.asList(ids.split(",")));
        List<String> list = Arrays.asList(ids.split(","));
        list.forEach(id -> {
            EamEquipmentTransfer entity = eamEquipmentTransferService.getById(id);
            if (entity != null) {
            if (entity != null && !EquipmentTransferStatusEnum.WAIT_SUBMIT.name().equals(entity.getTransferStatus())) {
                entity.setDelFlag(CommonConstant.DEL_FLAG_1);
                eamEquipmentTransferService.updateById(entity);
                eamEquipmentTransferService.removeById(entity);
            }
        });
        return Result.OK("批量删除成功!");
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamSparePartRequisitionController.java
@@ -14,10 +14,8 @@
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import org.jeecg.modules.eam.entity.EamSparePartRequisition;
import org.jeecg.modules.eam.entity.EamSparePartRequisitionDetail;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutRequest;
import org.jeecg.modules.eam.request.EamSparePartRequisitionRequest;
import org.jeecg.modules.eam.service.IEamSparePartRequisitionDetailService;
import org.jeecg.modules.eam.service.IEamSparePartRequisitionService;
@@ -27,8 +25,6 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentLeanOut.java
ÎļþÒÑɾ³ý
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentScrap.java
ÎļþÒÑɾ³ý
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentSealUp.java
ÎļþÒÑɾ³ý
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamEquipmentTransfer.java
ÎļþÒÑɾ³ý
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/EamEquipmentSealUpMapper.java
@@ -1,15 +1,12 @@
package org.jeecg.modules.eam.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import org.jeecg.modules.eam.entity.EamEquipmentSealUp;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.eam.entity.EamEquipmentSealUp;
/**
 * @Description: è®¾å¤‡å°å­˜å¯å°
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentLeanOutRequest.java
@@ -43,6 +43,8 @@
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * æ›´æ–°äºº
@@ -53,6 +55,8 @@
     * æ›´æ–°æ—¶é—´
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * åˆ é™¤æ ‡è®°
@@ -67,22 +71,17 @@
    /**
     * å•据号
     */
    @Excel(name = "单据号", width = 15)
    @ApiModelProperty(value = "单据号")
    private String code;
    /**
     * å€Ÿå…¥éƒ¨é—¨
     */
    @Excel(name = "借入部门", width = 15, dictTable = "mdc_production", dicText = "production_name", dicCode = "id")
    @ApiModelProperty(value = "借入部门")
    @Dict(dicCode = "mdc_production, production_name, id")
    private String leanDepartId;
    /**
     * å€Ÿå…¥è´£ä»»äºº
     */
    @Excel(name = "借入责任人", width = 15)
    @ApiModelProperty(value = "借入责任人")
    @Dict(dicCode = "sys_user, realname, username")
    private String leanPerson;
    /**
     * å€Ÿç”¨åŽŸå› 
@@ -90,17 +89,9 @@
    @ApiModelProperty(value = "借用原因")
    private String leanReason;
    /**
     * å®¡æ‰¹ç±»åž‹
     */
    @ApiModelProperty(value = "审批类型")
    @Dict(dicCode = "approved_rejected")
    private String approvalDealType;
    /**
     * å€Ÿå‡ºçŠ¶æ€
     */
    @Excel(name = "借出状态", width = 15)
    @ApiModelProperty(value = "借出状态")
    @Dict(dicCode = "equipment_lean_out_status")
    private String leanStatus;
    /**
     * å€Ÿå‡ºå¼€å§‹æ—¶é—´
@@ -117,55 +108,93 @@
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leanEndTime;
    /**
     * å®¡æ ¸äºº
     * ä½¿ç”¨è½¦é—´å®¡æ ¸äºº
     */
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    @Dict(dicCode = "sys_user, realname, username")
    private String approvalUser;
    @ApiModelProperty(value = "使用车间审核人")
    private String useApprovalUser;
    /**
     * å®¡æ ¸æ„è§
     * ä½¿ç”¨è½¦é—´å®¡æ‰¹ç±»åž‹
     */
    @Excel(name = "审核意见", width = 15)
    @ApiModelProperty(value = "审核意见")
    private String approvalComment;
    @ApiModelProperty(value = "使用车间审批类型")
    private String useApprovalDealType;
    /**
     * å®¡æ ¸æ—¶é—´
     * ä½¿ç”¨è½¦é—´å®¡æ ¸æ„è§
     */
    @ApiModelProperty(value = "审核时间")
    @ApiModelProperty(value = "使用车间审核意见")
    private String useApprovalComment;
    /**
     * ä½¿ç”¨è½¦é—´å®¡æ ¸æ—¶é—´
     */
    @ApiModelProperty(value = "使用车间审核时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date approvalTime;
    private Date useApprovalTime;
    /**
     * ç¡®è®¤äºº
     * å€Ÿç”¨è½¦é—´å®¡æ ¸äºº
     */
    @Excel(name = "确认人", width = 15)
    @ApiModelProperty(value = "确认人")
    @Dict(dicCode = "sys_user, realname, username")
    private String confirmUser;
    @ApiModelProperty(value = "借用车间审核人")
    private String leanOutApprovalUser;
    /**
     * å€Ÿç”¨è½¦é—´å®¡æ‰¹ç±»åž‹
     */
    @ApiModelProperty(value = "借用车间审批类型")
    private String leanOutApprovalDealType;
    /**
     * å€Ÿç”¨è½¦é—´å®¡æ ¸æ„è§
     */
    @ApiModelProperty(value = "使用车间审核意见")
    private String leanOutApprovalComment;
    /**
     * å€Ÿç”¨è½¦é—´å®¡æ ¸æ—¶é—´
     */
    @ApiModelProperty(value = "借用车间审核时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leanOutApprovalTime;
    /**
     * ä½¿ç”¨è½¦é—´ç¡®è®¤äºº
     */
    @ApiModelProperty(value = "使用车间确认人")
    private String useConfirmUser;
    /**
     * ç¡®è®¤æ„è§
     */
    @Excel(name = "确认意见", width = 15)
    @ApiModelProperty(value = "确认意见")
    private String confirmComment;
    @ApiModelProperty(value = "使用车间确认意见")
    private String useConfirmComment;
    /**
     * ç¡®è®¤æ—¶é—´
     * ä½¿ç”¨è½¦é—´ç¡®è®¤æ—¶é—´
     */
    @ApiModelProperty(value = "确认时间")
    @ApiModelProperty(value = "使用车间确认时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;
    private Date useConfirmTime;
    /**
     * å€Ÿç”¨è½¦é—´ç¡®è®¤äºº
     */
    @ApiModelProperty(value = "借用车间确认人")
    private String leanOutConfirmUser;
    /**
     * å€Ÿç”¨è½¦é—´ç¡®è®¤æ„è§
     */
    @ApiModelProperty(value = "借用车间确认意见")
    private String leanOutConfirmComment;
    /**
     * å€Ÿç”¨è½¦é—´ç¡®è®¤æ—¶é—´
     */
    @ApiModelProperty(value = "借用车间确认时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date leanOutConfirmTime;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * å¤‡æ³¨
     */
    @Excel(name = "归还备注", width = 15)
    @ApiModelProperty(value = "归还备注")
    private String returnComment;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamEquipmentTransferRequest.java
@@ -6,7 +6,6 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
@@ -91,27 +90,40 @@
    @ApiModelProperty(value = "变动日期")
    private Date transferTime;
    /**
     * å®¡æ ¸äºº
     * ä½¿ç”¨å•位领导审核类型
     */
    @Excel(name = "审核人", width = 15)
    @ApiModelProperty(value = "审核人")
    private String approvalUser;
    @ApiModelProperty(value = "使用单位领导审核类型")
    private String useLeaderApprovalDealType;
    /**
     * å®¡æ ¸æ—¶é—´
     * ä½¿ç”¨å•位领导审核意见
     */
    @ApiModelProperty(value = "审核时间")
    private Date approvalTime;
    @ApiModelProperty(value = "使用单位领导审核意见")
    private String useLeaderApprovalComment;
    /**
     * å®¡æ ¸ç±»åž‹
     * è°ƒå…¥å•位领导审核类型
     */
    @Excel(name = "审核类型", width = 15)
    @ApiModelProperty(value = "审核类型")
    private String approvalDealType;
    @ApiModelProperty(value = "调入单位领导审核类型")
    private String transferLeaderApprovalDealType;
    /**
     * å®¡æ ¸æ„è§
     * è°ƒå…¥å•位领导审核意见
     */
    @ApiModelProperty(value = "审核意见")
    private String approvalComment;
    @ApiModelProperty(value = "调入单位领导审核意见")
    private String transferLeaderApprovalComment;
    /**
     * æ˜¯å¦éœ€è¦å…¬å¸é¢†å¯¼å®¡æ‰¹
     */
    @ApiModelProperty(value = "是否需要公司领导审批")
    private String companyLeaderCheck;
    /**
     * å…¬å¸é¢†å¯¼å®¡æ ¸ç±»åž‹
     */
    @ApiModelProperty(value = "公司领导审核类型")
    private String companyLeaderApprovalDealType;
    /**
     * å…¬å¸é¢†å¯¼å®¡æ ¸æ„è§
     */
    @ApiModelProperty(value = "公司领导审核意见")
    private String companyLeaderApprovalComment;
    /**
     * å¤‡æ³¨
     */
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentLeanOutService.java
@@ -2,8 +2,8 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutQuery;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutRequest;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamSparePartRequisitionService.java
@@ -1,9 +1,7 @@
package org.jeecg.modules.eam.service;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import org.jeecg.modules.eam.entity.EamSparePartRequisition;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutRequest;
import org.jeecg.modules.eam.request.EamSparePartRequisitionRequest;
import java.util.List;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentLeanOutServiceImpl.java
@@ -22,7 +22,6 @@
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import org.jeecg.modules.eam.entity.EamEquipmentSealUp;
import org.jeecg.modules.eam.mapper.EamEquipmentLeanOutMapper;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutQuery;
import org.jeecg.modules.eam.request.EamEquipmentLeanOutRequest;
@@ -210,7 +209,7 @@
            throw new JeecgBootException("当前用户无法编辑借用记录!");
        }
        UpdateWrapper<EamEquipmentLeanOut> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("lean_status", EquipmentLeanOutStatusEnum.WAIT_APPROVAL.name());
        updateWrapper.set("lean_status", EquipmentLeanOutStatusEnum.WAIT_APPROVAL_OUT.name());
        updateWrapper.eq("id", id);
        updateWrapper.eq("lean_person", sysUser.getUsername());
        boolean success = super.update(updateWrapper);
@@ -237,7 +236,7 @@
        Result result = flowDefinitionService.startProcessInstanceByKey("equipment_lean_out", variables);
        if (result != null) {
            entity.setLeanStartTime(new Date());
            entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_APPROVAL.name());
            entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_APPROVAL_OUT.name());
            //保存工单
            equipmentLeanOutMapper.updateById(entity);
            return result.isSuccess();
@@ -282,7 +281,7 @@
        Result result = flowDefinitionService.startProcessInstanceByKey("equipment_return", variables);
        if (result != null) {
            entity.setLeanEndTime(new Date());
            entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM.name());
            entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM_RETURN.name());
            //保存工单
            equipmentLeanOutMapper.updateById(entity);
            return result.isSuccess();
@@ -303,7 +302,7 @@
        if (user == null || StrUtil.isBlank(user.getId())) {
            throw new JeecgBootException("未获取到登录用户,请重新登录后再试!");
        }
        request.setApprovalUser(user.getUsername());
//        request.setApprovalUser(user.getUsername());
        // èŽ·å–æµç¨‹ä¸šåŠ¡è®°å½•
        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId());
        if (flowMyBusiness == null) {
@@ -324,89 +323,146 @@
            throw new JeecgBootException("设备不存在,请检查!");
        }
        EquipmentLeanOutStatusEnum status = EquipmentLeanOutStatusEnum.getInstance(entity.getLeanStatus());
        if (status == null) {
            return null;
        }
        //流程变量
        Map<String, Object> values = new HashMap<>();
        switch (status) {
            // å®¡æ‰¹
            case WAIT_APPROVAL:
                //执行完成
                values.put("dataId", entity.getId());
                values.put("organization", request.getApprovalComment());
                values.put("comment", request.getApprovalComment());
                values.put("approvalDealType", request.getApprovalDealType());
                request.setComment(request.getApprovalComment());
                entity.setApprovalUser(user.getUsername());// å®¡æ ¸äºº
                entity.setApprovalComment(request.getApprovalComment());// å®¡æ ¸æ„è§
                entity.setApprovalTime(new Date());// å®¡æ ¸æ—¶é—´
                entity.setApprovalDealType(request.getApprovalDealType()); // å®¡æ‰¹ç±»åž‹
                // éªŒè¯é€šè¿‡è¿˜æ˜¯é©³å›ž
                if (request.getApprovalDealType().equals("1")) {
                    //设置entity
                    entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_RETURN.name());
                    List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getLeanPerson()));
                    values.put("NextAssignee", userApprovalList);
                } else {
                    //设置entity
                    entity.setLeanStatus(EquipmentLeanOutStatusEnum.COMPLETE.name());
                    // ä¿®æ”¹è®¾å¤‡çŠ¶æ€
                    equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                    eamEquipmentService.updateById(equipment);
                }
                break;
            // å½’还
            case WAIT_RETURN:
                if (StringUtils.isBlank(equipment.getEquipmentManager())) {
                    throw new JeecgBootException("设备未分配设备管理员,无法进入下级审批!");
                }
                List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getLeanPerson()));
                userApprovalList.add(equipment.getEquipmentManager());
                values.put("dataId", entity.getId());
                values.put("organization", request.getReturnComment());
                values.put("comment", request.getReturnComment());
                values.put("NextAssignee", userApprovalList);
                values.put("approvalDealType", "1");
                request.setComment(request.getReturnComment());
                entity.setLeanEndTime(new Date()); //归还时间
                //设置entity
                entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM.name());
                entity.setApprovalUser(user.getUsername());// å®¡æ ¸äºº
                entity.setLeanEndTime(new Date());// å½’还时间
                entity.setReturnComment(request.getReturnComment());// å½’还备注
                break;
            // å½’还确认
            case WAIT_CONFIRM:
                values.put("approvalDealType", "1");
                values.put("dataId", entity.getId());
                values.put("organization", request.getConfirmComment());
                values.put("comment", request.getConfirmComment());
                request.setComment(request.getConfirmComment());
                //设置entity
                entity.setApprovalUser(user.getUsername());// å®¡æ ¸äºº
                entity.setLeanStatus(EquipmentLeanOutStatusEnum.COMPLETE.name());
                entity.setConfirmUser(user.getUsername());
                entity.setConfirmComment(request.getConfirmComment());
                entity.setConfirmTime(new Date());
                // ä¿®æ”¹è®¾å¤‡çŠ¶æ€0
                equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                eamEquipmentService.updateById(equipment);
                break;
        }
        request.setValues(values);
        //设置流程变量
        setupProcessVariables(request, entity, user, equipment);
        // å®Œæˆæµç¨‹ä»»åŠ¡
        Result result = flowTaskService.complete(request);
        if (!result.isSuccess()) {
            throw new JeecgBootException("审批失败,请刷新查看!");
        }
        // æ ¹æ®ä»»åŠ¡å®Œæˆç»“æžœæ›´æ–°å·¥å•çŠ¶æ€
        updateOrderStatus(result, request, entity, user, equipment);
        //保存工单
        equipmentLeanOutMapper.updateById(entity);
        return entity;
    }
    /**
     * æ›´æ–°å·¥å•状态
     * @param result
     * @param request
     * @param entity
     * @param user
     * @param equipment
     */
    private void updateOrderStatus(Result result, EamEquipmentLeanOutRequest request, EamEquipmentLeanOut entity, LoginUser user, EamEquipment equipment) {
        if (result.isSuccess()) {
            EquipmentLeanOutStatusEnum status = EquipmentLeanOutStatusEnum.getInstance(entity.getLeanStatus());
            switch (status) {
                case WAIT_APPROVAL_OUT:
                    entity.setUseApprovalUser(user.getUsername());
                    entity.setUseApprovalComment(request.getUseApprovalComment());
                    entity.setUseApprovalTime(new Date());
                    entity.setUseApprovalDealType(request.getUseApprovalDealType());
                    if (CommonConstant.APPROVED.equals(request.getUseApprovalDealType())) {
                        entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_APPROVAL_IN.name());
                    } else {
                        entity.setLeanStatus(EquipmentLeanOutStatusEnum.REJECT.name());
                        equipment.setAssetStatus(AssetStatusEnum.LEAN_OUT.name());
                        eamEquipmentService.updateById(equipment);
                    }
                    request.setComment("使用单位出厂审批结束");
                    break;
                case WAIT_APPROVAL_IN:
                    entity.setLeanOutApprovalUser(user.getUsername());
                    entity.setLeanOutApprovalComment(request.getLeanOutApprovalComment());
                    entity.setLeanOutApprovalTime(new Date());
                    entity.setLeanOutApprovalDealType(request.getLeanOutApprovalDealType());
                    if (CommonConstant.APPROVED.equals(request.getLeanOutApprovalDealType())) {
                        entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_RETURN.name());
                    } else {
                        entity.setLeanStatus(EquipmentLeanOutStatusEnum.REJECT.name());
                        equipment.setAssetStatus(AssetStatusEnum.LEAN_OUT.name());
                        eamEquipmentService.updateById(equipment);
                    }
                    request.setComment("借用单位入厂审批结束");
                    break;
                case WAIT_CONFIRM_RETURN:
                    entity.setLeanOutConfirmUser(user.getUsername());
                    entity.setLeanOutConfirmComment(request.getLeanOutConfirmComment());
                    entity.setLeanOutConfirmTime(new Date());
                    entity.setLeanStatus(EquipmentLeanOutStatusEnum.WAIT_CONFIRM_BORROW.name());
                    request.setComment("借用单位归还审批结束");
                    break;
                case WAIT_CONFIRM_BORROW:
                    entity.setUseConfirmUser(user.getUsername());
                    entity.setUseConfirmComment(request.getUseConfirmComment());
                    entity.setUseConfirmTime(new Date());
                    entity.setLeanStatus(EquipmentLeanOutStatusEnum.COMPLETE.name());
                    equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
                    eamEquipmentService.updateById(equipment);
                    request.setComment("使用单位归还确认结束");
                    break;
            }
        }
    }
    /**
     * æ›´æ–°æµç¨‹çŠ¶æ€
     *
     * @param request
     * @param entity
     * @param user
     * @param equipment
     */
    private void setupProcessVariables(EamEquipmentLeanOutRequest request, EamEquipmentLeanOut entity, LoginUser user, EamEquipment equipment) {
        Map<String, Object> values = new HashMap<>();
        List<UserSelector> userSelectors;
        List<String> userApprovalList;
        EquipmentLeanOutStatusEnum status = EquipmentLeanOutStatusEnum.getInstance(entity.getLeanStatus());
        switch (status) {
            case WAIT_APPROVAL_OUT:
                // ä½¿ç”¨å•位出厂审批完成
                values.put("dataId", entity.getId());
                values.put("organization", request.getUseApprovalComment());
                values.put("comment", request.getUseApprovalComment());
                if (CommonConstant.APPROVED.equals(request.getUseApprovalDealType())) {
                    // é€šè¿‡
                    values.put("approvalDealType", request.getUseApprovalDealType());
                    // èŽ·å–ä¸‹ä¸€æ­¥å®¡æ‰¹äºº
                    userSelectors = sysUserService.selectOperatorList(entity.getLeanDepartId(), BusinessCodeConst.PCR0008);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("未分配借用车间单位领导,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                } else {
                    // é©³å›ž
                    values.put("approvalDealType", request.getUseApprovalDealType());
                }
                break;
            case WAIT_APPROVAL_IN:
                // å€Ÿç”¨å•位入厂审批完成
                values.put("dataId", entity.getId());
                values.put("organization", request.getLeanOutApprovalComment());
                values.put("comment", request.getLeanOutApprovalComment());
                break;
            case WAIT_CONFIRM_RETURN:
                // å½’还单位确认完成
                values.put("dataId", entity.getId());
                values.put("organization", request.getLeanOutConfirmComment());
                values.put("comment", request.getLeanOutConfirmComment());
                // èŽ·å–ä¸‹ä¸€æ­¥å®¡æ‰¹äºº
                userSelectors = sysUserService.selectOperatorList(equipment.getOrgId(), BusinessCodeConst.PCR0008);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("未分配使用车间单位领导,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("NextAssignee", userApprovalList);
                break;
            case WAIT_CONFIRM_BORROW:
                // å€Ÿå‡ºæ–¹ç¡®è®¤å®Œæˆ
                values.put("dataId", entity.getId());
                values.put("organization", request.getUseConfirmComment());
                values.put("comment", request.getUseConfirmComment());
                break;
        }
        request.setValues(values);
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentTransferServiceImpl.java
@@ -88,8 +88,8 @@
            //没有选择设备,根据车间过滤设备
            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
        }
        //控制待提交状态的数据只能本人查看
        queryWrapper.and(i -> i.ne("wmo.transfer_status", EquipmentTransferStatusEnum.WAIT_SUBMIT).or().eq("wmo.report_user", sysUser.getUsername()));
//        æŽ§åˆ¶å¾…提交状态的数据只能本人查看
//        queryWrapper.and(i -> i.ne("wmo.transfer_status", EquipmentTransferStatusEnum.WAIT_SUBMIT).or().eq("wmo.report_user", sysUser.getUsername()));
        //查询条件过滤
        if (query != null) {
            if (StringUtils.isNotBlank(query.getEquipmentId())) {
@@ -144,7 +144,6 @@
            throw new JeecgBootException("当前设备属于此车间,不需要变动!");
        }
        request.setOldDepartId(equipment.getOrgId());
        request.setReportUser(sysUser.getUsername());
        return equipmentTransferMapper.insert(request) > 0;
    }
@@ -156,47 +155,43 @@
            throw new JeecgBootException("要提交的数据不存在,请刷新重试!");
        }
        if (!EquipmentTransferStatusEnum.WAIT_SUBMIT.name().equals(entity.getTransferStatus())) {
            throw new JeecgBootException("当前数据状态不允许编辑!");
            throw new JeecgBootException("该工单已进行过提交!");
        }
        //检查设备
        EamEquipment equipment = eamEquipmentService.getById(entity.getEquipmentId());
        if (equipment == null) {
            throw new JeecgBootException("设备不存在!");
            throw new JeecgBootException("设备不存在,提交失败!");
        }
        // åˆ†é…ç»™ä½¿ç”¨å•位领导
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0008);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给单位领导,无法进入下级审批!");
        }
        List<String> usernames = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            throw new JeecgBootException("当前用户无法编辑转让记录!");
        if (sysUser == null || !BusinessCodeConst.PCR0004.equals(sysUser.getPost())) {
            throw new JeecgBootException("不是设备管理员,无法提交此工单!");
        }
        UpdateWrapper<EamEquipmentTransfer> updateWrapper = new UpdateWrapper<>();
        updateWrapper.set("transfer_status", EquipmentSealUpStatusEnum.WAIT_SUBMIT.name());
        updateWrapper.eq("id", id);
        updateWrapper.eq("report_user", sysUser.getUsername());
        boolean success = super.update(updateWrapper);
        if (success) {
            equipment.setAssetStatus(AssetStatusEnum.DEALT.name()); // è®¾å¤‡è½¬è®©
            eamEquipmentService.updateById(equipment);
        }
        entity.setTransferTime(new Date());
        entity.setReportUser(sysUser.getUsername());
        entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_USE_LEADER_CHECK.name());
        //保存工单
        equipmentTransferMapper.updateById(entity);
        //启动审批流程
        flowCommonService.initActBusiness("工单号:" + entity.getCode() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备转让",
        flowCommonService.initActBusiness("工单号:" + entity.getCode() + ";设备编号: " + equipment.getEquipmentCode() + ";进行设备调拨",
                entity.getId(), "IEamEquipmentTransferService", "equipment_transfer", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", entity.getId());
        variables.put("organization", entity.getTransferReason());
        variables.put("comment", entity.getTransferReason());
        variables.put("proofreading", true);
        // åˆ†é…ç»™è®¾å¤‡ç®¡ç†å‘˜
        List<UserSelector> userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0004);
        if (CollectionUtil.isEmpty(userSelectors)) {
            throw new JeecgBootException("设备未分配给设备管理员,无法进入下级审批!");
        }
        List<String> usernames = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
        variables.put("NextAssignee", usernames);
        Result result = flowDefinitionService.startProcessInstanceByKey("equipment_transfer", variables);
        if (result != null) {
            entity.setTransferTime(new Date());
            entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_CHECK.name());
            //保存工单
            equipmentTransferMapper.updateById(entity);
            equipment.setAssetStatus(AssetStatusEnum.DEALT.name()); // è®¾å¤‡è°ƒæ‹¨
            eamEquipmentService.updateById(equipment);
            return result.isSuccess();
        }
        return true;
@@ -215,7 +210,6 @@
        if (user == null || StrUtil.isBlank(user.getId())) {
            throw new JeecgBootException("未获取到登录用户,请重新登录后再试!");
        }
        request.setApprovalUser(user.getUsername());
        // èŽ·å–æµç¨‹ä¸šåŠ¡è®°å½•
        FlowMyBusiness flowMyBusiness = flowMyBusinessService.getFlowMyBusiness(request.getInstanceId());
        if (flowMyBusiness == null) {
@@ -236,50 +230,182 @@
            throw new JeecgBootException("设备不存在,请检查!");
        }
        EquipmentTransferStatusEnum status = EquipmentTransferStatusEnum.getInstance(entity.getTransferStatus());
        if (status == null) {
            return null;
        }
        //流程变量
        Map<String, Object> values = new HashMap<>();
        // å®¡æ‰¹
        if (status == EquipmentTransferStatusEnum.WAIT_CHECK) {//执行完成
            values.put("dataId", entity.getId());
            values.put("organization", request.getApprovalComment());
            values.put("comment", request.getApprovalComment());
            values.put("approvalDealType", request.getApprovalDealType());
            request.setComment(request.getApprovalComment());
            entity.setApprovalUser(user.getUsername());// å®¡æ ¸äºº
            entity.setApprovalComment(request.getApprovalComment());// å®¡æ ¸æ„è§
            entity.setApprovalTime(new Date());// å®¡æ ¸æ—¶é—´
            entity.setApprovalDealType(request.getApprovalDealType()); // å®¡æ‰¹ç±»åž‹
            // éªŒè¯é€šè¿‡è¿˜æ˜¯é©³å›ž
            if (request.getApprovalDealType().equals("1")) {
                //设置entity
                entity.setTransferStatus(EquipmentTransferStatusEnum.COMPLETE.name());
                List<String> userApprovalList = new ArrayList<>(Collections.singletonList(entity.getReportUser()));
                values.put("NextAssignee", userApprovalList);
            } else {
                //设置entity
                entity.setTransferStatus(EquipmentTransferStatusEnum.COMPLETE.name());
            }
            // ä¿®æ”¹è®¾å¤‡çŠ¶æ€
            equipment.setAssetStatus(AssetStatusEnum.NORMAL.name());
            entity.setApprovalUser(user.getUsername());
            entity.setApprovalComment(request.getApprovalComment());
            entity.setApprovalTime(new Date());
            eamEquipmentService.updateById(equipment);
        }
        request.setValues(values);
        //设置流程变量
        setupProcessVariables(request, entity, user, equipment);
        // å®Œæˆæµç¨‹ä»»åŠ¡
        Result result = flowTaskService.complete(request);
        if (!result.isSuccess()) {
            throw new JeecgBootException("审批失败,请刷新查看!");
        }
        // æ ¹æ®ä»»åŠ¡å®Œæˆç»“æžœæ›´æ–°å·¥å•çŠ¶æ€
        updateOrderStatus(result, request, entity, user, equipment);
        //保存工单
        equipmentTransferMapper.updateById(entity);
        return entity;
    }
    /**
     * è®¾ç½®å·¥å•信息
     *
     * @param result
     * @param request
     * @param entity
     * @param user
     */
    private void updateOrderStatus(Result result, EamEquipmentTransferRequest request, EamEquipmentTransfer entity, LoginUser user, EamEquipment equipment) {
        if (result.isSuccess()) {
            EquipmentTransferStatusEnum status = EquipmentTransferStatusEnum.getInstance(entity.getTransferStatus());
            switch (status) {
                case WAIT_USE_LEADER_CHECK:
                    // ä½¿ç”¨å•位领导审批结束
                    entity.setUseLeader(user.getUsername());
                    entity.setUseLeaderApprovalComment(request.getUseLeaderApprovalComment());
                    entity.setUseLeaderApprovalTime(new Date());
                    entity.setUseLeaderApprovalDealType(request.getUseLeaderApprovalDealType());
                    if (CommonConstant.APPROVED.equals(request.getUseLeaderApprovalDealType())) {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_TRANSFER_LEADER_CHECK.name());
                    } else {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.REJECT.name());
                        equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); // è®¾å¤‡è°ƒæ‹¨
                        eamEquipmentService.updateById(equipment);
                    }
                    break;
                case WAIT_TRANSFER_LEADER_CHECK:
                    // è°ƒå…¥å•位领导审批结束
                    entity.setTransferLeader(user.getUsername());
                    entity.setTransferLeaderApprovalComment(request.getTransferLeaderApprovalComment());
                    entity.setTransferLeaderApprovalTime(new Date());
                    entity.setTransferLeaderApprovalDealType(request.getTransferLeaderApprovalDealType());
                    if (CommonConstant.APPROVED.equals(request.getTransferLeaderApprovalDealType())) {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_EXTERNAL_CONFIRM.name());
                    } else {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.REJECT.name());
                        equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); // è®¾å¤‡è°ƒæ‹¨
                        eamEquipmentService.updateById(equipment);
                    }
                    break;
                case WAIT_EXTERNAL_CONFIRM:
                    // æœºåŠ¨åŠžç¡®è®¤ç»“æŸ
                    entity.setExternalConfirm(user.getUsername());
                    entity.setExternalConfirmTime(new Date());
                    entity.setCompanyLeaderCheck(request.getCompanyLeaderCheck());
                    if (CommonConstant.YN_1.equals(request.getCompanyLeaderCheck())) {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.WAIT_COMPANY_LEADER_CHECK.name());
                    } else {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.COMPLETE.name());
                        equipment.setOrgId(entity.getNewDepartId());
                        equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); // è®¾å¤‡è°ƒæ‹¨
                        eamEquipmentService.updateById(equipment);
                    }
                    break;
                case WAIT_COMPANY_LEADER_CHECK:
                    // å…¬å¸é¢†å¯¼å®¡æ‰¹ç»“束
                    entity.setCompanyLeader(user.getUsername());
                    entity.setCompanyLeaderApprovalTime(new Date());
                    entity.setCompanyLeaderApprovalComment(request.getCompanyLeaderApprovalComment());
                    entity.setCompanyLeaderApprovalDealType(request.getCompanyLeaderApprovalDealType());
                    if (CommonConstant.APPROVED.equals(request.getCompanyLeaderApprovalDealType())) {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.COMPLETE.name());
                        equipment.setOrgId(entity.getNewDepartId());
                    } else {
                        entity.setTransferStatus(EquipmentTransferStatusEnum.REJECT.name());
                    }
                    equipment.setAssetStatus(AssetStatusEnum.NORMAL.name()); // è®¾å¤‡è°ƒæ‹¨
                    eamEquipmentService.updateById(equipment);
                    break;
            }
        }
    }
    /**
     * è®¾ç½®æµç¨‹å˜é‡
     *
     * @param request
     * @param entity
     * @param user
     * @param equipment
     */
    private void setupProcessVariables(EamEquipmentTransferRequest request, EamEquipmentTransfer entity, LoginUser user, EamEquipment equipment) {
        Map<String, Object> values = new HashMap<>();
        List<UserSelector> userSelectors;
        List<String> userApprovalList;
        EquipmentTransferStatusEnum status = EquipmentTransferStatusEnum.getInstance(entity.getTransferStatus());
        switch (status) {
            case WAIT_USE_LEADER_CHECK:
                // ä½¿ç”¨å•位领导审批结束
                values.put("dataId", entity.getId());
                values.put("organization", request.getUseLeaderApprovalComment());
                values.put("comment", request.getUseLeaderApprovalComment());
                if (CommonConstant.APPROVED.equals(request.getUseLeaderApprovalDealType())) {
                    // é€šè¿‡
                    values.put("approvalDealType", request.getUseLeaderApprovalDealType());
                    // èŽ·å–ä¸‹ä¸€æ­¥å®¡æ‰¹äºº
                    userSelectors = sysUserService.selectOperatorList(entity.getNewDepartId(), BusinessCodeConst.PCR0008);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("未分配调入单位领导,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                } else {
                    // é©³å›ž
                    values.put("approvalDealType", request.getUseLeaderApprovalDealType());
                }
                request.setComment("使用单位领导审批结束");
                break;
            case WAIT_TRANSFER_LEADER_CHECK:
                // è°ƒå…¥å•位领导审批结束
                values.put("dataId", entity.getId());
                values.put("organization", request.getTransferLeaderApprovalComment());
                values.put("comment", request.getTransferLeaderApprovalComment());
                if (CommonConstant.APPROVED.equals(request.getTransferLeaderApprovalDealType())) {
                    // é€šè¿‡
                    values.put("approvalDealType", request.getTransferLeaderApprovalDealType());
                    // èŽ·å–ä¸‹ä¸€æ­¥å®¡æ‰¹äºº
                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0006);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给机动办,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                } else {
                    // é©³å›ž
                    values.put("approvalDealType", request.getTransferLeaderApprovalDealType());
                }
                request.setComment("调入单位领导审批结束");
                break;
            case WAIT_EXTERNAL_CONFIRM:
                // æœºåŠ¨åŠžç¡®è®¤ç»“æŸ
                values.put("dataId", entity.getId());
                values.put("organization", "机动办确认结束");
                values.put("comment", "机动办确认结束");
                if (CommonConstant.YN_1.equals(request.getCompanyLeaderCheck())) {
                    // éœ€è¦
                    values.put("confirmation", request.getCompanyLeaderCheck());
                    // æµç¨‹è½¬åˆ°å…¬å¸é¢†å¯¼å®¡æ‰¹
                    // èŽ·å–ä¸‹ä¸€æ­¥å®¡æ‰¹äºº
                    userSelectors = sysUserService.selectOperatorList(BusinessCodeConst.PCR0009);
                    if (CollectionUtil.isEmpty(userSelectors)) {
                        throw new JeecgBootException("设备未分配给公司领导,无法进入下级审批!");
                    }
                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                    values.put("NextAssignee", userApprovalList);
                } else {
                    values.put("confirmation", request.getCompanyLeaderCheck());
                }
                request.setComment("机动办确认结束");
                break;
            case WAIT_COMPANY_LEADER_CHECK:
                // å…¬å¸é¢†å¯¼å®¡æ‰¹ç»“束
                values.put("dataId", entity.getId());
                values.put("organization", request.getCompanyLeaderApprovalComment());
                values.put("comment", request.getCompanyLeaderApprovalComment());
                request.setComment("公司领导审批结束");
                break;
        }
        request.setValues(values);
    }
    @Override
@@ -331,7 +457,10 @@
    @Override
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        return null;
        //业务是否干预流程,业务干预,流程干预,指定人员进行处理
        //获取下一步处理人
        Object object = values.get("NextAssignee");
        return (List<String>) object;
    }
    /**
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamSparePartRequisitionServiceImpl.java
@@ -6,18 +6,13 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.flowable.engine.TaskService;
import org.flowable.task.api.Task;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.constant.AssetStatusEnum;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.EquipmentLeanOutStatusEnum;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamEquipmentLeanOut;
import org.jeecg.modules.eam.entity.EamSparePartRequisition;
import org.jeecg.modules.eam.entity.EamSparePartRequisitionDetail;
import org.jeecg.modules.eam.mapper.EamSparePartRequisitionMapper;
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
@@ -333,10 +333,18 @@
    /**
     * é€‰æ‹©ç”¨æˆ·
     * @param productionId é€‰æ‹©çš„车间ID
     * @param positionCode å²—位编号
     * @return
     */
    List<UserSelector> selectOperatorList( String positionCode);
    List<UserSelector> selectOperatorList(String productionId, String positionCode);
    /**
     * é€‰æ‹©ç”¨æˆ·
     * @param positionCode å²—位编号
     * @return
     */
    List<UserSelector> selectOperatorList(String positionCode);
    /**
     * æ ¹æ®ç”¨æˆ·åæ‰¹é‡èŽ·å–çœŸå®žå§“åæ˜ å°„
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -765,6 +765,21 @@
    }
    @Override
    public List<UserSelector> selectOperatorList(String productionId, String positionCode) {
        LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysUser::getPost, positionCode);
        if(StringUtils.isNotBlank(productionId)) {
            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id=sys_user.id and t.pro_id={0}", productionId);
        }
        queryWrapper.eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(SysUser::getStatus, CommonConstant.DEL_FLAG_1);
        queryWrapper.orderByDesc(SysUser::getId);
        List<SysUser> sysUsers = userMapper.selectList(queryWrapper);
        List<UserSelector> collect = sysUsers.stream().map(user -> new UserSelector(user.getId(), user.getUsername(), user.getRealname())).collect(Collectors.toList());
        return collect;
    }
    @Override
    public List<UserSelector> selectOperatorList(String positionCode) {
        LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysUser::getPost, positionCode);