zhangherong
2025-04-17 b7a38ea941e0ffdf7e7cad62a7d7e07bcfb884fc
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -12,14 +12,17 @@
import org.flowable.task.api.Task;
import org.jeecg.common.api.vo.FileUploadResult;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.eam.constant.InspectionStatus;
import org.jeecg.modules.eam.constant.ReportRepairEnum;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamInspectionOrder;
import org.jeecg.modules.eam.entity.EamInspectionOrderDetail;
import org.jeecg.modules.eam.mapper.EamInspectionOrderMapper;
import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.eam.service.IEamEquipmentService;
import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService;
import org.jeecg.modules.eam.service.IEamInspectionOrderService;
import org.jeecg.modules.eam.service.IEamReportRepairService;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
@@ -65,8 +68,6 @@
    private IMdcUserProductionService mdcUserProductionService;
    @Autowired
    private IEamReportRepairService eamReportRepairService;
    @Autowired
    private IEamEquipmentFaultReasonService eamEquipmentFaultReasonService;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -75,11 +76,11 @@
        BeanUtils.copyProperties(eamInspectionOrderRequest,eamInspectionOrder);
        //修改状态
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){
            eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode());
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
        }else {
            eamInspectionOrder.setInspectionStatus(InspectionStatus.INIT.getCode());
            eamInspectionOrder.setInspectionStatus(InspectionStatus.WAIT_INSPECTION.name());
        }
        save(eamInspectionOrder);
        //处理明细数据
        if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
            eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
@@ -99,7 +100,6 @@
                log.error("JSON转换失败:" + e.getMessage(), e);
            }
        }
        save(eamInspectionOrder);
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){
            triggerProcess(eamInspectionOrder);
        }
@@ -144,13 +144,14 @@
        EamInspectionOrder eamInspectionOrder = new EamInspectionOrder();
        BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder);
        if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())){
            eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode());
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
        }
        updateById(eamInspectionOrder);
        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()));
@@ -173,7 +174,7 @@
        }else {
            eamInspectionOrder.setOperator(user.getUsername());
            //修改状态
            eamInspectionOrder.setInspectionStatus(InspectionStatus.IN_PROGRESS.getCode());
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
            this.triggerProcess(eamInspectionOrder);
            this.updateById(eamInspectionOrder);
            return true;
@@ -191,7 +192,7 @@
        if (eamInspectionOrder == null) {
            return false;
        }else {
            eamInspectionOrder.setInspectionStatus("5");
            eamInspectionOrder.setInspectionStatus(InspectionStatus.ABOLISH.name());
            return updateById(eamInspectionOrder);
        }
    }
@@ -251,7 +252,7 @@
            updateEamInspectionOrder(eamInspectionOrder);
            //查询数据,进行设备维修处理
            if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.CONFIRMED.getCode())){
            if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.WAIT_CONFIRM.name())){
                updateEamInspectionOrderDetail(eamInspectionOrder);
            }
@@ -302,7 +303,7 @@
    private void setupProcessVariables(EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) {
        Map<String, Object> values = new HashMap<>();
        if (InspectionStatus.IN_PROGRESS.getCode().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) {
        if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && user.getUsername().equals(order.getOperator())) {
            // 点检人点检结束
            String orgId = Optional.ofNullable(iEamEquipmentService.getById(order.getEquipmentId()))
                    .map(equipment -> equipment.getOrgId())
@@ -331,7 +332,7 @@
                // 班组长驳回
                List<String> usernames = new ArrayList<>();
                usernames.add(order.getOperator());
                order.setInspectionStatus("2");
                order.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
                values.put("NextAssignee", usernames);
            }
        }
@@ -340,15 +341,15 @@
    private void updateOrderStatus(Result result, EamInspectionOrderRequest request, EamInspectionOrder order, LoginUser user) {
        if (result.isSuccess()) {
            if (InspectionStatus.IN_PROGRESS.getCode().equals(order.getInspectionStatus()) && StrUtil.isEmpty(request.getDealType())) {
            if (InspectionStatus.UNDER_INSPECTION.name().equals(order.getInspectionStatus()) && StrUtil.isEmpty(request.getDealType())) {
                // 点检完成
                order.setInspectionStatus("3");
                order.setInspectionStatus(InspectionStatus.WAIT_CONFIRM.name());
                order.setOperateTime(new Date());
                eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", order.getId()));
                eamInspectionOrderDetailService.saveBatch(request.getTableDetailList());
            } else if (InspectionStatus.COMPLETED.getCode().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getDealType())) {
            } else if (InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getDealType())) {
                // 班组长确认任务
                order.setInspectionStatus("4");
                order.setInspectionStatus(InspectionStatus.COMPLETE.name());
                order.setConfirmUser(user.getUsername());
                order.setConfirmTime(new Date());
            }
@@ -364,30 +365,10 @@
     * @param eamInspectionOrder
     */
    private void updateEamInspectionOrderDetail(EamInspectionOrder eamInspectionOrder) {
        EamEquipmentFaultReason eamEquipmentFaultReason=eamEquipmentFaultReasonService.
                getOne(new QueryWrapper<EamEquipmentFaultReason>().eq("fault_code","EFR20250003"));
        List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService
                .list(new QueryWrapper<EamInspectionOrderDetail>()
                        .eq("order_id", eamInspectionOrder.getId()).eq("report_flag","1"));
        List<EamReportRepair> eamReportRepairs = new ArrayList<>();
        if (!eamInspectionOrderDetails.isEmpty()) {
            eamInspectionOrderDetails.forEach(item->{
                EamReportRepair eamReportRepair=new EamReportRepair();
                eamReportRepair.setEquipmentId(eamInspectionOrder.getEquipmentId());
                eamReportRepair.setFaultName(eamEquipmentFaultReason.getFaultName());
                eamReportRepair.setFaultType(eamEquipmentFaultReason.getFaultCategory());
                eamReportRepair.setFaultDescription(eamEquipmentFaultReason.getFaultDescription());
                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_REPAIR.name());
                eamReportRepair.setBreakdownFlag("1");
                eamReportRepair.setDelFlag(CommonConstant.DEL_FLAG_0);
                eamReportRepair.setFaultStartTime(new Date());
                eamReportRepair.setRemark(item.getExceptionDescription());
                eamReportRepairs.add(eamReportRepair);
            });
        }
        if (!eamReportRepairs.isEmpty()) {
            eamReportRepairService.saveBatch(eamReportRepairs);
        }
                        .eq("order_id", eamInspectionOrder.getId()).eq("report_flag","1").eq("inspection_result", "2"));
        eamReportRepairService.reportRepairFromInspection(eamInspectionOrder.getEquipmentId(), eamInspectionOrder.getOperator(), eamInspectionOrderDetails);
    }
    /**
@@ -406,12 +387,12 @@
        List<String> list = Arrays.asList(ids.split(","));
        QueryWrapper<EamInspectionOrder> queryWrapper =new QueryWrapper<>();
        queryWrapper.in("id", list);
        queryWrapper.eq("inspection_status", "1");
        queryWrapper.eq("inspection_status", InspectionStatus.WAIT_INSPECTION.name());
        List<EamInspectionOrder> eamInspectionOrderList =this.list(queryWrapper);
        if (!eamInspectionOrderList.isEmpty()){
            eamInspectionOrderList.forEach(eamInspectionOrder -> {
                eamInspectionOrder.setInspectionStatus(type);
                if (type.equals("2")){
                if (InspectionStatus.UNDER_INSPECTION.name().equals(type)){
                    eamInspectionOrder.setOperator(loginUser.getUsername());
                    this.triggerProcess(eamInspectionOrder);
                }else {