lyh
2025-07-04 42d170e952da0a012c1e82508a2516fcd6e56c6d
保养规范全部代码新增流程处理
已添加1个文件
已修改19个文件
713 ■■■■ 文件已修改
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java 307 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/aspect/DictAspect.java
@@ -52,8 +52,9 @@
    /**
     * å®šä¹‰åˆ‡ç‚¹Pointcut
     */
    @Pointcut("execution(public * org.jeecg.modules.base.*Controller.*(..)) || @annotation(org.jeecg.common.aspect.annotation.AutoDict)")
    public void excudeService() {
    @Pointcut("(execution(public * org.jeecg.modules..*Controller.*(..)) " +
            "&& !execution(public * org.jeecg.modules.eam..*.*Controller.*(..)) ) " +
            "|| @annotation(org.jeecg.common.aspect.annotation.AutoDict)") public void excudeService() {
    }
    @Around("excudeService()")
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -68,5 +68,8 @@
    String PCR0006 = "PCR0006";
    //备件管理员
    String PCR0007 = "PCR0007";
    //维修室主任
    String PCR0008 = "PCR0008";
    //技术主管
    String PCR0009 = "PCR0009";
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/MaintenanceStandardStatusEnum.java
@@ -4,6 +4,9 @@
 * ä¿å…»æ ‡å‡†çŠ¶æ€
 */
public enum MaintenanceStandardStatusEnum {
    NORMAL,
    ABOLISH,;
    WAIT_SUBMIT,
    WAIT_REPAIR_DIRECTOR,
    WAIT_TECHNICAL_DIRECTOR,
    START,
    ABOLISH;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandardDetail.java
@@ -8,6 +8,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.eam.dto.MaintenanceStandardImport;
import org.jeecg.modules.eam.dto.SecondMaintenanceStandardImport;
import org.jeecg.modules.eam.dto.ThirdMaintenanceStandardImport;
@@ -44,30 +45,26 @@
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**保养标准ID*/
    @ApiModelProperty(value = "保养标准ID")
    /**规范id*/
    @ApiModelProperty(value = "规范id")
    private String standardId;
    /**保养项序号*/
    @ApiModelProperty(value = "保养项序号")
    /**保养项分类*/
    @ApiModelProperty(value = "保养项分类")
    @Dict(dicCode = "maintenance_item_category")
    private String itemCategory;
    /**项目序号*/
    @ApiModelProperty(value = "项目序号")
    private Integer itemCode;
    /**部位*/
    @ApiModelProperty(value = "部位")
    private String itemPart;
    /**保养项*/
    @ApiModelProperty(value = "保养项")
    /**保养项目*/
    @ApiModelProperty(value = "保养项目")
    private String itemName;
    /**子保养项*/
    @ApiModelProperty(value = "子保养项")
    private String subItemName;
    /**检查标准或要求*/
    @ApiModelProperty(value = "检查标准或要求")
    private String itemDemand;
    /**保养要求2*/
    @ApiModelProperty(value = "保养要求2")
    private String itemDemandAlias;
    /**检查方法*/
    @ApiModelProperty(value = "检查方法")
    private String checkMethod;
    public EamMaintenanceStandardDetail(){}
@@ -82,7 +79,6 @@
    public EamMaintenanceStandardDetail(WeekMaintenanceStandardImport dto) {
        this.itemCode = dto.getItemCode();
        this.itemName = dto.getItemName();
        this.subItemName = dto.getSubItemName() + " " + (dto.getItemPart() == null ? "" : dto.getItemPart());
        this.itemDemand = dto.getItemDemand();
    }
@@ -91,8 +87,6 @@
        this.itemName = dto.getItemName();
        this.itemPart = dto.getItemPart();
        this.itemDemand = dto.getItemDemand();
        this.itemDemandAlias = dto.getItemDemandAlias();
        this.checkMethod = dto.getCheckMethod();
    }
    public EamMaintenanceStandardDetail(ThirdMaintenanceStandardImport dto) {
@@ -100,7 +94,5 @@
        this.itemName = dto.getItemName();
        this.itemPart = dto.getItemPart();
        this.itemDemand = dto.getItemDemand();
        this.itemDemandAlias = dto.getItemDemandAlias();
        this.checkMethod = dto.getCheckMethod();
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamWeekMaintenanceOrderDetail.java
@@ -70,7 +70,6 @@
    public EamWeekMaintenanceOrderDetail(EamMaintenanceStandardDetail detail) {
        this.itemCode = detail.getItemCode();
        this.itemName = detail.getItemName();
        this.subItemName = detail.getSubItemName();
        this.itemDemand = detail.getItemDemand();
    }
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -148,7 +148,6 @@
                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                queryWrapper.in("e.factory_code", factoryCode);
            }
        }
        //查询条件过滤
        if (eamEquipment != null) {
@@ -224,14 +223,21 @@
        if (sysUser == null) {
            return Collections.emptyList();
        }
        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
            queryWrapper.in("equipment_code", equipArr);
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据车间过滤设备
            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=org_id", sysUser.getId());
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                queryWrapper.in("e.factory_code", factoryCode);
        }
        }
        if (StringUtils.isNotBlank(keyword)) {
            queryWrapper.like("equipment_code", keyword);
            queryWrapper.or().like("equipment_name", keyword);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamMaintenanceStandardController.java
@@ -32,6 +32,7 @@
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
@@ -65,6 +66,28 @@
    private ISysBusinessCodeRuleService businessCodeRuleService;
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    /**
     * æµç¨‹å¯åЍ,保存对应的数据
     * @param id
     * @return
     */
    @ApiOperation(value = "保养标准-流程启动保存对应的数据", notes = "保养标准-流程启动保存对应的数据")
    @GetMapping(value = "/saveEamMaintenanceStandardProcess")
    public Result<?> saveEamMaintenanceStandardProcess(String id){
        return Result.OK(eamMaintenanceStandardService.saveEamMaintenanceStandardProcess(id));
    }
    /**
     * æµç¨‹å®¡æ ¸
     * @param eamMaintenanceStandardVo
     * @return
     */
    @ApiOperation(value = "保养标准-流程审核", notes = "保养标准-流程审核")
    @PostMapping(value = "/audit")
    public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo){
        return Result.OK(eamMaintenanceStandardService.auditEamMaintenanceStandard(eamMaintenanceStandardVo));
    }
    /**
     * åˆ†é¡µåˆ—表查询
@@ -541,29 +564,6 @@
            //文件编码
            Cell fileCode = row.getCell(13);
            request.setFileCode(fileCode.getStringCellValue());
            Map<String, PictureData> pictures;
            if (isXSSFWorkbook) {
                pictures = PoiPublicUtil.getSheetPictrues07((XSSFSheet) book.getSheetAt(0), (XSSFWorkbook) book);
            } else {
                pictures = PoiPublicUtil.getSheetPictrues03((HSSFSheet) book.getSheetAt(0), (HSSFWorkbook) book);
            }
            if (CollectionUtil.isNotEmpty(pictures)) {
                //只会存在一张图片
                PictureData pictureData = pictures.get(pictures.keySet().iterator().next());
                byte[] data = pictureData.getData();
                String fileName = request.getEquipmentCode() + "[" + request.getFileCode() + "]" + "." + pictureData.suggestFileExtension();
                FileUploadResult fileUploadResult = FileUtil.uploadFile(data, fileName);
                if(fileUploadResult != null) {
                    List<FileUploadResult> fileList = request.getFileList();
                    if(fileList == null) {
                        fileList = new ArrayList<FileUploadResult>();
                    }
                    fileList.add(fileUploadResult);
                    request.setFileList(fileList);
                }
            }
        } catch (Exception e) {
            log.error("读取Excel信息失败:{}", e.getMessage(), e);
        }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamMaintenanceStandard.java
@@ -11,6 +11,7 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -76,6 +77,12 @@
    @ApiModelProperty(value = "保养周期;单位:天")
    private Integer maintenancePeriod;
    /**
     * ä¿å…»å‘¨æœŸå•位
     */
    @ApiModelProperty(value = "保养周期单位")
    @Dict(dicCode = "period_unit")
    private String periodUnit;
    /**
     * åˆå§‹æ—¥æœŸ ä»Žå“ªä¸€å¤©å¼€å§‹è®¡ç®—下次保养日期
     */
    @ApiModelProperty(value = "初始日期")
