From fa5d671a53597db853ac1ab2e99f12f0acda8315 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 27 六月 2025 10:54:13 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/MobileController.java |  173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 169 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 716d347..a9cdf6e 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -13,18 +13,23 @@
 import com.zy.asrs.entity.result.MobileAdjustResult;
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.MathUtils;
 import com.zy.asrs.utils.OrderInAndOutUtil;
 import com.zy.common.model.WrkDto;
-import com.zy.common.model.enumUtils.OrderEnumVo;
 import com.zy.common.utils.Synchro;
 import com.zy.common.web.BaseController;
 import com.zy.nc.entity.NccJcQilibcBarcodeflowWms;
+import com.zy.nc.entity.NccQilibcTmprintWms;
+import com.zy.nc.entity.NccSaleXclGgsybWms;
 import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService;
+import com.zy.nc.service.NccQilibcTmprintWmsService;
+import com.zy.nc.service.NccSaleXclGgsybWmsService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.*;
 
 /**
@@ -59,16 +64,27 @@
     private ManLocDetlMapper manLocDetlMapper;
     @Autowired
     private WrkDetlLogService wrkDetlLogService;
+    @Autowired
+    private WrkMastLogService wrkMastLogService;
+    @Autowired
+    private StoreTypeService storeTypeService;
 
     @Autowired
     private MatService matService;
     @Autowired
     private NccJcQilibcBarcodeflowWmsService nccJcQilibcBarcodeflowWmsService;
     @Autowired
+    private NccQilibcTmprintWmsService nccQilibcTmprintWmsService;
+    @Autowired
+    private NccSaleXclGgsybWmsService nccSaleXclGgsybWmsService;
+    @Autowired
     private OrderPakinService orderPakinService;
 
     @Resource
     private StaDescService staDescService;
+
+    @Autowired
+    private OrderDetlPakinService orderDetlPakinService;
 
     @RequestMapping("/pda/WarehouseOut/v1")
     @ManagerAuth(memo = "骞舵澘閫斾腑鎷f枡-鍙傝�冨康鍒�")
@@ -207,16 +223,18 @@
                     LinkedList<CombParam.CombMat> combMats = new LinkedList<>();
                     for (OrderDetl orderDetl : orderDetls) {
                         CombParam.CombMat combMat = new CombParam.CombMat();
+                        Synchro.Copy(orderDetl, combMat);
                         combMat.setMatnr(orderDetl.getMatnr());
                         combMat.setBatch(orderDetl.getBatch());
-                        combMat.setAnfme(orderDetl.getAnfme() - orderDetl.getWorkQty());
+                        combMat.setAnfme(MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty()));
                         combMat.setMaktx(orderDetl.getMaktx());
                         combMat.setSpecs(orderDetl.getSpecs());
+                        combMat.setEnableQty(MathUtils.subtract(orderDetl.getAnfme(), orderDetl.getWorkQty()));
                         combMats.add(combMat);
                     }
                     combParam.setCombMats(combMats);
                 }
-                combParam.setOrderNo(order.getOrderNo());
+                //combParam.setOrderNo(order.getOrderNo());
                 combParams.add(combParam);
             }
         }
@@ -239,14 +257,140 @@
         Mat mat = matService.selectByMatnr(nccJcQilibcBarcodeflowWms.getWlbm());
         MatParam matParam = new MatParam();
         Synchro.Copy(mat, matParam);
+        OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>().eq("order_no", nccJcQilibcBarcodeflowWms.getZkdh()).eq("matnr", mat.getMatnr()).eq("batch", nccJcQilibcBarcodeflowWms.getVbatchcode()));
+        if (orderDetlPakin == null) {
+            throw new CoolException("鏈壘鍒版鍗曞彿");
+        }
+        matParam.setStandby1(orderDetlPakin.getStandby1());
+        matParam.setOrderNo(nccJcQilibcBarcodeflowWms.getZkdh());
         matParam.setBatch(nccJcQilibcBarcodeflowWms.getVbatchcode());
-        matParam.setAnfme(12D);
+        matParam.setAnfme(nccJcQilibcBarcodeflowWms.getAsnnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getAsnnum().doubleValue());
+        matParam.setWeight(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue());
+        matParam.setAnfme2(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue());
+        matParam.setTiaoma(nccJcQilibcBarcodeflowWms.getVbarcode());
         return R.ok().add(matParam);
+
+    }
+
+    @RequestMapping(value = "/mat/auth")
+    @ManagerAuth
+    public R pdaSearchV3(@RequestParam String matnr) {
+        EntityWrapper<NccQilibcTmprintWms> wrapper = new EntityWrapper<>();
+        wrapper.eq("BARCODE", matnr).orderBy("PRINTTIME", false);
+        NccQilibcTmprintWms nccQilibcTmprintWms = nccQilibcTmprintWmsService.selectOne(wrapper);
+        if (null == nccQilibcTmprintWms) {
+            return R.error("鏈壘鍒版鏉$爜");
+        }
+        Mat mat = matService.selectByMatnr(nccQilibcTmprintWms.getWlbm());
+        MatParam matParam = new MatParam();
+        Synchro.Copy(mat, matParam);
+        matParam.setBatch(nccQilibcTmprintWms.getVbatchcode());
+//        matParam.setAnfme(nccQilibcTmprintWms.getAsnnum() == null ? 0.0D : nccQilibcTmprintWms.getAsnnum().doubleValue());
+//        matParam.setAnfme2(nccQilibcTmprintWms.getNastnum() == null ? 0.0D : nccQilibcTmprintWms.getNastnum().doubleValue());
+        matParam.setAnfme(0.0D);
+        matParam.setAnfme2(0.0D);
+        matParam.setTiaoma(nccQilibcTmprintWms.getBarcode());
+        return R.ok().add(matParam);
+    }
+
+    @RequestMapping(value = "/mat/back")
+    @ManagerAuth
+    public R pdaSearchBack(@RequestParam String barcode) {
+        WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>()
+                .eq("barcode", barcode)
+                .in("io_type", 101, 103, 107)
+                .orderBy("appe_time", false)
+        );
+
+        if(null == wrkMastLog) {
+            return R.error("鏈壘鍒版鎵樼洏鐮佸嚭搴撹褰�");
+        }
+
+        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>()
+                .eq("wrk_no", wrkMastLog.getWrkNo())
+                .eq("zpallet", barcode)
+                .orderBy("io_time", false)
+        );
+        if (wrkDetlLogs.isEmpty()) {
+            return R.error("鏈壘鍒版鎵樼洏鐮佸嚭搴撹褰曟槑缁�");
+        }
+
+        WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
+        String batch = wrkDetlLog.getBatch();
+
+        HashMap<String, Object> map = new HashMap<>();
+        Mat mat = matService.selectByMatnr(wrkDetlLog.getMatnr());
+        if (mat == null) {
+            return R.error("鏈壘鍒扮墿鏂欐槑缁�");
+        }
+        MatParam matParam = new MatParam();
+        Synchro.Copy(mat, matParam);
+        matParam.setBatch(batch);
+        matParam.setAnfme(0.0D);
+        matParam.setAnfme2(0.0D);
+        matParam.setTiaoma(batch);
+
+        String[] split = wrkDetlLog.getOrderNo().split("-");
+        map.put("orderNo", split[0]);
+        map.put("matData", matParam);
+        return R.ok().add(map);
     }
 
     @RequestMapping("/comb/auth")
     @ManagerAuth(memo = "缁勬墭")
     public R comb(@RequestBody CombParam combParam) {
+        mobileService.comb(combParam, getUserId());
+        return R.ok("缁勬墭鎴愬姛");
+    }
+
+    @RequestMapping("/comb2/auth")
+    @ManagerAuth(memo = "閲囪喘缁勬墭")
+    public R comb2(@RequestBody CombParam combParam) {
+        CombParam.CombMat combMat = combParam.getCombMats().get(0);
+
+        ArrayList<String> ckbmList = new ArrayList<>();
+        List<StoreType> storeTypes = storeTypeService.selectList(new EntityWrapper<StoreType>()
+                .like("store_name", "绔嬩綋搴�"));
+        for (StoreType storeType : storeTypes) {
+            ckbmList.add(storeType.getStoreId());
+        }
+
+        NccSaleXclGgsybWms nccSaleXclGgsybWms = nccSaleXclGgsybWmsService.selectOne(new EntityWrapper<NccSaleXclGgsybWms>()
+                .eq("WLBM", combMat.getMatnr())
+                .eq("VBATCHCODE", combMat.getBatch())
+                .in("CKBM", ckbmList)
+        );
+        if(null == nccSaleXclGgsybWms) {
+            return R.error("鏈煡鍒癊RP搴撳瓨");
+        }
+
+        //ERP搴撳瓨鏁伴噺
+        BigDecimal zsl = nccSaleXclGgsybWms.getZsl();
+
+        //鑾峰彇绔嬪簱鏁伴噺
+        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+                .eq("matnr", combMat.getMatnr())
+                .eq("batch", combMat.getBatch())
+        );
+        BigDecimal stockNum = new BigDecimal(0);
+        for (LocDetl locDetl : locDetls) {
+            stockNum = stockNum.add(BigDecimal.valueOf(locDetl.getAnfme()));
+        }
+
+        //鍔犱笂缁勬墭鏁伴噺
+        for (CombParam.CombMat mat : combParam.getCombMats()) {
+            stockNum = stockNum.add(BigDecimal.valueOf(mat.getAnfme()));
+        }
+
+        if(stockNum.doubleValue() > zsl.doubleValue()) {
+            return R.error("缁勬墭鏁伴噺瓒呰繃ERP搴撳瓨");
+        }
+
+        List<CombParam.CombMat> combMats = combParam.getCombMats();
+        for (CombParam.CombMat mat : combMats) {
+            mat.setStandby1(nccSaleXclGgsybWms.getCkbm());
+        }
+
         mobileService.comb(combParam, getUserId());
         return R.ok("缁勬墭鎴愬姛");
     }
@@ -501,6 +645,27 @@
         return R.ok();
     }
 
+    @RequestMapping("/checkDetl/auth/v2")
+    @ManagerAuth
+    public R getCheckDetlV2(@RequestParam(required = false) String barcode) {
+        if (Cools.isEmpty(barcode)) {
+            return R.ok();
+        }
+        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
+        if (wrkMast != null && (wrkMast.getIoType() == 107 || wrkMast.getIoType() == 57)) {
+            List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+            if (!Cools.isEmpty(wrkDetls)) {
+                MobileAdjustResult result = new MobileAdjustResult();
+                result.setBarcode(barcode);
+                result.setWrkNo(wrkMast.getWrkNo());
+                result.setWrkDetls(wrkDetls);
+                return R.ok().add(result);
+            }
+        }
+        return R.ok();
+    }
+
+
     @RequestMapping("/adjust/auth")
     @ManagerAuth(memo = "鐩樼偣")
     public R adjust(@RequestBody MobileAdjustParam combParam) {

--
Gitblit v1.9.1