lyh
2025-06-27 218ab860ed4708f6f70a519775c56c9554000fe7
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/CalibrationOrderReportController.java
@@ -5,32 +5,33 @@
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;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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;
import org.jeecg.common.system.base.entity.SysUploadRela;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.StrUtils;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.entity.CalibrationOrder;
import org.jeecg.modules.eam.entity.CalibrationOrderReport;
import org.jeecg.modules.eam.entity.Equipment;
import org.jeecg.modules.eam.entity.EquipmentDocument;
import org.jeecg.modules.eam.service.ICalibrationOrderReportService;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.service.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.eam.service.ICalibrationOrderService;
import org.jeecg.modules.eam.service.IEamEquipmentService;
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;
@@ -69,6 +70,26 @@
    @Autowired
    private IEamEquipmentService eamEquipmentService;
    @Autowired
    private IDailyInspectionStandardService dailyInspectionStandardService;
    @Autowired
    private IInspectionOrderService inspectionOrderService;
    @Autowired
    private IDailyMaintenanceOrderService dailyMaintenanceOrderService;
    @Resource
    private ISysRoleService sysRoleService;
    @Resource
    private ISysDictService sysDictService;
    @Resource
    private ISysDictItemService sysDictItemService;
    @Resource
    private ISysUserRoleService sysUserRoleService;
    @Resource
    private ISysUserService sysUserService;
    /**
     * 分页列表查询
@@ -134,21 +155,121 @@
        // 更新主表为已完成
        CalibrationOrder calibrationOrder = calibrationOrderService.getById(calibrationOrderReport.getCalibrationOrderId());
        // status 已完成
        calibrationOrder.setStatus("4");
        calibrationOrder.setCalibrationResult(calibrationOrderReport.getJudgmentResult());
        calibrationOrder.setCalibrationTime(new Date());
        calibrationOrder.setStatus("2");
//        calibrationOrder.setCalibrationResult(calibrationOrderReport.getJudgmentResult());
//        calibrationOrder.setCalibrationTime(new Date());
        calibrationOrderService.updateById(calibrationOrder);
        // 更新设备技术状态
        Equipment equipment = eamEquipmentService.getById(calibrationOrder.getEquipmentId());
        if (StringUtils.isNotBlank(equipment.getId())) {
            equipment.setTechnologyStatus(calibrationOrderReport.getJudgmentResult());
            eamEquipmentService.updateById(equipment);
        }
//        // 更新设备技术状态
//        Equipment equipment = eamEquipmentService.getById(calibrationOrder.getEquipmentId());
//
//        if (StringUtils.isNotBlank(equipment.getId())) {
//            equipment.setTechnologyStatus(calibrationOrderReport.getJudgmentResult());
//            eamEquipmentService.updateById(equipment);
//        }
        return Result.ok("上传成功!");
    }
    /**
     * 根据检定结果  修改设备技术状态
     * @return
     */