@@ -106,22 +113,61 @@
    @ApiModelProperty(value = "标准版本")
    private Integer standardVersion;
    /**
     * æ–‡ä»¶ç¼–号
     * ç¼–制人
     */
    @ApiModelProperty(value = "文件编号")
    private String fileCode;
    @ApiModelProperty(value = "编制人")
    private String designer;
    /**
     * å‚考文件
     * ç¼–制日期
     */
    @ApiModelProperty(value = "参考文件")
    private String referenceFile;
    @ApiModelProperty(value = "编制日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date designTime;
    /**
     * æœ€æ–°ç”Ÿæˆå·¥å•æ—¶é—´
     * ä¸‹ä¸€æ¬¡ç”Ÿæˆæ—¶é—´ä¸ºæ­¤æ—¶é—´ + ä¿å…»å‘¨æœŸ
     * ç»´ä¿®ä¸»ä»»
     */
    @ApiModelProperty(value = "最新生成工单时间")
    private Date lastGenerateTime;
    @ApiModelProperty(value = "维修主任")
    private String repairManager;
    /**
     * ç»´ä¿®ä¸»ä»»å®¡æ‰¹ç»“æžœ
     */
    @ApiModelProperty(value = "维修主任审批结果")
    private String repairManagerApproveResult;
    /**
     * ç»´ä¿®ä¸»ä»»å®¡æ‰¹æ—¶é—´
     */
    @ApiModelProperty(value = "维修主任审批时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date repairManagerApproveTime;
    /**
     * ç»´ä¿®ä¸»ä»»å®¡æ‰¹æ„è§
     */
    @ApiModelProperty(value = "维修主任审批意见")
    private String repairManagerApproveComment;
    /**
     * æŠ€æœ¯ä¸»ç®¡
     */
    @ApiModelProperty(value = "技术主管")
    private String technicalManager;
    /**
     * æŠ€æœ¯ä¸»ç®¡å®¡æ‰¹ç»“æžœ
     */
    @ApiModelProperty(value = "技术主管审批结果")
    private String technicalManagerApproveResult;
    /**
     * æŠ€æœ¯ä¸»ç®¡å®¡æ‰¹æ—¶é—´
     */
    @ApiModelProperty(value = "技术主管审批时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date technicalManagerApproveTime;
    /**
     * æŠ€æœ¯ä¸»ç®¡å®¡æ‰¹æ„è§
     */
    @ApiModelProperty(value = "技术主管审批意见")
    private String technicalManagerApproveComment;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
@@ -129,6 +175,8 @@
    private String equipmentName;
    @TableField(exist = false)
    private String keyword;
    @TableField(exist = false)
    private String equipmentModel;
    /**
     * è®¾å¤‡ç¼–号拼接
     */
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
@@ -85,9 +85,9 @@
                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                }
                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
                if (standard.getLastGenerateTime() != null) {
                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
                }
//                if (standard.getLastGenerateTime() != null) {
//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
//                }
                //加周期
                do {
                    //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/SecondMaintenanceOrderGenerateJob.java
@@ -82,9 +82,9 @@
                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                }
                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
                if (standard.getLastGenerateTime() != null) {
                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
                }
//                if (standard.getLastGenerateTime() != null) {
//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
//                }
                //加周期
                do {
                    //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单
@@ -122,7 +122,7 @@
                request.setTableDetailList(tableDetailList);
                eamSecondMaintenanceOrderService.addMaintenance(request);
                standard.setLastGenerateTime(new Date());
//                standard.setLastGenerateTime(new Date());
                eamMaintenanceStandardService.updateById(standard);
            }
            quartzLog.setIsSuccess(0);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/ThirdMaintenanceOrderGenerateJob.java
@@ -81,19 +81,19 @@
                    //设置初始日期为前一天
                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                }
                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
                if (standard.getLastGenerateTime() != null) {
                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
                }
//                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
//                if (standard.getLastGenerateTime() != null) {
//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
//                }
                //加周期
                do {
                    //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单
                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
                } while (now.isAfter(generateDate));
                if(!now.isEqual(generateDate)) {
                    //还未到生成日期,跳过执行
                    continue;
                }
//                do {
//                    //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单
//                    generateDate = generateDate.plusDays(standard.getMaintenancePeriod());
//                } while (now.isAfter(generateDate));
//                if(!now.isEqual(generateDate)) {
//                    //还未到生成日期,跳过执行
//                    continue;
//                }
                //获取保养项明细
                List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
                if(CollectionUtil.isEmpty(standardDetailList)) {
@@ -105,7 +105,7 @@
                EamThirdMaintenanceRequest request = new EamThirdMaintenanceRequest();
                request.setEquipmentId(standard.getEquipmentId());
                request.setStandardId(standard.getId());
                request.setMaintenanceDate(DateUtils.localDateToDate(generateDate));
//                request.setMaintenanceDate(DateUtils.localDateToDate(generateDate));
                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.THIRD_MAINTENANCE_CODE_RULE);
                request.setOrderNum(codeSeq);
                request.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
@@ -138,7 +138,7 @@
                }
                eamThirdMaintenanceOrderService.addMaintenance(request);
                standard.setLastGenerateTime(new Date());
