From 162072ac75b009a24cb84569ea7000a782c0fa34 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期三, 14 五月 2025 16:00:48 +0800
Subject: [PATCH] 质检单问题修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java       |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Purchase.java                     |   15 +++
 rsf-admin/src/page/orders/purchase/PurchaseList.jsx                                              |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java                |    3 
 rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx                                              |    5 -
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java  |   39 +++++++++
 rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml                               |   31 +++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyIsptItemServiceImpl.java |   49 +++++++-----
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java     |   10 ++
 rsf-admin/src/layout/SubMenu.jsx                                                                 |    4 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java            |    5 +
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java                 |    8 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java    |   20 ++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java          |    9 ++
 rsf-admin/src/i18n/zh.js                                                                         |    1 
 rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx                                          |   11 +-
 rsf-admin/src/i18n/en.js                                                                         |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyInspectService.java           |    2 
 18 files changed, 170 insertions(+), 48 deletions(-)

diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js
index ba2d163..7811a63 100644
--- a/rsf-admin/src/i18n/en.js
+++ b/rsf-admin/src/i18n/en.js
@@ -1044,6 +1044,7 @@
         orderPrint: 'Orders Print',
         quality: "quality",
         complete: "complete",
+        verifyComfirm: 'Verify Comfirm',
         close: "close",
         asnCreate: "Create By Order",
         poCreate: "Create By PO",
diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 0fabcf6..22420f0 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -1075,6 +1075,7 @@
         batchWarehouseAreas: "鎵归噺搴撳尯",
         batchLocType: "鎵归噺搴撲綅绫诲瀷",
         batchPrint: "鎵归噺鎵撳嵃",
+        verifyComfirm: '瀹℃牳纭',
         quality: "璐ㄦ",
         complete: "瀹岀粨",
         close: "鍏抽棴",
