From b5e4bbec339bf3858338deece026a20bc40b8923 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 06 五月 2025 15:45:32 +0800
Subject: [PATCH] no message

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java        |   20 ++++++
 rsf-admin/src/page/waitPakin/SelectSiteModel.jsx                                                  |    2 
 rsf-admin/src/page/waitPakin/WaitPakinList.jsx                                                    |   24 +++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java |    8 ++
 rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx                                               |   13 +++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java                  |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java               |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java                 |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java           |   34 ++++++++---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java            |    6 ++
 rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx                                              |   35 +++++++----
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderItem.java                  |    2 
 12 files changed, 122 insertions(+), 31 deletions(-)

diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
index 19c2d3f..88563f3 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
@@ -205,6 +205,15 @@
 }
 export default AsnOrderList;
 
+const ODeleteButton = () => {
+  const record = useRecordContext();
+  
+  return (
+    record.exceStatus === 0 ? <DeleteButton /> : <></>
+  )
+
+}
+
 const MyButton = ({ setCreateDialog, setmodalType }) => {
   const record = useRecordContext();
   const handleEditClick = (btn) => {
@@ -247,7 +256,7 @@
   }
 
   return (
-    <ConfirmButton label={"toolbar.inspection"} color="secondary" startIcon={<ConstructionIcon />} onConfirm={inspection} />
+      <ConfirmButton label={"toolbar.inspection"} color="secondary" startIcon={<ConstructionIcon />} onConfirm={inspection} />
   )
 }
 
@@ -351,7 +360,7 @@
     // record.exceStatus === 1 && (record.anfme === record.qty ? <Button onClick={requestComplete} label={"toolbar.complete"} color="secondary">
     //   <TaskIcon />
     // </Button> : )
-    <ConfirmButton label={"toolbar.complete"} color="secondary"  startIcon={<TaskIcon />} onConfirm={requestComplete} />
+    record.exceStatus === 1 ? <ConfirmButton label={"toolbar.complete"} color="secondary"  startIcon={<TaskIcon />} onConfirm={requestComplete} /> : <></>
   )
 
 
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
index 796ed9e..bbba6ff 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -462,17 +462,17 @@
             ),
             headerClassName: "custom",
         },
-        {
-            field: 'splrName',
-            headerName: translate('table.field.asnOrderItem.splrName') + "*",
-            minWidth: 100,
-            flex: 1,
-            editable: true,
-            renderEditCell: (params) => (
-                <SelectInputSplrNameEditCell {...params} />
-            ),
-            headerClassName: "custom",
-        },
+        // {
+        //     field: 'splrName',
+        //     headerName: translate('table.field.asnOrderItem.splrName') + "*",
+        //     minWidth: 100,
+        //     flex: 1,
+        //     editable: true,
+        //     renderEditCell: (params) => (
+        //         <SelectInputSplrNameEditCell {...params} />
+        //     ),
+        //     headerClassName: "custom",
+        // },
         // {
         //     field: 'packName',
         //     headerName: translate('table.field.asnOrderItem.packName'),
@@ -487,14 +487,23 @@
         //     flex: 1,
         // },
         {
-            field: 'poCode',
-            headerName: translate('table.field.asnOrderItem.poDetlCode') + "*",
+            field: 'platItemId',
+            headerName: translate('table.field.asnOrderItem.platItemId') + "*",
             minWidth: 100,
             flex: 1,
             editable: true,
             headerClassName: "custom",
         },
 
+        // {
+        //     field: 'poCode',
+        //     headerName: translate('table.field.asnOrderItem.poDetlCode') + "*",
+        //     minWidth: 100,
+        //     flex: 1,
+        //     editable: true,
+        //     headerClassName: "custom",
+        // },
+
         {
             field: 'stockUnit',
             headerName: translate('table.field.asnOrderItem.stockUnit'),
diff --git a/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx b/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx
index bf21873..d152bb5 100644
--- a/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx
+++ b/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx
@@ -110,7 +110,7 @@
                             <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">
-                            <SelectSiteButton source={source} setOpen={setOpen} refresh={refresh} notify={notify} />
+                                <SelectSiteButton source={source} setOpen={setOpen} refresh={refresh} notify={notify} />
                             </WrapperField>
                         </StyledDatagrid>
                     </List>
diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
index 362885e..43aa899 100644
--- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
+++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -93,7 +93,7 @@
     const [drawerVal, setDrawerVal] = useState(false);
 
     const CreateTaskButton = () => {
-        const record = useRecordContext();
+        const record = useRecordContext();        
         const notify = useNotify();
         const refresh = useRefresh();
         const { selectedIds, onUnselectItems, data } = useListContext();
@@ -114,9 +114,26 @@
         )
     }
 