//                standard.setLastGenerateTime(new Date());
                eamMaintenanceStandardService.updateById(standard);
            }
            quartzLog.setIsSuccess(0);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/WeekMaintenanceOrderGenerateJob.java
@@ -85,9 +85,9 @@
                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                }
                LocalDate generateDate = DateUtils.dateToLocalDate(standard.getInitialDate());
                if (standard.getLastGenerateTime() != null) {
                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
                }
//                if (standard.getLastGenerateTime() != null) {
//                    generateDate = DateUtils.dateToLocalDate(standard.getLastGenerateTime());
//                }
                //加周期
                do {
                    //初始日期设置的比较早,或任务长时间没执行,必须周期到今天才会生成工单
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/EamMaintenanceStandardMapper.xml
@@ -2,7 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper">
    <select id="queryPageList" resultType="org.jeecg.modules.eam.entity.EamMaintenanceStandard">
        select ems.*, e.equipment_code, e.equipment_name
        select ems.*, e.equipment_code, e.equipment_name,
               e.equipment_model
        from eam_maintenance_standard ems
        inner join eam_equipment e
        on ems.equipment_id = e.id
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamMaintenanceStandardRequest.java
@@ -7,6 +7,7 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.springframework.format.annotation.DateTimeFormat;
@@ -52,12 +53,12 @@
    /**文件编号*/
    @ApiModelProperty(value = "文件编号")
    private String fileCode;
    /**参考文件*/
    @ApiModelProperty(value = "参考文件")
    private String referenceFile;
    /**上传文件对系*/
    @ApiModelProperty(value = "上传文件对象")
    private List<FileUploadResult> fileList;
    /**
     * ä¿å…»å‘¨æœŸå•位
     */
    @ApiModelProperty(value = "保养周期单位")
    @Dict(dicCode = "period_unit")
    private String periodUnit;
    /**列表 ä¿å…»é¡¹æ˜Žç»†*/
    @ApiModelProperty(value = "列表 ä¿å…»é¡¹æ˜Žç»†")
    private List<EamMaintenanceStandardDetail> tableDetailList;
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -3,8 +3,10 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo;
import java.util.List;
@@ -64,4 +66,20 @@
     * @return
     */
    List<EamMaintenanceStandard> queryListByCategory(String maintenanceCategory);
    /**
     * æµç¨‹å¯åЍ,保存对应的数据
     * @param id
     * @return
     */
    Result<?> saveEamMaintenanceStandardProcess(String id);
    /**
     * å®¡æ‰¹æ“ä½œ
     * @param eamMaintenanceStandardVo
     * @return
     */
    Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -166,17 +166,6 @@
            });
            eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
        }
        //处理附件
        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) {
            FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0);
            ObjectMapper mapper = new ObjectMapper();
            try {
                String referenceFile = mapper.writeValueAsString(fileUploadResult);
                eamInspectionOrder.setImageFiles(referenceFile);
            } catch (JsonProcessingException e) {
                log.error("JSON转换失败:" + e.getMessage(), e);
            }
        }
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
            triggerProcess(eamInspectionOrder);
        }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -1,35 +1,55 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
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.FileUploadResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.base.entity.BaseFactory;
import org.jeecg.modules.eam.base.entity.BaseFactoryUser;
import org.jeecg.modules.eam.base.service.IBaseFactoryService;
import org.jeecg.modules.eam.base.service.IBaseFactoryUserService;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.eam.constant.MaintenanceStandardStatusEnum;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamMaintenanceStandard;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.mapper.EamMaintenanceStandardMapper;
import org.jeecg.modules.eam.request.EamMaintenanceStandardRequest;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardDetailService;
import org.jeecg.modules.eam.service.IEamMaintenanceStandardService;
import org.jeecg.modules.eam.vo.EamMaintenanceStandardVo;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
import org.jeecg.modules.flowable.apithird.service.FlowCommonService;
import org.jeecg.modules.flowable.service.IFlowDefinitionService;
import org.jeecg.modules.flowable.service.IFlowTaskService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -38,15 +58,31 @@
 * @Date:   2025-03-26
 * @Version: V1.0
 */
