zhangherong
2025-04-18 48984da72dd03b6b0cce54433215abfc402a4ea5
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -23,7 +24,6 @@
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.entity.EamWeekMaintenanceOrder;
import org.jeecg.modules.eam.mapper.EamInspectionOrderMapper;
import org.jeecg.modules.eam.request.EamInspectionOrderQuery;
import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
@@ -51,7 +51,7 @@
/**
 * @Description: 点检工单
 * @Author: jeecg-boot
 * @Date:   2025-04-02
 * @Date: 2025-04-02
 * @Version: V1.0
 */
@Service("IEamInspectionOrderService")
@@ -132,19 +132,31 @@
    }
    @Override
    public List<EamInspectionOrder> selectUnCompleteOrder(String expiredDate) {
        LambdaQueryWrapper<EamInspectionOrder> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.lt(EamInspectionOrder::getInspectionDate, expiredDate);
        List<String> unCompleteStatus = new ArrayList<>();
        unCompleteStatus.add(InspectionStatus.WAIT_INSPECTION.name());
        unCompleteStatus.add(InspectionStatus.UNDER_INSPECTION.name());
        queryWrapper.in(EamInspectionOrder::getInspectionStatus, unCompleteStatus);
        queryWrapper.orderByAsc(EamInspectionOrder::getInspectionDate);
        return eamInspectionOrderMapper.selectList(queryWrapper);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
        EamInspectionOrder eamInspectionOrder = new EamInspectionOrder();
        BeanUtils.copyProperties(eamInspectionOrderRequest,eamInspectionOrder);
        BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder);
        //修改状态
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
        }else {
        } else {
            eamInspectionOrder.setInspectionStatus(InspectionStatus.WAIT_INSPECTION.name());
        }
        save(eamInspectionOrder);
        //处理明细数据
        if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getTableDetailList())) {
            eamInspectionOrderRequest.getTableDetailList().forEach(tableDetail -> {
                tableDetail.setOrderId(eamInspectionOrder.getId());
                tableDetail.setId(null);
@@ -152,7 +164,7 @@
            eamInspectionOrderDetailService.saveBatch(eamInspectionOrderRequest.getTableDetailList());
        }
        //处理附件
        if(CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) {
        if (CollectionUtil.isNotEmpty(eamInspectionOrderRequest.getFileList())) {
            FileUploadResult fileUploadResult = eamInspectionOrderRequest.getFileList().get(0);
            ObjectMapper mapper = new ObjectMapper();
            try {
@@ -162,7 +174,7 @@
                log.error("JSON转换失败:" + e.getMessage(), e);
            }
        }
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())){
        if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) {
            triggerProcess(eamInspectionOrder);
        }
        return true;
@@ -170,6 +182,7 @@
    /**
     * 触发流程
     *
     * @param eamInspectionOrder
     * @return
     */
@@ -177,26 +190,26 @@
        EamEquipment equipment = eamEquipmentService.getById(eamInspectionOrder.getEquipmentId());
        if (equipment == null) {
            return false;
        }else {
        } else {
            eamInspectionOrder.setEquipmentCode(equipment.getEquipmentCode());
        }
        System.out.println("设备点检:" + eamInspectionOrder.getId());
        flowCommonService.initActBusiness("工单号:"+eamInspectionOrder.getOrderNum()+"设备编号"+eamInspectionOrder.getEquipmentCode()+"进行设备点检",
        flowCommonService.initActBusiness("工单号:" + eamInspectionOrder.getOrderNum() + "设备编号" + eamInspectionOrder.getEquipmentCode() + "进行设备点检",
                eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", eamInspectionOrder.getId());
        if (StrUtil.isEmpty(eamInspectionOrder.getRemark())){
        if (StrUtil.isEmpty(eamInspectionOrder.getRemark())) {
            variables.put("organization", "新增点检工单默认启动流程");
            variables.put("comment", "新增点检工单默认启动流程");
        }else {
        } else {
            variables.put("organization", eamInspectionOrder.getRemark());
            variables.put("comment", eamInspectionOrder.getRemark());
        }
        variables.put("proofreading",true);
        List<String> usernames=new ArrayList<>();
        variables.put("proofreading", true);
        List<String> usernames = new ArrayList<>();
        usernames.add(eamInspectionOrder.getOperator());
        variables.put("NextAssignee", usernames);
        Result result= flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables);
        Result result = flowDefinitionService.startProcessInstanceByKey("eam_inspection", variables);
        return result.isSuccess();
    }
@@ -205,7 +218,7 @@
    public boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) {
        EamInspectionOrder eamInspectionOrder = new EamInspectionOrder();
        BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder);
        if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())){
        if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())) {
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
        }
        super.updateById(eamInspectionOrder);
