lyh
2025-07-08 6a8e048ed345c93210a2a99989d060b4c7d464f0
Merge remote-tracking branch 'origin/master'
已添加1个文件
已修改16个文件
494 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationCheckCategoryEnum.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/util/DateUtils.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardDetailController.java 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekInspectionDetailController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandard.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandardDetail.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationStandardRequest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardDetailService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardDetailServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardServiceImpl.java 113 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/TechnicalStatusEvaluationCheckCategoryEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package org.jeecg.modules.eam.constant;
public enum TechnicalStatusEvaluationCheckCategoryEnum {
    SAFETY_EQUIPMENT_CHECK, //安全装置检查
    PRECISION_CHECK, //精度检查
    OTHER_CHECK, //其他检查
    ;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/util/DateUtils.java
@@ -1092,27 +1092,62 @@
     * èŽ·å–æœ¬å‘¨çš„ç¬¬ä¸€å¤©æ—¥æœŸï¼Œ æ ¼å¼ä¸ºï¼šyyyy-MM-dd
     * @return
     */
    public static Date getFirstDayOfWeek() {
        // èŽ·å–æœ¬å‘¨ç¬¬ä¸€å¤©ï¼ˆå‘¨ä¸€ï¼‰çš„ LocalDate
        LocalDate today = LocalDate.now();
        LocalDate firstDayOfWeek = today.with(DayOfWeek.MONDAY);
    public static Date getFirstDayOfWeek(String date) {
        // å°† java.util.Date è½¬æ¢ä¸º LocalDate
        LocalDate localDate = LocalDate.parse(date);
        // å¦‚果需要转换为传统的 Date ç±»åž‹ï¼ˆå¯é€‰ï¼‰
        java.sql.Date sqlDate = java.sql.Date.valueOf(firstDayOfWeek);
        return new Date(sqlDate.getTime());
        // èŽ·å–æœ¬å‘¨ç¬¬ä¸€å¤©ï¼ˆå‘¨ä¸€ï¼‰
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.MONDAY);
        // è½¬æ¢å›ž java.sql.Date ç±»åž‹
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
    /**
     * èŽ·å–æœ¬å‘¨çš„ç¬¬ä¸€å¤©æ—¥æœŸï¼Œ æ ¼å¼ä¸ºï¼šyyyy-MM-dd
     * @return
     */
    public static Date getFirstDayOfWeek(Date date) {
        // å°† java.util.Date è½¬æ¢ä¸º LocalDate
        LocalDate localDate = date.toInstant()
                .atZone(ZoneId.systemDefault())
                .toLocalDate();
        // èŽ·å–æœ¬å‘¨ç¬¬ä¸€å¤©ï¼ˆå‘¨ä¸€ï¼‰
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.MONDAY);
        // è½¬æ¢å›ž java.sql.Date ç±»åž‹
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
    /**
     * èŽ·å–æœ¬å‘¨çš„æœ€åŽä¸€å¤©æ—¥æœŸï¼Œ æ ¼å¼ä¸ºï¼šyyyy-MM-dd
     * @return
     */
    public static Date getLastDayOfWeek() {
        // èŽ·å–æœ¬å‘¨ç¬¬ä¸€å¤©ï¼ˆå‘¨ä¸€ï¼‰çš„ LocalDate
        LocalDate today = LocalDate.now();
        LocalDate firstDayOfWeek = today.with(DayOfWeek.SUNDAY);
    public static Date getLastDayOfWeek(String date) {
        // å°† java.util.Date è½¬æ¢ä¸º LocalDate
        LocalDate localDate = LocalDate.parse(date);
        // å¦‚果需要转换为传统的 Date ç±»åž‹ï¼ˆå¯é€‰ï¼‰
        java.sql.Date sqlDate = java.sql.Date.valueOf(firstDayOfWeek);
        return new Date(sqlDate.getTime());
        // èŽ·å–æœ¬å‘¨ç¬¬ä¸€å¤©ï¼ˆå‘¨ä¸€ï¼‰
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.SUNDAY);
        // è½¬æ¢å›ž java.sql.Date ç±»åž‹
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
    /**
     * èŽ·å–æœ¬å‘¨çš„æœ€åŽä¸€å¤©æ—¥æœŸï¼Œ æ ¼å¼ä¸ºï¼šyyyy-MM-dd
     * @return
     */
    public static Date getLastDayOfWeek(Date date) {
        // å°† java.util.Date è½¬æ¢ä¸º LocalDate
        LocalDate localDate = date.toInstant()
                .atZone(ZoneId.systemDefault())
                .toLocalDate();
        // èŽ·å–æœ¬å‘¨ç¬¬ä¸€å¤©ï¼ˆå‘¨ä¸€ï¼‰
        LocalDate firstDayOfWeek = localDate.with(DayOfWeek.SUNDAY);
        // è½¬æ¢å›ž java.sql.Date ç±»åž‹
        return java.sql.Date.valueOf(firstDayOfWeek);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamInspectionOrderController.java
@@ -108,8 +108,7 @@
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE);
        eamInspectionOrderRequest.setOrderNum(codeSeq);
        eamInspectionOrderRequest.setCreationMethod(String.valueOf(OrderCreationMethodEnum.MANUAL));
        eamInspectionOrderService.addInspectionOrder(eamInspectionOrderRequest);
        return Result.OK("添加成功!");
        return eamInspectionOrderService.addInspectionOrder(eamInspectionOrderRequest);
    }
    /**
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamTechnicalStatusEvaluationStandardDetailController.java
@@ -1,24 +1,20 @@
package org.jeecg.modules.eam.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šè§„èŒƒæ˜Žç»†
@@ -32,98 +28,24 @@
@RequestMapping("/eam/eamTechnicalStatusEvaluationStandardDetail")
public class EamTechnicalStatusEvaluationStandardDetailController extends JeecgController<EamTechnicalStatusEvaluationStandardDetail, IEamTechnicalStatusEvaluationStandardDetailService> {
    @Autowired
    private IEamTechnicalStatusEvaluationStandardDetailService eamTechnicalStatusEvaluationStandardDetailService;
    private IEamTechnicalStatusEvaluationStandardDetailService standardDetailService;
    /**
     * åˆ†é¡µåˆ—表查询
     * ä¸€æ¬¡åŠ è½½
     *
     * @param eamTechnicalStatusEvaluationStandardDetail
     * @param pageNo
     * @param pageSize
     * @param req
     * @param standardId
     * @return
     */
    @AutoLog(value = "技术状态鉴定规范明细-分页列表查询")
    @ApiOperation(value = "技术状态鉴定规范明细-分页列表查询", notes = "技术状态鉴定规范明细-分页列表查询")
    @GetMapping(value = "/list")
    public Result<?> queryPageList(EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail,
                                   @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                   @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamTechnicalStatusEvaluationStandardDetail> queryWrapper = QueryGenerator.initQueryWrapper(eamTechnicalStatusEvaluationStandardDetail, req.getParameterMap());
        Page<EamTechnicalStatusEvaluationStandardDetail> page = new Page<EamTechnicalStatusEvaluationStandardDetail>(pageNo, pageSize);
        IPage<EamTechnicalStatusEvaluationStandardDetail> pageList = eamTechnicalStatusEvaluationStandardDetailService.page(page, queryWrapper);
        return Result.OK(pageList);
    @ApiOperation(value = "技术状态鉴定规范明细-不分页列表查询", notes = "技术状态鉴定规范明细-不分页列表查询")
    @GetMapping(value = "/queryList")
    public Result<?> queryList(@RequestParam("standardId") String standardId) {
        LambdaQueryWrapper<EamTechnicalStatusEvaluationStandardDetail> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamTechnicalStatusEvaluationStandardDetail::getStandardId, standardId);
        queryWrapper.orderByAsc(EamTechnicalStatusEvaluationStandardDetail::getCheckCategory);
        queryWrapper.orderByAsc(EamTechnicalStatusEvaluationStandardDetail::getItemCode);
        List<EamTechnicalStatusEvaluationStandardDetail> list = standardDetailService.list(queryWrapper);
        return Result.OK(list);
    }
    /**
     * æ·»åŠ 
     *
     * @param eamTechnicalStatusEvaluationStandardDetail
     * @return
     */
    @AutoLog(value = "技术状态鉴定规范明细-添加")
    @ApiOperation(value = "技术状态鉴定规范明细-添加", notes = "技术状态鉴定规范明细-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail) {
        eamTechnicalStatusEvaluationStandardDetailService.save(eamTechnicalStatusEvaluationStandardDetail);
        return Result.OK("添加成功!");
    }
    /**
     * ç¼–辑
     *
     * @param eamTechnicalStatusEvaluationStandardDetail
     * @return
     */
    @AutoLog(value = "技术状态鉴定规范明细-编辑")
    @ApiOperation(value = "技术状态鉴定规范明细-编辑", notes = "技术状态鉴定规范明细-编辑")
    @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<?> edit(@RequestBody EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail) {
        eamTechnicalStatusEvaluationStandardDetailService.updateById(eamTechnicalStatusEvaluationStandardDetail);
        return Result.OK("编辑成功!");
    }
    /**
     * é€šè¿‡id删除
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定规范明细-通过id删除")
    @ApiOperation(value = "技术状态鉴定规范明细-通过id删除", notes = "技术状态鉴定规范明细-通过id删除")
    @DeleteMapping(value = "/delete")
    public Result<?> delete(@RequestParam(name = "id", required = true) String id) {
        eamTechnicalStatusEvaluationStandardDetailService.removeById(id);
        return Result.OK("删除成功!");
    }
    /**
     * æ‰¹é‡åˆ é™¤
     *
     * @param ids
     * @return
     */
    @AutoLog(value = "技术状态鉴定规范明细-批量删除")
    @ApiOperation(value = "技术状态鉴定规范明细-批量删除", notes = "技术状态鉴定规范明细-批量删除")
    @DeleteMapping(value = "/deleteBatch")
    public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
        this.eamTechnicalStatusEvaluationStandardDetailService.removeByIds(Arrays.asList(ids.split(",")));
        return Result.OK("批量删除成功!");
    }
    /**
     * é€šè¿‡id查询
     *
     * @param id
     * @return
     */
    @AutoLog(value = "技术状态鉴定规范明细-通过id查询")
    @ApiOperation(value = "技术状态鉴定规范明细-通过id查询", notes = "技术状态鉴定规范明细-通过id查询")
    @GetMapping(value = "/queryById")
    public Result<?> queryById(@RequestParam(name = "id", required = true) String id) {
        EamTechnicalStatusEvaluationStandardDetail eamTechnicalStatusEvaluationStandardDetail = eamTechnicalStatusEvaluationStandardDetailService.getById(id);
        return Result.OK(eamTechnicalStatusEvaluationStandardDetail);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamWeekInspectionDetailController.java
@@ -6,14 +6,14 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.eam.constant.InspectionItemCategroyEnum;
import org.jeecg.modules.eam.entity.EamMaintenanceStandardDetail;
import org.jeecg.modules.eam.entity.EamWeekInspectionDetail;
import org.jeecg.modules.eam.service.IEamWeekInspectionDetailService;
import org.jeecg.modules.eam.util.DateUtils;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
@@ -39,10 +39,10 @@
     */
    @ApiOperation(value = "周点检工单明细-日点检规范列表查询", notes = "周点检工单明细-日点检规范列表查询")
    @GetMapping(value = "/queryStandardList")
    public Result<?> queryStandardList(@RequestParam("standardId") String standardId) {
    public Result<?> queryStandardList(@RequestParam("standardId") String standardId, @RequestParam("inspectionDate") String inspectionDate) {
        LambdaQueryWrapper<EamWeekInspectionDetail> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamWeekInspectionDetail::getStandardId, standardId);
        queryWrapper.between(EamWeekInspectionDetail::getPlanInspectionDate, DateUtils.getFirstDayOfWeek(), DateUtils.getLastDayOfWeek());
        queryWrapper.between(EamWeekInspectionDetail::getPlanInspectionDate, DateUtils.getFirstDayOfWeek(inspectionDate), DateUtils.getLastDayOfWeek(inspectionDate));
        queryWrapper.orderByAsc(EamWeekInspectionDetail::getItemCode);
        List<EamWeekInspectionDetail> list = eamWeekInspectionDetailService.list(queryWrapper);
        return Result.OK(list);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandard.java
@@ -8,6 +8,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.util.Date;
@@ -57,6 +58,7 @@
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**规范状态;待提交、启用、作废*/
    @Dict(dicCode = "technical_status_evaluation_standard_status")
    @ApiModelProperty(value = "规范状态;待提交、启用、作废")
    private String standardStatus;
    /**是否有安全装置检查;是否*/
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamTechnicalStatusEvaluationStandardDetail.java
@@ -12,6 +12,7 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
@@ -33,25 +34,22 @@
    @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;
    /**规范ID*/
    @Excel(name = "规范ID", width = 15)
    @ApiModelProperty(value = "规范ID")
    private String standardId;
    /**检查分类;精度检查、安全装置检查、其他检查*/
    @Excel(name = "检查分类;精度检查、安全装置检查、其他检查", width = 15)
    @Dict(dicCode = "technical_status_evaluation_check_category")
    @ApiModelProperty(value = "检查分类;精度检查、安全装置检查、其他检查")
    private String checkCategory;
    /**项目序号*/
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderExpiredJob.java
@@ -59,11 +59,8 @@
                return;
            }
            for (EamInspectionOrder order : unCompleteOrderList) {
                if (InspectionStatus.WAIT_INSPECTION.name().equals(order.getInspectionStatus())) {
                    order.setInspectionStatus(InspectionStatus.EXPIRED.name());
                } else if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus())) {
                    //已经被接单 ä½†æœªæ‰§è¡Œå®Œæˆ
                    order.setInspectionStatus(InspectionStatus.EXPIRED.name());
                order.setInspectionStatus(InspectionStatus.EXPIRED.name());
                if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus())) {
                    //强制结束流程 åˆ é™¤ç”¨æˆ·çš„æ­¤å¾…办任务
                    FlowMyBusiness flowMyBusiness = flowMyBusinessService.selectByDataId(order.getId());
                    if (flowMyBusiness != null) {
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/InspectionOrderGenerateJob.java
@@ -69,7 +69,7 @@
         */
        List<EamMaintenanceStandard> standardList = eamMaintenanceStandardService.queryListByCategory(MaintenanceCategoryEnum.POINT_INSPECTION.name());
        if (CollectionUtil.isEmpty(standardList)) {
            log.warn("没有配置任何周保标准,任务结束");
            log.warn("没有配置任何点检标准,任务结束");
            return;
        }
        //当前日期
@@ -85,21 +85,18 @@
                    standard.setInitialDate(DateUtils.localDateToDate(now.minusDays(1)));
                }
                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)) {
                if (!now.isEqual(generateDate)) {
                    //还未到生成日期,跳过执行
                    continue;
                }
                //获取保养项明细
                List<EamMaintenanceStandardDetail> standardDetailList = eamMaintenanceStandardDetailService.selectByStandardId(standard.getId());
                if(CollectionUtil.isEmpty(standardDetailList)) {
                if (CollectionUtil.isEmpty(standardDetailList)) {
                    log.error("点检标准没有保养明细,请先配置保养明细, standard:{}", standard);
                    continue;
                }
@@ -112,13 +109,11 @@
                request.setCreationMethod(OrderCreationMethodEnum.AUTO.name());
                String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.INSPECTION_ORDER_CODE_RULE);
                request.setOrderNum(codeSeq);
                List<EamInspectionOrderDetail> collect = standardDetailList.stream().map(EamInspectionOrderDetail::new).collect(Collectors.toList());
                request.setTableDetailList(collect);
                eamInspectionOrderService.addInspectionOrder(request);
            }
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            log.error("周保过生成执行定时任务失败,{}", e.getMessage(), e);
            log.error("点检生成执行定时任务失败,{}", e.getMessage(), e);
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
        }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamInspectionOrderRequest.java
