From 355d8e6d6d7e1361d29f11901c27d3fa970537cb Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Thu, 18 Jul 2024 14:59:23 +0800
Subject: [PATCH 01/14] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=B3=BB=E7=BB=9F?=
 =?UTF-8?q?=E5=8D=87=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../op/common/core/utils/http/HttpUtils.java  |   4 +-
 .../java/com/op/mes/mapper/MesLineMapper.java |   2 +-
 .../mes/service/impl/MesLineServiceImpl.java  |  48 ++------
 .../resources/mapper/mes/MesLineMapper.xml    |   2 +-
 .../op/open/service/impl/OpenServiceImpl.java |   1 +
 .../main/java/com/op/plan/domain/ProLine.java |   9 ++
 .../java/com/op/plan/domain/ProOrder.java     |   9 ++
 .../service/impl/ProOrderServiceImpl.java     |  32 +++--
 .../mapper/plan/ProOrderWorkorderMapper.xml   |   3 +-
 .../service/IQcMaterialGroupService.java      |   2 +-
 .../impl/QcCheckTaskIncomeServiceImpl.java    |   6 +-
 .../impl/QcCheckTaskProduceServiceImpl.java   |   1 +
 .../impl/QcCheckTypeProjectServiceImpl.java   |   2 +-
 .../impl/QcCheckUnqualifiedServiceImpl.java   |  18 +--
 .../service/impl/QcGoalServiceImpl.java       | 116 +++++++++++++++++-
 .../impl/QcMaterialGroupServiceImpl.java      |   2 +-
 .../quality/QcCheckTypeProjectMapper.xml      |   9 +-
 .../mapper/quality/QcMaterialGroupMapper.xml  |  17 ++-
 18 files changed, 206 insertions(+), 77 deletions(-)

diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java
index bb3e5a57..a9716114 100644
--- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java
+++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/http/HttpUtils.java
@@ -162,13 +162,13 @@ public class HttpUtils {
             conn.setRequestProperty("user-agent" , "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
             conn.setRequestProperty("Accept-Charset" , "utf-8");
 //            conn.setRequestProperty("contentType" , "utf-8");
-            conn.setRequestProperty("content-Type", "application/json; charset=utf-8");
+            conn.setRequestProperty("content-Type", "application/json; charset=GBK");
             conn.setDoOutput(true);
             conn.setDoInput(true);
             out = new PrintWriter(conn.getOutputStream());
             out.print(param);
             out.flush();
-            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));
+            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "GBK"));
             String line;
             while ((line = in.readLine()) != null) {
                 result.append(line);
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java
index b6c32d7b..c578bd0d 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java
@@ -72,7 +72,7 @@ public interface MesLineMapper {
 
     MesLine selectInfoByLineProduct(MesLine mesLine);
 
-    void insertLineProduct(MesLine mesLine);
+    int insertLineProduct(MesLine mesLine);
 
     void updateLineProduct(MesLine mesLine);
 }
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java
index 7217382a..f683ea81 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java
@@ -1,6 +1,7 @@
 package com.op.mes.service.impl;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -14,6 +15,7 @@ import com.op.common.core.web.domain.AjaxResult;
 import com.op.common.security.utils.SecurityUtils;
 import com.op.mes.domain.MesLineProcess;
 import com.op.mes.domain.MesLineProduct;
+import com.op.mes.mapper.MesLineProductMapper;
 import com.op.mes.service.IMesLineProcessService;
 import com.op.mes.service.IMesLineProductService;
 import org.apache.commons.collections4.CollectionUtils;
@@ -43,6 +45,9 @@ public class MesLineServiceImpl implements IMesLineService {
     @Autowired
     private MesLineMapper mesLineMapper;
 
+    @Autowired
+    private MesLineProductMapper mesLineProductMapper;
+
     @Autowired
     private IMesLineProcessService mesLineProcessService;
     @Autowired
@@ -97,49 +102,20 @@ public class MesLineServiceImpl implements IMesLineService {
      */
     @Override
     @DS("#header.poolName")
-    @Transactional(propagation = Propagation.REQUIRED)
+   // @Transactional(propagation = Propagation.REQUIRED)
     public int insertMesLine(MesLine mesLine) {
-        mesLine.setCreateTime(DateUtils.getNowDate());
-        mesLine.setCreateBy(SecurityUtils.getUsername());
-        mesLine.setId(IdUtils.fastSimpleUUID());
-        String belongTo = mesLine.getId();
         // 获取工厂编码
         HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         String key = "#header.poolName";
         String factoryCode = request.getHeader(key.substring(8)).replace("ds_", "");
-        mesLine.setFactoryCode(factoryCode);
-        // 绑定工艺
-        List<String> processList = mesLine.getProcessList();
-        List<BigDecimal> qualityList = mesLine.getQualityList();
-        if (!CollectionUtils.isEmpty(processList)) {
-
-            String lineCode = mesLine.getLineCode();
-            String lineName = mesLine.getLineName();
-            for (int i = 0; i < processList.size(); i++) {
-                MesLineProcess mesLineProcess = new MesLineProcess();
-                mesLineProcess.setBelongTo(belongTo);
-                mesLineProcess.setProcessName(processList.get(i));
-                mesLineProcess.setQuality(qualityList.get(i));
-                mesLineProcess.setLineCode(lineCode);
-                mesLineProcess.setLineName(lineName);
-                mesLineProcess.setFactoryCode(factoryCode);
-                mesLineProcessService.insertMesLineProcess(mesLineProcess);
-            }
-        }
         // 绑定产品
-        List<MesLineProduct> productList = mesLine.getProductList();
-        if (CollectionUtils.isNotEmpty(productList)) {
-            for (MesLineProduct item : productList) {
-                item.setId(IdUtils.fastSimpleUUID());
-                item.setBelongTo(belongTo);
-                item.setFactoryCode(factoryCode);
-                item.setCreateBy(SecurityUtils.getUsername());
-                item.setCreateTime(DateUtils.getNowDate());
-            }
-            mesLineProductService.batchInsertMesLineProduct(productList);
-        }
+        mesLine.setId(IdUtils.fastSimpleUUID());
+        mesLine.setFactoryCode(factoryCode);
+        mesLine.setCreateBy(SecurityUtils.getUsername());
+        mesLine.setCreateTime(DateUtils.getNowDate());
+        int m = mesLineMapper.insertLineProduct(mesLine);
 
-        return mesLineMapper.insertMesLine(mesLine);
+        return m;
     }
 
     /**
diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml
index 64ab6d24..6815cce6 100644
--- a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml
+++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml
@@ -204,7 +204,7 @@
         select id, line_code, use_man, efficiency
         from mes_line_product
         where del_flag = '0' and line_code = #{lineCode}
-          and use_man = #{useMan} and efficiency = #{efficiency}
+          and product_code = #{productCode}
     </select>
 
     <select id="getProductListBom" resultType="com.op.mes.domain.MesLineProduct">
diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java
index caa9ff0a..8684c5b7 100644
--- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java
+++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java
@@ -386,6 +386,7 @@ public class OpenServiceImpl implements OpenService {
         return success();
     }
 
+    /**首检  批次成品**/
     @Override
     public int insertQcCheckTaskProduce(QcCheckTaskProduceDTO qcCheckTaskProduce) {
         DynamicDataSourceContextHolder.push("ds_" + qcCheckTaskProduce.getFactoryCode());
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java
index 320b8aef..308f223e 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProLine.java
@@ -8,6 +8,15 @@ public class ProLine {
     private String lineName;
     private Long efficiency;
     private String dh;
+    private String factoryDh;
+
+    public String getFactoryDh() {
+        return factoryDh;
+    }
+
+    public void setFactoryDh(String factoryDh) {
+        this.factoryDh = factoryDh;
+    }
 
     public Long getEfficiency() {
         return efficiency;
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java
index 457f61a7..267219ab 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java
@@ -76,6 +76,15 @@ public class ProOrder extends TreeEntity {
 	private Integer endFlag;
 	private String belongWorkOrder;
 	private String shiftId;
+	private String factoryDh;
+
+	public String getFactoryDh() {
+		return factoryDh;
+	}
+
+	public void setFactoryDh(String factoryDh) {
+		this.factoryDh = factoryDh;
+	}
 
 	public String getShiftId() {
 		return shiftId;
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 6c03eefb..d0a4a34a 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
@@ -1357,8 +1357,8 @@ public class ProOrderServiceImpl implements IProOrderService {
             proOrder.setLineCode(proOrder.getLineCodes()[i]);
             ProLine plineInfo = proOrderWorkorderMapper.getLineProductInfo(proOrder);//线体母单产品产能和线体代码
             if(plineInfo==null){
-                logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产");
-                return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产");
+                logger.error("线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】");
+                return AjaxResult.error(642,"线体"+proOrder.getLineCodes()[i]+"无法生产,请到【线体产品管理界面进行维护】");
             }
             Long efficiency = plineInfo.getEfficiency();
             if(efficiency < orderQua){
@@ -1424,10 +1424,15 @@ public class ProOrderServiceImpl implements IProOrderService {
 
             /**拆批次**/
             proOrder.setProdSpc(plineInfo.getDh());//借用字段
+            /**批次中的工厂代码**/
+            proOrder.setFactoryDh(plineInfo.getFactoryDh());
 
+            AjaxResult aResult = getBatchList(proOrder);//Done;
+            if(!aResult.isSuccess()){
+                return aResult;
+            }
 
-
-            List<ProOrderWorkorderBatch> workorderBatches0 = getBatchList(proOrder);//TODO;
+            List<ProOrderWorkorderBatch> workorderBatches0 = (List<ProOrderWorkorderBatch>)aResult.get("data");
 
             if(CollectionUtils.isEmpty(workorderBatches0)){
                 logger.error("批次太多,请检查【产品批次数量】、【产线产能】、【批次号夜班开始字母】是否设置正常。");
@@ -1491,7 +1496,7 @@ public class ProOrderServiceImpl implements IProOrderService {
         String[][] lineCodeArray = {{gxCode,pOrder.getLineCode()}};
         workOrder.setProdLineCode(JSONArray.toJSONString(lineCodeArray));
         workOrder.setProductDate(DateUtils.dateTime("yyyy-MM-dd",pOrder.getProductDate()));
-        //workOrder.setShiftId();
+        workOrder.setShiftId(pOrder.getShiftId());
         workOrder.setParentOrder(proOrder.getParentOrder());
         workOrder.setStatus("w0");
         workOrder.setCreateBy(SecurityUtils.getUsername());
@@ -1504,10 +1509,16 @@ public class ProOrderServiceImpl implements IProOrderService {
     }
 
     //靠母单先生成批次模板
-    protected List<ProOrderWorkorderBatch> getBatchList(ProOrder proOrder){
+    protected AjaxResult getBatchList(ProOrder proOrder){
         List<ProOrderWorkorderBatch> workorderBatches = new ArrayList<>();
         Long pworkOrderQua = proOrder.getQuantitySplit();//母工单数量
         BaseProduct batchQua0 = proOrderWorkorderMapper.getProductInfo(proOrder);//母单标准批次产能和几合一
+
+        if(batchQua0 == null || batchQua0.getBatchQuaStandar()==null){
+            logger.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置");
+            return AjaxResult.error("未设置最大批次数,请到【产品管理】界面进行产品的最大批次设置");
+        }
+
         ProOrderWorkorderBatch workBatch = null;
         while(pworkOrderQua>0){
             workBatch = new ProOrderWorkorderBatch();
@@ -1525,8 +1536,6 @@ public class ProOrderServiceImpl implements IProOrderService {
         List<String> batches = proOrderWorkorderMapper.getBatchDict("batch_flag");
         char dayWorkBatchStart = batches.get(0).charAt(0);
         char nightWorkBatchStart = batches.get(1).charAt(0);
-        int dayBatches = nightWorkBatchStart - dayWorkBatchStart;
-        int nigthBatches = 'Z' - nightWorkBatchStart;
 
         int maxBatchNum = 0;
         char startZM = 'A';
@@ -1540,11 +1549,12 @@ public class ProOrderServiceImpl implements IProOrderService {
 
         if(workorderBatches.size()>maxBatchNum){
             logger.error("大于工厂字典【batch_flag】推理的的批次数");
-            return null;
+            return AjaxResult.error("大于工厂字典【batch_flag】推理的的批次数");
         }
 
+
         //获取批次号集合
-        List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryCode(),
+        List<String> batchCodes = StringUtils.batchAutoCreate(proOrder.getFactoryDh(),
                 proOrder.getProdSpc(),
                 DateUtils.dateTime("yyyy-MM-dd",proOrder.getProductDate()),
                 proOrder.getAtrr2().substring(proOrder.getAtrr2().length()-1),
@@ -1554,7 +1564,7 @@ public class ProOrderServiceImpl implements IProOrderService {
             workorderBatches.get(n).setBatchCode(batchCodes.get(n));
         }
 
-        return workorderBatches;
+        return AjaxResult.success(workorderBatches);
     }
 
     /**
diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
index 5d212b51..044983b3 100644
--- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
+++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
@@ -649,9 +649,10 @@
     </select>
     <select id="getLineProductInfo" resultType="com.op.plan.domain.ProLine">
         select mlp.efficiency efficiency,
-               bp.dh
+               bp.dh,sf.ancestors factoryDh
         from mes_line_product mlp
         left join base_equipment bp on mlp.line_code = bp.equipment_code
+        left join sys_factory sf on sf.factory_code =  mlp.factory_code and sf.del_flag = '0'
         where mlp.del_flag = '0' and product_code = #{prodCode}
         and mlp.line_code = #{lineCode} and bp.del_flag = '0'
     </select>
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java
index bacb239e..8b14ef83 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java
@@ -23,7 +23,7 @@ public interface IQcMaterialGroupService {
     public QcMaterialGroup selectQcMaterialGroupById(String id);
 
     /**
-     * 获得原始物料分组
+     * 获得检验标准
      * @param qcMaterialGroup
      * @return
      */
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
index 41b62061..e33853b9 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
@@ -140,7 +140,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 
 	/**
 	 * 新增来料检验
-	 *
+	 * 来料检验要根据检验标准进行
 	 * @param qcCheckTaskIncome 来料检验
 	 * @return 结果
 	 */
@@ -640,7 +640,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 	}
 
 	@Override
-	@Transactional(rollbackFor = Exception.class)
+	//@Transactional(rollbackFor = Exception.class)
 	public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) {
 		logger.info("质检提交参数:"+JSONObject.toJSONString(qcCheckTaskIncome));
 		List<QcCheckTaskDetail> details = qcCheckTaskIncome.getQcCheckTaskDetails();
@@ -815,7 +815,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 		if("produce".equals(qcCheckTaskIncome.getTypeCode())){
 			unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode());
 			unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
-
+			unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
 			//申请人-
 			unqualified.setSqr(qcCheckTaskIncome.getSqr());
 			//申请部门
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java
index 0aba0dd8..9a4c1882 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java
@@ -145,6 +145,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService
 	 * 新增生产过程检验任务
 	 *
 	 * @param qcCheckTaskProduce 生产过程检验任务
+	 *  巡检  首检
 	 * @return 结果
 	 */
 	@Override
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java
index e851b40a..16b45793 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java
@@ -247,7 +247,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService
         return failOrder;
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    //@Transactional(rollbackFor = Exception.class)
     public String syncFunc(QcMaterialGroupDetail materialGroupDetail){
         String failOrder = "";
         Date nowDate = DateUtils.getNowDate();
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
index 39466663..6321d131 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
@@ -184,7 +184,7 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
 		//QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
 		//发起来料检验OA流程
 		Map<String, Object> paramMap = new HashMap<>();
-		paramMap.put("user",task.getSqr());//提交人工号
+		paramMap.put("user",task.getUser());//提交人工号
 		paramMap.put("requestLevel",0);//流程紧急度
 		paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称
 		paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld
@@ -195,7 +195,7 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
 
 		StringBuffer mainObject = new StringBuffer();
 		mainObject.append("{");
-		mainObject.append("\"SQR\":"+"\""+task.getSqr()+"");//申请人--
+		mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人--
 		mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区--
 		mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】
 		mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码
@@ -314,31 +314,31 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
 		QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
 		//发起来料检验OA流程
 		Map<String, Object> paramMap = new HashMap<>();
-		paramMap.put("user",task.getSqr());//提交人工号
+		paramMap.put("user",task.getUser());//提交人工号
 		paramMap.put("requestLevel",0);//流程紧急度
 		paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+")");//流程名称
 		paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld
 
 		StringBuffer mainObject = new StringBuffer();
 		mainObject.append("{");
-		mainObject.append("\"CPMC\":"+detailInfo.getMaterialName());//产品名称
-		mainObject.append(",\"CPBM\":"+detailInfo.getMaterialCode());//产品编码
-		mainObject.append(",\"SQBM\":"+task.getSqbm());//0品质保障部
+		mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称
+		mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码
+		mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部
 		mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户
 		mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间
 		mainObject.append(",\"SCCJ\":"+"\"162\"");//所属车间
 		mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号
-		mainObject.append(",\"SCSL\":"+"\""+task.getQuality()+"\"");//生产数量
+		mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量
 		mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点
 		mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getCheckTime())+"\"");//发现日期
 		mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号  年月日+四位流水号
-		mainObject.append(",\"YCFW\":"+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
+		mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
 		mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述
 		mainObject.append(",\"Notes\":"+"\"\"");//测试备注
 		mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否  0是
 		mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管:SFXYZG字段为"是",则此项选择QC主管信息
 		mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管  660:朱继新
-		mainObject.append(",\"SFGYSWT\":"+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
+		mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
 
 		mainObject.append("}");
 
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java
index f3aa0a00..84fc9a99 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java
@@ -1,22 +1,34 @@
 package com.op.quality.service.impl;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.op.common.core.utils.DateUtils;
+import com.op.common.core.utils.StringUtils;
+import com.op.common.core.web.domain.AjaxResult;
 import com.op.common.security.utils.SecurityUtils;
+import com.op.quality.domain.QcCheckUnqualified;
 import com.op.quality.domain.vo.TreeSelect;
+import com.op.quality.mapper.QcCheckTaskIncomeMapper;
+import com.op.system.api.RemoteOpenService;
+import com.op.system.api.RemoteQualityService;
+import com.op.system.api.domain.SysNoticeGroup;
+import com.op.system.api.domain.dto.WechartDTO;
+import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO;
 import com.sun.xml.bind.v2.TODO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.op.quality.mapper.QcGoalMapper;
 import com.op.quality.domain.QcGoal;
 import com.op.quality.service.IQcGoalService;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
@@ -31,8 +43,21 @@ import javax.servlet.http.HttpServletRequest;
  */
 @Service
 public class QcGoalServiceImpl implements IQcGoalService {
+    protected Logger logger = LoggerFactory.getLogger(getClass());
     @Autowired
     private QcGoalMapper qcGoalMapper;
+//    @Autowired
+//    private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
+//    @Autowired
+//    private RemoteOpenService remoteOpenService;
+//
+//    private static Pattern p2= Pattern.compile("<[^>]+>");
+
+    @Autowired
+    private RemoteOpenService remoteOpenService;
+    @Autowired
+    private RemoteQualityService remoteQualityService;
+
 
     /**
      * 查询质量目标
@@ -59,9 +84,92 @@ public class QcGoalServiceImpl implements IQcGoalService {
         for (QcGoal item : qcGoals) {
             item.setHasChildren(true);
         }
+//        QcCheckUnqualified task = new QcCheckUnqualified();
+//        task.setUser("002007");//9999999
+//        task.setSqr("660");
+//        task.setOaFactory("0");
+//        task.setMaterialType("0");
+//        task.setMaterialCode("000000040000015128");
+//        task.setMaterialName("榄菊蚊香加大盘Ф137.5mm×H100mm36圈内增高塑料筒(有字盖)2201");
+//        task.setSupplierCode("0000100330");
+//        task.setSupplierName("中山市荣星塑料包装有限公司");
+//        task.setQuality("15296");
+//        task.setUnit("ST");
+//        task.setCheckNo("202407130047");
+//        task.setCzbjr("284");
+//        task.setMaterialFrom("2");
+//        task.setZcf("0");
+//        task.setZcoemcm("转出工厂");
+//        task.setRemark("zxl测试不合格发起oa");
+//        task.setQczg("660");
+//        this.createLLOA(task);
+
+//        //手持来料质检触发
+//        QcCheckTaskIncomeDTO qcCheckTaskIncomeDTO = new QcCheckTaskIncomeDTO();
+//        qcCheckTaskIncomeDTO.setPoolName("ds_1000" );
+//        qcCheckTaskIncomeDTO.setCheckLoc("mjtest");
+//        qcCheckTaskIncomeDTO.setCheckType("checkTypeLL");
+////		qcCheckTaskIncomeDTO.setCheckManCode("mobile");
+////		qcCheckTaskIncomeDTO.setCheckManName("手持测试用户");
+//        qcCheckTaskIncomeDTO.setSupplierCode("0000102272");
+//        qcCheckTaskIncomeDTO.setFactoryCode("1000");
+//        qcCheckTaskIncomeDTO.setSupplierName("广州市彩晴包装印刷有限公司");
+//        qcCheckTaskIncomeDTO.setOrderType("8040");//包材固定码
+//        qcCheckTaskIncomeDTO.setUnit("KG");
+//        qcCheckTaskIncomeDTO.setQuality(new BigDecimal("10"));
+//        qcCheckTaskIncomeDTO.setMaterialCode("000000040000011094");
+//        qcCheckTaskIncomeDTO.setMaterialName("LANJU 出口封口胶(1000米/卷)(1901)");
+//        qcCheckTaskIncomeDTO.setIncomeBatchNo("202312250001");
+//        qcCheckTaskIncomeDTO.setOrderNo("4500297568");
+//        qcCheckTaskIncomeDTO.setIncomeTime(new Date());
+//        remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO);
+
         return qcGoals;
     }
 
+    private AjaxResult createLLOA(QcCheckUnqualified task){
+
+        //QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
+        //发起来料检验OA流程
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("user",task.getUser());//提交人工号
+        paramMap.put("requestLevel",0);//流程紧急度
+        paramMap.put("requestName","ZL0010-来料检验不合格控制流程");//流程名称
+        paramMap.put("workflowId",113454);//该流程对应的唯- workFlowld
+
+        if(StringUtils.isEmpty(task.getIncomeBatchNo())){
+            task.setIncomeBatchNo(DateUtils.parseDateToStr("yyyyMMdd",new Date()));
+        }
+
+        StringBuffer mainObject = new StringBuffer();
+        mainObject.append("{");
+        mainObject.append("\"SQR\":"+"\""+task.getSqr()+"\"");//申请人--
+        mainObject.append(",\"CQ\":"+task.getOaFactory());//厂区--
+        mainObject.append(",\"LLLB\":"+task.getMaterialType());//来料类别【0、1】
+        mainObject.append(",\"MATNR\":"+"\""+task.getMaterialCode()+"\"");//物料编码
+        mainObject.append(",\"MAKTX\":"+"\""+task.getMaterialName()+"\"");//物料名称
+        mainObject.append(",\"suppliernum\":"+"\""+task.getSupplierCode()+"\"");//供应商编码
+        mainObject.append(",\"supplier\":"+"\""+task.getSupplierName()+"\"");//供应商名称
+        mainObject.append(",\"CHARG\":"+"\""+task.getIncomeBatchNo()+"\"");//生产批号
+        mainObject.append(",\"comeQty\":"+"\""+task.getQuality()+"\"");//来料数量
+        mainObject.append(",\"DW\":"+"\""+task.getUnit()+"\"");//来料单位
+        mainObject.append(",\"testDate\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",new Date())+"\"");//检验日期
+        mainObject.append(",\"JYBH\":"+"\""+task.getCheckNo()+"\"");//检验编码
+        mainObject.append(",\"BJY\":"+"\""+task.getCzbjr()+"\"");//仓储报检人--
+        mainObject.append(",\"WLLY\":"+"\""+task.getMaterialFrom()+"\"");//物料来源
+        mainObject.append(",\"ZCF\":"+"\""+task.getZcf()+"\"");//转出方
+        mainObject.append(",\"ZCOEMCM\":"+"\""+task.getZcoemcm()+"\"");//转出OEM厂名
+        mainObject.append(",\"memo\":"+"\""+task.getRemark()+"\"");//不合格描述
+        mainObject.append(",\"PZGLBZG\":"+"\""+task.getQczg()+"\"");//qc主管--
+        mainObject.append("}");
+
+        paramMap.put("mainObject",mainObject.toString());
+        logger.info("流程Id 113454:"+ JSONObject.toJSONString(paramMap));
+        AjaxResult oaR = remoteOpenService.OAInspection(paramMap);
+        logger.info("流程Id 113454:"+ JSONObject.toJSONString(oaR));
+        return oaR;
+    }
+
     @Override
     @DS("#header.poolName")
     public List<QcGoal> selectChildrenByParent(QcGoal goal) {
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java
index b4ac41c6..9eded988 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java
@@ -54,7 +54,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
     }
 
     /**
-     * 获取原始物料分组
+     * 获取检验标准
      * @param qcMaterialGroup
      * @return
      */
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml
index f26e1a89..57a272af 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml
@@ -307,13 +307,20 @@
 		where del_flag = '0'
 	</select>
     <select id="getProductGroup" resultType="com.op.quality.domain.QcProjectType">
-        select bp.product_group productGroup,
+        <!--select bp.product_group productGroup,
                bp.product_group_name productGroupName,
                qmg.id groupId
         from base_product bp
         left join qc_material_group qmg on qmg.group_code = bp.product_group
+        where bp.product_code like concat('%',#{materialCode},'%')
+          and bp.del_flag = '0'-->
+
+        select top 1 qmg.id groupId
+        from base_product bp
+                 left join qc_material_group qmg on qmg.group_code = bp.mvgr5
         where bp.product_code like concat('%',#{materialCode},'%')
           and bp.del_flag = '0'
+        order by qmg.create_time desc
     </select>
     <select id="selectExist" resultType="com.op.quality.domain.QcMaterialGroupDetail">
         select material_name from qc_material_group_detail
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml
index 4a558445..054abf1e 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml
@@ -14,10 +14,14 @@
         <result property="updateTime" column="update_time"/>
         <result property="factoryCode" column="factory_code"/>
         <result property="delFlag" column="del_flag"/>
+        <result property="groupCode" column="group_code"/>
+
     </resultMap>
 
     <sql id="selectQcMaterialGroupVo">
-		select id, group_name, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_material_group
+		select id, group_name, attr1, create_by, create_time,
+		       update_by, update_time, factory_code, del_flag
+		from qc_material_group
 	</sql>
 
     <select id="selectQcMaterialGroupList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult">
@@ -40,10 +44,10 @@
 
     <select id="getOriginalGroupList" parameterType="QcMaterialGroup" resultType="QcMaterialGroup">
         SELECT DISTINCT
-            product_group groupCode,
-            concat(product_group_name,'(',product_group,')') groupName
+            mvgr5 groupCode,
+            mvgr5 groupName
         FROM base_product
-        WHERE del_flag = '0' AND product_group_name IS NOT NULL
+        WHERE del_flag = '0' AND mvgr5 IS NOT NULL
     </select>
 
     <select id="getMaterialChildrenList" parameterType="QcMaterialGroup" resultMap="QcMaterialGroupResult">
@@ -61,7 +65,10 @@
 
 
     <select id="selectQcMaterialGroupById" parameterType="String" resultMap="QcMaterialGroupResult">
-        <include refid="selectQcMaterialGroupVo"/>
+        select id, group_name, attr1, create_by, create_time,
+               update_by, update_time, factory_code, del_flag,
+               group_code
+        from qc_material_group
         where id = #{id}
     </select>
 

From cdb7b88a36b65240429e48e6d75e06c8d6e2c524 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Thu, 18 Jul 2024 16:46:52 +0800
Subject: [PATCH 02/14] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=8D=87=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../impl/QcCheckTaskIncomeServiceImpl.java    | 20 +++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
index e33853b9..60fba57f 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
@@ -825,7 +825,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			//发现地点
 			unqualified.setCheckLoc(qcCheckTaskIncome.getCheckLoc());
 			//是否需要主管审核
-			unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
+			unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg());
 			if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是
 				//qc主管
 				unqualified.setPgzg(qcCheckTaskIncome.getPgzg());
@@ -834,6 +834,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			}
 			//是否供应商问题
 			unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
+			unqualified.setOaFactoryF(qcCheckTaskIncome.getOaFactoryF());
 
 		}else if("material".equals(qcCheckTaskIncome.getTypeCode())){
 			unqualified.setTypeCode(qcCheckTaskIncome.getTypeCode());
@@ -859,7 +860,8 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			//来料数量
 			unqualified.setQuality(qcCheckTaskIncome.getQuality().toString());
 			//来料单位
-			unqualified.setUnit(qcCheckTaskIncome.getUnit());
+			//CAR:0 PC:1 其它:2 吨:3 千克:4
+			unqualified.setUnit(getConvertUnit(qcCheckTaskIncome.getUnit()));
 			//检验编号
 			unqualified.setCheckNo(qcCheckTaskIncome.getCheckNo());
 			//仓储报检人-李爱娟
@@ -931,6 +933,15 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			//发企业微信--------------------结束
 		}
 	}
+	//CAR:0 PC:1 其它:2 吨:3 千克:4
+	protected String getConvertUnit(String unit){
+		String unitOa= "";
+		switch (unit) {
+			case "ST": unitOa="1";
+			default: unitOa="1";
+		}
+		return unitOa;
+	}
 
 	protected String getSampleQua(QcCheckTaskIncome qcCheckTaskIncome){
 		String sampleQuaStr = "";
@@ -993,4 +1004,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 	public SysUser getOaUserId(SysUser getUserIdList) {
 		return qcCheckTaskIncomeMapper.getOaUserId(getUserIdList);
 	}
+
+	public static void main(String args[]){
+		QcCheckTaskIncomeServiceImpl impl = new QcCheckTaskIncomeServiceImpl();
+		System.out.println(impl.getConvertUnit("ST"));
+	}
 }

From 57e5bf149086a6e3039a042686d404f5429d22cc Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Fri, 19 Jul 2024 13:31:05 +0800
Subject: [PATCH 03/14] =?UTF-8?q?=E9=A2=86=E6=96=99=E5=8D=95=E6=96=B0?=
 =?UTF-8?q?=E5=A2=9E=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../api/domain/dto/MesPrepareDetailDTO.java   | 20 +++++++++++++++++
 .../domain/sap/SapMaterialPreparation.java    | 20 +++++++++++++++++
 .../op/mes/domain/MesReportWorkConsume.java   | 18 +++++++++++++++
 .../mapper/mes/MesReportWorkConsumeMapper.xml |  2 +-
 .../impl/ProOrderWorkorderServiceImpl.java    |  5 ++++-
 .../mapper/plan/ProOrderWorkorderMapper.xml   |  5 +++--
 .../SapMaterialPreparationServiceImpl.java    | 22 +++++++++----------
 7 files changed, 76 insertions(+), 16 deletions(-)

diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java
index 6f566e3c..01d2da62 100644
--- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java
+++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java
@@ -84,6 +84,26 @@ public class MesPrepareDetailDTO extends BaseEntity {
 	private String recoil;
 	private String buyFlag;
 	private String parentWorkOrder;
+    //以输入单位计的数量
+	private String erfmg;
+	//条目单位
+	private String erfme;
+
+	public String getErfmg() {
+		return erfmg;
+	}
+
+	public void setErfmg(String erfmg) {
+		this.erfmg = erfmg;
+	}
+
+	public String getErfme() {
+		return erfme;
+	}
+
+	public void setErfme(String erfme) {
+		this.erfme = erfme;
+	}
 
 	public String getParentWorkOrder() {
 		return parentWorkOrder;
diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java
index c9aef40b..be0a7734 100644
--- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java
+++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapMaterialPreparation.java
@@ -29,6 +29,26 @@ public class SapMaterialPreparation {
     private String RGEKZ;
     //直接采购标识
     private String DBSKZ;
+    //以输入单位计的数量
+    private String ERFMG;
+    //条目单位
+    private String ERFME;
+
+    public String getERFMG() {
+        return ERFMG;
+    }
+
+    public void setERFMG(String ERFMG) {
+        this.ERFMG = ERFMG;
+    }
+
+    public String getERFME() {
+        return ERFME;
+    }
+
+    public void setERFME(String ERFME) {
+        this.ERFME = ERFME;
+    }
 
     public String getAUFNR() {
         return AUFNR;
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java
index c2de7b11..a75a09c4 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWorkConsume.java
@@ -114,6 +114,24 @@ public class MesReportWorkConsume extends BaseEntity {
     private String planQuantity;
     private String machineCode;
     private String rspos;//sap物料项目编号
+    private String erfmg;
+    private String erfme;
+
+    public String getErfmg() {
+        return erfmg;
+    }
+
+    public void setErfmg(String erfmg) {
+        this.erfmg = erfmg;
+    }
+
+    public String getErfme() {
+        return erfme;
+    }
+
+    public void setErfme(String erfme) {
+        this.erfme = erfme;
+    }
 
     public String getRspos() {
         return rspos;
diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml
index 0c98d05d..2c9f01f2 100644
--- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml
+++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkConsumeMapper.xml
@@ -114,7 +114,7 @@
             pow.workorder_code_sap workorderCodeSap,
 		    mrwc.attr1,
             mrwc.warehouse_code warehouseCode,
-            mpd.quantity planQuantity,
+            mpd.quantity planQuantity,mpd.erfmg,mpd.erfme,
 		    mrwc.parent_order parentOrder,mrwc.report_code reportCode,
             mrwc.rspos
 		from mes_report_work_consume mrwc
diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java
index 9e869f28..1377de7a 100644
--- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java
+++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java
@@ -488,11 +488,14 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService {
                 detail.setCreateBy(SecurityUtils.getUsername());
                 detail.setCreateTime(createDate);
                 detail.setParentWorkOrder(workOrders.get(0));
+                detail.setErfmg(sap.getERFMG());//以输入单位计的数量
+                detail.setErfme(sap.getERFME());//条目单位
                 details.add(detail);
                 logger.info("领料单内容detail:" + sap.getRSPOS() + "," + sap.getMATNR() + "," +
                         sap.getMAKTX() + "," + sap.getWERKS() + "," + sap.getLGORT() + "," +
                         sap.getBDTER() + "," + sap.getBDMNG() + "," + sap.getZQLSL() + "," +
-                        sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ()
+                        sap.getMEINS() + "," + sap.getRGEKZ() + "," + sap.getDBSKZ()+ "," +
+                        sap.getERFMG() + "," + sap.getERFME()
                 );
             }
             if (!CollectionUtils.isEmpty(details)) {
diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
index 044983b3..1b34d814 100644
--- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
+++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml
@@ -764,14 +764,15 @@
         INSERT INTO mes_prepare_detail (
         record_id,prepare_id,material_code,material_name,unit,
         quantity,create_by,create_time,factory_code,status,
-        locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order,attr1
+        locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order,attr1,
+        erfmg,erfme
         )VALUES
         <foreach collection="list" item="d" index="index" separator=",">
             (
             #{d.recordId},#{d.prepareId},#{d.materialCode},#{d.materailName},#{d.unit},
             #{d.quantity},#{d.createBy},#{d.createTime},#{d.factoryCode},#{d.status},
             #{d.locator},#{d.needDate},#{d.recoil},#{d.fundQuanlity},#{d.buyFlag},#{d.parentWorkOrder},
-            #{d.attr1}
+            #{d.attr1},#{d.erfmg},#{d.erfme}
             )
         </foreach>
 
diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java
index a17bdfdb..5efb9c9a 100644
--- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java
+++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java
@@ -67,6 +67,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
                 String BDMNG = maraTable.getString("BDMNG");
                 String ZQLSL = maraTable.getString("ZQLSL");
                 String MEINS = maraTable.getString("MEINS");
+
+                String ERFMG = maraTable.getString("ERFMG");
+                String ERFME = maraTable.getString("ERFME");
+
                 String RGEKZ = maraTable.getString("RGEKZ");
                 String DBSKZ = maraTable.getString("DBSKZ");
                 log.info("备料单输出------" + "订单号:" + AUFNR
@@ -79,20 +83,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
                         " - 需求量:" + BDMNG +
                         " - 欠料数量:" + ZQLSL +
                         " - 基本计量单位:" + MEINS +
+                        " - 以输入单位计的数量:" + ERFMG +
+                        " - 条目单位:" + ERFME +
                         " - 标识:反冲:" + RGEKZ +
                         " - 直接采购标识:" + DBSKZ);
-//                System.out.println("订单号:" + AUFNR
-//                        + " - 预留/相关需求的项目编号:" + RSPOS +
-//                        " - 物料号:" + MATNR +
-//                        " - 物料描述(短文本):" + MAKTX +
-//                        " - 工厂:" + WERKS +
-//                        " - 库存地点:" + LGORT +
-//                        " - 组件的需求日期 :" + BDTER +
-//                        " - 需求量:" + BDMNG +
-//                        " - 欠料数量:" + ZQLSL +
-//                        " - 基本计量单位:" + MEINS +
-//                        " - 标识:反冲:" + RGEKZ +
-//                        " - 直接采购标识:" + DBSKZ );
                 SapMaterialPreparation sapMaterialPreparation = new SapMaterialPreparation();
                 sapMaterialPreparation.setAUFNR(AUFNR);
                 sapMaterialPreparation.setBDMNG(BDMNG);
@@ -106,6 +100,10 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation
                 sapMaterialPreparation.setRSPOS(RSPOS);
                 sapMaterialPreparation.setWERKS(WERKS);
                 sapMaterialPreparation.setZQLSL(ZQLSL);
+
+                sapMaterialPreparation.setERFMG(ERFMG);
+                sapMaterialPreparation.setERFME(ERFME);
+
                 sapMaterialPreparationList.add(sapMaterialPreparation);
             }
             String MSG = func.getExportParameterList().getString("MSG");

From 95dcfd10db15b0f7694b4502850f9a6383c850cd Mon Sep 17 00:00:00 2001
From: A0010407 <KHD@202305>
Date: Fri, 19 Jul 2024 15:36:21 +0800
Subject: [PATCH 04/14] =?UTF-8?q?2024-07-19=20=E8=AE=BE=E5=A4=87-=E7=BB=84?=
 =?UTF-8?q?=E7=BA=BF=E9=97=AE=E9=A2=98=E5=AF=BC=E8=87=B4=E7=82=B9=E6=A3=80?=
 =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=B8=8D=E7=94=9F=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../op/device/service/impl/DeviceTaskServiceImpl.java    | 9 ++++++---
 .../src/main/resources/mapper/device/EquOrderMapper.xml  | 2 +-
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java
index b64a4807..eb415717 100644
--- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java
+++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.op.common.core.context.SecurityContextHolder;
 import com.op.common.core.domain.R;
 import com.op.common.core.utils.DateUtils;
+import com.op.common.core.utils.StringUtils;
 import com.op.common.core.utils.uuid.IdUtils;
 import com.op.common.core.web.domain.AjaxResult;
 import com.op.common.security.utils.SecurityUtils;
@@ -340,9 +341,11 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService {
             order.setOutsourceCode("BW" + orderCode);
         }
 
-        //查询组线
-        String lineName = equOrderMapper.getGroupLine(plan.getEquipmentCode());
-        order.setPlanProdLine(lineName);
+        if(StringUtils.isNotEmpty(plan.getEquipmentCode())){
+            //查询组线
+            String lineName = equOrderMapper.getGroupLine(plan.getEquipmentCode());
+            order.setPlanProdLine(lineName);
+        }
 
         /**equ_order**/
         sce = equOrderMapper.insertEquOrder(order);
diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml
index d20a4aaf..27598cf6 100644
--- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml
+++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml
@@ -518,7 +518,7 @@
 
     <!--  获取组线信息 -->
     <select id="getGroupLine" parameterType="java.lang.String" resultType="java.lang.String">
-		select equipment_name
+		select TOP 1 equipment_name
 		from equ_bind_auxiliary_equipment
 		where auxiliary_equipment_code  = #{auxiliaryEquipmentCode}
 	    and del_flag = '0'

From 0cd19c21d2bbce6742c5656c1cd67f840167a1c3 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Fri, 19 Jul 2024 16:33:06 +0800
Subject: [PATCH 05/14] =?UTF-8?q?=E6=9D=A5=E6=96=99oa=E6=8E=A5=E5=8F=A3?=
 =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../impl/QcCheckTaskIncomeServiceImpl.java    | 14 +++++------
 .../impl/QcCheckUnqualifiedServiceImpl.java   | 24 ++++++++++++++++++-
 .../impl/QcStaticTableServiceImpl.java        | 22 +++++++++++++----
 .../quality/QcCheckTaskIncomeMapper.xml       |  2 +-
 4 files changed, 49 insertions(+), 13 deletions(-)

diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
index 60fba57f..4b015980 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
@@ -817,9 +817,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
 			unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
 			//申请人-
-			unqualified.setSqr(qcCheckTaskIncome.getSqr());
+			unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr());
 			//申请部门
-			unqualified.setSqbm(qcCheckTaskIncome.getSqbm());
+			unqualified.setSqbm("MSD%23"+qcCheckTaskIncome.getSqbm());
 			//实际生产数量
 			unqualified.setQuality(qcCheckTaskIncome.getQuality().toString());
 			//发现地点
@@ -828,9 +828,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg());
 			if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是
 				//qc主管
-				unqualified.setPgzg(qcCheckTaskIncome.getPgzg());
+				unqualified.setPgzg("MSL%23"+qcCheckTaskIncome.getPgzg());
 				//质量主管
-				unqualified.setPgzr(qcCheckTaskIncome.getPgzr());
+				unqualified.setPgzr("MSL%23"+qcCheckTaskIncome.getPgzr());
 			}
 			//是否供应商问题
 			unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
@@ -865,15 +865,15 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			//检验编号
 			unqualified.setCheckNo(qcCheckTaskIncome.getCheckNo());
 			//仓储报检人-李爱娟
-			unqualified.setCzbjr(qcCheckTaskIncome.getCzbjr());
+			unqualified.setCzbjr("MSL%23"+qcCheckTaskIncome.getCzbjr());
 			//物料类别
 			unqualified.setMaterialType(qcCheckTaskIncome.getMaterialType());
 			//物料来源
 			unqualified.setMaterialFrom(qcCheckTaskIncome.getMaterialFrom());
 			//QC主管-朱继新
-			unqualified.setQczg(qcCheckTaskIncome.getQczg());
+			unqualified.setQczg("MSL%23"+qcCheckTaskIncome.getQczg());
 			//申请人-
-			unqualified.setSqr(qcCheckTaskIncome.getSqr());
+			unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr());
 			unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
 			//转出方
 			unqualified.setZcf(qcCheckTaskIncome.getZcf());
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
index 6321d131..b65c1b96 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
@@ -177,7 +177,6 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
 	 * \"supplier\":\"广东高顺印刷包装有限公司\",\"CHARG\":\"null\",\"comeQty\":\"1117\",
 	 * \"DW\":\"ST\",\"JYBH\":\"202404180042\",\"BJY\":\"202404180042\",\"WLLY\":\"2\",
 	 * \"memo\":\"不合格\",\"PZGLBZG\":\"不合格\"}","user":"999999","requestLevel":0,"workflowId":113454}
-
 	 */
 	private AjaxResult createLLOA(QcCheckUnqualified task){
 
@@ -306,6 +305,29 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
 			 "SFGYSWT":"1"								*是否供应商问题 1非供应商问题 0是供应商问题
 		}"
 	 }
+
+	 http://oa.lanju.cn/lanju/oa/submitOa.jsp?
+	 user=9999999&requestLevel=0&
+	 requestName=品质异常流程测试&
+	 workflowId=113455&
+	 mainObject={"CPMC":"榄菊加大盘野菊花蚊香塑料筒装(18装)(36单圈)",
+	 "CPBM":"000000010101046600",
+	 "SQBM":"0",
+	 "SQR":"MSL%23999999",
+	 "SQSJ":"2024-07-18",
+	 "SCCJ":"MSD%2310000769",
+	 "SCPH":"LJ20240705ABACEQ",
+	 "SCSL":100,
+	 "FXDD":"测试发现地点",
+	 "FXRQ":"2024-07-18 16:26:45",
+	 "BH":"202407040001",
+	 "YCFW":"1",
+	 "PZYCMS":"zxl测试不合格发起oa",
+	 "Notes":"",
+	 "SFXYZG":"0",
+	 "PGZG":"MSL%23001539",
+	 "PGZR":"MSL%23001539",
+	 "SFGYSWT":"0"}
 	 * @param task
 	 * @return
 	 */
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
index 48bc40b8..b4314e0d 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java
@@ -632,9 +632,20 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
     public static double calculateCpk(double[] data, double USL, double LSL) {
         double mean = calculateMean(data);
         double stdDev = calculateStandardDeviation(data);
-        double cpkUpper = (USL - mean) / (3 * stdDev);
-        double cpkLower = (mean - LSL) / (3 * stdDev);
-        return Math.min(cpkUpper, cpkLower);
+        if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)>0){
+            double cpkUpper = (USL - mean) / (3 * stdDev);
+            double cpkLower = (mean - LSL) / (3 * stdDev);
+            return Math.min(cpkUpper, cpkLower);
+        }else if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)==0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)>0){
+            //无上限
+            double cpkLower = (mean - LSL) / (3 * stdDev);
+            return cpkLower;
+        }else if(new BigDecimal(USL).compareTo(BigDecimal.ZERO)>0 && new BigDecimal(LSL).compareTo(BigDecimal.ZERO)==0){
+            //无下限
+            double cpkUpper = (USL - mean) / (3 * stdDev);
+            return cpkUpper;
+        }
+        return 0;
     }
     // 计算均值
     public static double calculateMean(double[] data) {
@@ -736,5 +747,8 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
         return days;
     }
 
-
+    public static void main(String args[]){
+        double a = 0.01;
+        System.out.println(new BigDecimal(a).compareTo(BigDecimal.ZERO));
+    }
 }
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml
index a02a26d8..3e5cbec5 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml
@@ -574,7 +574,7 @@
         where del_flag='0' and sample_code like concat(#{sampleCode},'%')
     </select>
     <select id="getUserIdList" resultType="com.op.system.api.domain.SysUser">
-        select oa_user_id userId,
+        select user_name userCode,
                nick_name userName
         from sys_user where dept_id = #{deptId} and del_flag='0'
     </select>

From e333fa5d73b4c751ffd8066a7adc1a1a2a74d385 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Mon, 22 Jul 2024 11:55:04 +0800
Subject: [PATCH 06/14] =?UTF-8?q?=E6=9D=A5=E6=96=99oa=E6=8E=A5=E5=8F=A3?=
 =?UTF-8?q?=E8=B0=83=E6=95=B42?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../com/op/common/core/utils/StringUtils.java |  2 -
 .../op/quality/domain/QcCheckTaskIncome.java  |  9 +++
 .../op/quality/domain/QcCheckUnqualified.java |  9 +++
 .../impl/QcCheckTaskIncomeServiceImpl.java    | 18 +++---
 .../impl/QcCheckUnqualifiedServiceImpl.java   |  8 +--
 .../service/impl/QcGoalServiceImpl.java       | 59 +++++++++++++++++++
 6 files changed, 92 insertions(+), 13 deletions(-)

diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java
index c6b43806..c58179ad 100644
--- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java
+++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java
@@ -488,8 +488,6 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
 		calendar.setTime(productDate);
 		// Add three years to the current date
 		calendar.add(Calendar.YEAR, 3);
-		// Subtract one day from the new date
-		calendar.add(Calendar.DAY_OF_MONTH, -1);
 		// Get the new date
 		Date futureDate = calendar.getTime();
 		// Format the new date
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java
index 9b7f1462..4d678ccc 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java
@@ -214,6 +214,15 @@ public class QcCheckTaskIncome extends BaseEntity {
     private String pgzg;//QC主管:SFXYZG字段为"是",则此项选择QC主管信息
     private String pgzr;//质量主管
     private String oaFactoryF;//异常范围
+    private String sccj;
+
+    public String getSccj() {
+        return sccj;
+    }
+
+    public void setSccj(String sccj) {
+        this.sccj = sccj;
+    }
 
     public String getOaFactoryF() {
         return oaFactoryF;
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java
index 971a2d15..01fd5968 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckUnqualified.java
@@ -132,6 +132,15 @@ public class QcCheckUnqualified extends BaseEntity {
     private String pgzg;//QC主管:SFXYZG字段为"是",则此项选择QC主管信息
     private String pgzr;//质量主管
     private String oaFactoryF;
+    private String sccj;//所属车间
+
+    public String getSccj() {
+        return sccj;
+    }
+
+    public void setSccj(String sccj) {
+        this.sccj = sccj;
+    }
 
     public String getOaFactoryF() {
         return oaFactoryF;
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
index 4b015980..6e099a99 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
@@ -817,9 +817,11 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
 			unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
 			//申请人-
-			unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr());
+			unqualified.setSqr("MSL#"+qcCheckTaskIncome.getSqr());
 			//申请部门
-			unqualified.setSqbm("MSD%23"+qcCheckTaskIncome.getSqbm());
+			unqualified.setSqbm(qcCheckTaskIncome.getSqbm());
+			//所属车间
+			unqualified.setSccj("MSD#"+qcCheckTaskIncome.getSccj());
 			//实际生产数量
 			unqualified.setQuality(qcCheckTaskIncome.getQuality().toString());
 			//发现地点
@@ -828,9 +830,9 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg());
 			if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是
 				//qc主管
-				unqualified.setPgzg("MSL%23"+qcCheckTaskIncome.getPgzg());
+				unqualified.setPgzg("MSL#"+qcCheckTaskIncome.getPgzg());
 				//质量主管
-				unqualified.setPgzr("MSL%23"+qcCheckTaskIncome.getPgzr());
+				unqualified.setPgzr("MSL#"+qcCheckTaskIncome.getPgzr());
 			}
 			//是否供应商问题
 			unqualified.setSfgyswt(qcCheckTaskIncome.getSfgyswt());
@@ -865,15 +867,15 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			//检验编号
 			unqualified.setCheckNo(qcCheckTaskIncome.getCheckNo());
 			//仓储报检人-李爱娟
-			unqualified.setCzbjr("MSL%23"+qcCheckTaskIncome.getCzbjr());
+			unqualified.setCzbjr("MSL#"+qcCheckTaskIncome.getCzbjr());
 			//物料类别
 			unqualified.setMaterialType(qcCheckTaskIncome.getMaterialType());
 			//物料来源
 			unqualified.setMaterialFrom(qcCheckTaskIncome.getMaterialFrom());
 			//QC主管-朱继新
-			unqualified.setQczg("MSL%23"+qcCheckTaskIncome.getQczg());
+			unqualified.setQczg("MSL#"+qcCheckTaskIncome.getQczg());
 			//申请人-
-			unqualified.setSqr("MSL%23"+qcCheckTaskIncome.getSqr());
+			unqualified.setSqr("MSL#"+qcCheckTaskIncome.getSqr());
 			unqualified.setUser(qcCheckTaskIncome.getUpdateBy());
 			//转出方
 			unqualified.setZcf(qcCheckTaskIncome.getZcf());
@@ -913,6 +915,8 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 						.replace("${quality}", qcCheckTaskIncome.getQuality()+"\n");
 				if(StringUtils.isNotBlank(qcCheckTaskIncome.getIncomeBatchNo())){
 					contentInfo = contentInfo.replace("${incomeBatchNo}", qcCheckTaskIncome.getIncomeBatchNo()+"\n");
+				}else{
+					contentInfo = contentInfo.replace("${incomeBatchNo}", "无"+"\n");
 				}
 				if(StringUtils.isNotBlank(qcCheckTaskIncome.getOrderNo())){
 					contentInfo = contentInfo.replace("${orderNo}", qcCheckTaskIncome.getOrderNo()+"\n");
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
index b65c1b96..8f681429 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckUnqualifiedServiceImpl.java
@@ -313,9 +313,9 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
 	 mainObject={"CPMC":"榄菊加大盘野菊花蚊香塑料筒装(18装)(36单圈)",
 	 "CPBM":"000000010101046600",
 	 "SQBM":"0",
-	 "SQR":"MSL%23999999",
+	 "SQR":"MSL#999999",  \"SQR\":\"MSL#002007\",
 	 "SQSJ":"2024-07-18",
-	 "SCCJ":"MSD%2310000769",
+	 "SCCJ":"MSD#10000769",  \"SCCJ\":\"MSD#10000152\",
 	 "SCPH":"LJ20240705ABACEQ",
 	 "SCSL":100,
 	 "FXDD":"测试发现地点",
@@ -348,11 +348,11 @@ public class QcCheckUnqualifiedServiceImpl implements IQcCheckUnqualifiedService
 		mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部
 		mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户
 		mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间
-		mainObject.append(",\"SCCJ\":"+"\"162\"");//所属车间
+		mainObject.append(",\"SCCJ\":"+"\""+task.getSccj()+"\"");//所属车间
 		mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号
 		mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量
 		mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点
-		mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getCheckTime())+"\"");//发现日期
+		mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//发现日期
 		mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号  年月日+四位流水号
 		mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
 		mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java
index 84fc9a99..44af3945 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcGoalServiceImpl.java
@@ -12,6 +12,7 @@ import com.op.common.core.utils.DateUtils;
 import com.op.common.core.utils.StringUtils;
 import com.op.common.core.web.domain.AjaxResult;
 import com.op.common.security.utils.SecurityUtils;
+import com.op.quality.domain.QcCheckTaskIncome;
 import com.op.quality.domain.QcCheckUnqualified;
 import com.op.quality.domain.vo.TreeSelect;
 import com.op.quality.mapper.QcCheckTaskIncomeMapper;
@@ -58,6 +59,9 @@ public class QcGoalServiceImpl implements IQcGoalService {
     @Autowired
     private RemoteQualityService remoteQualityService;
 
+    @Autowired
+    private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper;
+
 
     /**
      * 查询质量目标
@@ -124,6 +128,21 @@ public class QcGoalServiceImpl implements IQcGoalService {
 //        qcCheckTaskIncomeDTO.setIncomeTime(new Date());
 //        remoteQualityService.createIncomeTask(qcCheckTaskIncomeDTO);
 
+//        品质检验
+//        QcCheckUnqualified task = new QcCheckUnqualified();
+//        task.setTaskId("3ffb199037ba46a48e39cb148d7ad9e0");
+//        task.setUser("002007");
+//        task.setSqbm("0");
+//        task.setSqr("MSL#002007");
+//        task.setSccj("MSD#10000152");
+//        task.setQuality("100");
+//        task.setCheckLoc("测试发现地点");
+//        task.setOaFactoryF("0");
+//        task.setSfxyzg("0");
+//        task.setPgzg("MSL#019184");
+//        task.setPgzr("MSL#019184");
+//        task.setSfgyswt("0");
+//        this.createProduceOA(task);
         return qcGoals;
     }
 
@@ -170,6 +189,46 @@ public class QcGoalServiceImpl implements IQcGoalService {
         return oaR;
     }
 
+    private AjaxResult createProduceOA(QcCheckUnqualified task){
+
+        QcCheckTaskIncome detailInfo = qcCheckTaskIncomeMapper.getTaskInfo(task.getTaskId());
+        //发起来料检验OA流程
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("user",task.getUser());//提交人工号
+        paramMap.put("requestLevel",0);//流程紧急度
+        paramMap.put("requestName","ZL0030-品质异常流程-智能制造-"+DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",detailInfo.getIncomeTime())+"(产品名称:"+detailInfo.getMaterialName()+")");//流程名称
+        paramMap.put("workflowId",113455);//该流程对应的唯- workFlowld
+
+        StringBuffer mainObject = new StringBuffer();
+        mainObject.append("{");
+        mainObject.append("\"CPMC\":"+"\""+detailInfo.getMaterialName()+"\"");//产品名称
+        mainObject.append(",\"CPBM\":"+"\""+detailInfo.getMaterialCode()+"\"");//产品编码
+        mainObject.append(",\"SQBM\":"+"\""+task.getSqbm()+"\"");//0品质保障部
+        mainObject.append(",\"SQR\":"+"\""+task.getSqr()+"\"");//申请人:默认当前用户
+        mainObject.append(",\"SQSJ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//申请时间
+        mainObject.append(",\"SCCJ\":"+"\""+task.getSccj()+"\"");//所属车间
+        mainObject.append(",\"SCPH\":"+"\""+detailInfo.getIncomeBatchNo()+"\"");//生产批号
+        mainObject.append(",\"SCSL\":"+task.getQuality());//生产数量
+        mainObject.append(",\"FXDD\":"+"\""+task.getCheckLoc()+"\"");//发现地点
+        mainObject.append(",\"FXRQ\":"+"\""+DateUtils.parseDateToStr("yyyy-MM-dd",detailInfo.getCheckTime())+"\"");//发现日期
+        mainObject.append(",\"BH\":"+"\""+detailInfo.getCheckNo()+"\"");//编号:流水号  年月日+四位流水号
+        mainObject.append(",\"YCFW\":"+"\""+task.getOaFactoryF()+"\"");//*异常范围:下拉框榄菊所有工厂 1代表小榄工厂
+        mainObject.append(",\"PZYCMS\":"+"\""+detailInfo.getRemark()+"\"");//品质异常描述
+        mainObject.append(",\"Notes\":"+"\"\"");//测试备注
+        mainObject.append(",\"SFXYZG\":"+"\""+task.getSfxyzg()+"\"");//*是否需要主管审核 1否  0是
+        mainObject.append(",\"PGZG\":"+"\""+task.getPgzg()+"\"");//QC主管:SFXYZG字段为"是",则此项选择QC主管信息
+        mainObject.append(",\"PGZR\":"+"\""+task.getPgzr()+"\"");//质量主管  660:朱继新
+        mainObject.append(",\"SFGYSWT\":"+"\""+task.getSfgyswt()+"\"");//*是否供应商问题 1非供应商问题 0是供应商问题
+
+        mainObject.append("}");
+
+        paramMap.put("mainObject",mainObject.toString());
+        logger.info("流程Id 113455:"+ JSONObject.toJSONString(paramMap));
+        AjaxResult oaR = remoteOpenService.OAInspection(paramMap);
+        logger.info("流程Id 113455:"+ JSONObject.toJSONString(oaR));
+        return oaR;
+    }
+
     @Override
     @DS("#header.poolName")
     public List<QcGoal> selectChildrenByParent(QcGoal goal) {

From 26ca325e5fef02ab9583edbd81a65e5b6bf979a1 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Mon, 22 Jul 2024 14:43:37 +0800
Subject: [PATCH 07/14] =?UTF-8?q?=E8=BE=85=E5=8A=A9=E6=8E=92=E4=BA=A7?=
 =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=B1=BB=E5=9E=8Bbug=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/com/op/plan/service/impl/ProOrderServiceImpl.java   | 5 +++++
 1 file changed, 5 insertions(+)

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 d0a4a34a..7101c05c 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
@@ -1501,6 +1501,11 @@ public class ProOrderServiceImpl implements IProOrderService {
         workOrder.setStatus("w0");
         workOrder.setCreateBy(SecurityUtils.getUsername());
         workOrder.setCreateTime(pOrder.getCreateTime());
+        if("LJ88".equals(pOrder.getOrderType())){
+            workOrder.setProdType("LJ01");
+        }else{
+            workOrder.setProdType(pOrder.getOrderType());
+        }
         workOrder.setProdType(proOrder.getOrderType());
         workOrder.setFactoryCode(pOrder.getFactoryCode());
         workOrder.setEndFlag(proOrder.getEndFlag());

From 05fb2811c8495a768fbd5abe6c148d16b9d41311 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Mon, 22 Jul 2024 15:26:10 +0800
Subject: [PATCH 08/14] =?UTF-8?q?=E8=BE=85=E5=8A=A9=E6=8E=92=E4=BA=A7?=
 =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=B1=BB=E5=9E=8Bbug=E4=BF=AE=E5=A4=8D2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/main/java/com/op/common/core/utils/StringUtils.java   | 4 +++-
 .../java/com/op/plan/service/impl/ProOrderServiceImpl.java    | 1 -
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java
index c58179ad..f3e7defa 100644
--- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java
+++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/StringUtils.java
@@ -475,7 +475,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
 	 *
 	 * @param factoryCode 工厂代码
 	 * @param lineCode 产线编码
-	 * @param productDate 生产日期
+	 * @param productDate 生产日期  生产日期减一天位有效期
 	 * @param version 订单生产版本号最后一位
 	 * @param productStatus 产出状态:正常是A
 	 * @param content 内容物 (根据产品,一般为0)
@@ -488,6 +488,8 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
 		calendar.setTime(productDate);
 		// Add three years to the current date
 		calendar.add(Calendar.YEAR, 3);
+		// Subtract one day from the new date
+		calendar.add(Calendar.DAY_OF_MONTH, -1);
 		// Get the new date
 		Date futureDate = calendar.getTime();
 		// Format the new date
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 7101c05c..b1f2380e 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
@@ -1506,7 +1506,6 @@ public class ProOrderServiceImpl implements IProOrderService {
         }else{
             workOrder.setProdType(pOrder.getOrderType());
         }
-        workOrder.setProdType(proOrder.getOrderType());
         workOrder.setFactoryCode(pOrder.getFactoryCode());
         workOrder.setEndFlag(proOrder.getEndFlag());
         workOrder.setSortNo(pOrder.getSortNo());

From 14fcf17a5a2fc87708289eb3bd8d7654191fd9df Mon Sep 17 00:00:00 2001
From: mengjiao <3338049200@qq,com>
Date: Tue, 23 Jul 2024 12:07:10 +0800
Subject: [PATCH 09/14] =?UTF-8?q?wms=EF=BC=8Csap=E6=94=B6=E8=B4=A7?=
 =?UTF-8?q?=E7=94=9F=E4=BA=A7=E6=89=B9=E6=AC=A1=EF=BC=8C=20=E5=90=8E?=
 =?UTF-8?q?=E9=9D=A2=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=85=A5=E5=BA=93=E6=89=B9?=
 =?UTF-8?q?=E6=AC=A1=E5=AD=97=E6=AE=B5=E3=80=82=E6=98=BE=E7=A4=BA=E4=B8=8A?=
 =?UTF-8?q?=E9=9D=A2=E6=88=AA=E5=8F=96=E7=9A=84=E5=80=BC=E6=88=96=E8=80=85?=
 =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=8E=E7=9A=84=E5=80=BC,=E8=BF=87?=
 =?UTF-8?q?=E8=B4=A6=E7=94=A8=E5=85=A5=E5=BA=93=E6=89=B9=E6=AC=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../system/api/domain/wms/wmsReportWork.java  | 11 ++++-
 .../java/com/op/wms/domain/WmsProductPut.java | 11 +++++
 .../impl/WmsProductPutServiceImpl.java        | 46 ++++++++++++-------
 3 files changed, 51 insertions(+), 17 deletions(-)

diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java
index 921c8ee1..622a2c88 100644
--- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java
+++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/wms/wmsReportWork.java
@@ -193,10 +193,19 @@ public class wmsReportWork extends BaseEntity {
     private String createTimeEnd;
     private String feedbackTimeStart;
     private String feedbackTimeEnd;
-    private String batch;
+    private String batch;//生产批次
+    private String batchSK;//RK批次
     private String endReport;
     private String whCode;
 
+    public String getBatchSK() {
+        return batchSK;
+    }
+
+    public void setBatchSK(String batchSK) {
+        this.batchSK = batchSK;
+    }
+
     public String getWhCode() {
         return whCode;
     }
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java
index 5b72dc1b..31f815e5 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsProductPut.java
@@ -47,6 +47,15 @@ public class WmsProductPut extends BaseEntity {
      */
     @Excel(name = "仓库编码")
     private String whCode;
+    private String batchSK;//生产批次
+
+    public String getBatchSK() {
+        return batchSK;
+    }
+
+    public void setBatchSK(String batchSK) {
+        this.batchSK = batchSK;
+    }
 
     /**
      * 库区编码
@@ -490,4 +499,6 @@ public class WmsProductPut extends BaseEntity {
                 ", attr10='" + attr10 + '\'' +
                 '}';
     }
+
+
 }
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
index 86e9de66..e00d5215 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
@@ -329,6 +329,15 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
     @DS("#header.poolName")
     public List<wmsReportWork> getReportList(wmsReportWork mesReportWork) {
         List<wmsReportWork> rlist = wmsProductPutMapper.getReportList(mesReportWork);
+        for (wmsReportWork  wmsReportWork:
+             rlist ) {
+            if (wmsReportWork.getBatch().length()>=23){
+                String batchsk  = InterceptionRules(wmsReportWork.getBatch());
+                wmsReportWork.setBatchSK(batchsk);
+            }else {
+                wmsReportWork.setBatchSK(wmsReportWork.getBatch());
+            }
+        }
         return rlist;
     }
 
@@ -365,6 +374,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
             wmsProductPutk.setBatchNumber(mesReportWork.getBatch());//
           //  wmsProductPutk.setSapStatus("2");//过账失败的
             List<WmsProductPut> wmsProductPutList = wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
+
             if (wmsProductPutList.size() > 0) {
                 String id = wmsProductPutList.get(0).getId();
                 mesReportWork.setId(id);
@@ -393,6 +403,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
                 wmsReportWorkListagain.add(mesReportWork);//
 //              }
         }
+        //已经插入且插入失败的
         for (wmsReportWork mesReportWork :
                 wmsReportWorkList) {
             WmsProductPut wmsProductPutk = new WmsProductPut();
@@ -408,6 +419,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
             wmsProductPutk.setUnitOfMeasure(mesReportWork.getUnit());
             wmsProductPutk.setBatchNumber(mesReportWork.getBatch());//
             wmsProductPutk.setSapStatus("2");
+
             List<WmsProductPut> wmsProductPutList = wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
             if (wmsProductPutList.size() > 0) {//已经插入且失败的
                 wmsReportWorkListTWO.add(mesReportWork);//
@@ -415,7 +427,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
         }
 
 
-        //先屏蔽起来
+        //第一次
         for (wmsReportWork mesReportWork :
                 wmsReportWorkListRk) {
             WmsProductPut wmsProductPutk = new WmsProductPut();
@@ -433,12 +445,12 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
             wmsProductPutk.setStatus("1");
             wmsProductPutk.setUnitOfMeasure(mesReportWork.getUnit());
             wmsProductPutk.setBatchNumber(mesReportWork.getBatch());//
+            wmsProductPutk.setAttr4(mesReportWork.getBatchSK());
             //List<WmsProductPut> wmsProductPutList=	wmsProductPutMapper.selectWmsProductPutList(wmsProductPutk);
-
+//            wmsProductPutk.setBatchSK(mesReportWork.getBatchSK());//入库批次
             wmsProductPutk.setAttr3(formattedDate);//
             wmsProductPutk.setCreateBy(SecurityUtils.getUsername());
             wmsProductPutk.setCreateTime(new Date());
-
             wmsProductPutk.setProductDate(mesReportWork.getProductDate());
             wmsProductPutk.setId(mesReportWork.getId());
             wmsProductPutk.setSapStatus("0");
@@ -492,13 +504,14 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
                 map.put("LGORT", mesReportWork.getWhCode());
                 map.put("QUANTITY", mesReportWork.getQuantityQualified());
                 map.put("ERFME", mesReportWork.getUnit());
-                if (mesReportWork.getBatch().length()>12){
-                    //String batch = mesReportWork.getBatch().substring(12);
-                    String batch  = InterceptionRules(mesReportWork.getBatch());
-                    map.put("BATCH", batch);
-                }else {
-                    map.put("BATCH", mesReportWork.getBatch());
-                }
+                map.put("BATCH", mesReportWork.getBatchSK());
+//                if (mesReportWork.getBatch().length()>12){
+//                    //String batch = mesReportWork.getBatch().substring(12);
+//                    String batch  = InterceptionRules(mesReportWork.getBatch());
+//
+//                }else {
+//                    map.put("BATCH", mesReportWork.getBatch());
+//                }
                 String formattedsDate = mesReportWork.getProductDate().replace("-", "");
                 map.put("HSDAT", formattedsDate);
                 mapList.add(map);
@@ -532,12 +545,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
                 map.put("LGORT", mesReportWork.getWhCode());
                 map.put("QUANTITY", mesReportWork.getQuantityQualified());
                 map.put("ERFME", mesReportWork.getUnit());
-                if (mesReportWork.getBatch().length()>12){
-                    String batch  = InterceptionRules(mesReportWork.getBatch());
-                    map.put("BATCH", batch);
-                }else {
-                    map.put("BATCH", mesReportWork.getBatch());
-                }
+                map.put("BATCH", mesReportWork.getBatchSK());
+//                if (mesReportWork.getBatch().length()>12){
+//                    String batch  = InterceptionRules(mesReportWork.getBatch());
+//                    map.put("BATCH", batch);
+//                }else {
+//                    map.put("BATCH", mesReportWork.getBatch());
+//                }
                 String formattedsDate = mesReportWork.getProductDate().replace("-", "");
                 map.put("HSDAT", formattedsDate);
                 mapList.add(map);

From ba364605185e31a8fa013e9db637718bb22c2bed Mon Sep 17 00:00:00 2001
From: mengjiao <3338049200@qq,com>
Date: Tue, 23 Jul 2024 12:52:25 +0800
Subject: [PATCH 10/14] =?UTF-8?q?wms=EF=BC=8C=E6=88=90=E5=93=81=E7=94=9F?=
 =?UTF-8?q?=E4=BA=A7=E5=85=A5=E5=BA=93=E9=A1=B5=E9=9D=A2=E7=9A=84=E8=BF=87?=
 =?UTF-8?q?=E8=B4=A6=E6=8C=89=E9=92=AE=E9=9A=8F=E4=B9=8B=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../service/impl/WmsProductPutServiceImpl.java    | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
index e00d5215..bcf01c55 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
@@ -285,14 +285,15 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
                         map.put("LGORT", wmsProductPut3.getWhCode());
                         map.put("QUANTITY", wmsProductPut3.getPutQuantity());
                         map.put("ERFME", wmsProductPut3.getUnitOfMeasure());
+                        map.put("BATCH", wmsProductPut3.getAttr4());
                         //map.put("BATCH", wmsProductPut3.getBatchNumber());
-                        if (wmsProductPut3.getBatchNumber().length()>12){
-                            //String batch = mesReportWork.getBatch().substring(12);
-                            String batch  = InterceptionRules(wmsProductPut3.getBatchNumber());
-                            map.put("BATCH", batch);
-                        }else {
-                            map.put("BATCH", wmsProductPut3.getBatchNumber());
-                        }
+//                        if (wmsProductPut3.getBatchNumber().length()>12){
+//                            //String batch = mesReportWork.getBatch().substring(12);
+//                            String batch  = InterceptionRules(wmsProductPut3.getBatchNumber());
+//                            map.put("BATCH", batch);
+//                        }else {
+//                            map.put("BATCH", wmsProductPut3.getBatchNumber());
+//                        }
                         map.put("HSDAT", wmsProductPut3.getProductDate());
                         mapList.add(map);
                     }

From c9f61c2501729272827ba8e42df1b6a516444d58 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Tue, 23 Jul 2024 17:51:38 +0800
Subject: [PATCH 11/14] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/QcMaterialGroupController.java    | 16 ++++++++--------
 .../op/quality/mapper/QcMaterialGroupMapper.java |  2 ++
 .../service/impl/QcMaterialGroupServiceImpl.java |  1 +
 .../mapper/quality/QcMaterialGroupMapper.xml     |  3 +++
 4 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java
index 1506d925..27284088 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java
@@ -109,14 +109,14 @@ public class QcMaterialGroupController extends BaseController {
     public AjaxResult remove(@PathVariable String id) {
         QcMaterialGroup parent = new QcMaterialGroup();
         parent.setId(id);
-        List<QcMaterialGroup> children = qcMaterialGroupService.getMaterialChildrenList(parent);
-        boolean hasRule = qcMaterialGroupService.validationData(id);
-        if (!children.isEmpty()) {
-            return AjaxResult.error("此节点下含有子节点,请先删除子节点");
-        } else if (hasRule) {
-            return AjaxResult.error("此节点含有检验规则,请先删除检验规则");
-        } else {
+//        List<QcMaterialGroup> children = qcMaterialGroupService.getMaterialChildrenList(parent);
+//        boolean hasRule = qcMaterialGroupService.validationData(id);
+//        if (!children.isEmpty()) {
+//            return AjaxResult.error("此节点下含有子节点,请先删除子节点");
+//        } else if (hasRule) {
+//            return AjaxResult.error("此节点含有检验规则,请先删除检验规则");
+//        } else {
             return toAjax(qcMaterialGroupService.deleteQcMaterialGroupById(id));
-        }
+//        }
     }
 }
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java
index 112a74f9..40c3e5e1 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java
@@ -68,4 +68,6 @@ public interface QcMaterialGroupMapper {
     public List<QcMaterialGroup> validationData(String id);
 
     String selectGroupIdByName(String groupName);
+
+    void deleteGroupDetailById(String id);
 }
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java
index 9eded988..8ab5580a 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java
@@ -191,6 +191,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService {
     @Override
     @DS("#header.poolName")
     public int deleteQcMaterialGroupById(String id) {
+        qcMaterialGroupMapper.deleteGroupDetailById(id);
         return qcMaterialGroupMapper.deleteQcMaterialGroupById(id);
     }
 
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml
index 054abf1e..e327235d 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml
@@ -126,6 +126,9 @@
             #{id}
         </foreach>
     </delete>
+    <delete id="deleteGroupDetailById">
+        delete from qc_material_group_detail where group_id = #{id}
+    </delete>
     <select id="validationData" parameterType="String" resultMap="QcMaterialGroupResult">
 		select
 		    id,

From 9c509a0415ae8d72d5632803e4a5294eababde14 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Wed, 24 Jul 2024 15:35:40 +0800
Subject: [PATCH 12/14] =?UTF-8?q?=E4=BF=AE=E5=A4=8D2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
index 6e099a99..d490b307 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java
@@ -828,7 +828,7 @@ public class QcCheckTaskIncomeServiceImpl<QcCheckUnqualifiedService> implements
 			unqualified.setCheckLoc(qcCheckTaskIncome.getCheckLoc());
 			//是否需要主管审核
 			unqualified.setSfxyzg(qcCheckTaskIncome.getSfxyzg());
-			if(qcCheckTaskIncome.getSfgyswt().equals("0")){//是
+			if(qcCheckTaskIncome.getSfxyzg().equals("0")){//是
 				//qc主管
 				unqualified.setPgzg("MSL#"+qcCheckTaskIncome.getPgzg());
 				//质量主管

From 8a69f82b0185813dc94cb5cb5593f37f7bc00c6c Mon Sep 17 00:00:00 2001
From: mengjiao <3338049200@qq,com>
Date: Wed, 24 Jul 2024 16:08:30 +0800
Subject: [PATCH 13/14] =?UTF-8?q?wms=E6=89=8B=E6=8C=81=E7=9A=84=E7=BA=BF?=
 =?UTF-8?q?=E4=BD=93=E6=9F=A5=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/WmsToWCSmissionController.java |   7 ++
 .../wms/mapper/WmsRuturnPutEmbryoMapper.java  |   3 +
 .../op/wms/service/IWmsProductPutService.java |   2 +
 .../impl/WmsProductPutServiceImpl.java        |   8 ++
 .../mapper/wms/WmsRuturnPutEmbryoMapper.xml   | 110 ++++++++++++++++++
 5 files changed, 130 insertions(+)

diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
index f11d4734..c275c37f 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
@@ -5,6 +5,7 @@ package com.op.wms.controller;
 import com.op.common.core.utils.StringUtils;
 import com.op.common.core.web.domain.AjaxResult;
 
+import com.op.common.core.web.page.TableDataInfo;
 import com.op.system.api.RemoteOpenService;
 import com.op.wms.domain.*;
 import com.op.wms.service.*;
@@ -615,6 +616,12 @@ public class WmsToWCSmissionController {
         return success(odsProductEmbryoInventoryCorrelationList);
     }
 
+    //查询线体
+    @PostMapping("/listBaseEquipment")
+    public AjaxResult listBaseEquipment(@RequestBody    BaseEquipment baseEquipment) {
+        List<BaseEquipment> list = wmsProductPutService.selectBaseEquipmentList(baseEquipment);
+        return success(list);
+    }
 
 
     /**
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java
index 1de6f9b4..ebffa17b 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsRuturnPutEmbryoMapper.java
@@ -1,5 +1,6 @@
 package com.op.wms.mapper;
 
+import com.op.wms.domain.BaseEquipment;
 import com.op.wms.domain.WmsRuturnPutEmbryo;
 
 import java.util.List;
@@ -23,4 +24,6 @@ public interface WmsRuturnPutEmbryoMapper {
     public List<WmsRuturnPutEmbryo> selectWmsRuturnPutEmbryoList(WmsRuturnPutEmbryo wmsRuturnPutEmbryo);
 
     void insertWmsRuturnPutEmbryo(WmsRuturnPutEmbryo wmsRuturnPutEmbryo1);
+
+    List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment);
 }
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
index f9954c3a..bd910f3b 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
@@ -130,4 +130,6 @@ public interface IWmsProductPutService {
     List<WmsRuturnPutEmbryo> selectWmsRuturnPutEmbryoList(WmsRuturnPutEmbryo wmsRuturnPutEmbryo);
 
     String finishedProductSalesReturnTD(WmsRuturnPutEmbryo wmsRuturnPutEmbryo);
+
+    List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment);
 }
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
index bcf01c55..04b66376 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
@@ -982,6 +982,14 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
         }
         return results;
     }
+
+    @Override
+    public List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment) {
+        DynamicDataSourceContextHolder.push("ds_" + baseEquipment.getFactoryCode());
+        List<BaseEquipment> baseEquipments  =   wmsRuturnPutEmbryoMapper.selectBaseEquipmentList(baseEquipment);
+        return baseEquipments;
+    }
+
     @Override
     public List<WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) {
         DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode());
diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml
index d16d7d81..d854285d 100644
--- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml
+++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml
@@ -387,4 +387,114 @@
             </if>
         </where>
     </select>
+    <resultMap type="com.op.wms.domain.BaseEquipment" id="BaseEquipmentResult">
+        <result property="equipmentId" column="equipment_id"/>
+        <result property="equipmentCode" column="equipment_code"/>
+        <result property="equipmentName" column="equipment_name"/>
+        <result property="equipmentBrand" column="equipment_brand"/>
+        <result property="equipmentSpec" column="equipment_spec"/>
+        <result property="equipmentTypeId" column="equipment_type_id"/>
+        <result property="equipmentTypeCode" column="equipment_type_code"/>
+        <result property="equipmentTypeName" column="equipment_type_name"/>
+        <result property="workshopId" column="workshop_id"/>
+        <result property="workshopCode" column="workshop_code"/>
+        <result property="workshopName" column="workshop_name"/>
+        <result property="status" column="status"/>
+        <result property="remark" column="remark"/>
+        <result property="attr1" column="attr1"/>
+        <result property="attr2" column="attr2"/>
+        <result property="attr3" column="attr3"/>
+        <result property="attr4" column="attr4"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="unitWorkingHours" column="unit_working_hours"/>
+        <result property="workshopSection" column="workshop_section"/>
+        <result property="equipmentLocation" column="equipment_location"/>
+        <result property="hourlyUnitPrice" column="hourly_unit_price"/>
+        <result property="plcIp" column="plc_ip"/>
+        <result property="plcPort" column="plc_port"/>
+        <result property="equipmentBarcode" column="equipment_barcode"/>
+        <result property="equipmentBarcodeImage" column="equipment_barcode_image"/>
+        <result property="manufacturer" column="manufacturer"/>
+        <result property="supplier" column="supplier"/>
+        <result property="useLife" column="use_life"/>
+        <result property="buyTime" column="buy_time"/>
+        <result property="assetOriginalValue" column="asset_original_value"/>
+        <result property="netAssetValue" column="net_asset_value"/>
+        <result property="assetHead" column="asset_head"/>
+        <result property="fixedAssetCode" column="fixed_asset_code"/>
+        <result property="department" column="department"/>
+        <result property="sapAsset" column="sap_asset"/>
+        <result property="equipmentHead" column="equipment_head"/>
+        <result property="factoryCode" column="factory_code"/>
+        <result property="equipmentStatus" column="equipment_status"/>
+        <result property="equipmentCategory" column="equipment_category"/>
+        <result property="assetClassificationName" column="asset_classification_name"/>
+        <result property="assetDescription" column="asset_description"/>
+        <result property="equipmentNumber" column="equipment_number"/>
+        <result property="inventoryNumber" column="inventory_number"/>
+        <result property="unitMeasurement" column="unit_measurement"/>
+        <result property="sapCode" column="sap_code"/>
+        <result property="sapName" column="sap_name"/>
+        <result property="factoryWorkshop" column="factory_workshop"/>
+    </resultMap>
+    <select id="selectBaseEquipmentList"   resultMap="BaseEquipmentResult" >
+        select
+            equipment_id,
+            equipment_code,
+            equipment_name,
+            equipment_brand,
+            equipment_spec,
+            equipment_type_id,
+            equipment_type_code,
+            equipment_type_name,
+            workshop_id,
+            workshop_code,
+            workshop_name,
+            status,
+            remark,
+            attr1,
+            attr2,
+            attr3,
+            attr4,
+            create_by,
+            create_time,
+            update_by,
+            update_time,
+            workshop_section,
+            equipment_location,
+            hourly_unit_price,
+            unit_working_hours,
+            del_flag,
+            plc_ip,
+            plc_port,
+            sap_asset,
+            equipment_barcode,
+            equipment_barcode_image,
+            manufacturer,
+            supplier,
+            use_life,
+            buy_time,
+            asset_original_value,
+            net_asset_value,
+            asset_head,
+            fixed_asset_code,
+            department,
+            equipment_head,
+            factory_code,
+            equipment_status,
+            equipment_category,
+            asset_classification_name,
+            asset_description,
+            equipment_number,
+            inventory_number,
+            unit_measurement,
+            sap_code,
+            sap_name,
+            factory_workshop
+        from base_equipment		WHERE		equipment_type_code='equ_type_bzx'	AND	del_flag='0'
+    </select>
 </mapper>

From a8e76d04cc41d3976b8921d434160dbba638d80f Mon Sep 17 00:00:00 2001
From: mengjiao <3338049200@qq,com>
Date: Thu, 25 Jul 2024 10:20:31 +0800
Subject: [PATCH 14/14] =?UTF-8?q?wms=E6=89=8B=E6=8C=81=E6=88=90=E5=93=81?=
 =?UTF-8?q?=E7=94=9F=E6=88=90=E8=AE=B0=E5=BD=95=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/WmsToWCSmissionController.java | 14 +++++++++--
 .../wms/mapper/WmsOdsWhiteEmbryoInMapper.java |  2 ++
 .../op/wms/service/IWmsProductPutService.java |  2 ++
 .../impl/WmsProductPutServiceImpl.java        |  7 ++++++
 .../mapper/wms/WmsOdsWhiteEmbryoInMapper.xml  | 23 ++++++++++++++++++-
 5 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
index c275c37f..27fee112 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java
@@ -622,8 +622,18 @@ public class WmsToWCSmissionController {
         List<BaseEquipment> list = wmsProductPutService.selectBaseEquipmentList(baseEquipment);
         return success(list);
     }
-
-
+    //根据线体查询单子
+    @PostMapping("/listProOrderWorkorder")
+    public AjaxResult listProOrderWorkorder(@RequestBody   ProOrderWorkorder proOrderWorkorder) {
+        List<ProOrderWorkorder> list = wmsProductPutService.listProOrderWorkorder(proOrderWorkorder);
+        return success(list);
+    }
+    //保存--成品生产记录
+    @PostMapping("/finishedProductProductionRecords")
+    public AjaxResult finishedProductProductionRecords(@RequestBody   ProOrderWorkorder proOrderWorkorder) {
+        List<ProOrderWorkorder> list = wmsProductPutService.listProOrderWorkorder(proOrderWorkorder);
+        return success(list);
+    }
     /**
      * 成品自动码垛完以后,RGV 接驳要入库的托盘,扫描 RFID 号,请求 WMS 获取入库托盘信息。
      * 触发时机:扫描 RFID 编码,进行入库
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java
index 6caa7444..a0027c6f 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsOdsWhiteEmbryoInMapper.java
@@ -73,4 +73,6 @@ public interface WmsOdsWhiteEmbryoInMapper {
     WmsOdsWhiteEmbryoIn selectWmsOdsWhiteEmbryoInByOrderCodeAndUserDefined1(WmsOdsWhiteEmbryoIn wmsOdsWhiteEmbryoIn);
 
     String selectByOrderAndBc(@Param("proOrderWorkorderBatch") ProOrderWorkorderBatch proOrderWorkorderBatch,@Param("orderCode")  String orderCode);
+
+    List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder);
 }
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
index bd910f3b..114b75f0 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java
@@ -132,4 +132,6 @@ public interface IWmsProductPutService {
     String finishedProductSalesReturnTD(WmsRuturnPutEmbryo wmsRuturnPutEmbryo);
 
     List<BaseEquipment> selectBaseEquipmentList(BaseEquipment baseEquipment);
+
+    List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder);
 }
diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
index 04b66376..b81c5963 100644
--- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
+++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java
@@ -990,6 +990,13 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService {
         return baseEquipments;
     }
 
+    @Override
+    public List<ProOrderWorkorder> listProOrderWorkorder(ProOrderWorkorder proOrderWorkorder) {
+        DynamicDataSourceContextHolder.push("ds_" + proOrderWorkorder.getFactoryCode());
+        List<ProOrderWorkorder>     workorderList= wmsOdsWhiteEmbryoInMapper.listProOrderWorkorder(proOrderWorkorder);
+        return workorderList;
+    }
+
     @Override
     public List<WmsRuturnPutEmbryo> FinishedProductSalesReturn(WmsRuturnPutEmbryo wmsRuturnPutEmbryo) {
         DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode());
diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml
index cb1a82cb..f6c17e30 100644
--- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml
+++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsOdsWhiteEmbryoInMapper.xml
@@ -285,5 +285,26 @@
         <include refid="selectWmsOdsWhiteEmbryoInVo"/>
         WHERE	Active='1'	AND	Order_Code=#{orderCode}	AND	User_Defined1=#{userDefined1}
     </select>
-
+    <select id="listProOrderWorkorder"   resultType="com.op.wms.domain.ProOrderWorkorder">
+        SELECT
+            pro_order_workorder.workorder_code_sap  AS workorderCodeSap,
+            pro_order_workorder.status    AS status,
+            pro_order_workorder_batch.batch_code    AS batchCode,
+            pro_order_workorder.product_code    AS productCode,
+            pro_order_workorder.product_name    AS productName,
+            pro_order_workorder.unit    AS unit,
+            pro_order_workorder.workorder_name  AS workorderName
+        FROM
+            pro_order_workorder
+                LEFT JOIN pro_order_workorder_batch ON pro_order_workorder_batch.workorder_id= pro_order_workorder.workorder_id
+        WHERE
+            pro_order_workorder.parent_order= '0'
+          AND pro_order_workorder_batch.del_flag= '0'
+        AND	pro_order_workorder.status	IN('w2','w3')
+        AND	pro_order_workorder.product_date= CONVERT(DATE, GETDATE())
+        <if test="workorderName != null">AND pro_order_workorder.workorder_name= #{workorderName}</if>
+        <if test="workorderCodeSap != null">AND pro_order_workorder.workorder_code_sap= #{workorderCodeSap}</if>
+        <if test="batchCode != null">AND pro_order_workorder_batch.batch_code= #{batchCode}</if>
+        <if test="productCode != null">AND pro_order_workorder.product_code= #{productCode}</if>
+    </select>
 </mapper>