Ver código fonte

fix:代办增加图号与物料号关联关系

wang.sq@aliyun.com 3 semanas atrás
pai
commit
4ec29b6d6c

+ 5 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/externalApi/service/ExternalDrawingMaterialsService.java

@@ -1,8 +1,11 @@
 package com.github.zuihou.business.externalApi.service;
 
+import com.github.zuihou.base.R;
 import com.github.zuihou.base.service.SuperService;
 import com.github.zuihou.business.externalApi.entity.ExternalDrawingMaterials;
 
+import java.util.List;
+
 /**
  * @Project: imcs-admin-boot
  * @Package: com.github.zuihou.business.externalApi.service
@@ -11,4 +14,6 @@ import com.github.zuihou.business.externalApi.entity.ExternalDrawingMaterials;
  * @Description:
  */
 public interface ExternalDrawingMaterialsService extends SuperService<ExternalDrawingMaterials> {
+
+    R addDrawingMaterialsList(List<ExternalDrawingMaterials> externalDrawingMaterials);
 }

+ 32 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/externalApi/service/impl/ExternalDrawingMaterialsServiceImpl.java

@@ -1,5 +1,6 @@
 package com.github.zuihou.business.externalApi.service.impl;
 
+import com.github.zuihou.base.R;
 import com.github.zuihou.base.service.SuperServiceImpl;
 import com.github.zuihou.business.externalApi.dao.ExternalDrawingMaterialsMapper;
 import com.github.zuihou.business.externalApi.dao.MesNoticeMapper;
@@ -7,9 +8,15 @@ import com.github.zuihou.business.externalApi.entity.ExternalDrawingMaterials;
 import com.github.zuihou.business.externalApi.entity.MesNotice;
 import com.github.zuihou.business.externalApi.service.ExternalDrawingMaterialsService;
 import com.github.zuihou.business.productionReadyCenter.service.MesNoticeService;
