Houjie
2025-06-10 be8a6f171bd41aa50fb7310b2ccbe753dac20b89
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.eam.controller;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -9,6 +10,7 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -17,6 +19,7 @@
import org.apache.ibatis.annotations.Param;
import org.apache.poi.hssf.record.DVALRecord;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.dto.message.MessageDTO;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.base.entity.SysUpload;
@@ -37,8 +40,9 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.eam.vo.SysFileNameVo;
import org.jeecg.modules.system.entity.*;
import org.jeecg.modules.system.service.*;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -92,6 +96,36 @@
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private IPrecisionInspectionService precisionInspectionService;
    @Autowired
    private IEamEquipmentService equipmentService;
    @Autowired
    private IEquipmentPrecisionParametersService equipmentPrecisionParametersService;
    @Autowired
    private IPrecisionInspectionDetailService precisionInspectionDetailService;
    @Autowired
    private IMaintenanceStoveExemptService maintenanceStoveExemptService;
    @Autowired
    private ITechnologyStatusService technologyStatusService;
    @Autowired
    private ISysFileNameService sysFileNameService;
    @Resource
    private ISysRoleService sysRoleService;
    @Resource
    private ISysDictService sysDictService;
    @Resource
    private ISysDictItemService sysDictItemService;
    @Resource
    private ISysUserRoleService sysUserRoleService;
    /**
     * 分页列表查询
@@ -113,7 +147,7 @@
    }
    /**
     * 日常保养工单
     * 二级保养工单
     * qsw 2023-4-14
     */
    @GetMapping("getDailyMaintenanceOrderList")
@@ -128,16 +162,98 @@
            record.put("maintenanceCycles", maintenanceCycles);
            List<Map<String, Object>> dailyMaintenanceDetails = dailyMaintenanceOrderService.getDailyMaintenanceDetailByOrderId(id);
            record.put("dailyMaintenanceDetails", dailyMaintenanceDetails);
            List<Map<String, Object>> operationUserDetails = dailyMaintenanceOrderService.getOperationUser(id);
            record.put("operationUserDetails", operationUserDetails);
            List<Map<String, Object>> repairUserDetails = dailyMaintenanceOrderService.getRepairUser(id);
            record.put("repairUserDetails", repairUserDetails);
            //统计工时定额
            BigDecimal workingHourQuota = new BigDecimal(0);
            for(Map<String, Object> dailyMaintenanceOrderDetail : dailyMaintenanceDetails){
                if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){
                    Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota");
                    BigDecimal workingHour = new BigDecimal(wh);
                    workingHourQuota = workingHourQuota.add(workingHour);
                }
//            BigDecimal workingHourQuota = new BigDecimal(0);
//            for(Map<String, Object> dailyMaintenanceOrderDetail : dailyMaintenanceDetails){
//                if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){
//                    Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota");
//                    BigDecimal workingHour = new BigDecimal(wh);
//                    workingHourQuota = workingHourQuota.add(workingHour);
//                }
//            }
//            record.put("workingHourQuota",workingHourQuota);
            /**
             * 复选框 不可编辑
             */
           /* String status = (String) record.get("status");
            if ("5".equals(status)) {
                record.put("distable", false);
            } else {
                record.put("distable", true);
            }*/
            /**
             * 统计实际工时
             */