@@ -224,16 +237,17 @@
    /**
     * 领取点检工单
     *
     * @param id
     * @return
     */
    @Override
    public boolean takeInspectionOrder(String id){
    public boolean takeInspectionOrder(String id) {
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        EamInspectionOrder eamInspectionOrder=this.getById(id);
        if (eamInspectionOrder==null) {
        EamInspectionOrder eamInspectionOrder = this.getById(id);
        if (eamInspectionOrder == null) {
            return false;
        }else {
        } else {
            eamInspectionOrder.setOperator(user.getUsername());
            //修改状态
            eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name());
@@ -245,15 +259,16 @@
    /**
     * 作废点检工单
     *
     * @param id
     * @return
     */
    @Override
    public boolean cancelInspectionOrder(String id){
    public boolean cancelInspectionOrder(String id) {
        EamInspectionOrder eamInspectionOrder = this.getById(id);
        if (eamInspectionOrder == null) {
            return false;
        }else {
        } else {
            eamInspectionOrder.setInspectionStatus(InspectionStatus.ABOLISH.name());
            return updateById(eamInspectionOrder);
        }
@@ -261,6 +276,7 @@
    /**
     * 点检流程
     *
     * @param eamInspectionOrderRequest
     * @return
     */
@@ -314,7 +330,7 @@
            updateEamInspectionOrder(eamInspectionOrder);
            //查询数据,进行设备维修处理
            if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.WAIT_CONFIRM.name())){
            if (eamInspectionOrder.getInspectionStatus().equals(InspectionStatus.WAIT_CONFIRM.name())) {
                updateEamInspectionOrderDetail(eamInspectionOrder);
            }
@@ -323,7 +339,6 @@
            return Result.error("操作失败:" + e.getMessage());
        }
    }
    private boolean isValidRequest(EamInspectionOrderRequest request) {
@@ -409,6 +424,16 @@
                // 点检完成
                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());
            } else if (InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getConfirmDealType())) {
@@ -428,40 +453,42 @@
    /**
     * 设备是否存在异常,并进行设备维修
     *
     * @param eamInspectionOrder
     */
    private void updateEamInspectionOrderDetail(EamInspectionOrder eamInspectionOrder) {
        List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService
                .list(new QueryWrapper<EamInspectionOrderDetail>()
                        .eq("order_id", eamInspectionOrder.getId()).eq("report_flag","1").eq("inspection_result", "2"));
                        .eq("order_id", eamInspectionOrder.getId()).eq("report_flag", "1").eq("inspection_result", "2"));
        eamReportRepairService.reportRepairFromInspection(eamInspectionOrder.getEquipmentId(), eamInspectionOrder.getOperator(), eamInspectionOrderDetails);
    }
    /**
     * 批量作废与领取
     *
     * @param ids
     * @param type
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Result<?> batchCancelOrTakeInspectionOrder(String ids, String type){
    public Result<?> batchCancelOrTakeInspectionOrder(String ids, String type) {
        if (type == null) {
            return Result.error("请选择操作类型");
        }
        LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        List<String> list = Arrays.asList(ids.split(","));
        QueryWrapper<EamInspectionOrder> queryWrapper =new QueryWrapper<>();
        QueryWrapper<EamInspectionOrder> queryWrapper = new QueryWrapper<>();
        queryWrapper.in("id", list);
        queryWrapper.eq("inspection_status", InspectionStatus.WAIT_INSPECTION.name());
        List<EamInspectionOrder> eamInspectionOrderList =this.list(queryWrapper);
        if (!eamInspectionOrderList.isEmpty()){
        List<EamInspectionOrder> eamInspectionOrderList = this.list(queryWrapper);
        if (!eamInspectionOrderList.isEmpty()) {
            eamInspectionOrderList.forEach(eamInspectionOrder -> {
                eamInspectionOrder.setInspectionStatus(type);
                if (InspectionStatus.UNDER_INSPECTION.name().equals(type)){
                if (InspectionStatus.UNDER_INSPECTION.name().equals(type)) {
                    eamInspectionOrder.setOperator(loginUser.getUsername());
                    this.triggerProcess(eamInspectionOrder);
                }else {
                } else {
                    eamInspectionOrder.setOperator(null);
                }
            });
@@ -472,13 +499,13 @@
    @Override
    public Result<?> selectVoById(String id){
        List<EamInspectionOrder> eamInspectionOrders=this.list(new QueryWrapper<EamInspectionOrder>().eq("id", id));
        List<EamInspectionOrderRequest> eamInspectionOrderRequestList=new ArrayList<>();
    public Result<?> selectVoById(String id) {
        List<EamInspectionOrder> eamInspectionOrders = this.list(new QueryWrapper<EamInspectionOrder>().eq("id", id));
        List<EamInspectionOrderRequest> eamInspectionOrderRequestList = new ArrayList<>();
        eamInspectionOrders.forEach(eamInspectionOrder -> {
            EamInspectionOrderRequest eamInspectionOrderRequest=new EamInspectionOrderRequest();
            BeanUtils.copyProperties(eamInspectionOrder,eamInspectionOrderRequest);
            List<EamInspectionOrderDetail> eamInspectionOrderDetails=eamInspectionOrderDetailService
            EamInspectionOrderRequest eamInspectionOrderRequest = new EamInspectionOrderRequest();
            BeanUtils.copyProperties(eamInspectionOrder, eamInspectionOrderRequest);
            List<EamInspectionOrderDetail> eamInspectionOrderDetails = eamInspectionOrderDetailService
                    .list(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", eamInspectionOrder.getId()));
            eamInspectionOrderRequest.setTableDetailList(eamInspectionOrderDetails);
            eamInspectionOrderRequestList.add(eamInspectionOrderRequest);
@@ -507,7 +534,7 @@
    public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
        //业务是否干预流程,业务干预,流程干预,指定人员进行处理
        //获取下一步处理人
        Object object=values.get("NextAssignee");
        Object object = values.get("NextAssignee");
        return (List<String>) object;
    }
}