@Service
public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService {
@Service("IEamMaintenanceStandardService")
public class EamMaintenanceStandardServiceImpl extends ServiceImpl<EamMaintenanceStandardMapper, EamMaintenanceStandard> implements IEamMaintenanceStandardService , FlowCallBackServiceI {
    @Resource
    private EamMaintenanceStandardMapper eamMaintenanceStandardMapper;
    @Autowired
    private IEamMaintenanceStandardDetailService eamMaintenanceStandardDetailService;
    @Autowired
    private IBaseFactoryUserService baseFactoryUserService;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Resource
    private FlowCommonService flowCommonService;
    @Resource
    private IFlowDefinitionService flowDefinitionService;
    @Autowired
    private IFlowTaskService flowTaskService;
    @Autowired
    private TaskService taskService;
    @Autowired
    private IFlowMyBusinessService flowMyBusinessService;
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Override
    public IPage<EamMaintenanceStandard> queryPageList(Page<EamMaintenanceStandard> page, EamMaintenanceStandard eamMaintenanceStandard) {
        QueryWrapper<EamMaintenanceStandard> queryWrapper = new QueryWrapper<>();
@@ -56,13 +92,19 @@
        if (sysUser == null) {
            return page;
        }
        if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据车间过滤设备
            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                queryWrapper.in("e.factory_code", factoryCode);
            }
        }
        if(eamMaintenanceStandard != null) {
            //编码 æ¨¡ç³ŠæŸ¥è¯¢
@@ -71,7 +113,7 @@
            }
            //名称 æ¨¡ç³ŠæŸ¥è¯¢
            if(StringUtils.isNotBlank(eamMaintenanceStandard.getStandardName())) {
                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardCode());
                queryWrapper.like("ems.standard_name", eamMaintenanceStandard.getStandardName());
            }
            //设备
            if(StringUtils.isNotBlank(eamMaintenanceStandard.getEquipmentId())) {
@@ -100,13 +142,8 @@
    @Transactional(rollbackFor = Exception.class)
    public boolean addMaintenanceStandard(EamMaintenanceStandardRequest standardRequest) {
        EamMaintenanceStandard entity = new EamMaintenanceStandard();
        entity.setStandardCode(standardRequest.getStandardCode());
        entity.setStandardName(standardRequest.getStandardName());
        entity.setMaintenanceCategory(standardRequest.getMaintenanceCategory());
        entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod());
        entity.setInitialDate(standardRequest.getInitialDate());
        entity.setFileCode(standardRequest.getFileCode());
        entity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
        BeanUtils.copyProperties(standardRequest, entity);
        entity.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        //版本递增
        entity.setStandardVersion(CommonConstant.OPERATE_TYPE_1);
        //设备处理
@@ -117,17 +154,6 @@
        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory());
        if(exist != null){
            throw new JeecgBootException("设备标准已存在,不能重复添加!");
        }
        //处理附件
        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
            ObjectMapper mapper = new ObjectMapper();
            try {
                String referenceFile = mapper.writeValueAsString(fileUploadResult);
                entity.setReferenceFile(referenceFile);
            } catch (JsonProcessingException e) {
                log.error("JSON转换失败:" + e.getMessage(), e);
            }
        }
        eamMaintenanceStandardMapper.insert(entity);
        //处理明细数据
