From c41b56b0f32913d61575e98e5cba6e3de189b5bb Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Thu, 3 Aug 2023 17:09:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97(=E5=AF=BC=E5=85=A5=E9=80=BB=E8=BE=91=E5=8F=98?= =?UTF-8?q?=E6=9B=B4-=E5=B7=B2=E6=9C=89=E6=B9=BF=E6=96=99=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E4=B8=8D=E5=8F=AF=E6=9B=B4=E6=94=B9-=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E5=B7=B2=E4=B8=8B=E8=BE=BE=E4=B8=8D=E5=8F=AF=E6=9B=B4?= =?UTF-8?q?=E6=94=B9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ProOrderServiceImpl.java | 108 ++++++++++-------- 1 file changed, 60 insertions(+), 48 deletions(-) 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 e2d8f3f86..b7213e955 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; } - } - - 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); - } + // 如果工单已有湿料计划 + ProWetMaterialPlanDetail detail = proWetMaterialPlanDetailMapper.selectProWetMaterialPlanDetailByWorkId(workOrder.getWorkorderId()); + if (detail != null){ + checkEdit = true; + checkPlan = true; } } + + // 组装工单已下达反馈信息 + if (checkOnly) { + errMsg.append("第" + (i + 1) + "行:" + "订单号为:" + orderList.get(i).getOrderCode() + ",该订单下工单已下达,不允许更新;" + "
"); + } + // 组装已有湿料计划反馈信息 + 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("信息导入成功"); } // 校验失败