//    @PostMapping(value = "/editEquipmentTechnologyStatus")
    @RequestMapping(value = "/editEquipmentTechnologyStatus", method = {RequestMethod.PUT,RequestMethod.POST})
    @Transactional(rollbackFor = {Exception.class})
    public Result<?> editEquipmentTechnologyStatus(@RequestBody CalibrationOrderReport calibrationOrderReport){
        String status = calibrationOrderReport.getStatus();
        CalibrationOrder calibrationOrder = calibrationOrderService.getById(calibrationOrderReport.getId());
        if("3".equals(status)){//3:已驳回
            calibrationOrder.setStatus("3");
            calibrationOrder.setRemark(calibrationOrderReport.getRemark());
            calibrationOrder.setCalibrationResult(calibrationOrderReport.getJudgmentResult());
            calibrationOrderService.updateById(calibrationOrder);
            return Result.ok("驳回成功!");
        }else{
            calibrationOrder.setStatus("4");
            calibrationOrder.setRemark(calibrationOrderReport.getRemark());
            calibrationOrder.setCalibrationResult(calibrationOrderReport.getJudgmentResult());
            calibrationOrder.setCalibrationTime(new Date());
            calibrationOrderService.updateById(calibrationOrder);
            // 更新设备技术状态
            Equipment equipment = eamEquipmentService.getById(calibrationOrder.getEquipmentId());
            if (StringUtils.isNotBlank(equipment.getId())) {
                equipment.setTechnologyStatus(calibrationOrderReport.getJudgmentResult());
                eamEquipmentService.updateById(equipment);
                this.equipmentTechnologyStatuAlart(equipment.getNum(),equipment.getTechnologyStatus());
            }
            String judgmentResult = calibrationOrderReport.getJudgmentResult();
            if("disabledScrapping".equals(judgmentResult)){
                this.cancleAllOrder(equipment.getId());
            }
            return Result.ok("设备技术状态修改完成!");
        }
    }
    void equipmentTechnologyStatuAlart(String equipmentNum,String technologyStatus){
        SysDict sysDictT = sysDictService.getOne(new QueryWrapper<SysDict>().eq("dict_code","technology_status"),false);
        SysDictItem sysDictItemt = sysDictItemService.getOne(new QueryWrapper<SysDictItem>().eq("item_value",technologyStatus)
                .eq("dict_id",sysDictT.getId()),false);
        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","运保设备管理员")
                .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 = sysUser.getRealname()+"将统一编号为【"+equipmentNum+"】的技术状态修改为【"+sysDictItemt.getItemText()+"】";
            MessageDTO messageDTO = new MessageDTO();
            messageDTO.setTitle("设备台账技术状态修改");
            messageDTO.setContent(msg);
            messageDTO.setCategory("运保设备管理员");
            messageDTO.setFromUser("设备台账技术状态修改提醒小助手");
            messageDTO.setToUser(user.getUsername());
            sysBaseApi.sendSysAnnouncement(messageDTO);
        }
    }
    void cancleAllOrder(String equipmentId){
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        //如果技术状态鉴定 为禁用(已提交报废) 状态 对应当前点检标准失效,改为统一的点检标准(徐静提供),原点检工单、二保工单、三保工单全部取消,
        List<DailyInspectionStandard> dailyInspectionStandards = dailyInspectionStandardService.lambdaQuery()
                .eq(DailyInspectionStandard::getVersionStatus, "2")
                .eq(DailyInspectionStandard::getEquipmentId, equipmentId)
                .eq(DailyInspectionStandard::getDelFlag, "0").list();
        for (DailyInspectionStandard dailyInspectionStandard : dailyInspectionStandards) {
            dailyInspectionStandard.setVersionStatus("3");
            dailyInspectionStandard.setLoseEfficacyPerson(sysUser.getRealname());
            dailyInspectionStandard.setLoseEfficacyTime(new Date());
            dailyInspectionStandardService.updateById(dailyInspectionStandard);
        }
        List<InspectionOrder> inspectionOrders = inspectionOrderService.lambdaQuery()
                .eq(InspectionOrder::getStatus, "1")
                .eq(InspectionOrder::getEquipmentId, equipmentId)
                .eq(InspectionOrder::getDelFlag, "0").list();
        for (InspectionOrder inspectionOrder : inspectionOrders) {
            inspectionOrder.setStatus("7");
            inspectionOrderService.updateById(inspectionOrder);
        }
        List<DailyMaintenanceOrder> dailyMaintenanceOrders = dailyMaintenanceOrderService.lambdaQuery()
                .eq(DailyMaintenanceOrder::getStatus, "1")
                .eq(DailyMaintenanceOrder::getEquipmentId, equipmentId)
                .eq(DailyMaintenanceOrder::getDelFlag, "0").list();
        for (DailyMaintenanceOrder dailyMaintenanceOrder : dailyMaintenanceOrders) {
            dailyMaintenanceOrder.setStatus("7");
            dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
        }
    }
    @PostMapping(value = "/edit")
    @Transactional(rollbackFor = {Exception.class})
    public Result<?> edit(MultipartHttpServletRequest request, HttpServletResponse response) throws Exception {