-    const BulkActionButtons = () => {
+    const CreateTaskRowButton = () => {
+        const record = useRecordContext();        
+        const refresh = useRefresh();
 
+        const createTask = (event) => {
+            event.stopPropagation();
+            setSiteDialog(true)
+            setSource([record])
+            refresh()
+        }
+    
+        return (
+            <>
+                <Button onClick={(event) => createTask(event)} label={"toolbar.createTask"}>
+                    <AddIcon />
+                </Button>
+            </>
+        )
     }
+
     return (
         <Box display="flex">
             <List
@@ -164,6 +181,7 @@
                     <TextField source="memo" label="common.field.memo" sortable={false} />
                     <WrapperField cellClassName="opt" label="common.field.opt">
                         <EditButton label="toolbar.detail" sx={{ padding: '1px', fontSize: '.75rem' }} />
+                        <CreateTaskRowButton />
                         {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
                     </WrapperField>
                 </StyledDatagrid>
@@ -186,3 +204,5 @@
 export default WaitPakinList;
 
 
+
+
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
index 7cbc8e9..d0df993 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -23,6 +23,7 @@
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.AsnExceStatus;
 import com.vincent.rsf.server.manager.enums.PakinIOStatus;
+import com.vincent.rsf.server.manager.enums.QlyIsptResult;
 import com.vincent.rsf.server.manager.enums.QlyIsptStatus;
 import com.vincent.rsf.server.manager.mapper.*;
 import com.vincent.rsf.server.manager.service.*;
@@ -293,15 +294,9 @@
             if (asnOrderItemMapper.updateById(orderItem) < 1) {
                 throw new CoolException("閫氱煡鍗曟槑缁嗘暟閲忎慨鏀瑰け璐ワ紒锛�");
             }
+            /**淇濆瓨鏄庣粏鑷虫敹璐у尯**/
+            extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr);
 
-            List<QlyIsptItem> isptItems = qlyIsptItemService.list(new LambdaQueryWrapper<QlyIsptItem>().eq(QlyIsptItem::getAsnItemId, dto.getId()));
-            if (isptItems.isEmpty()) {
-                extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr);
-            } else {
-                for (QlyIsptItem isptItem : isptItems) {
-                    extracted(loginUserId, dto, areasItem, orderItem, asnOrder, matnr);
-                }
-            }
         }
 
         AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, asnCode));
@@ -340,19 +335,38 @@
                 .setFieldsIndex(orderItem.getFieldsIndex())
                 .setShipperId(matnr.getShipperId());
         //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲
-
         WarehouseAreasItem serviceOne = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>()
                 .eq(WarehouseAreasItem::getAsnItemId, item.getAsnItemId())
                 .eq(WarehouseAreasItem::getTrackCode, item.getTrackCode())
                 .eq(StringUtils.isNotBlank(item.getSplrBatch()), WarehouseAreasItem::getSplrBatch, item.getSplrBatch()));
         if (!Objects.isNull(serviceOne)) {
             item.setAnfme(item.getAnfme() + serviceOne.getAnfme());
-            item.setId(serviceOne.getId());
         }
 
+        //鏈川妫�
         if (!warehouseAreasItemService.saveOrUpdate(item)) {
             throw new CoolException("鏀惰揣澶辫触锛侊紒");
         }
+
+//        if (null != orderItem.getSafeQty() || null != orderItem.getDisQty() ) {
+//
+//        }
+//        else {
+//            //涓嶅悎鏍兼暟閲�
+//            if (orderItem.getDisQty().compareTo(0.00) > 0) {
+//                item.setIsptQty(orderItem.getDisQty()).setFlagNorm(QlyIsptResult.QLY_ISPT_RESULT_DEFECT.val);
+//                if (!warehouseAreasItemService.saveOrUpdate(item)) {
+//                    throw new CoolException("鏀惰揣澶辫触锛侊紒");
+//                }
+//            }
+//
+//            item.setIsptQty(orderItem.getSafeQty()).setFlagNorm(QlyIsptResult.QLY_ISPT_RESULT_EXCELLENT.val);
+//            if (!warehouseAreasItemService.saveOrUpdate(item)) {
+//                throw new CoolException("鏀惰揣澶辫触锛侊紒");
+//            }
+//        }
+
+
     }
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java
index 946f56a..2865546 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/PurchaseController.java
@@ -9,21 +9,30 @@
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.manager.entity.AsnOrderItem;
 import com.vincent.rsf.server.manager.entity.Purchase;
+import com.vincent.rsf.server.manager.service.AsnOrderItemService;
 import com.vincent.rsf.server.manager.service.PurchaseService;
+import com.vincent.rsf.server.system.constant.SerialRuleCode;
 import com.vincent.rsf.server.system.controller.BaseController;
