Sfoglia il codice sorgente

mes代办功能处理

oyq28 3 settimane fa
parent
commit
cc0a4da8fd

+ 41 - 31
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/externalApi/MesController.java

@@ -24,10 +24,7 @@ import com.github.zuihou.business.operationManagementCenter.entity.OrderProduct;
 import com.github.zuihou.business.operationManagementCenter.service.OrderProductService;
 import com.github.zuihou.business.operationManagementCenter.service.OrderService;
 import com.github.zuihou.business.operationManagementCenter.service.PlanService;
-import com.github.zuihou.business.productionReadyCenter.entity.BBom;
-import com.github.zuihou.business.productionReadyCenter.entity.BomVersionInfo;
-import com.github.zuihou.business.productionReadyCenter.entity.MMeterial;
-import com.github.zuihou.business.productionReadyCenter.entity.MMeterialReceiveLog;
+import com.github.zuihou.business.productionReadyCenter.entity.*;
 import com.github.zuihou.business.productionReadyCenter.service.*;
 import com.github.zuihou.business.productionResourceCenter.entity.ZZone;
 import com.github.zuihou.business.productionResourceCenter.service.ZZoneService;
@@ -58,6 +55,9 @@ import java.io.File;
 import java.io.IOException;
 import java.net.URL;
 import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
 
 @Slf4j
 @Validated
@@ -763,11 +763,11 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
             String drawingNo = dataInfo.getString("graphno");
             String idnr = dataInfo.getString("idnr");
 
-            materialCode = StringUtil.isNotEmpty(idnr)? idnr: mMeterial.getMeterialCode();
+
             //获取默认虚拟原材料
              mMeterial = materialService.getById(1L);
              MMeterialReceiveLog mMeterialReceiveLog = meterialReceiveLogService.getById(1L);
-             materialCode = mMeterial.getMeterialCode();
+             materialCode = StringUtil.isNotEmpty(idnr)? idnr: mMeterial.getMeterialCode();
             BBom bom = bBomService.getOne(new LambdaQueryWrapper<BBom>().eq(BBom::getDrawingNo, drawingNo).eq(BBom::getSynFlag, "1"));
             if(bom==null){
                 materialName = mMeterial.getTradeMark();
@@ -787,15 +787,32 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
             workOrder.put("processRouteVersion", version);
             workOrder.put("batchNo",  batchNo);
             List<Object> orderProductSeqList = Lists.newArrayList();
-            JSONObject data = new JSONObject();
-            data.put("serialNo", serialNo);
-            orderProductSeqList.add(data);
-            workOrder.put("orderProductSeqList",  orderProductSeqList);
-            workPieceList = orderProductSeqList;
-
-            if(null!=mesInfo){
+            if(null != qualityInfo) {
+                JSONObject data = new JSONObject();
+                data.put("serialNo", serialNo);
+                orderProductSeqList.add(data);
+            }else{
+                 String plmenge = dataInfo.getString("plmenge");
+                 if(StringUtil.isEmpty(plmenge)) {
+                     msgUtil.createWarnLog("Mes订单加工零件个数不允许为空","MESException");
+                     return;
+                 }
+                List<JSONObject> dataList = IntStream.range(0, (int)Float.parseFloat(plmenge)).mapToObj(i-> {
+                    JSONObject obj = new JSONObject();
+                    obj.put("serialNo", String.valueOf(i));
+                    return obj;
+                }).collect(Collectors.toList());
+                orderProductSeqList.addAll(dataList);
+                String pstart = dataInfo.getString("pstart");
+                String pend =  dataInfo.getString("pend");
+                String bez = dataInfo.getString("bez");
+                workOrder.put("plannedStartTime", pstart);
+                workOrder.put("plannedEndTime", pend);
+                workOrder.put("bez", bez);
 
             }
+            workOrder.put("orderProductSeqList", orderProductSeqList);
+            workPieceList = orderProductSeqList;
         }else {
             if (null != consumMaterial) {
                 //处理原材料信息
@@ -899,7 +916,7 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
             }
         }
 
-        String bomName = materialName + "V" + processNo;
+        String bomName = materialName.contains("V")? materialName : materialName + "V" + processNo;
         BBom bom = bBomService.getOne(new LambdaQueryWrapper<BBom>().eq(BBom::getMeterialId, mMeterial.getId()).eq(BBom::getPartsNo, mMeterial.getMeterialCode()).eq(BBom::getName, bomName).eq(BBom::getSynFlag, "1"));
         if (bom == null) {
             bom = BBom.builder().build();
@@ -932,33 +949,26 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
         } else {
             versionId = mesVersionInfo.getId();
         }
-            /*
+        List<BomProcedure> bomProcedureList = bomProcedureService.list(new LbqWrapper<BomProcedure>().eq(BomProcedure::getVersionId,  versionId).eq(BomProcedure::getBomId, bom.getId()));
+
             //节点处理
-            if (taskList.size() >= 4) {
-                String[] noArr = new String[] {"OP05","OP10", "OP11", "OP15"};
-                String[] typeArr = new String[] {"上料","设备序", "设备序","下料"};
+            if (bomProcedureList.size()== 0  && workOrder.containsKey("bez")) {
+                List<String> noArr = Stream.of("OP05","OP10", "OP11", "OP15").collect(Collectors.toList());
+                List<String> nameArr = Stream.of("上料", workOrder.getString("bez"), "清洗","下料").collect(Collectors.toList());
+                List<String> typeArr = Stream.of("上料","设备序", "设备序","下料").collect(Collectors.toList());
 
                 List<BomProcedureVersion> bomProcedureVersionsList = Lists.newArrayList();
-                List<BomProcedure> bomProcedureList = Lists.newArrayList();
-                Long finalVersionId = versionId;
-                BBom finalBom = bom;
-                taskList.stream().forEach(item -> {
-                    JSONObject jsonObject = (JSONObject) item;
-                    BomProcedureVersion bomProcedureVersion = BomProcedureVersion.builder().build();
-                    int stepNo = Integer.parseInt(jsonObject.getString("stepNo")) - 1;
-                    bomProcedureVersion.setVersionId(finalVersionId).setBomId(finalBom.getId()).setAuditStatus("0")
-                            .setName(jsonObject.getString("stepName")).setRemark(jsonObject.getString("stepDesc")!="null"?jsonObject.getString("stepDesc"):"").setSort(99-stepNo).setRatedWorkhours(10f);
-                    int index = stepNo < 4 ? stepNo : stepNo % 4;
-                    bomProcedureVersion.setNo(noArr[index]).setType(typeArr[index]);
+                for(int i=0; i<noArr.size();i++){
+                    BomProcedureVersion bomProcedureVersion = BomProcedureVersion.builder().versionId(versionId).bomId(bom.getId()).auditStatus("0").name(nameArr.get(i)).type(typeArr.get(i)).content(nameArr.get(i)).sort(100-i).ratedWorkhours(10f).no(noArr.get(i))
+                            .build();
                     bomProcedureVersionsList.add(bomProcedureVersion);
                     BomProcedure bomProcedure = BeanUtil.toBean(bomProcedureVersion, BomProcedure.class);
                     bomProcedure.setRatedWorkhours(10f);
                     bomProcedureList.add(bomProcedure);
-                });
+                }
                 bomProcedureVersionService.saveBatch(bomProcedureVersionsList);
                 bomProcedureService.saveBatch(bomProcedureList);
             }
-            */
 
         //处理工单信息
         Order order = Order.builder().build();