//            QueryWrapper<MaintenanceOrderActualWorkingHour> actualWorkingHourWrapper = new QueryWrapper<>();
//            actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0);
//            actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity");
//            Map<String, Object> map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper);
//            BigDecimal actualQuantity = new BigDecimal(0);
//            if (map != null) {
//                actualQuantity = (BigDecimal) map.get("actualQuantity");
//            }
//            record.put("actualWorkingHourQuota", actualQuantity);
            List<FinishTransferOrder> finishTransferOrders = finishTransferOrderService.lambdaQuery()
                    .eq(FinishTransferOrder::getMaintenanceOrderId, id)
                    .eq(FinishTransferOrder::getEquipmentId, equipmentId).list();
            for (FinishTransferOrder finishTransferOrder : finishTransferOrders) {
                String operateUser = finishTransferOrder.getOperateUser();
//                record.put("operateUserName", operateUser+"/"+finishTransferOrder.getTransferOrderUda1());
//                record.put("operateUserName",(StringUtils.isBlank(operateUser) ? "":operateUser+"/"+finishTransferOrder.getTransferOrderUda1()));
                record.put("operateUserName",(StringUtils.isBlank(operateUser) ? "":operateUser));
                String repairUser = finishTransferOrder.getRepairUser();
//                record.put("repairUserName", repairUser+"/"+finishTransferOrder.getTransferOrderUda2());
//                record.put("repairUserName",(StringUtils.isBlank(repairUser) ? "":repairUser+"/"+finishTransferOrder.getTransferOrderUda2()));
                record.put("repairUserName",(StringUtils.isBlank(repairUser) ? "":repairUser));
                String repairDirectorUser = finishTransferOrder.getRepairDirectorUser();
//                record.put("repairDirectorUserName", repairDirectorUser+"/"+finishTransferOrder.getTransferOrderUda3());
//                record.put("repairDirectorUserName",(StringUtils.isBlank(repairDirectorUser) ? "":repairDirectorUser+"/"+finishTransferOrder.getTransferOrderUda3()));
                record.put("repairDirectorUserName",(StringUtils.isBlank(repairDirectorUser) ? "":repairDirectorUser));
                String equipmentInspectorUser = finishTransferOrder.getEquipmentInspectorUser();
//                record.put("equipmentInspectorUserName", equipmentInspectorUser+"/"+finishTransferOrder.getTransferOrderUda4());
//                record.put("equipmentInspectorUserName",(StringUtils.isBlank(equipmentInspectorUser) ? "":equipmentInspectorUser+"/"+finishTransferOrder.getTransferOrderUda4()));
                record.put("equipmentInspectorUserName",(StringUtils.isBlank(equipmentInspectorUser) ? "":equipmentInspectorUser));
            }
            record.put("workingHourQuota",workingHourQuota);
        }
        return Result.ok(dailyMaintenanceOrderList);
    }
    /**
     * 三级保养工单
     * qsw 2023-4-14
     */
    @GetMapping("getDailyMaintenanceOrder3List")
    public Result<?> getDailyMaintenanceOrder3List(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, @RequestParam Map<String, Object> params) {
        IPage<Map<String, Object>> dailyMaintenanceOrderList = dailyMaintenanceOrderService.getDailyMaintenanceOrder3List(pageNo, pageSize, params);
        List<Map<String, Object>> records = dailyMaintenanceOrderList.getRecords();
        for (Map<String, Object> record : records) {
            String id = (String) record.get("id");
//            String equipmentId = (String) record.get("equipmentId");
            String maintenanceStandardId = (String) record.get("maintenanceStandardId");
            List<MaintenanceCycleVo> maintenanceCycles = dailyMaintenanceOrderService.getMaintenanceCycleByStandardId(maintenanceStandardId);
            record.put("maintenanceCycles", maintenanceCycles);
            List<Map<String, Object>> dailyMaintenanceDetails = dailyMaintenanceOrderService.getDailyMaintenanceDetailByOrderId(id);
            //统计工时定额
//            BigDecimal workingHourQuota = new BigDecimal(0);
//            for(Map<String, Object> dailyMaintenanceOrderDetail : dailyMaintenanceDetails){
//                if(dailyMaintenanceOrderDetail.get("workingHourQuota") != null){
//                    Integer wh = (Integer)dailyMaintenanceOrderDetail.get("workingHourQuota");
//                    BigDecimal workingHour = new BigDecimal(wh);
//                    workingHourQuota = workingHourQuota.add(workingHour);
//                }
//            }
//            record.put("workingHourQuota",workingHourQuota);
            record.put("dailyMaintenanceDetails", dailyMaintenanceDetails);
            /**
             * 复选框 不可编辑
@@ -151,46 +267,30 @@
            /**
             * 统计实际工时
             */
            QueryWrapper<MaintenanceOrderActualWorkingHour> actualWorkingHourWrapper = new QueryWrapper<>();
            actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0);
            actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity");
            Map<String, Object> map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper);
            BigDecimal actualQuantity = new BigDecimal(0);
            if (map != null) {
                actualQuantity = (BigDecimal) map.get("actualQuantity");
            }
            record.put("actualWorkingHourQuota", actualQuantity);
