From 3721176292747e250787e3b4b209bb89202990b0 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期日, 04 五月 2025 21:15:37 +0800
Subject: [PATCH] 质检结果回写问题修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java |   17 +++++
 rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx                                          |    4 +
 rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml                              |   99 ++++++++++++++++++---------------
 rsf-admin/src/i18n/zh.js                                                                         |    2 
 rsf-admin/src/i18n/en.js                                                                         |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java                 |    2 
 6 files changed, 78 insertions(+), 48 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index 04b334c..ac65feb 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -585,6 +585,8 @@
                 purUnit: "purUnit",
                 unit: 'Unit',
                 qty: "qty",
+                safeQty: 'Safe Qty',
+                disQty: 'Def Qty',
                 splrCode: "splrCode",
                 splrName: "splrName",
                 qrcode: "qrcode",
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index a2adb4f..256c6a2 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -575,6 +575,8 @@
                 purUnit: "閲囪喘鍗曚綅",
                 unit: '鍗曚綅',
                 qty: "瀹屾垚鏁伴噺",
+                safeQty: '鍚堟牸鏁�',
+                disQty: '涓嶅悎鏍兼暟',
                 splrBatch: "渚涘簲鍟嗘壒娆�",
                 splrCode: "渚涘簲鍟嗙紪鐮�",
                 splrName: "渚涘簲鍟嗗悕绉�",
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
index 5ac578b..93e1f8c 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
@@ -137,7 +137,7 @@
               setSelect(record)
               setEditDialog(true)
             }}
-            omit={['id', 'createTime', 'purQty', 'purUnit', 'poDetlCode', 'createBy', 'memo','model', 'packName','splrCode', 'qrcode', 'poDetlId', 'matnrId', 'asnId']}
+            omit={['id', 'createTime', 'purQty', 'purUnit', 'poDetlCode', 'createBy', 'memo', 'model', 'packName', 'splrCode', 'qrcode', 'poDetlId', 'matnrId', 'asnId']}
           >
             <NumberField source="id" />
             <NumberField source="asnId" label="table.field.asnOrderItem.asnId" />
@@ -155,6 +155,8 @@
             <NumberField source="purQty" label="table.field.asnOrderItem.purQty" />
             <TextField source="purUnit" label="table.field.asnOrderItem.purUnit" />
             <NumberField source="qty" label="table.field.asnOrderItem.qty" />
+            <NumberField source="safeQty" label="table.field.asnOrderItem.safeQty" />
+            <NumberField source="disQty" label="table.field.asnOrderItem.disQty" />
             <TextField source="isptResult$" label="table.field.asnOrderItem.isptResult" />
             <TextField source="splrCode" label="table.field.asnOrderItem.splrCode" />
             <TextField source="splrName" label="table.field.asnOrderItem.splrName" />
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
index a2a2377..18b0a4a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java
@@ -198,7 +198,7 @@
      * 璐ㄦ鐘舵��
      */
     @ApiModelProperty("璐ㄦ鐘舵��")
