Przeglądaj źródła

aps-分切批次号生成逻辑增加

sucheng 10 miesięcy temu
rodzic
commit
2e2278309a

+ 81 - 29
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsReportOutputServiceImpl.java

@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bscommon.sys.dao.ApsReportOutputDao;
 import com.rongwei.bscommon.sys.service.ApsProcessOperationOutMaterService;
+import com.rongwei.bscommon.sys.service.ApsProcessOperationService;
 import com.rongwei.bscommon.sys.service.ApsReportRecordsService;
 import com.rongwei.bscommon.sys.utils.QRCodeGenerator;
+import com.rongwei.bsentity.domain.ApsProcessOperationDo;
 import com.rongwei.bsentity.domain.ApsProcessOperationOutMaterDo;
 import com.rongwei.bsentity.domain.ApsReportOutputDo;
 import com.rongwei.bsentity.domain.ApsReportRecordsDo;
@@ -42,6 +44,8 @@ public class ApsReportOutputServiceImpl extends ServiceImpl<ApsReportOutputDao,
     private CXAdminFeginClient cxAdminFeginClient;
     @Autowired
     private ApsReportRecordsService apsReportRecordsService;
+    @Autowired
+    private ApsProcessOperationService apsProcessOperationService;
 
     @Override
     @Transactional