diff --git a/rsf-admin/src/layout/SubMenu.jsx b/rsf-admin/src/layout/SubMenu.jsx
index e09b22d..f5be513 100644
--- a/rsf-admin/src/layout/SubMenu.jsx
+++ b/rsf-admin/src/layout/SubMenu.jsx
@@ -43,6 +43,10 @@
                     component="div"
                     disablePadding
                     sx={{
+                        '& .MuiTypography-root': {
+                            visibility: 'hidden'
+                        },
+
                         '& .MuiMenuItem-root': {
                             transition:
                                 'padding-left 195ms cubic-bezier(0.4, 0, 0.6, 1) 0ms',
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
index 4a6bec8..f8c157c 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
@@ -159,8 +159,6 @@
               <InspectionsButton />
               <MyExportButton />
               {/* <BtnBulkExport></BtnBulkExport> */}
-              <BulkDeleteButton mutationMode={OPERATE_MODE}
-              />
             </>}
           rowClick={false}
           expandSingle={true}
@@ -174,10 +172,9 @@
           <TextField cellClassName="wkType" source="wkType$" label="table.field.asnOrder.wkType" />
           <NumberField source="anfme" label="table.field.asnOrder.anfme" />
           <NumberField source="qty" label="table.field.asnOrder.qty" />
-          {/* <TextField source="logisNo" label="table.field.asnOrder.logisNo" /> */}
           <DateField source="arrTime" label="table.field.asnOrder.arrTime" showTime />
           <TextField source="rleStatus$" label="table.field.asnOrder.rleStatus" sortable={false} />
-          <TextField source="ntyStatus$" label="table.field.asnOrder.ntyStatus" />
+          {/* <TextField source="ntyStatus$" label="table.field.asnOrder.ntyStatus" /> */}
           <TextField source="updateBy$" label="common.field.updateBy" />
           <DateField source="updateTime" label="common.field.updateTime" showTime />
           <TextField source="createBy$" label="common.field.createBy" />
diff --git a/rsf-admin/src/page/orders/purchase/PurchaseList.jsx b/rsf-admin/src/page/orders/purchase/PurchaseList.jsx
index fdfcc50..254601e 100644
--- a/rsf-admin/src/page/orders/purchase/PurchaseList.jsx
+++ b/rsf-admin/src/page/orders/purchase/PurchaseList.jsx
@@ -38,6 +38,7 @@
 import PurchasePanel from "./PurchasePanel";
 import EmptyData from "../../components/EmptyData";
 import MyCreateButton from "../../components/MyCreateButton";
+import BillStatusField from '../../components/BillStatusField';
 import MyExportButton from '../../components/MyExportButton';
 import PageDrawer from "../../components/PageDrawer";
 import MyField from "../../components/MyField";
@@ -146,7 +147,8 @@
           <DateField source="updateTime" label="common.field.updateTime" showTime />
           <TextField source="createBy$" label="common.field.createBy"  />
           <DateField source="createTime" label="common.field.createTime" showTime />
-          <BooleanField source="statusBool" label="common.field.status" sortable={false} />
+          <BillStatusField cellClassName="status" source="exceStatus" label="table.field.asnOrder.exceStatus" />
+          {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */}
           <TextField source="memo" label="common.field.memo" sortable={false} />
           <WrapperField cellClassName="opt" label="common.field.opt">
             <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
diff --git a/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx b/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx
index 44c3407..f099c0a 100644
--- a/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx
+++ b/rsf-admin/src/page/orders/qlyInspect/QlyInspectList.jsx
@@ -49,6 +49,7 @@
 import AsnSelModal from "./AsnSelModal";
 import InspectModal from "./InspectModal";
 import QlyInspectOpCreate from './QlyInspectOpCreate';
+import ConfirmButton from "../../components/ConfirmButton";
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
         height: '.9em'
@@ -133,11 +134,11 @@
                 >
                     <NumberField source="id" />
                     <TextField source="code" label="table.field.qlyInspect.code" />
-                    <TextField source="isptStatus$" label="table.field.qlyInspect.isptStatus" />
                     <TextField source="wkType$" label="table.field.qlyInspect.wkType" />
                     <NumberField source="asnId" label="table.field.qlyInspect.asnId" />
                     <NumberField source="asnCode" label="table.field.qlyInspect.asnCode" />
                     <NumberField source="isptQty" label="table.field.qlyInspect.isptQty" />
+                    <TextField source="isptStatus$" label="table.field.qlyInspect.isptStatus" />
                     <TextField source="updateBy$" label="common.field.updateBy" />
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
                     <TextField source="createBy$" label="common.field.createBy" />
@@ -148,7 +149,7 @@
                         <EditButton label="toolbar.detail" />
                         <InspectionButton />
                         <CompleteButton />
-                        <CloseButton />
+                        {/* <CloseButton /> */}
                     </WrapperField>
                 </StyledDatagrid>
             </List>
@@ -203,7 +204,7 @@
     const notify = useNotify();
     const refresh = useRefresh();
     const requestComplete = async () => {
-        const { data: { code, data, msg } } = await request.post(`/qlyInspect/update`, { ...record, isptStatus: '1' });
+        const { data: { code, data, msg } } = await request.post(`/qlyInspect/verify/complate/` + record?.id);
         if (code === 200) {
             notify(msg);
             refresh()
@@ -213,9 +214,7 @@
     }
 
     return (
-        record.isptStatus != 1 && record.isptStatus != 3 ? (<Button onClick={requestComplete} label={"toolbar.complete"} mutationMode={OPERATE_MODE}>
-            <TaskIcon />
-        </Button>) : (<></>)
+        record.isptStatus == 2 ? (<ConfirmButton label={"toolbar.verifyComfirm"} color="secondary" startIcon={<TaskIcon />} onConfirm={requestComplete} />) : (<></>)
     )
 }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
index 70613d6..64afeec 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
@@ -123,7 +123,6 @@
         if (Objects.isNull(ids) || ids.length == 0) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-
         return asnOrderService.removeOrders(Arrays.asList(ids));
     }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
index af8e95b..dcff993 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
@@ -120,6 +120,16 @@
     }
 
     @PreAuthorize("hasAuthority('manager:qlyInspect:update')")
+    @ApiOperation("瀹℃牳纭")
+    @PostMapping("/qlyInspect/verify/complate/{id}")
+    public R verifyComplate(@PathVariable Long id) {
+        if (Objects.isNull(id)) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return qlyInspectService.verifyComplate(id);
+    }
+
+    @PreAuthorize("hasAuthority('manager:qlyInspect:update')")
     @OperationLog("Update 璐ㄦ淇℃伅")
     @PostMapping("/qlyInspect/update")
     public R update(@RequestBody QlyInspect qlyInspect) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Purchase.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Purchase.java
index 68331a1..932e228 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Purchase.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Purchase.java
@@ -253,6 +253,21 @@
         return dictDatas.getLabel();
     }
 