-    private Double isptStatus;
+    private Short isptStatus;
 
     /**
      * 鐘舵�� 1: 姝e父  0: 鍐荤粨
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
index ea34d24..04257e1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java
@@ -30,6 +30,7 @@
 
     @Autowired
     private QlyInspectService qlyInspectService;
+    @Autowired
     private AsnOrderItemService asnOrderItemService;
 
     /**
@@ -82,9 +83,23 @@
             items.forEach(qlyIsptItem -> {
                 AsnOrderItem orderItem = asnOrderItemService.getById(qlyIsptItem.getAsnItemId());
                 if (qlyIsptItem.getSafeQty().compareTo(orderItem.getAnfme()) >= 0.00) {
-                    orderItem.setIsptResult()
+                    orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val)
+                            .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val);
+                } else if (qlyIsptItem.getSafeQty().compareTo(0.00) > 0.00 && qlyIsptItem.getSafeQty().compareTo(orderItem.getAnfme()) < 0.00) {
+                    orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_SECTION.val);
+                    if (Double.compare(qlyIsptItem.getSafeQty() + qlyIsptItem.getDisQty(), orderItem.getAnfme()) >= 0.00 ) {
+                        orderItem.setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val);
+                    } else {
+                        orderItem.setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_ING.val);
+                    }
+                } else {
+                    orderItem.setIsptResult(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val)
+                            .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val);
                 }
 
+                if (!asnOrderItemService.updateById(orderItem)) {
+                    throw new CoolException("鏀惰揣鍗曟槑缁嗕慨鏀瑰け璐ワ紒锛�");
+                }
             });
             Double safeQty = items.stream().mapToDouble(QlyIsptItem::getSafeQty).sum();
             Double disQty = items.stream().mapToDouble(QlyIsptItem::getDisQty).sum();
diff --git a/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml b/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
index f28f4d0..6d3ab9c 100644
--- a/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
@@ -4,52 +4,61 @@
 
     <select id="resultForMap" resultType="java.util.Map">
         SELECT
-            id,
-            asn_id,
-            asn_code,
-            plat_item_id,
-            po_detl_id,
-            po_code,
-            fields_index,
-            matnr_id,
-            matnr_code,
-            maktx,
-            anfme,
-            stock_unit,
-            pur_qty,
-            pur_unit,
-            prod_time,
-            qty,
-            splr_code,
-            splr_batch,
-            splr_name,
-            qrcode,
-            track_code,
-            barcode,
-            pack_name,
-            nty_status,
-            `status`,
-            case ispt_result
-                when 0 then
-                    '鏈'
-                when 1 then
-                    '鍚堟牸'
-                when 2 then
-                    '涓嶅悎鏍�'
-                when 3 then
-                    '寰呭畾'
-                when 4 then
-                    '閮ㄥ垎鍚堟牸'
-            end as isptResult$,
-            deleted,
-            tenant_id,
-            create_by,
-            create_time,
-            update_by,
-            update_time,
-            memo
+            *
         FROM
-            man_asn_order_item
+            (
+                SELECT
+                    aoi.id,
+                    aoi.asn_id,
+                    aoi.asn_code,
+                    aoi.plat_item_id,
+                    aoi.po_detl_id,
+                    aoi.po_code,
+                    aoi.fields_index,
+                    aoi.matnr_id,
+                    aoi.matnr_code,
+                    aoi.maktx,
+                    aoi.anfme,
+                    aoi.stock_unit,
+                    aoi.pur_qty,
+                    aoi.pur_unit,
+                    aoi.prod_time,
+                    aoi.qty,
+                    qii.safe_qty,
+                    qii.dis_qty,
+                    aoi.splr_code,
+                    aoi.splr_batch,
+                    aoi.splr_name,
+                    aoi.qrcode,
+                    aoi.track_code,
+                    aoi.barcode,
+                    aoi.pack_name,
+                    aoi.nty_status,
+                    aoi.`status`,
+                    CASE
+                        aoi.ispt_result
+                        WHEN 0 THEN
+                            '鏈'
+                        WHEN 1 THEN
+                            '鍚堟牸'
+                        WHEN 2 THEN
+                            '涓嶅悎鏍�'
+                        WHEN 3 THEN
+                            '寰呭畾'
+                        WHEN 4 THEN
+                            '閮ㄥ垎鍚堟牸'
+                        END AS isptResult$,
+                    aoi.deleted,
+                    aoi.tenant_id,
+                    aoi.create_by,
+                    aoi.create_time,
+                    aoi.update_by,
+                    aoi.update_time,
+                    aoi.memo
+                FROM
+                    man_asn_order_item aoi
+                        INNER JOIN man_qly_ispt_item qii ON aoi.id = qii.asn_item_id
+            ) t
         ${ew.customSqlSegment}
     </select>
 </mapper>

--
Gitblit v1.9.1