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 | 160 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 112 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 2af50aa..a9cdf6e 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -19,14 +19,17 @@ import com.zy.common.utils.Synchro; import com.zy.common.web.BaseController; import com.zy.nc.entity.NccJcQilibcBarcodeflowWms; -import com.zy.nc.entity.NccXsckmxTkWms; +import com.zy.nc.entity.NccQilibcTmprintWms; +import com.zy.nc.entity.NccSaleXclGgsybWms; import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService; -import com.zy.nc.service.NccXsckmxTkWmsService; +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.*; /** @@ -61,11 +64,19 @@ 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; @@ -74,9 +85,6 @@ @Autowired private OrderDetlPakinService orderDetlPakinService; - - @Autowired - private NccXsckmxTkWmsService nccXsckmxTkWmsService; @RequestMapping("/pda/WarehouseOut/v1") @ManagerAuth(memo = "骞舵澘閫斾腑鎷f枡-鍙傝�冨康鍒�") @@ -267,61 +275,65 @@ @RequestMapping(value = "/mat/auth") @ManagerAuth public R pdaSearchV3(@RequestParam String matnr) { - EntityWrapper<NccJcQilibcBarcodeflowWms> wrapper = new EntityWrapper<>(); - wrapper.eq("VBARCODE", matnr).orderBy("ts", false); - NccJcQilibcBarcodeflowWms nccJcQilibcBarcodeflowWms = nccJcQilibcBarcodeflowWmsService.selectOne(wrapper); - if (null == nccJcQilibcBarcodeflowWms) { + EntityWrapper<NccQilibcTmprintWms> wrapper = new EntityWrapper<>(); + wrapper.eq("BARCODE", matnr).orderBy("PRINTTIME", false); + NccQilibcTmprintWms nccQilibcTmprintWms = nccQilibcTmprintWmsService.selectOne(wrapper); + if (null == nccQilibcTmprintWms) { return R.error("鏈壘鍒版鏉$爜"); - } else { - if (!nccJcQilibcBarcodeflowWms.getInfla().equals("鍑哄簱")) { - return R.error("璇ユ潯鐮佹渶鍚庝竴娆′笉鏄嚭搴�"); - } } - Mat mat = matService.selectByMatnr(nccJcQilibcBarcodeflowWms.getWlbm()); + Mat mat = matService.selectByMatnr(nccQilibcTmprintWms.getWlbm()); MatParam matParam = new MatParam(); Synchro.Copy(mat, matParam); - matParam.setBatch(nccJcQilibcBarcodeflowWms.getVbatchcode()); - matParam.setAnfme(nccJcQilibcBarcodeflowWms.getAsnnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getAsnnum().doubleValue()); - matParam.setAnfme2(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue()); - matParam.setTiaoma(nccJcQilibcBarcodeflowWms.getVbarcode()); + 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 matnr) { - EntityWrapper<NccXsckmxTkWms> wrapper = new EntityWrapper<>(); - wrapper.like("VBATCHCODE", matnr); - List<NccXsckmxTkWms> nccXsckmxTkWmsList = nccXsckmxTkWmsService.selectList(wrapper); - if (nccXsckmxTkWmsList.isEmpty()) { - return R.error("鏈壘鍒版鏉$爜"); + 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<String> orderNos = new ArrayList<>(); - List<HashMap<String, Object>> list = new ArrayList<>(); - for (NccXsckmxTkWms nccXsckmxTkWms : nccXsckmxTkWmsList) { - if (orderNos.contains(nccXsckmxTkWms.getVsourcebillcode())) { - continue; - } - orderNos.add(nccXsckmxTkWms.getVsourcebillcode()); - HashMap<String, Object> map = new HashMap<>(); - - Mat mat = matService.selectByMatnr(nccXsckmxTkWms.getWlbm()); - if (mat == null) { - continue; - } - MatParam matParam = new MatParam(); - Synchro.Copy(mat, matParam); - matParam.setBatch(nccXsckmxTkWms.getVbatchcode()); - matParam.setAnfme(0.0D); - matParam.setAnfme2(0.0D); - matParam.setTiaoma(matnr); - - map.put("orderNo", nccXsckmxTkWms.getVsourcebillcode()); - map.put("matData", matParam); - list.add(map); + 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("鏈壘鍒版鎵樼洏鐮佸嚭搴撹褰曟槑缁�"); } - return R.ok().add(list); + + 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") @@ -331,6 +343,58 @@ 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("缁勬墭鎴愬姛"); + } + @RequestMapping("/pack/get/auth") @ManagerAuth public R packGet(@RequestParam String barcode) { -- Gitblit v1.9.1