@@ -149,20 +175,6 @@
        }
        entity.setStandardName(standardRequest.getStandardName());
        entity.setMaintenancePeriod(standardRequest.getMaintenancePeriod());
        entity.setFileCode(standardRequest.getFileCode());
        //处理附件
        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
            ObjectMapper mapper = new ObjectMapper();
            try {
                String referenceFile = mapper.writeValueAsString(fileUploadResult);
                entity.setReferenceFile(referenceFile);
            } catch (JsonProcessingException e) {
                log.error("JSON转换失败:" + e.getMessage(), e);
            }
        }else {
            entity.setReferenceFile(null);
        }
        eamMaintenanceStandardMapper.updateById(entity);
        //处理详情
        if(CollectionUtil.isNotEmpty(standardRequest.getTableDetailList())) {
@@ -208,8 +220,7 @@
        newEntity.setMaintenanceCategory(standardRequest.getMaintenanceCategory());
        newEntity.setMaintenancePeriod(standardRequest.getMaintenancePeriod());
        newEntity.setInitialDate(standardRequest.getInitialDate());
        newEntity.setFileCode(standardRequest.getFileCode());
        newEntity.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
        newEntity.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        //版本递增
        newEntity.setStandardVersion(entity.getStandardVersion() + 1);
        //设备处理
@@ -220,17 +231,6 @@
        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory());
        if(exist != null){
            throw new JeecgBootException("设备标准已存在,不能重复添加!");
        }
        //处理附件
        if(CollectionUtil.isNotEmpty(standardRequest.getFileList())) {
            FileUploadResult fileUploadResult = standardRequest.getFileList().get(0);
            ObjectMapper mapper = new ObjectMapper();
            try {
                String referenceFile = mapper.writeValueAsString(fileUploadResult);
                newEntity.setReferenceFile(referenceFile);
            } catch (JsonProcessingException e) {
                log.error("JSON转换失败:" + e.getMessage(), e);
            }
        }
        eamMaintenanceStandardMapper.insert(newEntity);
        //处理明细数据