+    public String getExceStatus$() {
+        if (Cools.isEmpty(this.exceStatus)){
+            return "";
+        }
+        DictDataService dictDataService = SpringUtils.getBean(DictDataService.class);
+        DictData dictData = dictDataService.getOne(new LambdaQueryWrapper<DictData>()
+                .eq(DictData::getDictTypeCode, DictTypeCode.SYS_PO_EXCE_STATUS)
+                .eq(DictData::getValue, this.exceStatus));
+        if (Objects.isNull(dictData)) {
+            return null;
+        }
+        return dictData.getLabel();
+    }
+
+
     public String getWkType$() {
         if (Cools.isEmpty(this.wkType)) {
             return "";
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
index 6566eb2..e65d7ce 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
@@ -18,10 +18,10 @@
     ASN_EXCE_STATUS_TASK_CLOSE("5", "宸插叧闂�"),
 
     //PO鍗曟墽琛岀姸鎬�
-    PO_EXCE_STATUS_UN_EXCE("0", "鏈墽琛�"),
-    PO_EXCE_STATUS_EXCE_ING("1", "鎵ц涓�"),
-    PO_EXCE_STATUS_SECTION_DONE("3", "閮ㄥ垎瀹屾垚"),
-    PO_EXCE_STATUS_ALL_DONE("3", "宸插畬鎴�"),
+//    PO_EXCE_STATUS_UN_EXCE("0", "鏈墽琛�"),
+//    PO_EXCE_STATUS_EXCE_ING("1", "鎵ц涓�"),
+//    PO_EXCE_STATUS_SECTION_DONE("2", "閮ㄥ垎瀹屾垚"),
+//    PO_EXCE_STATUS_ALL_DONE("3", "宸插畬鎴�"),
 
 
     OUT_STOCK_STATUS_TASK_INIT("11", "鍒濆鍖�"),
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java
index c57c2c9..2c2fa42 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/QlyIsptItemMapper.java
@@ -1,5 +1,6 @@
 package com.vincent.rsf.server.manager.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
@@ -11,9 +12,13 @@
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Mapper
 @Repository
 public interface QlyIsptItemMapper extends BaseMapper<QlyIsptItem> {
 
     IPage<QlyIsptItem> pageByWrapper(PageParam<QlyIsptItem, BaseParam> pageParam, @Param(Constants.WRAPPER) QueryWrapper<QlyIsptItem> queryWrapper);
+
+    List<QlyIsptItem> selectIsptResult(@Param(Constants.WRAPPER) LambdaQueryWrapper<QlyIsptItem> eq);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyInspectService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyInspectService.java
index 5944e58..f0de2ed 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyInspectService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyInspectService.java
@@ -23,4 +23,6 @@
     R saveSelected(IsptOrderParam param, Long loginUserId);
 
     boolean qlySave(QlyInspect qlyInspect);
+
+    R verifyComplate(Long id);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java
index cec5a02..93dc4d9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/QlyIsptItemService.java
@@ -1,5 +1,6 @@
 package com.vincent.rsf.server.manager.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -7,6 +8,9 @@
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.controller.params.IsptItemsParams;
 import com.vincent.rsf.server.manager.entity.QlyIsptItem;
+import com.vincent.rsf.server.manager.entity.WarehouseAreasItem;
+
+import java.util.List;
 
 public interface QlyIsptItemService extends IService<QlyIsptItem> {
 
@@ -15,4 +19,9 @@
     IPage<QlyIsptItem> pageByWrapper(PageParam<QlyIsptItem, BaseParam> pageParam, QueryWrapper<QlyIsptItem> queryWrapper);
 
     IPage<QlyIsptItem> pageByIsptResult(PageParam<QlyIsptItem, BaseParam> pageParam, QueryWrapper<QlyIsptItem> queryWrapper);
+
+    void confirmReceipt(QlyIsptItem item, WarehouseAreasItem orderItem);
+
+    List<QlyIsptItem> selectIsptResult(LambdaQueryWrapper<QlyIsptItem> eq);
 }
+
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
index 93a3df4..011bd52 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -305,9 +305,14 @@
                     .setMatnrId(matnr.getId());
             orderItems.add(orderItem);
 
-            
-//            purchaseItemService.update(new LambdaUpdateWrapper<>().set(PurchaseItem::getAnfme, ));
-
+            PurchaseItem purchaseItem = purchaseItemService.getOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, item.getId()));
+            if (Objects.isNull(purchaseItem)) {
+                throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+            }
+            purchaseItem.setQty(purchaseItem.getQty() +  item.getAnfme());
+            if (!purchaseItemService.updateById(purchaseItem)) {
+                throw new CoolException("PO鍗曟槑缁嗕慨鏀瑰け璐ワ紒锛�");
+            }
         }
 
         double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
@@ -317,7 +322,6 @@
         }
         //浠诲姟鎵ц瀹屾垚锛屼慨鏀瑰凡瀹屾垚鏁伴噺鍜孭O鍗曟墽琛岀姸鎬�
         purchase.setQty(sum + purchase.getQty())