//            QueryWrapper<MaintenanceOrderActualWorkingHour> actualWorkingHourWrapper = new QueryWrapper<>();
//            actualWorkingHourWrapper.eq("maintenance_order_id", id).eq("del_flag", 0);
//            actualWorkingHourWrapper.select("sum(actual_working_hour_quota) as actualQuantity");
//            Map<String, Object> map = maintenanceOrderActualWorkingHourService.getMap(actualWorkingHourWrapper);
//            BigDecimal actualQuantity = new BigDecimal(0);
//            if (map != null) {
//                actualQuantity = (BigDecimal) map.get("actualQuantity");
//            }
//            record.put("actualWorkingHourQuota", actualQuantity);
            List<FinishTransferOrder> finishTransferOrders = finishTransferOrderService.lambdaQuery()
                    .eq(FinishTransferOrder::getMaintenanceOrderId, id)
                    .eq(FinishTransferOrder::getEquipmentId, equipmentId).list();
            for (FinishTransferOrder finishTransferOrder : finishTransferOrders) {
                String operateUser = finishTransferOrder.getOperateUser();
                if(StringUtils.isNotBlank(operateUser)){
                    SysUser sysUser = sysUserService.getById(operateUser);
                    record.put("operateUserName", sysUser.getRealname());
                }
                String repairUser = finishTransferOrder.getRepairUser();
                if(StringUtils.isNotBlank(repairUser)){
                    SysUser sysUser = sysUserService.getById(repairUser);
                    record.put("repairUserName", sysUser.getRealname());
                }
                String repairDirectorUser = finishTransferOrder.getRepairDirectorUser();
                if(StringUtils.isNotBlank(repairDirectorUser)){
                    SysUser sysUser = sysUserService.getById(repairDirectorUser);
                    record.put("repairDirectorUserName", sysUser.getRealname());
                }
                String equipmentInspectorUser = finishTransferOrder.getEquipmentInspectorUser();
                if(StringUtils.isNotBlank(equipmentInspectorUser)){
                    SysUser sysUser = sysUserService.getById(equipmentInspectorUser);
                    record.put("equipmentInspectorUserName", sysUser.getRealname());
                }
            /**
             *获取是否为炉类设备标记
             */
            String equipmentCategoryName = (String) record.get("equipmentCategoryName");
            if("炉类设备".equals(equipmentCategoryName)){
                record.put("isNotStoveCategoryFlag", true);
            }else{
                record.put("isNotStoveCategoryFlag", false);
            }
        }
        return Result.ok(dailyMaintenanceOrderList);
    }
    /**
     * 添加
@@ -206,19 +306,23 @@
        Date planStartTime = dailyMaintenanceOrder.getPlanStartTime();
        String maintenanceCycleId = dailyMaintenanceOrder.getMaintenanceCycleId();
        MaintenanceCycle maintenanceCycle = maintenanceCycleService.getById(maintenanceCycleId);
        String unit = maintenanceCycle.getUnit();
        int effectiveTime = maintenanceCycle.getEffectiveTime().intValue();
        Date date = null;
        if ("min".equals(unit)) {
            date = DateUtils.getMinAfter(planStartTime, effectiveTime);
        } else if ("hour".equals(unit)) {
            date = DateUtils.getHourAfter(planStartTime, effectiveTime);
        } else if ("day".equals(unit)) {
            date = DateUtils.getDayAfter(planStartTime, effectiveTime);
        }
        dailyMaintenanceOrder.setPlanEndTime(date);//创建类型(1手动创建,2自动创建)
//        String unit = maintenanceCycle.getUnit();
//        int effectiveTime = maintenanceCycle.getEffectiveTime().intValue();
//        Date date = null;
//        if ("min".equals(unit)) {
//            date = DateUtils.getMinAfter(planStartTime, effectiveTime);
//        } else if ("hour".equals(unit)) {
//            date = DateUtils.getHourAfter(planStartTime, effectiveTime);
//        } else if ("day".equals(unit)) {
//            date = DateUtils.getDayAfter(planStartTime, effectiveTime);
//        }
//        dailyMaintenanceOrder.setPlanEndTime(date);//创建类型(1手动创建,2自动创建)
        dailyMaintenanceOrder.setPlanEndTime(null);//创建类型(1手动创建,2自动创建)
        dailyMaintenanceOrder.setCreateType("1");//创建类型(1手动创建,2自动创建)
        dailyMaintenanceOrder.setConfirmStatus("0");//移交确认状态(0未确认,1主任确认,2检验员确认)
        dailyMaintenanceOrder.setPrecisionInspectionStatus("0");//精度检验单流程状态(0未确认,1精度检验者,2维修室主任,3设备检验员,4使用单位技术主管,5设备检验员(盖章))
        dailyMaintenanceOrder.setStoveExemptStatus("0");//炉类设备豁免20项状态(0未确认,1维修室主任,2保养人员,3仪表工)
        dailyMaintenanceOrder.setStatus("3");//3:未开始
        dailyMaintenanceOrderService.save(dailyMaintenanceOrder);
        List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails();
        for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) {
@@ -278,7 +382,9 @@
         * 若果原标准原周期发生变化,删除原工单明细 重新维护
         */
        if (!oldMaintenanceStandardId.equals(maintenanceStandardId) || !oldMaintenanceCycleId.equals(maintenanceCycleId)) {
            List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrderDetailService.lambdaQuery().eq(DailyMaintenanceOrderDetail::getDailyMaintenanceOrderId, orderId).eq(DailyMaintenanceOrderDetail::getDelFlag, 0).list();
            List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrderDetailService
                    .lambdaQuery().eq(DailyMaintenanceOrderDetail::getDailyMaintenanceOrderId, orderId)
                    .eq(DailyMaintenanceOrderDetail::getDelFlag, 0).list();
            for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) {
                dailyMaintenanceOrderDetailService.removeById(dailyMaintenanceOrderDetail);
            }