@@ -254,7 +254,7 @@
        queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion);
        List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper);
@@ -277,7 +277,7 @@
        query.setEquipmentId(equipmentId);
        query.setKeyword(keyword);
        query.setMaintenanceCategory(maintenanceCategory);
        query.setStandardStatus(MaintenanceStandardStatusEnum.NORMAL.name());
        query.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        IPage<EamMaintenanceStandard> pageData = this.queryPageList(page, query);
        return pageData.getRecords();
    }
@@ -287,7 +287,192 @@
        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.NORMAL.name());
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        return eamMaintenanceStandardMapper.selectList(queryWrapper);
    }
    /*流程业务代码--------------------------开始*/
    /**
     * æµç¨‹å¯åЍ,保存对应的数据
     * @param id
     * @return
     */
    @Override
    public Result<?> saveEamMaintenanceStandardProcess(String id){
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        EamMaintenanceStandard maintenanceStandard=this.getById(id);
        if (maintenanceStandard==null){
            return Result.error("未找到对应保养标准");
        }
        System.out.println("保养规范流程:" + maintenanceStandard.getId());
        flowCommonService.initActBusiness(maintenanceStandard.getStandardName()+"规范进行流程审核",
                maintenanceStandard.getId(), "IEamMaintenanceStandardService", "eam_maintenance_standard", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", maintenanceStandard.getId());
        variables.put("organization", "保养规范启动流程");
        variables.put("comment", "保养规范启动流程");
        variables.put("proofreading",true);
        Result result= flowDefinitionService.startProcessInstanceByKey("eam_maintenance_standard", variables);
        if (!result.isSuccess()) {
            super.removeById(maintenanceStandard.getId());
        }else {
            maintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_REPAIR_DIRECTOR.name());
            maintenanceStandard.setDesigner(user.getUsername());
            maintenanceStandard.setDesignTime(new Date());
            eamMaintenanceStandardMapper.updateById(maintenanceStandard);
            //获取flow的流程实例id,设置下一步的处理人员
            List<FlowMyBusiness> businessList = flowMyBusinessService.list(
                    new QueryWrapper<FlowMyBusiness>()
                            .eq("data_id", maintenanceStandard.getId())
            );
            if (businessList.isEmpty()) {
                return Result.error("流程记录不存在");
            }
            FlowMyBusiness flowMyBusiness = businessList.get(0);
            EamEquipment eamEquipment=eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
            BaseFactory baseFactory=baseFactoryService.getOne(new QueryWrapper<BaseFactory>().eq("org_code", eamEquipment.getFactoryOrgCode()));
            List<UserSelector> userSelectorList=sysUserService.selectOperatorFactoryList(eamEquipment.getEquipmentCode(),baseFactory.getId(), BusinessCodeConst.PCR0007);
            if (!CollectionUtils.isEmpty(userSelectorList)) {
                List<String> usernameList=userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                flowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList));
                flowMyBusinessService.updateById(flowMyBusiness);
            }
        }
        return result;
    }
    /**
     * å®¡æ‰¹æ“ä½œ
     * @param eamMaintenanceStandardVo
     * @return
     */
    @Override
    public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo){
        try {
            // å‚数校验
            if (StrUtil.isEmpty(eamMaintenanceStandardVo.getTaskId()) || StrUtil.isEmpty(eamMaintenanceStandardVo.getDataId())) {
                return Result.error("参数错误");
            }
            LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            String userId = user.getId();
            eamMaintenanceStandardVo.setAssignee(user.getUsername());
            if (StrUtil.isEmpty(userId)) {
                return Result.error("未找到对应用户");
            }
            // æ•°æ®æŸ¥è¯¢
            EamMaintenanceStandard eamMaintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId());
            if (eamMaintenanceStandard == null) {
                return Result.error("未找到对应保养标准");
            }
            // 2. æŸ¥è¯¢æµç¨‹ä¸šåŠ¡è®°å½•ï¼ˆå¤„ç†ç©ºç»“æžœï¼‰
            List<FlowMyBusiness> businessList = flowMyBusinessService.list(
                    new QueryWrapper<FlowMyBusiness>()
                            .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId())
            );
            if (businessList.isEmpty()) {
                return Result.error("流程记录不存在");
            }
            FlowMyBusiness flowMyBusiness = businessList.get(0);
            // 3. æ ¡éªŒç”¨æˆ·æ˜¯å¦ä¸ºå€™é€‰å¤„理人
            List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class);
            if (todoUsers == null || !todoUsers.contains(user.getUsername())) {
                return Result.error("用户无权操作此任务");
            }
            // 4. è®¤é¢†ä»»åŠ¡ï¼ˆå¤„ç†å·²è¢«è®¤é¢†çš„æƒ…å†µï¼‰
            String taskId = flowMyBusiness.getTaskId();
            Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
            if (task == null) {
                return Result.error("任务不存在或已完成");
            }
            if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) {
                return Result.error("任务已被他人认领");
            }
            taskService.claim(taskId, user.getUsername());
            // è®¾ç½®æµç¨‹å˜é‡
            Map<String, Object> values = setProcessVariables(eamMaintenanceStandard, userId, eamMaintenanceStandardVo);
            eamMaintenanceStandardVo.setValues(values);
            // å®Œæˆæµç¨‹ä»»åŠ¡
            Result result = flowTaskService.complete(eamMaintenanceStandardVo);
            if (result.isSuccess()) {
                if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
                    if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")){
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name());
                    }else {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
                    }
                    eamMaintenanceStandard.setRepairManager(user.getUsername());
                    eamMaintenanceStandard.setRepairManagerApproveResult(eamMaintenanceStandardVo.getRepairManagerApproveResult());
                    eamMaintenanceStandard.setRepairManagerApproveTime(new Date());
                    eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment());
                }
                if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) {
                    if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")){
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name());
                    }else {
                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
                    }
                    eamMaintenanceStandard.setTechnicalManager(user.getUsername());
                    eamMaintenanceStandard.setTechnicalManagerApproveResult(eamMaintenanceStandardVo.getTechnicalManagerApproveResult());
                    eamMaintenanceStandard.setTechnicalManagerApproveTime(new Date());
                    eamMaintenanceStandard.setTechnicalManagerApproveComment(eamMaintenanceStandardVo.getComment());
                }
                this.updateById(eamMaintenanceStandard);
            } else {
                return result;
            }
            return Result.OK("操作成功");
        } catch (Exception e) {
            return Result.error("操作失败:" + e.getMessage());
        }
    }
    private Map<String, Object> setProcessVariables(EamMaintenanceStandard eamMaintenanceStandard, String userId, EamMaintenanceStandardVo eamMaintenanceStandardVo) {
        Map<String, Object> values = new HashMap<>();
        values.put("dataId", eamMaintenanceStandard.getId());
        values.put("assignee", userId);
        values.put("organization", eamMaintenanceStandardVo.getComment());
        values.put("comment", eamMaintenanceStandardVo.getComment());
        if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
            values.put("repairManagerApproveResult", eamMaintenanceStandardVo.getRepairManagerApproveResult());
        }
        if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) {
            values.put("technicalManagerApproveResult", eamMaintenanceStandardVo.getTechnicalManagerApproveResult());
        }
        return values;
    }
    @Override
    public void afterFlowHandle(FlowMyBusiness business) {
        business.getTaskNameId();//接下来审批的节点
        business.getValues();//前端传进来的参数
        business.getActStatus();
    }
    @Override
    public Object getBusinessDataById(String dataId) {
        return this.getById(dataId);
    }
    @Override
    public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) {
        return null;
    }
    @Override
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        //业务是否干预流程,业务干预,流程干预,指定人员进行处理
        return null;
    }
    /*流程业务代码--------------------------结束*/
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/EamMaintenanceStandardVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
package org.jeecg.modules.eam.vo;
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 com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: ä¿å…»æ ‡å‡†
 * @Author: jeecg-boot
 * @Date: 2025-03-26
 * @Version: V1.0
 */