+import com.github.zuihou.database.mybatis.conditions.Wraps;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 /**
  * @Project: imcs-admin-boot
  * @Package: com.github.zuihou.business.externalApi.service.impl
@@ -21,7 +28,32 @@ import org.springframework.stereotype.Service;
 @Slf4j
 @Service
 public class ExternalDrawingMaterialsServiceImpl extends SuperServiceImpl<ExternalDrawingMaterialsMapper, ExternalDrawingMaterials> implements ExternalDrawingMaterialsService {
+    @Override
+    public R addDrawingMaterialsList(List<ExternalDrawingMaterials> externalDrawingMaterials) {
+        StringBuffer errorInfo = new StringBuffer();
 
+        List<ExternalDrawingMaterials> drawingMaterials = baseMapper.selectList(Wraps.<ExternalDrawingMaterials>lbQ().eq(ExternalDrawingMaterials::getEnabled, 1));
+        Map<String, List<ExternalDrawingMaterials>> collect = drawingMaterials.size()==0? null : drawingMaterials.stream().collect(Collectors.groupingBy(ExternalDrawingMaterials::getExternalMeterialCode));
 
+        List<ExternalDrawingMaterials> newadd =new ArrayList<>();
+        for (ExternalDrawingMaterials item : externalDrawingMaterials) {
+            if(item.getDrawNumber()==null || item.getExternalMeterialCode() ==null){
+                errorInfo.append("<br>图号不能为空:"+item.getExternalMeterialCode());
+                continue;
+            }
+            if(collect !=null && collect.get(item.getExternalMeterialCode())!=null){
+                continue;
+            }
+            item.setEnabled(1);
+            newadd.add(item);
+        }
+        if(!newadd.isEmpty()){
+             baseMapper.insertBatchSomeColumn(newadd);
+        }
 
+        if (errorInfo!=null && errorInfo.length()!=0){
+            return R.result(2000,null,"失败的数据:");
+        }
+        return R.success();
+    }
 }

+ 7 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/externalApi/service/impl/MesNoticeServiceImpl.java

@@ -188,9 +188,15 @@ public class MesNoticeServiceImpl extends SuperServiceImpl<MesNoticeMapper, MesN
         Map<String, ExternalDrawingMaterials> map = listR == null ? null : listR.stream().collect(Collectors.toMap(ExternalDrawingMaterials::getExternalMeterialCode, t -> t));
         if (!mesNoticeIPage.getRecords().isEmpty()) {
             for (MesNotice record : mesNoticeIPage.getRecords()) {
+                record.setNeedDrawingMaterial(2);
                 try {
                     JSONObject jsonObject = JSONObject.parseObject(record.getAcceptPar());
-                    jsonObject.getString("");
+                    switch (record.getApiType()){
+                        case "MESTASK":
+                            ExternalDrawingMaterials drawingMaterials = map.get(jsonObject.getString("idnr"));
+                            record.setNeedDrawingMaterial(Objects.isNull(drawingMaterials)? 1:2);
+                            break;
+                    }
                 } catch (Exception ex) {
                     log.info("转换出错,不做处理");
                 }

+ 3 - 11
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/externalApi/ExternalDrawingMaterialsController.java

@@ -69,19 +69,11 @@ public class ExternalDrawingMaterialsController extends SuperController<External
 
     @ApiOperation(value = "新增物料与图号关系", notes = "新增物料与图号关系")
     @PostMapping("/addDrawingMaterials")
-    public R addDrawingMaterials(@RequestBody ExternalDrawingMaterials  externalDrawingMaterials) {
+    public R addDrawingMaterials(@RequestBody List<ExternalDrawingMaterials>  externalDrawingMaterials) {
         log.info("================新增物料与图号关系开始================{}", JSONObject.toJSONString(externalDrawingMaterials));
-
-        if(externalDrawingMaterials.getDrawNumber()==null || externalDrawingMaterials.getExternalMeterialCode() ==null){
-            return R.fail("图号不能为空");
-        }
-        int count = baseService.count(Wraps.<ExternalDrawingMaterials>lbQ().eq(ExternalDrawingMaterials::getExternalMeterialCode, externalDrawingMaterials.getExternalMeterialCode()));
-        if (count>0){
-            return R.fail("重复新增");
-        }
-        boolean save = baseService.save(externalDrawingMaterials);
+        R save = baseService.addDrawingMaterialsList(externalDrawingMaterials);
         log.info("================新增物料与图号关系结束================{}", save);
-        return R.success();
+        return save;
     }
 
 

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

@@ -1084,7 +1084,13 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
             partsNo =  (qualityInfo != null) ? (drawingNo + "_V" + processNo+"_SQ") : drawingNo + "_V" + processNo;
             BBom bom = bBomService.getOne(new LambdaQueryWrapper<BBom>().eq(BBom::getPartsNo, partsNo).eq(BBom::getDrawingNo, drawingNo).eq(BBom::getNo, processNo).eq(BBom::getSynFlag, "1").last("limit 1"));
             if (bom == null) {
-                if(checkBom!=null){
+                if( Objects.isNull(checkBom)){
+                    materialName = partName==null ? (processName==null ? mMeterial.getTradeMark() :processName) : partName;
+                    partsNo = drawingNo + "_V" + processNo;
+                    bom = BBom.builder().synFlag("1").name(materialName + "V" + processNo).batchNo(batchNo).partsNo(partsNo).partsAlias(materialCode).no(processNo).brand(workOrderNo).status("1").importantFlag("0").keyFlag("0").zoneId(zone.getId()).drawingNo(drawingNo).build();
+                    bom.setMeterialId(1L);
+                    bom.setBomAlias(partsNo);
+                }else {
                     bom = new BBom();
                     BeanUtil.copyProperties(checkBom,bom);
                     bom.setId(null).setName(checkBom.getName()+"_质检");
@@ -1094,12 +1100,6 @@ public class MesController extends SuperController<MesNoticeService, Long, MesNo
                     bom.setTrayName(null);
                     materialName = bom.getName();
                     partsNo = bom.getPartsNo();
-                }else {
-                    materialName = partName==null ? (processName==null ? mMeterial.getTradeMark() :processName) : partName;
-                    partsNo = drawingNo + "_V" + processNo+"_SQ";
-                    bom = BBom.builder().synFlag("1").name(materialName + "V" + processNo).batchNo(batchNo).partsNo(partsNo).partsAlias(materialCode).no(processNo).brand(workOrderNo).status("1").importantFlag("0").keyFlag("0").zoneId(zone.getId()).drawingNo(drawingNo).build();
-                    bom.setMeterialId(1L);
-                    bom.setBomAlias(partsNo);
                 }
                 bBomService.save(bom);
             } else {

+ 5 - 0
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/externalApi/entity/MesNotice.java

@@ -163,6 +163,11 @@ public class MesNotice extends Entity<Long> {
     @Excel(name = "校验参数")
     private String checkPar;
 
+    @ApiModelProperty(value = "需要维护图号与物料编号关系, 1需要,2不需要")
+    @TableField(exist = false)
+    @Excel(name = "需要维护图号与物料编号关系, 1需要,2不需要")
+    private Integer needDrawingMaterial;
+
 
 
     @Builder