@@ -1,19 +1,15 @@
package org.jeecg.modules.eam.request;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
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.EamInspectionOrderDetail;
import org.jeecg.modules.eam.entity.EamWeekInspectionDetail;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
@@ -98,13 +94,6 @@
    /**备注*/
    @ApiModelProperty(value = "备注-点检工单创建备注")
    private String remark;
    /**照片文件ids;id以逗号分隔*/
    @ApiModelProperty(value = "照片文件ids;id以逗号分隔")
    private String imageFiles;
    /**上传文件对系*/
    @ApiModelProperty(value = "上传文件对象")
    private List<FileUploadResult> fileList;
    /**列表 ä¿å…»é¡¹æ˜Žç»†*/
    @ApiModelProperty(value = "列表 ä¿å…»é¡¹æ˜Žç»†")
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamTechnicalStatusEvaluationStandardRequest.java
@@ -30,12 +30,17 @@
    /**设备ID*/
    @ApiModelProperty(value = "设备ID")
    private String equipmentId;
    /**是否有安全装置检查;是否*/
    @ApiModelProperty(value = "是否有安全装置检查;是否")
    private String hasSafetyEquipmentCheck;
    /**是否有设备精度检查;是否*/
    @ApiModelProperty(value = "是否有设备精度检查;是否")
    private String hasPrecisionCheck;
    /**是否有其他检查;是否*/
    @ApiModelProperty(value = "是否有其他检查;是否")
    private String hasOtherCheck;
    /**列表 æ£€æŸ¥é¡¹æ˜Žç»†*/
    @ApiModelProperty(value = "列表 æ£€æŸ¥é¡¹æ˜Žç»†")
    private List<EamTechnicalStatusEvaluationStandardDetail> tableDetailList;
    /**删除 æ£€æŸ¥é¡¹æ˜Žç»†*/
    @ApiModelProperty(value = "删除 æ£€æŸ¥é¡¹æ˜Žç»†")
    private List<EamTechnicalStatusEvaluationStandardDetail> removeDetailList;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamInspectionOrderService.java