+import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @RestController
 public class PurchaseController extends BaseController {
 
     @Autowired
     private PurchaseService purchaseService;
+
+    @Autowired
+    private AsnOrderItemService asnOrderItemService;
 
     @PreAuthorize("hasAuthority('manager:purchase:list')")
     @PostMapping("/purchase/page")
@@ -59,6 +68,11 @@
         purchase.setCreateTime(new Date());
         purchase.setUpdateBy(getLoginUserId());
         purchase.setUpdateTime(new Date());
+        if (StringUtils.isBlank(purchase.getCode())) {
+            String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ORDER_PO_CODE, purchase);
+            purchase.setCode(ruleCode);
+        }
+
         if (!purchaseService.save(purchase)) {
             return R.error("Save Fail");
         }
@@ -81,6 +95,12 @@
     @OperationLog("Delete ERP閲囪喘鍗�")
     @PostMapping("/purchase/remove/{ids}")
     public R remove(@PathVariable Long[] ids) {
+        List<Purchase> purchases = purchaseService.listByIds(Arrays.asList(ids));
+        Set<String> stringSet = purchases.stream().map(Purchase::getCode).collect(Collectors.toSet());
+        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getPoCode, stringSet));
+        if (!orderItems.isEmpty()) {
+            return R.error("鍗曟嵁鏈夊凡鐢熸垚鐨勬敹璐у崟鏄庣粏锛屼笉鍙墽琛屽垹闄ゆ搷浣滐紒锛�");
+        }
         if (!purchaseService.removeByIds(Arrays.asList(ids))) {
             return R.error("Delete Fail");
         }
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 d3fc19e..f896cf4 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
@@ -202,9 +202,11 @@
 
 
     @ApiModelProperty("鍚堟牸鏁伴噺")
+    @TableField(exist = false)
     private Double safeQty;
 
     @ApiModelProperty("涓嶅悎鏍兼暟閲�")
+    @TableField(exist = false)
     private Double disQty;
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
index 5527dbe..0fdda32 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/WarehouseAreasItem.java
@@ -198,6 +198,12 @@
     @ApiModelProperty(value= "淇敼浜哄憳")
     private Long updateBy;
 
+    @ApiModelProperty("鏄惁鍚堟牸")
+    private Short flagNorm;
+
+    @ApiModelProperty("璐ㄦ鏁伴噺")
+    private Double isptQty;
+
     /**
      * 淇敼鏃堕棿
      */
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java
index 3598f07..b00e101 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/QlyIsptResult.java
@@ -13,7 +13,7 @@
     QLY_ISPT_RESULT_DEFECT("2", "涓嶅悎鏍�"),
     QLY_ISPT_RESULT_PENDING("3", "寰呭畾"),
     QLY_ISPT_RESULT_SECTION("4", "閮ㄥ垎鍚堟牸"),
-    QLY_ISPT_RESULT_HOLD("0", "鍏跺畠")
+    QLY_ISPT_RESULT_HOLD("0", "鏈川妫�")
     ;
 
     QlyIsptResult(String val, String desc) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
index 43ef3b5..9255348 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -199,6 +199,14 @@
             String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, asnOrderItem);
             asnOrderItem.setTrackCode(ruleCode).setBarcode(ruleCode);
         }
+        if (StringUtils.isNoneBlank(asnOrderItem.getSplrCode())) {
+            Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>()
+                    .eq(Companys::getId, asnOrderItem.getSplrCode())
+                    .eq(Companys::getType, CompanysType.COMPANYS_TYPE_SUPPLIER.val));
+            if (!Objects.isNull(companys)) {
+                asnOrderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName());
+            }
+        }
         if (Objects.isNull(asnOrderItem.getAnfme()) || Double.compare(asnOrderItem.getAnfme(), 0.0) <= 0) {
             throw new CoolException("璁″垝鏁颁笉鑳戒负绌猴紒锛�");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
index 3546c5c..04dc68c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/SerialRuleCode.java
@@ -74,4 +74,7 @@
      */
     public final static String SYS_WAVE_TYPE = "sys_wave_type";
 
+    /**PO鍗曠紪鐮�*/
+    public final static String SYS_ORDER_PO_CODE = "sys_order_po_code";
+
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java
index 4e67c2f..d7b494e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/utils/SerialRuleUtils.java
@@ -64,9 +64,9 @@
                 if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_YEAR.type)) {
                      format = DateUtils.format(new Date(), "yyyy");
                 } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_MONTH.type)) {
-                     format = DateUtils.format(new Date(), "yyyyMM");
+                     format = DateUtils.format(new Date(), "yyMM");
                 } else if (serialRule.getReset().equals(SerialRuleReset.SERIAL_REST_TYPE_DAYS.type)){
-                     format = DateUtils.format(new Date(), "yyyyMMdd");
+                     format = DateUtils.format(new Date(), "yyMMdd");
                 }
                 //褰撳墠鍊艰嚜鍔ㄥ姞1
                 Integer curVal = serialRule.getCurrValue() + 1;

--
Gitblit v1.9.1