@Data
@ApiModel(description = "保养标准---工作流相关")
public class EamMaintenanceStandardVo extends FlowTaskVo {
    /**
     * ç¼–制人
     */
    @ApiModelProperty(value = "编制人")
    private String designer;
    /**
     * ç¼–制日期
     */
    @ApiModelProperty(value = "编制日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date designTime;
    /**
     * ç»´ä¿®ä¸»ä»»
     */
    @ApiModelProperty(value = "维修主任")
    private String repairManager;
    /**
     * ç»´ä¿®ä¸»ä»»å®¡æ‰¹ç»“æžœ
     */
    @ApiModelProperty(value = "维修主任审批结果")
    private String repairManagerApproveResult;
    /**
     * ç»´ä¿®ä¸»ä»»å®¡æ‰¹æ—¶é—´
     */
    @ApiModelProperty(value = "维修主任审批时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date repairManagerApproveTime;
    /**
     * ç»´ä¿®ä¸»ä»»å®¡æ‰¹æ„è§
     */
    @ApiModelProperty(value = "维修主任审批意见")
    private String repairManagerApproveComment;
    /**
     * æŠ€æœ¯ä¸»ç®¡
     */
    @ApiModelProperty(value = "技术主管")
    private String technicalManager;
    /**
     * æŠ€æœ¯ä¸»ç®¡å®¡æ‰¹ç»“æžœ
     */
    @ApiModelProperty(value = "技术主管审批结果")
    private String technicalManagerApproveResult;
    /**
     * æŠ€æœ¯ä¸»ç®¡å®¡æ‰¹æ—¶é—´
     */
    @ApiModelProperty(value = "技术主管审批时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date technicalManagerApproveTime;
    /**
     * æŠ€æœ¯ä¸»ç®¡å®¡æ‰¹æ„è§
     */
    @ApiModelProperty(value = "技术主管审批意见")
    private String technicalManagerApproveComment;
    //列表展示
    @TableField(exist = false)
    private String equipmentCode;
    @TableField(exist = false)
    private String equipmentName;
    @TableField(exist = false)
    private String keyword;
    @TableField(exist = false)
    private String equipmentModel;
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java
@@ -352,6 +352,15 @@
    /**
     * é€‰æ‹©ç”¨æˆ·
     * @param equipmentCode é€‰æ‹©çš„设备ID
     * @param factoryId é€‰æ‹©çš„车间ID
     * @param positionCode å²—位编号
     * @return
     */
    List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode);
    /**
     * é€‰æ‹©ç”¨æˆ·
     * @param positionCode å²—位编号
     * @return
     */
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java
@@ -791,6 +791,31 @@
        return collect;
    }
    /**
     * é€‰æ‹©ç”¨æˆ·
     * @param equipmentCode é€‰æ‹©çš„设备ID
     * @param factoryId é€‰æ‹©çš„工厂ID
     * @param positionCode å²—位编号
     * @return
     */
    @Override
    public List<UserSelector> selectOperatorFactoryList(String equipmentCode, String factoryId, String positionCode){
        LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysUser::getPost, positionCode);
//        if(StringUtils.isNotBlank(equipmentCode)) {
//            queryWrapper.and(q -> q.isNull(SysUser::getEquipmentIds).or().eq(SysUser::getEquipmentIds, "").or().like(SysUser::getEquipmentIds, equipmentCode));
//        }
//        if(StringUtils.isNotBlank(factoryId)) {
//            queryWrapper.exists("select 1 from eam_base_factory_user t where t.user_id=sys_user.id and t.factory_id={0}", factoryId);
//        }
        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<>();