“linengliang”
2023-09-06 8b825a12d64065dd9d8054e5247e374f6cec5390
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/DailyMaintenanceOrderController.java
@@ -37,6 +37,8 @@
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -84,6 +86,24 @@
    @Autowired
    private IMaintenanceOrderActualWorkingHourService maintenanceOrderActualWorkingHourService;
    @Autowired
    private IFinishTransferOrderService finishTransferOrderService;
    @Autowired
    private ISysUserService sysUserService;
    @Autowired
    private IPrecisionInspectionService precisionInspectionService;
    @Autowired
    private IEamEquipmentService equipmentService;
    @Autowired
    private IEquipmentPrecisionParametersService equipmentPrecisionParametersService;
    @Autowired
    private IPrecisionInspectionDetailService precisionInspectionDetailService;
    /**
     * 分页列表查询
@@ -114,6 +134,7 @@
        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);
@@ -151,6 +172,34 @@
                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());
                }
            }
        }
        return Result.ok(dailyMaintenanceOrderList);
    }
@@ -179,7 +228,10 @@
        } else if ("day".equals(unit)) {
            date = DateUtils.getDayAfter(planStartTime, effectiveTime);
        }
        dailyMaintenanceOrder.setPlanEndTime(date);
        dailyMaintenanceOrder.setPlanEndTime(date);//创建类型(1手动创建,2自动创建)
        dailyMaintenanceOrder.setCreateType("1");//创建类型(1手动创建,2自动创建)
        dailyMaintenanceOrder.setConfirmStatus("0");//移交确认状态(0未确认,1主任确认,2检验员确认)
        dailyMaintenanceOrder.setPrecisionInspectionStatus("0");//精度检验单流程状态(0未确认,1精度检验者,2维修室主任,3设备检验员,4使用单位技术主管,5设备检验员(盖章))
        dailyMaintenanceOrderService.save(dailyMaintenanceOrder);
        List<DailyMaintenanceOrderDetail> dailyMaintenanceOrderDetails = dailyMaintenanceOrder.getDailyMaintenanceOrderDetails();
        for (DailyMaintenanceOrderDetail dailyMaintenanceOrderDetail : dailyMaintenanceOrderDetails) {
@@ -400,6 +452,30 @@
        if ("5".equals(status)) {
            maintenanceOrder.setActualEndTime(null);
            boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
            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 {
@@ -429,10 +505,47 @@
        dailyMaintenanceOrder.setMaintenanceUserId(userId);
        dailyMaintenanceOrder.setActualEndTime(new Date());
        boolean b = dailyMaintenanceOrderService.updateById(dailyMaintenanceOrder);
        String id = dailyMaintenanceOrder.getId();
        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(id);
        FinishTransferOrder finishTransferOrder = new FinishTransferOrder();
        finishTransferOrder.setEquipmentId(maintenanceOrder.getEquipmentId());
        finishTransferOrder.setMaintenanceOrderId(maintenanceOrder.getId());
        finishTransferOrder.setOperateUser(userId);
        finishTransferOrder.setRepairUser(userId);
        finishTransferOrder.setStatus("1");
        finishTransferOrder.setDelFlag(0);
        finishTransferOrderService.save(finishTransferOrder);
        this.createPrecisionInspection(maintenanceOrder);
        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);
        }
    }
@@ -446,4 +559,41 @@
        return Result.ok(sysDeparts);
    }
    /**
     * 审批
     */
    @RequestMapping(value = "/approve", method = {RequestMethod.PUT, RequestMethod.POST})
    public Result<String> approve(@RequestBody DailyMaintenanceOrder dailyMaintenanceOrder) {
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = sysUser.getId();
        String orderId = dailyMaintenanceOrder.getId();
        DailyMaintenanceOrder maintenanceOrder = dailyMaintenanceOrderService.getById(orderId);
        String equipmentId = maintenanceOrder.getEquipmentId();
        String confirmStatus = maintenanceOrder.getConfirmStatus();
        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);
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus("1");
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
           }else{
               finishTransferOrder.setEquipmentInspectorUser(userId);
               finishTransferOrderService.updateById(finishTransferOrder);
               maintenanceOrder.setConfirmStatus("2");
               maintenanceOrder.setStatus("8");
               dailyMaintenanceOrderService.updateById(maintenanceOrder);
           }
       }
        return Result.OK("审批成功!");
    }
}