-                .setAnfme(purchase.getAnfme() - sum)
                 .setExceStatus(POExceStatus.PO_EXCE_STATUS_EXCE_ING.val);
 
         if (!purchaseService.saveOrUpdate(purchase)) {
@@ -350,8 +354,7 @@
             list.forEach(item -> {
                 PurchaseItem purchaseItem = purchaseItemService.getById(item.getPoDetlId());
                 if (!Objects.isNull(purchaseItem)) {
-                    purchaseItem.setQty(purchaseItem.getQty() - item.getAnfme())
-                            .setAnfme(purchaseItem.getAnfme() + item.getAnfme());
+                    purchaseItem.setQty(purchaseItem.getQty() - item.getAnfme());
                 }
                 if (!purchaseItemService.updateById(purchaseItem)) {
                     throw new CoolException("PO鍗曟槑缁嗘洿鏂板け璐ワ紒锛�");
@@ -363,15 +366,12 @@
             Purchase purchase = purchaseService.getOne(new LambdaQueryWrapper<Purchase>()
                     .eq(Purchase::getCode, list.stream().findFirst().get().getPoCode()));
             purchase.setQty(purchase.getQty() - sum)
-                    .setExceStatus(POExceStatus.PO_EXCE_STATUS_EXCE_ING.val)
-                    .setAnfme(purchase.getAnfme() + sum);
+                    .setExceStatus(POExceStatus.PO_EXCE_STATUS_EXCE_ING.val);
 
             if (!purchaseService.updateById(purchase)) {
                 throw new CoolException("PO鍗曟嵁鏇存柊澶辫触锛侊紒");
             }
         }
-
-
 
         if (!asnOrderItemService.remove(new LambdaQueryWrapper<AsnOrderItem>()
                 .in(AsnOrderItem::getAsnId, ids))) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
index c163e61..bed6f21 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/QlyInspectServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.manager.controller.params.IsptOrderParam;
@@ -211,4 +212,42 @@
 
         return this.save(qlyInspect);
     }
+
+    /**
+     * @author Ryan
+     * @date 2025/5/14
+     * @description: 璐ㄦ瀹℃牳纭
+     * @version 1.0
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R verifyComplate(Long id) {
+        if (Objects.isNull(id)) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        QlyInspect inspect = this.getById(id);
+        if (Objects.isNull(inspect)) {
+            throw new CoolException("璐ㄦ鍗曟嵁涓嶅瓨鍦紒锛�");
+        }
+        inspect.setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_DONE.val);
+        if (!this.saveOrUpdate(inspect)) {
+            throw new CoolException("鍗曟嵁淇敼澶辫触锛侊紒");
+        }
+        List<QlyIsptItem> items = qlyIsptItemService.selectIsptResult(new LambdaQueryWrapper<QlyIsptItem>().eq(QlyIsptItem::getIspectId, inspect.getId()));
+        if (items.isEmpty()) {
+            throw new CoolException("璐ㄦ鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+        }
+        for (QlyIsptItem isptItem : items) {
+            if (isptItem.getSafeQty().compareTo(0.0) <= 0 && isptItem.getDisQty().compareTo(0.0) <= 0 ) {
+                continue;
+            }
+            WarehouseAreasItem item = warehouseAreasItemService.getById(isptItem.getRcptId());
+            if (Objects.isNull(item)) {
+                throw new CoolException("搴撳瓨鏄庣粏涓嶅瓨鍦紒锛�");
+            }
+            qlyIsptItemService.confirmReceipt(isptItem, item);
+        }
+
+        return R.ok("瀹℃牳瀹屾垚锛侊紒");
+    }
 }
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 d375c92..66440f7 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
@@ -107,27 +107,28 @@
                 throw new CoolException("鍗曟嵁鏄庣粏鏁伴噺淇敼澶辫触锛侊紒");
             }
 
-            WarehouseAreasItem orderItem = warehouseAreasItemService.getById(item.getRcptId());
-            if (Objects.isNull(orderItem)) {
-                throw new CoolException("鏀惰揣鍗曟嵁涓嶅瓨鍦紒锛�");
-            }
+//            WarehouseAreasItem orderItem = warehouseAreasItemService.getById(item.getRcptId());
+//            if (Objects.isNull(orderItem)) {
+//                throw new CoolException("鏀惰揣鍗曟嵁涓嶅瓨鍦紒锛�");
+//            }
 
-            Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty();
-            Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty();
-
-            Double sum = disQty + safeQty;
-            orderItem.setIsptQty(sum);
-
-            if (sum.compareTo(0.0) > 0) {
-                if (!warehouseAreasItemService.updateById(orderItem)) {
-                    throw new CoolException("鏀惰揣鍖哄簱瀛樹俊鎭洿鏂板け璐ワ紒锛�");
-                }
-
-                //鏂板缓璐ㄦ鍗曪紝璐ㄦ缁撴灉涓嶄細鏈夎川妫�缁撴灉
-                if (Objects.isNull(orderItem.getIsptResult())) {
-                    operateReceipt(item, orderItem);
-                }
-            }
+//            Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty();
+//            Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty();
+//
+//            Double sum = disQty + safeQty;
+//            orderItem.setIsptQty(sum);
+//
+//            if (sum.compareTo(0.0) > 0) {
+//                if (!warehouseAreasItemService.updateById(orderItem)) {
+//                    throw new CoolException("鏀惰揣鍖哄簱瀛樹俊鎭洿鏂板け璐ワ紒锛�");
+//                }
+//                //鏂板缓璐ㄦ鍗曪紝涓嶄細鏈夎川妫�缁撴灉
+//                confirmReceipt(item, orderItem);
+//
+////                if (Objects.isNull(orderItem.getIsptResult())) {
+////                    operateReceipt(item, orderItem);
+////                }
+//            }
         }
 
         Set<Long> isptIds = isptItem.stream().map(QlyIsptItem::getIspectId).collect(Collectors.toSet());
@@ -150,7 +151,8 @@
      * @description: 璐ㄦ鍚庝慨鏀规敹璐у尯瀛樹俊鎭�
      * @version 1.0
      */
-    private void operateReceipt(QlyIsptItem item, WarehouseAreasItem orderItem) {
+    @Transactional(rollbackFor = Exception.class)
+    public void confirmReceipt(QlyIsptItem item, WarehouseAreasItem orderItem) {
         Double disQty = Objects.isNull(item.getDisQty()) ? 0 : item.getDisQty();
         Double safeQty = Objects.isNull(item.getSafeQty()) ? 0 : item.getSafeQty();
         Double sum = disQty + safeQty;
@@ -208,6 +210,11 @@
         }
     }
 
+    @Override
+    public List<QlyIsptItem> selectIsptResult(LambdaQueryWrapper<QlyIsptItem> eq) {
+        return this.baseMapper.selectIsptResult(eq);
+    }
+
     /**
      * @author Ryan
      * @date 2025/5/12
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
index dedbb6d..a0e6052 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -62,4 +62,7 @@
     /**缁勬墭鎵ц鐘舵��*/
     public final static String SYS_ORDER_IN_STATUS = "sys_order_in_status";
 
+    /**PO鍗曟墽琛岀姸鎬�*/
+    public final static String SYS_PO_EXCE_STATUS =  "sys_po_exce_status";
+
 }
diff --git a/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml b/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml
index c7f7e4e..78bfe7a 100644
--- a/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml
+++ b/rsf-server/src/main/resources/mapper/manager/QlyIsptItemMapper.xml
@@ -26,6 +26,35 @@
                      update_time,
                      memo
               FROM man_qly_ispt_item qii
-                       LEFT JOIN man_qly_inspect_result qir ON qii.id = qir.ispt_item_id) t ${ew.customSqlSegment}
+                       LEFT JOIN man_qly_inspect_result qir ON qii.id = qir.ispt_item_id) t
+            ${ew.customSqlSegment}
+    </select>
+    <select id="selectIsptResult" resultType="com.vincent.rsf.server.manager.entity.QlyIsptItem">
+        SELECT *
+        FROM (SELECT qii.id,
+                     ispect_id,
+                     asn_item_id,
+                     matnr_code,
+                     maktx,
+                     qii.rcpt_id,
+                     splr_name,
+                     splr_batch,
+                     rcpt_qty,
+                     dly_qty,
+                     track_code,
+                     pic_path,
+                     `status`,
+                     deleted,
+                     tenant_id,
+                     create_by,
+                     COALESCE((SELECT anfme FROM man_qly_inspect_result WHERE qii.id = ispt_item_id AND ispt_result = 1), 0)  AS safe_qty,
+                     COALESCE((SELECT anfme FROM man_qly_inspect_result WHERE qii.id = ispt_item_id AND ispt_result = 2), 0) AS dis_qty,
+                     create_time,
+                     update_by,
+                     update_time,
+                     memo
+              FROM man_qly_ispt_item qii) t
+            ${ew.customSqlSegment}
+
     </select>
 </mapper>

--
Gitblit v1.9.1