@@ -27,7 +27,7 @@
     * @param eamInspectionOrderRequest
     * @return
     */
    boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest);
    Result<String> addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest);
    /**
     * ç¼–辑点检工单
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationStandardDetailService.java
@@ -11,4 +11,9 @@
 */
public interface IEamTechnicalStatusEvaluationStandardDetailService extends IService<EamTechnicalStatusEvaluationStandardDetail> {
    /**
     * æ ¹æ®è§„范ID删除检查项
     * @param standardId
     */
    void removeByStandardId(String standardId);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -99,11 +99,11 @@
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
            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());
                List<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
                queryWrapper.in("e.factory_code", factoryCode);
            }
        }
@@ -156,33 +156,50 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
    public Result<String> addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
        List<EamInspectionOrder> eamInspectionOrders = eamInspectionOrderMapper.selectList(new LambdaQueryWrapper<EamInspectionOrder>().eq(EamInspectionOrder::getStandardId, eamInspectionOrderRequest.getStandardId()).eq(EamInspectionOrder::getInspectionDate, eamInspectionOrderRequest.getInspectionDate()).ne(EamInspectionOrder::getInspectionStatus, InspectionStatus.ABOLISH.name()));
        if (CollectionUtils.isNotEmpty(eamInspectionOrders)) {
            return Result.error("添加失败,系统已存在当前日期工单!");
        }
        EamInspectionOrder eamInspectionOrder = new EamInspectionOrder();
        BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder);
        //修改状态
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
        } else {
            eamInspectionOrder.setInspectionStatus(InspectionStatus.WAIT_INSPECTION.name());
        }
        eamInspectionOrder.setInspectionStatus(InspectionStatus.WAIT_INSPECTION.name());
        eamInspectionOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
        save(eamInspectionOrder);
        //处理明细数据
        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
            eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setOrderId(eamInspectionOrder.getId());
                tableDetail.setId(null);
            });
            eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
        //处理日点检明细数据
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getStandardId())) {
            List<EamMaintenanceStandardDetail> maintenanceStandardDetailList = eamMaintenanceStandardDetailService.list(new LambdaQueryWrapper<EamMaintenanceStandardDetail>().eq(EamMaintenanceStandardDetail::getStandardId, eamInspectionOrderRequest.getStandardId()).eq(EamMaintenanceStandardDetail::getItemCategory, InspectionItemCategroyEnum.DAY_INSPECTION.name()));
            if (CollectionUtils.isNotEmpty(maintenanceStandardDetailList)) {
                List<EamInspectionOrderDetail> inspectionOrderList = maintenanceStandardDetailList.stream().map(EamInspectionOrderDetail::new).collect(Collectors.toList());
                inspectionOrderList.forEach(tableDetail -> {
                    tableDetail.setOrderId(eamInspectionOrder.getId());
                    tableDetail.setId(null);
                });
                eamInspectionOrderDetailService.saveBatch(inspectionOrderList);
            }
        }
        //处理周点检明细数据
        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableWeekDetailList())) {
            eamWeekInspectionDetailService.saveOrUpdateBatch(eamInspectionOrderRequest.getTableWeekDetailList());
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getStandardId()) && eamInspectionOrderRequest.getInspectionDate() != null) {
            LambdaQueryWrapper<EamWeekInspectionDetail> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(EamWeekInspectionDetail::getStandardId, eamInspectionOrderRequest.getStandardId());
            queryWrapper.between(EamWeekInspectionDetail::getPlanInspectionDate, DateUtils.getFirstDayOfWeek(eamInspectionOrderRequest.getInspectionDate()), DateUtils.getLastDayOfWeek(eamInspectionOrderRequest.getInspectionDate()));
            queryWrapper.orderByAsc(EamWeekInspectionDetail::getItemCode);
            List<EamWeekInspectionDetail> eamWeekInspectionDetailList = eamWeekInspectionDetailService.list(queryWrapper);
            if (CollectionUtil.isEmpty(eamWeekInspectionDetailList)) {
                List<EamMaintenanceStandardDetail> maintenanceStandardDetailList = eamMaintenanceStandardDetailService.list(new LambdaQueryWrapper<EamMaintenanceStandardDetail>().eq(EamMaintenanceStandardDetail::getStandardId, eamInspectionOrderRequest.getStandardId()).eq(EamMaintenanceStandardDetail::getItemCategory, InspectionItemCategroyEnum.WEEK_INSPECTION.name()));
                if (CollectionUtils.isNotEmpty(maintenanceStandardDetailList)) {
                    List<EamWeekInspectionDetail> weekInspectionDetailList = maintenanceStandardDetailList.stream().map(EamWeekInspectionDetail::new).collect(Collectors.toList());
                    weekInspectionDetailList.forEach(weekInspectionDetail -> {
                        weekInspectionDetail.setStandardId(eamInspectionOrderRequest.getStandardId());
                        // TODO å‘¨ç‚¹æ£€æ—¥æœŸ
                        weekInspectionDetail.setPlanInspectionDate(eamInspectionOrderRequest.getInspectionDate());
                    });
                    eamWeekInspectionDetailService.saveBatch(weekInspectionDetailList);
                }
            }
        }
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
            triggerProcess(eamInspectionOrder);
        }
        return true;
        return Result.OK("添加成功!");
    }
    /**
@@ -196,9 +213,9 @@
        if (equipment == null) {
            return false;
        } else {
            eamInspectionOrder.setEquipmentId(equipment.getEquipmentCode());
            eamInspectionOrder.setEquipmentId(equipment.getId());
        }
        flowCommonService.initActBusiness("工单号: " + eamInspectionOrder.getOrderNum() + ";设备编号: " + eamInspectionOrder.getEquipmentId() + ";安装位置: " + equipment.getInstallationPosition(),
        flowCommonService.initActBusiness("工单号: " + eamInspectionOrder.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + (equipment.getInstallationPosition() == null ? "" : ";安装位置: " + equipment.getInstallationPosition()),
                eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", eamInspectionOrder.getId());
@@ -226,16 +243,6 @@
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
        }
        super.updateById(eamInspectionOrder);
//        //处理明细数据
//        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
//            eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
//                tableDetail.setOrderId(eamInspectionOrder.getId());
//                tableDetail.setCreateTime(new Date());
//            });
//            //删除明细
//            eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId()));
//            eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
//        }
        return true;
    }
@@ -249,7 +256,7 @@
    @Transactional(rollbackFor = Exception.class)
    public boolean takeInspectionOrder(String id) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if(user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) {
        if (user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) {
            throw new JeecgBootException("不是操作工,无法领取此工单!");
        }
        EamInspectionOrder eamInspectionOrder = this.getById(id);
@@ -394,27 +401,19 @@
        Map<String, Object> values = new HashMap<>();
        if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) {
            // ç‚¹æ£€äººç‚¹æ£€ç»“束
//            String manager = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId()))
//                    .map(EamEquipment::getEquipmentManager)
//                    .orElse(null);
//            if (manager == null) {
//                throw new IllegalArgumentException("设备管理员未配置");
//            }
//            List<String> usernameList = Collections.singletonList(manager);
            values.put("dataId", order.getId());
            values.put("organization", "点检人点检结束");
            values.put("comment", "点检人点检结束");
//            values.put("NextAssignee", usernameList);
            request.setComment("点检人点检结束");
        } else {
            // ç­ç»„长确认
            // ç»´ä¿®å·¥ç¡®è®¤
            values.put("dataId", order.getId());
            values.put("organization", request.getConfirmComment());
            values.put("comment", request.getConfirmComment());
            values.put("confirmation", request.getConfirmDealType());
            request.setComment(request.getConfirmComment());
            if ("2".equals(request.getConfirmDealType())) {
                // ç­ç»„长驳回
                // ç»´ä¿®å·¥é©³å›ž
                List<String> usernames = new ArrayList<>();
                usernames.add(order.getOperator());
                order.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
@@ -430,18 +429,14 @@
                // ç‚¹æ£€å®Œæˆ
                order.setInspectionStatus(InspectionStatus.WAIT_CONFIRM.name());
                order.setOperateTime(new Date());
//                if (CollectionUtil.isNotEmpty(request.getFileList())) {
//                    List<FileUploadResult> fileUploadResultList = request.getFileList();
//                    ObjectMapper mapper = new ObjectMapper();
//                    try {
//                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
//                        order.setImageFiles(referenceFile);
//                    } catch (JsonProcessingException e) {
//                        log.error("JSON转换失败:" + e.getMessage(), e);
//                    }
//                }
                eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", order.getId()));
                eamInspectionOrderDetailService.saveBatch(request.getTableDetailList());
                if (request.getTableWeekDetailList() != null && !request.getTableWeekDetailList().isEmpty()) {
                    // è®¾ç½®å‘¨ç‚¹æ£€
//                eamWeekInspectionDetailService.remove(new QueryWrapper<EamWeekInspectionDetail>().eq("order_id", order.getId()));
                    eamWeekInspectionDetailService.saveOrUpdateBatch(request.getTableWeekDetailList());
                }
            } else if (InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getConfirmDealType())) {
                // ç­ç»„长确认任务
                order.setInspectionStatus(InspectionStatus.COMPLETE.name());
@@ -545,13 +540,13 @@
    }
    @Override
    public List<InspectionVo> findInspectionResult(String equipmentId,String itemDemand,String yearMonth) {
        return this.baseMapper.findInspectionResult(equipmentId,itemDemand,yearMonth);
    public List<InspectionVo> findInspectionResult(String equipmentId, String itemDemand, String yearMonth) {
        return this.baseMapper.findInspectionResult(equipmentId, itemDemand, yearMonth);
    }
    @Override
    public List<InspectionVo> findInspectionUser(String equipmentId,String yearMonth) {
        return this.baseMapper.findInspectionUser(equipmentId,yearMonth);
    public List<InspectionVo> findInspectionUser(String equipmentId, String yearMonth) {
        return this.baseMapper.findInspectionUser(equipmentId, yearMonth);
    }
    @Override
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -327,7 +327,7 @@
        LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
        queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.START.name());
        return eamMaintenanceStandardMapper.selectList(queryWrapper);
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardDetailServiceImpl.java
@@ -1,11 +1,13 @@
package org.jeecg.modules.eam.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationStandardDetailMapper;
import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationStandardDetailService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
/**
 * @Description: æŠ€æœ¯çŠ¶æ€é‰´å®šè§„èŒƒæ˜Žç»†
@@ -16,4 +18,11 @@
@Service
public class EamTechnicalStatusEvaluationStandardDetailServiceImpl extends ServiceImpl<EamTechnicalStatusEvaluationStandardDetailMapper, EamTechnicalStatusEvaluationStandardDetail> implements IEamTechnicalStatusEvaluationStandardDetailService {
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void removeByStandardId(String standardId) {
        LambdaQueryWrapper<EamTechnicalStatusEvaluationStandardDetail> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(EamTechnicalStatusEvaluationStandardDetail::getStandardId, standardId);
        this.getBaseMapper().delete(wrapper);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationStandardServiceImpl.java
@@ -17,6 +17,7 @@
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.TechnicalStatusEvaluationCheckCategoryEnum;
import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationStandardEnum;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandard;
import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationStandardDetail;
@@ -101,6 +102,10 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addEamTechnicalStatusEvaluationStandard(EamTechnicalStatusEvaluationStandardRequest request) {
        if(!CommonConstant.STATUS_1.equals(request.getHasOtherCheck()) && !CommonConstant.STATUS_1.equals(request.getHasSafetyEquipmentCheck()) && !CommonConstant.STATUS_1.equals(request.getHasPrecisionCheck())) {
            //必须要选择一个检查分类
            throw new JeecgBootException("必须要选择一个检查分类!");
        }
        EamTechnicalStatusEvaluationStandard entity = new EamTechnicalStatusEvaluationStandard();
        BeanUtils.copyProperties(request, entity);
        entity.setStandardStatus(TechnicalStatusEvaluationStandardEnum.WAIT_SUBMIT.name());
@@ -121,7 +126,31 @@
            request.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setStandardId(entity.getId());
            });
            standardDetailService.saveBatch(request.getTableDetailList());
            //根据分类判断是否保存
            if(CommonConstant.STATUS_1.equals(entity.getHasOtherCheck())) {
                //保存其他分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.OTHER_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("其他检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
            if(CommonConstant.STATUS_1.equals(entity.getHasSafetyEquipmentCheck())) {
                //保存安全装置分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.SAFETY_EQUIPMENT_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("安全装置检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
            if(CommonConstant.STATUS_1.equals(entity.getHasPrecisionCheck())) {
                //保存精度检验分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.PRECISION_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("精度检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
        }
        return true;
    }
@@ -147,35 +176,50 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean editEamTechnicalStatusEvaluationStandard(EamTechnicalStatusEvaluationStandardRequest request) {
        if(!CommonConstant.STATUS_1.equals(request.getHasOtherCheck()) && !CommonConstant.STATUS_1.equals(request.getHasSafetyEquipmentCheck()) && !CommonConstant.STATUS_1.equals(request.getHasPrecisionCheck())) {
            //必须要选择一个检查分类
            throw new JeecgBootException("必须要选择一个检查分类!");
        }
        EamTechnicalStatusEvaluationStandard entity = this.getBaseMapper().selectById(request.getId());
        if(entity == null){
            throw new JeecgBootException("编辑的数据已删除,请刷新重试!");
        }
        entity.setStandardName(request.getStandardName());
        entity.setEvaluationPeriod(request.getEvaluationPeriod());
        entity.setHasOtherCheck(request.getHasOtherCheck());
        entity.setHasPrecisionCheck(request.getHasPrecisionCheck());
        entity.setHasSafetyEquipmentCheck(request.getHasSafetyEquipmentCheck());
        this.getBaseMapper().updateById(entity);
        //处理详情
        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
            List<EamTechnicalStatusEvaluationStandardDetail> addList = new ArrayList<>();
            List<EamTechnicalStatusEvaluationStandardDetail> updateList = new ArrayList<>();
            request.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setStandardId(entity.getId());
                if(tableDetail.getId() == null){
                    addList.add(tableDetail);
                }else {
                    updateList.add(tableDetail);
            //先删除检查项
            standardDetailService.removeByStandardId(entity.getId());
            //根据分类判断是否保存
            if(CommonConstant.STATUS_1.equals(entity.getHasOtherCheck())) {
                //保存其他分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.OTHER_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("其他检查明细不能为空!");
                }
            });
            if(CollectionUtil.isNotEmpty(addList)){
                standardDetailService.saveBatch(addList);
                standardDetailService.saveBatch(collect);
            }
            if(CollectionUtil.isNotEmpty(updateList)){
                standardDetailService.updateBatchById(updateList);
            if(CommonConstant.STATUS_1.equals(entity.getHasSafetyEquipmentCheck())) {
                //保存安全装置分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.SAFETY_EQUIPMENT_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("安全装置检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
        }
        if(CollectionUtil.isNotEmpty(request.getRemoveDetailList())) {
            List<String> ids = request.getRemoveDetailList().stream().map(EamTechnicalStatusEvaluationStandardDetail::getId).collect(Collectors.toList());
            standardDetailService.removeBatchByIds(ids);
            if(CommonConstant.STATUS_1.equals(entity.getHasPrecisionCheck())) {
                //保存精度检验分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.PRECISION_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("精度检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
        }
        return true;
    }
@@ -183,6 +227,10 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean upgrade(EamTechnicalStatusEvaluationStandardRequest request) {
        if(!CommonConstant.STATUS_1.equals(request.getHasOtherCheck()) && !CommonConstant.STATUS_1.equals(request.getHasSafetyEquipmentCheck()) && !CommonConstant.STATUS_1.equals(request.getHasPrecisionCheck())) {
            //必须要选择一个检查分类
            throw new JeecgBootException("必须要选择一个检查分类!");
        }
        EamTechnicalStatusEvaluationStandard entity = this.getBaseMapper().selectById(request.getId());
        if(entity == null){
            throw new JeecgBootException("升版的数据已删除,请刷新重试!");
@@ -198,6 +246,9 @@
        newEntity.setStandardVersion(SimpleVersionGenerateUtil.addVersion(entity.getStandardVersion()));
        //设备处理
        newEntity.setEquipmentId(request.getEquipmentId());
        newEntity.setHasOtherCheck(request.getHasOtherCheck());
        newEntity.setHasPrecisionCheck(request.getHasPrecisionCheck());
        newEntity.setHasSafetyEquipmentCheck(request.getHasSafetyEquipmentCheck());
        //删除标记
        newEntity.setDelFlag(CommonConstant.DEL_FLAG_0);
        //重复性校验
@@ -216,7 +267,31 @@
                tableDetail.setUpdateTime(null);
                tableDetail.setStandardId(newEntity.getId());
            });
            standardDetailService.saveBatch(request.getTableDetailList());
            //根据分类判断是否保存
            if(CommonConstant.STATUS_1.equals(entity.getHasOtherCheck())) {
                //保存其他分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.OTHER_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("其他检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
            if(CommonConstant.STATUS_1.equals(entity.getHasSafetyEquipmentCheck())) {
                //保存安全装置分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.SAFETY_EQUIPMENT_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("安全装置检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
            if(CommonConstant.STATUS_1.equals(entity.getHasPrecisionCheck())) {
                //保存精度检验分类
                List<EamTechnicalStatusEvaluationStandardDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.PRECISION_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
                if(CollectionUtils.isEmpty(collect)) {
                    throw new JeecgBootException("精度检查明细不能为空!");
                }
                standardDetailService.saveBatch(collect);
            }
        }
        //禁用原来的版本
        entity.setStandardStatus(TechnicalStatusEvaluationStandardEnum.DISABLE.name());