diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index e2d8f3f8..b7213e95 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1,6 +1,5 @@ package com.op.plan.service.impl; -import java.sql.SQLException; import java.util.*; import java.util.stream.Collectors; @@ -17,15 +16,12 @@ import com.op.plan.domain.*; import com.op.plan.domain.dto.ProOrderDTO; import com.op.plan.domain.dto.SplitOrderDTO; import com.op.plan.domain.vo.LineAndShiftVo; -import com.op.plan.mapper.ProOrderWorkorderBatchMapper; -import com.op.plan.mapper.ProOrderWorkorderMapper; -import com.op.plan.mapper.ProRouteMapper; +import com.op.plan.mapper.*; import com.op.system.api.RemoteSapService; import com.op.system.api.model.SapProOrder; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.op.plan.mapper.ProOrderMapper; import com.op.plan.service.IProOrderService; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -53,6 +49,8 @@ public class ProOrderServiceImpl implements IProOrderService { private ProOrderWorkorderBatchMapper proOrderWorkorderBatchMapper; @Autowired private ProRouteMapper proRouteMapper; + @Autowired + private ProWetMaterialPlanDetailMapper proWetMaterialPlanDetailMapper; @Autowired private RemoteSapService remoteSapService; @@ -311,66 +309,80 @@ public class ProOrderServiceImpl implements IProOrderService { for (int i = 0; i < orderList.size(); i++) { // 当前行操作 boolean checkOnly = false; + boolean checkPlan = false; List workOrderList = proOrderWorkorderMapper.selectWorkOrderByOrderCode(orderList.get(i).getOrderCode()); // 遍历查询工单是否已下达-下达则不允许编辑更新 for (ProOrderWorkorder workOrder : workOrderList) { + // 如果工单已经下达 if (workOrder.getStatus().equals("w1")) { checkEdit = true; checkOnly = true; } + // 如果工单已有湿料计划 + ProWetMaterialPlanDetail detail = proWetMaterialPlanDetailMapper.selectProWetMaterialPlanDetailByWorkId(workOrder.getWorkorderId()); + if (detail != null){ + checkEdit = true; + checkPlan = true; + } } + // 组装工单已下达反馈信息 if (checkOnly) { errMsg.append("第" + (i + 1) + "行:" + "订单号为:" + orderList.get(i).getOrderCode() + ",该订单下工单已下达,不允许更新;" + "
"); - return error(500, errMsg.toString()); - } else { - // 正常插入与更新操作 - for (ProOrder order : orderList) { - // 查询订单是否存在 - ProOrder proOrder = proOrderMapper.selectProOrderByOrderCode(order.getOrderCode()); - // 如果存在 - if (proOrder != null) { - // 通过订单Code查询该订单下的所有工单id-用于删除批次表 - List childWorkOrderList = proOrderWorkorderMapper.selectWorkOrderByOrderCode(proOrder.getOrderCode()); - // 存在工单 - if (childWorkOrderList.size() > 0){ - // 将获得的工单id封装 - List ids = new ArrayList<>(); - for (ProOrderWorkorder workOrder : childWorkOrderList) { - ids.add(workOrder.getWorkorderId()); - } - String[] workorderIds = (String[])ids.toArray(new String[ids.size()]); - - // 删除所有该订单下的工单 - proOrderWorkorderMapper.deleteProOrderWorkorderByOrderId(proOrder.getId()); - // 删除工单下的所有批次表信息 - proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderIds(workorderIds); - } - - // 更新字段 - order.setStatus("o0"); - order.setQuantitySplit(0L); - order.setUpdateBy(SecurityContextHolder.getUserName()); - order.setUpdateTime(DateUtils.getNowDate()); - // 通过订单号code更新订单信息 - proOrderMapper.updateProOrderByOrderCode(order); - } else { - // 不存在则创建 - order.setId(IdUtils.fastSimpleUUID()); - order.setOrderType(order.getProdType()); - order.setParentOrder("0"); - proOrderMapper.insertProOrder(order); - } - } } + // 组装已有湿料计划反馈信息 + if (checkPlan) { + errMsg.append("第" + (i + 1) + "行:" + "订单号为:" + orderList.get(i).getOrderCode() + ",该订单下工单已有湿料计划,不允许更新;" + "
"); + } + } + // 如果存在不可编辑信息 if (checkEdit) { return error(500, errMsg.toString()); } + // 正常插入与更新操作 + for (ProOrder order : orderList) { + // 查询订单是否存在 + ProOrder proOrder = proOrderMapper.selectProOrderByOrderCode(order.getOrderCode()); + // 如果存在 + if (proOrder != null) { + // 通过订单Code查询该订单下的所有工单id-用于删除批次表 + List childWorkOrderList = proOrderWorkorderMapper.selectWorkOrderByOrderCode(proOrder.getOrderCode()); + // 存在工单 + if (childWorkOrderList.size() > 0){ + // 将获得的工单id封装 + List ids = new ArrayList<>(); + for (ProOrderWorkorder workOrder : childWorkOrderList) { + ids.add(workOrder.getWorkorderId()); + } + String[] workorderIds = (String[])ids.toArray(new String[ids.size()]); + + // 删除所有该订单下的工单 + proOrderWorkorderMapper.deleteProOrderWorkorderByOrderId(proOrder.getId()); + // 删除工单下的所有批次表信息 + proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderIds(workorderIds); + } + + // 更新字段 + order.setStatus("o0"); + order.setQuantitySplit(0L); + order.setUpdateBy(SecurityContextHolder.getUserName()); + order.setUpdateTime(DateUtils.getNowDate()); + // 通过订单号code更新订单信息 + proOrderMapper.updateProOrderByOrderCode(order); + } else { + // 不存在则创建 + order.setId(IdUtils.fastSimpleUUID()); + order.setOrderType(order.getProdType()); + order.setParentOrder("0"); + proOrderMapper.insertProOrder(order); + } + } + return success("信息导入成功"); } // 校验失败