Lius
3 天以前 2196ba833d88c32dd0e26b526928d313cfea0d80
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -3,8 +3,10 @@
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -22,15 +24,13 @@
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
import org.jeecg.modules.eam.constant.*;
import org.jeecg.modules.eam.entity.EamBaseHFCode;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder;
import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper;
import org.jeecg.modules.eam.request.EamInspectionOrderRequest;
import org.jeecg.modules.eam.request.EamThirdMaintenanceBaseResponse;
import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery;
import org.jeecg.modules.eam.request.EamThirdMaintenanceRequest;
import org.jeecg.modules.eam.service.*;
import org.jeecg.modules.eam.vo.EamThirdMaintenanceBaseVo;
import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness;
import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService;
import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI;
@@ -41,6 +41,7 @@
import org.jeecg.modules.system.entity.BaseFactoryUser;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IBaseFactoryUserService;
import org.jeecg.modules.system.service.ISysDictService;
import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.vo.UserSelector;
import org.springframework.beans.BeanUtils;
@@ -49,6 +50,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -91,6 +93,10 @@
    private IEamBaseHFCodeService eamBaseHFCodeService;
    @Resource
    private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService;
    @Resource
    private IEamThirdMaintenanceSpareService eamThirdMaintenanceSpareService;
    @Resource
    private ISysDictService sysDictService;
    @Override
    public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) {
@@ -268,7 +274,7 @@
        eamThirdMaintenanceOrderMapper.updateById(entity);
        //启动流程
        flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + (equipment.getInstallationPosition() == null ? "" : ";安装位置: " + equipment.getInstallationPosition()),
        flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode(),
                entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null);
        Map<String, Object> variables = new HashMap<>();
        variables.put("dataId", entity.getId());
@@ -342,6 +348,7 @@
    /**
     * 查询三保工单基本信息
     *
     * @param id
     * @return
     */
@@ -358,6 +365,80 @@
            eamThirdMaintenanceRequestList.add(eamThirdMaintenanceRequest);
        });
        return Result.ok(eamThirdMaintenanceRequestList);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateMaintenanceStatus(String orderId, String maintenanceStatus) {
        LambdaUpdateWrapper<EamThirdMaintenanceOrder> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(EamThirdMaintenanceOrder::getId, orderId);
        updateWrapper.set(EamThirdMaintenanceOrder::getMaintenanceStatus, maintenanceStatus);
        updateWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
        updateWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(), ThirdMaintenanceStatusEnum.FREEZE.name()));
        int update = this.getBaseMapper().update(null, updateWrapper);
        return update > 0;
    }
    @Override
    public List<EamThirdMaintenanceOrder> selectWaitMaintenanceOrderList() {
        LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(EamThirdMaintenanceOrder::getMaintenanceStatus, ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name());
        queryWrapper.isNotNull(EamThirdMaintenanceOrder::getFreezeOrderDate);
        queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
        LocalDate localDate = LocalDate.now();
        queryWrapper.lt(EamThirdMaintenanceOrder::getFreezeOrderDate, localDate.toString());
        return this.getBaseMapper().selectList(queryWrapper);
    }
    @Override
    public List<EamThirdMaintenanceOrder> selectUnCompletedThirdMaintenanceOrderList() {
        LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>();
        List<String> statusList = Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(),
                ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name(),
                ThirdMaintenanceStatusEnum.WAIT_CHECK.name(),
                ThirdMaintenanceStatusEnum.UNDER_FIRST_ACCEPTANCE.name(),
                ThirdMaintenanceStatusEnum.UNDER_SECOND_ACCEPTANCE.name(),
                ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name(),
                ThirdMaintenanceStatusEnum.REPAIRMAN_SIGNATURE.name(),
                ThirdMaintenanceStatusEnum.REPAIR_MANAGER_SIGNATURE.name(),
                ThirdMaintenanceStatusEnum.INSPECTOR_SIGNATURE.name(),
                ThirdMaintenanceStatusEnum.FREEZE.name()
        );
        queryWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, statusList);
        queryWrapper.isNotNull(EamThirdMaintenanceOrder::getOrderExpirationDate);
        queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
        LocalDate localDate = LocalDate.now();
        queryWrapper.lt(EamThirdMaintenanceOrder::getOrderExpirationDate, localDate.toString());
        return this.getBaseMapper().selectList(queryWrapper);
    }
    /**
     * 获取工单基本信息
     *
     * @param id 工单id
     * @return
     */
    @Override
    public JSONObject exportThirdMaintenanceOrderBaseInfo(String id) {
        // 创建结果对象
        JSONObject result = new JSONObject();
        EamThirdMaintenanceBaseResponse eamThirdMaintenanceBaseResponse = eamThirdMaintenanceOrderMapper.findThirdMaintenanceBaseInfo(id);
        if (eamThirdMaintenanceBaseResponse == null) {
            return result;
        }
        eamThirdMaintenanceBaseResponse.setOperatorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getOperatorSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantOperator());
        eamThirdMaintenanceBaseResponse.setRepairmanSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairmanSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantRepairman());
        eamThirdMaintenanceBaseResponse.setRepairManagerSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairManagerSignature()));
        eamThirdMaintenanceBaseResponse.setInspectorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getInspectorSignature()));
        eamThirdMaintenanceBaseResponse.setEquipmentCategory(sysDictService.queryDictTextByKey("equipment_category", eamThirdMaintenanceBaseResponse.getEquipmentCategory()));
        //检查人和检查时间
        EamThirdMaintenanceBaseVo vo = eamThirdMaintenanceOrderDetailService.selectCreatByAndTimeByOrderId(id);
        if (vo != null) {
            eamThirdMaintenanceBaseResponse.setCreateBy(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", vo.getOperateBy()));
            eamThirdMaintenanceBaseResponse.setCreateTime(vo.getOperateTime());
        }
        result.put("data",Collections.singletonList(eamThirdMaintenanceBaseResponse));
        return result;
    }
    /**
@@ -397,9 +478,9 @@
                values.put("organization", "保养人保养结束");
                values.put("comment", "保养人保养结束");
                // 获取下一步执行人
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002);
                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
                if (CollectionUtil.isEmpty(userSelectors)) {
                    throw new JeecgBootException("设备未分配给维修工,无法进入下级审批!");
                    throw new JeecgBootException("设备未分配给设备检验员,无法进入下级审批!");
                }
                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                values.put("NextAssignee", userApprovalList);
@@ -540,6 +621,14 @@
                    // 三保明细处理
                    eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId()));
                    eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList());
                    // 三保备件明细处理
                    if (request.getTableSpareList() != null && !request.getTableSpareList().isEmpty()) {
                        List<EamThirdMaintenanceSpare> tableSpareList = request.getTableSpareList();
                        tableSpareList.forEach(eamThirdMaintenanceSpare -> {
                            eamThirdMaintenanceSpare.setOrderId(request.getId());
                        });
                        eamThirdMaintenanceSpareService.saveBatch(tableSpareList);
                    }
                    break;
                case UNDER_FIRST_ACCEPTANCE:
                    // 第一次验收结束