@@ -152,22 +156,69 @@ public class ApsReportOutputServiceImpl extends ServiceImpl<ApsReportOutputDao,
                 apsReportOutputDo.setQrcode(qrCode);
                 resList.add(apsReportOutputDo);
             } else {//输出物料数量>1,或者单卷输出数量>1
-                //分卷开始初始化值
-                int j = 1;
-                for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : list) {
-                    int outval = apsProcessOperationOutMaterDo.getOutval();
-                    for (int i = 1; i <= outval; i++) {
-                        //插入记录物料子表
-                        ApsReportOutputDo apsReportOutputDo = new ApsReportOutputDo();
+                //查询工序作业信息
+                ApsProcessOperationDo apsProcessOperationDo = apsProcessOperationService.getById(req.getProcessId());
+                //分切工序
+                if (apsProcessOperationDo.getProcess().equals("分切")) {
+                    int j = 1;//初始化分切车次
+                    for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : list) {
+                        //每个输出物料的分切车次
+                        Integer splittrainno = apsProcessOperationOutMaterDo.getSplittrainno();
+                        //输出卷数
+                        Integer outval = apsProcessOperationOutMaterDo.getOutval();
+                        //每次分切的卷数
+                        int count = outval / splittrainno;
+                        //分切车次循环
+                        for (int k = 0; k < splittrainno; k++) {
+                            //分卷循环
+                            for (int i = 1; i <= count; i++) {
+                                //插入记录物料子表
+                                ApsReportOutputDo apsReportOutputDo = new ApsReportOutputDo();
 
-                        apsReportOutputDo.setMainid(req.getMainId());
-                        apsReportOutputDo.setOutputid(apsProcessOperationOutMaterDo.getId());
-                        apsReportOutputDo.setOutputmaterial(apsProcessOperationOutMaterDo.getOutputmaterial());
-                        apsReportOutputDo.setLevel(req.getLevel());
-                        //生成批次号
-                        //不用走系统生成的批次号了,按照输入的批次号就行分卷就行
-                        String code = req.getInputBatchNumber() + "-" + j;
-                        j++;
+                                apsReportOutputDo.setMainid(req.getMainId());
+                                apsReportOutputDo.setOutputid(apsProcessOperationOutMaterDo.getId());
+                                apsReportOutputDo.setOutputmaterial(apsProcessOperationOutMaterDo.getOutputmaterial());
+                                apsReportOutputDo.setLevel(req.getLevel());
+                                //生成批次号
+                                String code = req.getInputBatchNumber() + "-" + j + "-" + i;
+
+                                apsReportOutputDo.setOutputnumber(code);
+                                JSONObject json = new JSONObject();
+                                json.put("batchNumber", code);
+                                //生成二维码
+                                String qrCode = QRCodeGenerator.stringToQRCodeBase64(json.toJSONString(), 200, 200, "png");
+                                apsReportOutputDo.setQrcode(qrCode);
+
+                                apsReportOutputDo.setId(SecurityUtil.getUUID());
+                                apsReportOutputDo.setThickness(apsProcessOperationOutMaterDo.getThickness());
+                                apsReportOutputDo.setWidth(apsProcessOperationOutMaterDo.getProwidth());
+                                apsReportOutputDo.setLength(apsProcessOperationOutMaterDo.getProlength());
+                                apsReportOutputDo.setWeight(apsProcessOperationOutMaterDo.getSinglerollweight());
+                                apsReportOutputDo.setInsepctionlevel(insepctionLevel);
+                                apsReportOutputDo.setQualified(qualified);
+                                resList.add(apsReportOutputDo);
+
+                            }
+                            j++;
+                        }
+                    }
+                } else {//非分切工序
+                    //分卷开始初始化值
+                    int j = 1;
+                    for (ApsProcessOperationOutMaterDo apsProcessOperationOutMaterDo : list) {
+                        int outval = apsProcessOperationOutMaterDo.getOutval();
+                        for (int i = 1; i <= outval; i++) {
+                            //插入记录物料子表
+                            ApsReportOutputDo apsReportOutputDo = new ApsReportOutputDo();
+
+                            apsReportOutputDo.setMainid(req.getMainId());
+                            apsReportOutputDo.setOutputid(apsProcessOperationOutMaterDo.getId());
+                            apsReportOutputDo.setOutputmaterial(apsProcessOperationOutMaterDo.getOutputmaterial());
+                            apsReportOutputDo.setLevel(req.getLevel());
+                            //生成批次号
+                            //不用走系统生成的批次号了,按照输入的批次号就行分卷就行
+                            String code = req.getInputBatchNumber() + "-" + j;
+                            j++;
 
 //                        //生成批次号
 //                        SysSerialVo vo = new SysSerialVo();
@@ -179,21 +230,22 @@ public class ApsReportOutputServiceImpl extends ServiceImpl<ApsReportOutputDao,
 //                        Map<String, Object> codeData = cxAdminFeginClient.getSerialNumberCode(vo).getData();
 //                        String code = codeData.get("code").toString();
 
-                        apsReportOutputDo.setOutputnumber(code);
-                        JSONObject json = new JSONObject();
-                        json.put("batchNumber", code);
-                        //生成二维码
-                        String qrCode = QRCodeGenerator.stringToQRCodeBase64(json.toJSONString(), 200, 200, "png");
-                        apsReportOutputDo.setQrcode(qrCode);
+                            apsReportOutputDo.setOutputnumber(code);
+                            JSONObject json = new JSONObject();
+                            json.put("batchNumber", code);
+                            //生成二维码
+                            String qrCode = QRCodeGenerator.stringToQRCodeBase64(json.toJSONString(), 200, 200, "png");
+                            apsReportOutputDo.setQrcode(qrCode);
 
-                        apsReportOutputDo.setId(SecurityUtil.getUUID());
-                        apsReportOutputDo.setThickness(apsProcessOperationOutMaterDo.getThickness());
-                        apsReportOutputDo.setWidth(apsProcessOperationOutMaterDo.getProwidth());
-                        apsReportOutputDo.setLength(apsProcessOperationOutMaterDo.getProlength());
-                        apsReportOutputDo.setWeight(apsProcessOperationOutMaterDo.getSinglerollweight());
-                        apsReportOutputDo.setInsepctionlevel(insepctionLevel);
-                        apsReportOutputDo.setQualified(qualified);
-                        resList.add(apsReportOutputDo);
+                            apsReportOutputDo.setId(SecurityUtil.getUUID());
+                            apsReportOutputDo.setThickness(apsProcessOperationOutMaterDo.getThickness());
+                            apsReportOutputDo.setWidth(apsProcessOperationOutMaterDo.getProwidth());
+                            apsReportOutputDo.setLength(apsProcessOperationOutMaterDo.getProlength());
+                            apsReportOutputDo.setWeight(apsProcessOperationOutMaterDo.getSinglerollweight());
+                            apsReportOutputDo.setInsepctionlevel(insepctionLevel);
+                            apsReportOutputDo.setQualified(qualified);
+                            resList.add(apsReportOutputDo);
+                        }
                     }
                 }
             }