@@ -442,9 +548,88 @@
            List<FinishTransferOrder> finishTransferOrders = finishTransferOrderService.lambdaQuery()
                    .eq(FinishTransferOrder::getMaintenanceOrderId, id)
                    .eq(FinishTransferOrder::getDelFlag,0)
                    .eq(FinishTransferOrder::getEquipmentId, maintenanceOrder.getEquipmentId()).list();
            for (FinishTransferOrder finishTransferOrder : finishTransferOrders) {
                finishTransferOrderService.removeById(finishTransferOrder);
            }
//            /**
//             * 删除精度管理表
//             */
//            List<PrecisionInspection> precisionInspectionList = precisionInspectionService.lambdaQuery()
//                    .eq(PrecisionInspection::getMaintenanceOrderId, id)
//                    .eq(PrecisionInspection::getDelFlag,0)
//                    .eq(PrecisionInspection::getEquipmentId, maintenanceOrder.getEquipmentId()).list();
//            for (PrecisionInspection precisionInspection : precisionInspectionList) {
//                List<PrecisionInspectionDetail> precisionInspectionDetails = precisionInspectionDetailService.lambdaQuery()
//                        .eq(PrecisionInspectionDetail::getPrecisionInspectionId, precisionInspection.getId())
//                        .eq(PrecisionInspectionDetail::getDelFlag,0)
//                        .list();
//                for (PrecisionInspectionDetail precisionInspectionDetail : precisionInspectionDetails) {
//                    precisionInspectionDetailService.removeById(precisionInspectionDetail);
//                }
//                precisionInspectionService.removeById(precisionInspection);
//            }
            if (b) {
                return Result.OK("撤销成功!");
            } else {
                return Result.error("撤销失败!");
            }
        } else {
            return Result.error("仅限已完工状态撤销完成操作!");
        }
    }
    @RequestMapping(value = "/revocation3M", method = {RequestMethod.PUT, RequestMethod.POST})
    @Transactional(rollbackFor = { Exception.class })
    public Result<String> revocation3M(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
        String id = dailyMaintenanceOrder.getId();
        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id);
        String status = maintenanceOrder.getStatus();
        if ("5".equals(status)) {
            maintenanceOrder.setActualEndTime(null);
            boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
            /**
             * 删除精度检验表
             */
            List<PrecisionInspection> precisionInspectionList = precisionInspectionService.lambdaQuery()
                    .eq(PrecisionInspection::getMaintenanceOrderId, id)
                    .eq(PrecisionInspection::getDelFlag,0)
                    .eq(PrecisionInspection::getEquipmentId, maintenanceOrder.getEquipmentId()).list();
            for (PrecisionInspection precisionInspection : precisionInspectionList) {
                List<PrecisionInspectionDetail> precisionInspectionDetails = precisionInspectionDetailService.lambdaQuery()
                        .eq(PrecisionInspectionDetail::getPrecisionInspectionId, precisionInspection.getId())
                        .eq(PrecisionInspectionDetail::getDelFlag,0)
                        .list();
                for (PrecisionInspectionDetail precisionInspectionDetail : precisionInspectionDetails) {
                    precisionInspectionDetailService.removeById(precisionInspectionDetail);
                }
                precisionInspectionService.removeById(precisionInspection);
            }
            /**
             * 删除炉类检测
             */
            List<MaintenanceStoveExempt> maintenanceStoveExempts = maintenanceStoveExemptService.lambdaQuery()
                    .eq(MaintenanceStoveExempt::getMaintenanceOrderId, id)
                    .eq(MaintenanceStoveExempt::getDelFlag, 0).list();
            for (MaintenanceStoveExempt maintenanceStoveExempt : maintenanceStoveExempts) {
                maintenanceStoveExemptService.removeById(maintenanceStoveExempt);
            }
            /**
             * 删除精度检验单
             */
            List<TechnologyStatus> technologyStatusList = technologyStatusService.lambdaQuery()
                    .eq(TechnologyStatus::getOrderId, id)
                    .eq(TechnologyStatus::getDelFlag, 0).list();
            for (TechnologyStatus technologyStatus : technologyStatusList) {
                technologyStatusService.removeById(technologyStatus);
            }
            if (b) {
@@ -456,6 +641,7 @@
            return Result.error("仅限已完工状态撤销完成操作!");
        }
    }
    /**
     *  保养工单派工、改派
@@ -473,9 +659,52 @@
    public Result<String> report(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = sysUser.getId();
        dailyMaintenanceOrder.setMaintenanceUserId(userId);
//        dailyMaintenanceOrder.setMaintenanceUserId(userId);
        dailyMaintenanceOrder.setActualEndTime(new Date());
        boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
        List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails();
        for (DailyMaintenanceOrderDetail maintenanceOrderDetail : dailyMaintenanceOrderDetails) {
            maintenanceOrderDetail.setMaintenanceOrderDetailUda1(dailyMaintenanceOrder.getMaintenanceUserId());
            dailyMaintenanceOrderDetailService.updateById(maintenanceOrderDetail);
        }
        String id = dailyMaintenanceOrder.getId();
        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id);
        FinishTransferOrder finishTransferOrder = new FinishTransferOrder();
        finishTransferOrder.setEquipmentId(maintenanceOrder.getEquipmentId());
        finishTransferOrder.setMaintenanceOrderId(maintenanceOrder.getId());
        finishTransferOrder.setStatus("1");
        finishTransferOrder.setDelFlag(0);
        finishTransferOrderService.save(finishTransferOrder);
        String equipmentId = maintenanceOrder.getEquipmentId();
        Equipment equipment = equipmentService.getById(equipmentId);
        equipment.setSecondMaintenanceTime(new Date());
        equipmentService.updateById(equipment);
        if (!b) {
            return Result.error("报工失败!");
        } else {
            return Result.ok("报工成功!");
        }
    }
    @RequestMapping(value = "/report3M", method = {RequestMethod.PUT, RequestMethod.POST})
    @Transactional(rollbackFor = { Exception.class })
    public Result<String> report3M(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = sysUser.getId();
//        dailyMaintenanceOrder.setMaintenanceUserId(userId);
        dailyMaintenanceOrder.setActualEndTime(new Date());
        boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
        List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails();
        for (DailyMaintenanceOrderDetail maintenanceOrderDetail : dailyMaintenanceOrderDetails) {
            maintenanceOrderDetail.setMaintenanceOrderDetailUda1(dailyMaintenanceOrder.getMaintenanceUserId());
            dailyMaintenanceOrderDetailService.updateById(maintenanceOrderDetail);
        }
        String id = dailyMaintenanceOrder.getId();
        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id);
@@ -488,11 +717,76 @@
        finishTransferOrder.setDelFlag(0);
        finishTransferOrderService.save(finishTransferOrder);
        String equipmentId = maintenanceOrder.getEquipmentId();
        Equipment equipment = equipmentService.getById(equipmentId);
        String precisionParameters = equipment.getPrecisionParameters();
        if(!"1".equals(precisionParameters)){
            this.createTechnologyStatus(maintenanceOrder);
        }
        this.createPrecisionInspection(maintenanceOrder);
        this.createMaintenanceStoveExempt(maintenanceOrder);
        /**
         * 三保报工时  更新本次三保日期  和下次三保日期
         */
        String equipmentImportanceId = equipment.getEquipmentImportanceId();
        equipment.setThirdMaintenanceTime(new Date());
        if("A".equals(equipmentImportanceId)){
            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),3));
        }else if("B".equals(equipmentImportanceId)){
            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
        }else if("C".equals(equipmentImportanceId)){
            equipment.setNextThirdMaintenanceTime(DateUtils.getYearAfter(new Date(),4));
        }
        equipmentService.updateById(equipment);
        if (!b) {
            return Result.error("报工失败!");
        } else {
            return Result.ok("报工成功!");
        }
    }
    void createPrecisionInspection(DailyMaintenanceOrder dailyMaintenanceOrder){
        PrecisionInspection precisionInspection = new PrecisionInspection();
        precisionInspection.setMaintenanceOrderId(dailyMaintenanceOrder.getId());
        precisionInspection.setEquipmentId(dailyMaintenanceOrder.getEquipmentId());
        precisionInspectionService.save(precisionInspection);
        List<EquipmentPrecisionParameters> equipmentPrecisionParameters = equipmentPrecisionParametersService.lambdaQuery()
                .eq(EquipmentPrecisionParameters::getEquipmentId, dailyMaintenanceOrder.getEquipmentId())
                .eq(EquipmentPrecisionParameters::getDelFlag, "0").list();
        PrecisionInspectionDetail precisionInspectionDetail = null;
        for (EquipmentPrecisionParameters equipmentPrecisionParameter : equipmentPrecisionParameters) {
            precisionInspectionDetail = new PrecisionInspectionDetail();
            precisionInspectionDetail.setPrecisionInspectionId(precisionInspection.getId());
            precisionInspectionDetail.setEquipmentId(dailyMaintenanceOrder.getEquipmentId());
            precisionInspectionDetail.setPrecisionParametersId(equipmentPrecisionParameter.getPrecisionParametersId());
            String upperLimit = equipmentPrecisionParameter.getUpperLimit()+"";
            String lowerLimit = equipmentPrecisionParameter.getLowerLimit()+"";
            precisionInspectionDetail.setTolerance("["+upperLimit+"—"+lowerLimit+"]");
            precisionInspectionDetailService.save(precisionInspectionDetail);
        }
    }
    void createMaintenanceStoveExempt(DailyMaintenanceOrder dailyMaintenanceOrder){
        List<SysFileNameVo> sysFileName = sysFileNameService.getSysFileName("20");
        MaintenanceStoveExempt maintenanceStoveExempt = new MaintenanceStoveExempt();
        maintenanceStoveExempt.setMaintenanceOrderId(dailyMaintenanceOrder.getId());
        maintenanceStoveExempt.setReceipts(sysFileName.get(0).getReceipts());
        maintenanceStoveExemptService.save(maintenanceStoveExempt);
    }
    void createTechnologyStatus(DailyMaintenanceOrder dailyMaintenanceOrder){
        List<SysFileNameVo> sysFileName = sysFileNameService.getSysFileName("9");
        TechnologyStatus technologyStatus = new TechnologyStatus();
        technologyStatus.setOrderId(dailyMaintenanceOrder.getId());
        technologyStatus.setReceipts(sysFileName.get(0).getReceipts());
        technologyStatusService.save(technologyStatus);
    }
    /**
@@ -509,37 +803,145 @@
     * 审批
     */
    @RequestMapping(value = "/approve", method = {RequestMethod.PUT, RequestMethod.POST})
    @Transactional(rollbackFor = { Exception.class })
    public Result<String> approve(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = sysUser.getId();
        String orderId = dailyMaintenanceOrder.getId();
        String maintenanceOrderUda3 = dailyMaintenanceOrder.getMaintenanceOrderUda3();
        String confirmStatus = dailyMaintenanceOrder.getConfirmStatus();
        Date maintenanceDate = dailyMaintenanceOrder.getMaintenanceDate();
        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(orderId);
        String equipmentId = maintenanceOrder.getEquipmentId();
        String confirmStatus = maintenanceOrder.getConfirmStatus();
        String orderUda3 = maintenanceOrder.getMaintenanceOrderUda3();
        maintenanceOrder.setMaintenanceDate(maintenanceDate);
        if(StringUtils.isBlank(orderUda3)){
            maintenanceOrder.setMaintenanceOrderUda3(maintenanceOrderUda3);
        }
        List<FinishTransferOrder> finishTransferOrders = finishTransferOrderService.lambdaQuery()
                .eq(FinishTransferOrder::getMaintenanceOrderId, orderId)
                .eq(FinishTransferOrder::getEquipmentId, equipmentId).list();
       if(finishTransferOrders.size()>0){
           FinishTransferOrder finishTransferOrder = finishTransferOrders.get(0);
           if ("0".equals(confirmStatus)){
               finishTransferOrder.setRepairDirectorUser(userId);
           if("1".equals(confirmStatus)){
               finishTransferOrder.setOperateUser(sysUser.getRealname());
               finishTransferOrder.setTransferOrderUda1(DateUtils.now());
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus("1");
               maintenanceOrder.setConfirmStatus(confirmStatus);
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
           }else{
               finishTransferOrder.setEquipmentInspectorUser(userId);
               this.twoMaintenanceAlert(confirmStatus,"二保移交单维修人员",maintenanceOrder.getNum());
           }else if("2".equals(confirmStatus)){
               finishTransferOrder.setEquipmentInspectorUser("");
               finishTransferOrder.setRepairDirectorUser("");
               finishTransferOrder.setRepairUser("");
               finishTransferOrder.setOperateUser("");
               finishTransferOrder.setTransferOrderUda1("");
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus("2");
               maintenanceOrder.setConfirmStatus(confirmStatus);
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
               this.twoMaintenanceAlert(confirmStatus,"二保移交单操作人员",maintenanceOrder.getNum());
           }else if("3".equals(confirmStatus)){
               finishTransferOrder.setRepairUser(sysUser.getRealname());
               finishTransferOrder.setTransferOrderUda2(DateUtils.now());
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus(confirmStatus);
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
               this.twoMaintenanceAlert(confirmStatus,"二保移交单维修室主任",maintenanceOrder.getNum());
           }else if("4".equals(confirmStatus)){
               finishTransferOrder.setEquipmentInspectorUser("");
               finishTransferOrder.setRepairDirectorUser("");
               finishTransferOrder.setRepairUser("");
               finishTransferOrder.setTransferOrderUda2("");
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus(confirmStatus);
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
               this.twoMaintenanceAlert(confirmStatus,"二保移交单维修人员",maintenanceOrder.getNum());
           }else if("5".equals(confirmStatus)){
               finishTransferOrder.setRepairDirectorUser(sysUser.getRealname());
               finishTransferOrder.setTransferOrderUda3(DateUtils.now());
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus(confirmStatus);
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
               this.twoMaintenanceAlert(confirmStatus,"二保移交单检验员",maintenanceOrder.getNum());
           }else if("6".equals(confirmStatus)){
               finishTransferOrder.setRepairDirectorUser("");
               finishTransferOrder.setTransferOrderUda3("");
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus(confirmStatus);
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
               this.twoMaintenanceAlert(confirmStatus,"二保移交单维修室主任",maintenanceOrder.getNum());
           }else if("7".equals(confirmStatus)){
               finishTransferOrder.setEquipmentInspectorUser(sysUser.getRealname());
               finishTransferOrder.setTransferOrderUda4(DateUtils.now());
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus(confirmStatus);
               maintenanceOrder.setStatus("8");
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
           }
       }
        return Result.OK("审批成功!");
    }
    void twoMaintenanceAlert(String confirmStatus,String roleDictItem,String orderNum){
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        SysDict sysDict = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","info_type"),false);
        SysDictItem sysDictItem = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("item_text",roleDictItem)
                .eq("dict_id",sysDict.getId()),false);
        String roleCode = sysDictItem.getItemValue();
        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().eq("role_code",roleCode),false);
        List<SysUserRole> sysUserRoles = sysUserRoleService.list(new QueryWrapper<SysUserRole>().eq("role_id",sysRole.getId()));
        for(SysUserRole sysUserRole:sysUserRoles){
            SysUser user = sysUserService.getById(sysUserRole.getUserId());
            String msg = "";
            if("1".equals(confirmStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确认通过,请到二级保养页面查看!";
            }else if("2".equals(confirmStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确驳回,请到二级保养页面查看!";
            }else if("3".equals(confirmStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确认通过,请到二级保养页面查看!";
            }else if("4".equals(confirmStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确驳回,请到二级保养页面查看!";
            }else if("5".equals(confirmStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确认通过,请到二级保养页面查看!";
            }else if("6".equals(confirmStatus)){
                msg = "【"+sysUser.getRealname()+"】"+"将二级保养工单号【"+orderNum+"】的完工移交单确驳回,请到二级保养页面查看!";
            }
            MessageDTO messageDTO = new MessageDTO();
            messageDTO.setTitle("完工移交单消息提醒!");
            messageDTO.setContent(msg);
            messageDTO.setCategory(roleDictItem);
            messageDTO.setFromUser("完工移交单消息提醒提醒小助手");
            messageDTO.setToUser(user.getUsername());
            sysBaseApi.sendSysAnnouncement(messageDTO);
        }
    }
    @RequestMapping(value = "/editTechnologyStatus", method = {RequestMethod.PUT,RequestMethod.POST})
    @Transactional(rollbackFor = { Exception.class })
    public Result<String> editTechnologyStatus(@RequestBody Equipment equipment) {
        equipment.setTechnologyStatusVerificationType("1");
        equipmentService.updateById(equipment);
        DailyMaintenanceOrder dailyMaintenanceOrder = dailyMaintenanceOrderService.getById(equipment.getMaintenanceOrderId());
        dailyMaintenanceOrder.setStatus("8");
        dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
        return Result.OK("编辑成功!");
    }
}