From b3bcf1594fba5dd2d1535fe49288543cc8644ad6 Mon Sep 17 00:00:00 2001
From: zhaoxiaolin <khd@123>
Date: Mon, 1 Apr 2024 13:55:21 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A4=9C=E7=8F=AD=E5=B7=A1=E6=A3=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../op/mes/controller/MesBoardController.java |  6 ++--
 .../java/com/op/mes/mapper/MesMapper.java     |  2 +-
 .../quality/domain/QcCheckReportIncome.java   |  9 +++++
 .../op/quality/domain/QcCheckTaskProduce.java |  9 +++++
 .../com/op/quality/domain/QcStaticTable.java  | 10 +++++-
 .../quality/mapper/QcStaticTableMapper.java   |  2 ++
 .../impl/QcCheckReportProduceServiceImpl.java |  1 +
 .../impl/QcStaticTableServiceImpl.java        |  8 ++++-
 .../quality/QcCheckTaskProduceMapper.xml      |  6 ++--
 .../mapper/quality/QcStaticTableMapper.xml    | 28 +++++++++++++++
 .../com/op/sap/controller/SapController.java  | 35 ++++++++++++++++++-
 .../op/sap/service/impl/SapItemSyncImpl.java  |  6 ++++
 12 files changed, 113 insertions(+), 9 deletions(-)

diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java
index 5b792d07..8c1f9f8c 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java
@@ -36,7 +36,7 @@ public class MesBoardController extends BaseController {
 
     /**计划产量、当前产量、15天的产量趋势图**/
     @PostMapping("/getProduction15Days")
-    public AjaxResult getProduction15Days(BoardDTO mesBoard) {
+    public AjaxResult getProduction15Days(@RequestBody BoardDTO mesBoard) {
         if (StringUtils.isBlank(mesBoard.getFactoryCode())) {
             return error("[facotryCode] 不能为空");
         }
@@ -48,9 +48,9 @@ public class MesBoardController extends BaseController {
 
     /**产线信息**/
     @PostMapping("/getProductionLineInfo")
-    public AjaxResult getProductionLineInfo(BoardDTO mesBoard) {
+    public AjaxResult getProductionLineInfo(@RequestBody BoardDTO mesBoard) {
         if (StringUtils.isBlank(mesBoard.getFactoryCode())) {
-            return error("[facotryCode] 不能为空");
+            return error("[factoryCode] 不能为空");
         }
         if (StringUtils.isBlank(mesBoard.getEquCode())) {
             return error("[equCode] 不能为空");
diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java
index 82fed22b..063a71a6 100644
--- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java
+++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java
@@ -77,7 +77,7 @@ public interface MesMapper {
 
     List<BoardDTO> getLineList(BoardDTO boardDTO);
 
-    @MapKey("dayStr")
+    @MapKey("productDate")
     Map<String, MesReportWork> getProduction15Days(BoardDTO boardDTO);
 
     BoardDTO getWorkOrder(BoardDTO boardDTO);
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java
index 5afc755e..130ecf4f 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java
@@ -185,6 +185,15 @@ public class QcCheckReportIncome extends BaseEntity {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date confirmTime;
     private Boolean myself;
+    private String shiftId;
+
+    public String getShiftId() {
+        return shiftId;
+    }
+
+    public void setShiftId(String shiftId) {
+        this.shiftId = shiftId;
+    }
 
     public Boolean getMyself() {
         return myself;
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java
index df8df2f1..acbc55e5 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java
@@ -205,6 +205,15 @@ public class QcCheckTaskProduce extends BaseEntity {
     private String confirm;
     private String confirmRemark;
     private String confirmTime;
+    private String shiftId;
+
+    public String getShiftId() {
+        return shiftId;
+    }
+
+    public void setShiftId(String shiftId) {
+        this.shiftId = shiftId;
+    }
 
     public String getConfirm() {
         return confirm;
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
index a3e86420..9a69cc94 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java
@@ -41,7 +41,7 @@ public class QcStaticTable extends BaseEntity {
     private String typeCode;
     private String checkResult;
     private String noOkBatchRate;
-
+    private String shiftId;
     private String ymArrayStart;
     private String ymArrayEnd;
     private List<String> legendData;
@@ -106,6 +106,14 @@ public class QcStaticTable extends BaseEntity {
     private List<HashMap> details;
     private String[] projectNoArray;
 
+    public String getShiftId() {
+        return shiftId;
+    }
+
+    public void setShiftId(String shiftId) {
+        this.shiftId = shiftId;
+    }
+
     public String[] getProjectNoArray() {
         return projectNoArray;
     }
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
index b2732f2e..36b64150 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java
@@ -51,6 +51,8 @@ public interface QcStaticTableMapper {
 
     @MapKey("ymdms")
     Map<String, QcStaticTable> getProjectDetail(QcStaticTable qcStaticTable);
+    @MapKey("ymdms")
+    Map<String, QcStaticTable> getProjectDetailNight(QcStaticTable qcStaticTable);
 
     List<String> getBatchnos(String orderNo);
 
diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java
index 7bceff9d..0b70e824 100644
--- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java
+++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java
@@ -218,6 +218,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer
 
         QcStaticTable qcStaticTable = new QcStaticTable();
         qcStaticTable.setOrderNo(qcCheckTaskProduce.getOrderNo());
+        qcStaticTable.setShiftId(qcCheckTaskProduce.getShiftId());
         List<QcStaticTable> checkInfos = qcStaticTableService.getXJCheckTableDetail(qcStaticTable);
         produce.setCheckInfos(checkInfos);
         QcCheckTaskProduce lastProduce = qcCheckReportIncomeMapper.getLastProductTypeInfo(qcCheckTaskProduce);
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 0b74694e..ae7e83ed 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
@@ -171,7 +171,13 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService {
     @DS("#header.poolName")
     public List<QcStaticTable> getXJCheckTableDetail(QcStaticTable qcStaticTable) {
         List<QcStaticTable> projects = qcStaticTableMapper.getXJProjects(qcStaticTable);
-        Map<String, QcStaticTable> detailMap = qcStaticTableMapper.getProjectDetail(qcStaticTable);
+        Map<String, QcStaticTable> detailMap = null;
+        if(qcStaticTable.getShiftId().equals("5")){
+            detailMap = qcStaticTableMapper.getProjectDetail(qcStaticTable);
+        }else if(qcStaticTable.getShiftId().equals("2")){
+            detailMap = qcStaticTableMapper.getProjectDetailNight(qcStaticTable);
+        }
+
         Map<String, QcStaticTable> picsMap = qcStaticTableMapper.picsMap(qcStaticTable);
         for (QcStaticTable project : projects) {
             this.getDataFromMap(detailMap, project, picsMap);
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml
index a24887af..89958265 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml
@@ -82,7 +82,8 @@
         <result property="confirm" column="confirm"/>
         <result property="confirmManCode" column="confirm_man_code"/>
         <result property="confirmManName" column="confirm_man_name"/>
-        <result property="confirmManName" column="confirm_remark"/>
+        <result property="confirmRemark" column="confirm_remark"/>
+        <result property="shiftId" column="shift_id"/>
     </resultMap>
 
     <sql id="selectQcCheckTaskProduceVo">
@@ -339,7 +340,7 @@
     </select>
     <select id="selectQcCheckReportIncomeList" parameterType="QcCheckReportIncome"
             resultMap="QcCheckReportIncomeResult">
-        select * from (
+        select t.*,pow.shift_id from (
         select qct.record_id, qct.check_no, qct.income_batch_no,
         qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit,
         qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status,
@@ -409,6 +410,7 @@
         qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_type,CONVERT(varchar(10),qct.create_time, 120),
         qct.confirm,qct.confirm_man_name
         ) t
+        left join pro_order_workorder pow on pow.workorder_code = t.order_no
         where 1=1
         <if test="checkType != null ">
             and t.check_type = #{checkType}
diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
index 045f3c53..0e81d572 100644
--- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
+++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml
@@ -179,6 +179,34 @@
 
 	</select>
 
+    <select id="getProjectDetailNight" resultType="com.op.quality.domain.QcStaticTable">
+        select qctd.record_id recordId,
+               qctd.project_id projectId,
+               qctd.status,
+               qctd.remark,
+               CONVERT(VARCHAR(5),qctd.create_time, 108),
+               concat(qctd.project_id,
+                      case when '21:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '20:30' then '08'
+                           when '22:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '21:30' then '09'
+                           when '23:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '22:30' then '10'
+                           when '23:59'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '23:30' then '11'
+                           when '01:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '00:00' then '11'
+                           when '02:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '01:30' then '12'
+                           when '03:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '02:30' then '13'
+                           when '04:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '03:30' then '14'
+                           when '05:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '04:30' then '15'
+                           when '06:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '05:30' then '16'
+                           when '07:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '06:30' then '18'
+                           when '08:30'>= CONVERT(VARCHAR(5),qctd.create_time, 108) and CONVERT(VARCHAR(5),qctd.create_time, 108)> '07:30' then '19'
+                           else '-' end
+                   )ymdms
+        from qc_check_task qct
+                 left join qc_check_task_detail qctd on qct.record_id = qctd.belong_to
+        where qct.order_no = #{orderNo} and qct.check_type = 'checkTypeSCXJ' and qct.check_status = '2'
+        order by qctd.create_time
+
+    </select>
+
     <select id="getBatchnos" resultType="java.lang.String">
 		select powb.batch_code batchCode
 		from pro_order_workorder_batch powb
diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java
index 1d80b017..f410c1ff 100644
--- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java
+++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java
@@ -24,6 +24,10 @@ import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 
 @RestController
 @RequestMapping("/sap")
@@ -66,8 +70,37 @@ public class SapController extends BaseController {
     @PostMapping("/itemSync")
     @Log(title = "同步SAP物料清单", businessType = BusinessType.SAP)
     public R itemSync(@RequestBody SapItemQuery qo) {
+
         // 加载sf-cloud库的sys_datasource
-        return sapItemSyncService.itemSync(qo);
+        SysUser sysUser = new SysUser();
+        sysUser.setUserId(1L);
+        R<List<Map<String, String>>> dateSources0 = remoteUserService.getPoolNameList(sysUser);
+        List<Map<String, String>> dateSources = dateSources0.getData();
+        ExecutorService executorService = new ThreadPoolExecutor(
+                dateSources.size(),
+                dateSources.size(),
+                0L, TimeUnit.MILLISECONDS,
+                new LinkedBlockingQueue<Runnable>());
+        try {
+
+            dateSources.forEach(dateSource -> {
+                if(!"ds_999".equals(dateSource.get("poolName"))){
+                    SapItemQuery sapItemQuery = new SapItemQuery();
+                    sapItemQuery.setWerks(dateSource.get("poolName").replace("ds_",""));
+                    Runnable run = () -> sapItemSyncService.itemSync(sapItemQuery);
+                    executorService.execute(run);
+                }
+
+            });
+
+        } catch (Exception e) {
+            logger.error("controller == createIncomeBatchTask == exception", e);
+            return R.fail("controller == createIncomeBatchTask == exception");
+        } finally {
+            executorService.shutdown();
+        }
+        return R.ok();
+
     }
 
     /**
diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java
index 41400e15..8cce8f66 100644
--- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java
+++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java
@@ -53,6 +53,12 @@ public class SapItemSyncImpl implements SapItemSyncService {
     @Override
     public R itemSync(SapItemQuery sapItemQuery) {
         try {
+
+            DynamicDataSourceContextHolder.push("ds_"+sapItemQuery.getWerks());
+            //TODO;
+            //sapItemQuery.setLaeda();
+            //sapItemQuery.setErsda();
+
             // 获取调用 RFC 函数对象
             //获取连接
             log.info("物料基础数据同步输入参数---------" + JSONObject.toJSONString(sapItemQuery));