From 391dd89a6583e0f1eceaf1297fd852e3da32bf68 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 17 四月 2025 16:39:30 +0800 Subject: [PATCH] 出库作业里面显示冻结/未冻结 --- src/main/java/com/zy/asrs/controller/PlaController.java | 185 +++++++++++++++++++++++++++++++-------------- 1 files changed, 126 insertions(+), 59 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/PlaController.java b/src/main/java/com/zy/asrs/controller/PlaController.java index ba081bb..72e4036 100644 --- a/src/main/java/com/zy/asrs/controller/PlaController.java +++ b/src/main/java/com/zy/asrs/controller/PlaController.java @@ -3,14 +3,17 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.annotations.ManagerAuth; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.GlobleParameter; +import com.zy.asrs.entity.result.KeyValueVo; import com.zy.asrs.service.*; import com.zy.asrs.utils.PlaExcelListener; import com.zy.asrs.utils.SaasUtils; @@ -48,23 +51,41 @@ private PlaLogService plaLogService; @Autowired private MatService matService; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @RequestMapping(value = "/pla/list/auth") @ManagerAuth - public R list(@RequestParam(defaultValue = "1")Integer curr, - @RequestParam(defaultValue = "10")Integer limit, - @RequestParam(required = false)String condition, - @RequestParam Map<String, Object> param){ + public R list(@RequestParam(defaultValue = "1") Integer curr, + @RequestParam(defaultValue = "10") Integer limit, + @RequestParam(required = false) String condition, + @RequestParam Map<String, Object> param) { excludeTrash(param); EntityWrapper<Pla> wrapper = new EntityWrapper<>(); - if(!Cools.isEmpty(param.get("brand"))){ - wrapper.eq("brand",param.get("brand")); + if (!Cools.isEmpty(param.get("brand"))) { + wrapper.eq("brand", param.get("brand")); param.remove("brand"); + } + // 浠撳簱绮剧‘鍖归厤 + if (!Cools.isEmpty(param.get("stash"))) { + wrapper.eq("stash", param.get("stash")); + param.remove("stash"); + } + // 娌℃湁閫夋嫨鐨勬椂鍊欓粯璁や笉鏄剧ず宸插嚭搴撶殑鐗╂枡 + if (Cools.isEmpty(param.get("status"))) { + wrapper.ne("status", "鍏ㄩ儴鍑哄簱"); + } + + if (!Cools.isEmpty(param.get("batch")) && param.get("batch").toString().contains(",")) { + String[] batchs = param.get("batch").toString().split(","); + wrapper.in("batch", batchs); + param.remove("batch"); } convert(param, wrapper); - wrapper.orderBy("modify_time",false); + wrapper.orderBy("batch", true).orderBy("package_no", true); allLike(Pla.class, param.keySet(), wrapper, condition); return R.ok(plaService.selectPage(new Page<>(curr, limit), wrapper)); } @@ -72,7 +93,7 @@ @RequestMapping(value = "/pla/add/auth") @ManagerAuth public R add(@RequestBody List<Pla> plas) { - System.out.println(plas.toString()); + log.info(plas.toString()); plas.forEach(pla -> { plaService.insert(pla); }); @@ -82,16 +103,17 @@ @RequestMapping(value = "/pla/update/auth") @ManagerAuth public R update(@RequestBody List<Pla> plas) { - System.out.println(plas.toString()); + log.info(plas.toString()); plas.forEach(pla -> { Pla plaSave = plaService.selectById(pla.getId()); pla.setModifyTime(new Date()); plaService.updateById(pla); PlaLog plaLog = new PlaLog(); - BeanUtils.copyProperties(plaSave,plaLog); + BeanUtils.copyProperties(plaSave, plaLog); plaLog.setId(null); plaLog.setCreateTime(new Date()); + plaLog.setModifyUser(getUser().getUsername()); plaLogService.insert(plaLog); }); @@ -101,9 +123,9 @@ @RequestMapping(value = "/pla/delete/auth") @ManagerAuth public R delete(@RequestBody List<Pla> plas) { - System.out.println(plas.toString()); + log.info(plas.toString()); plas.forEach(pla -> { - if(!pla.getStatus().equals(GlobleParameter.PLA_STATUS_00) && !pla.getStatus().equals(GlobleParameter.PLA_STATUS_0)){ + if (!pla.getStatus().equals(GlobleParameter.PLA_STATUS_00) && !pla.getStatus().equals(GlobleParameter.PLA_STATUS_0) && !pla.getStatus().equals(GlobleParameter.PLA_STATUS_1)) { throw new CoolException("宸插叆搴撶殑鏁版嵁鏃犳硶琚垹闄�"); } Pla plaSave = plaService.selectById(pla.getId()); @@ -111,9 +133,10 @@ plaService.deleteById(pla.getId()); PlaLog plaLog = new PlaLog(); - BeanUtils.copyProperties(plaSave,plaLog); + BeanUtils.copyProperties(plaSave, plaLog); plaLog.setId(null); plaLog.setCreateTime(new Date()); + plaLog.setModifyUser(getUser().getUsername()); plaLogService.insert(plaLog); }); @@ -127,7 +150,7 @@ } @RequestMapping(value = "/pla/sellout/auth") - @ManagerAuth + @ManagerAuth(memo = "sellout") @Transactional @Synchronized public R sellout(@RequestBody List<Pla> plas) { @@ -138,16 +161,27 @@ Order order = orderService.selectByNo(orderNo); OrderDetl orderDetl = orderDetlService.selectByOrderNoAndMaktx(orderNo, maktx); - for (Pla pla : plas){ - - if(pla.getStockFreeze() == 0){ - throw new CoolException("搴撳瓨宸茶鍐荤粨锛岃閲嶆柊閫夋嫨搴撳瓨"); + for (Pla pla : plas) { + // 鑾峰彇鏈�鏂板喕缁撶姸鎬� + Pla pla1 = plaService.selectOne(new EntityWrapper<Pla>().setSqlSelect("stock_freeze as stockFreeze,stock_freeze_by as stockFreezeBy,stock_freeze_date as stockFreezeDate").eq("id", pla.getId())); + pla.setStockFreeze(pla1.getStockFreeze()); + pla.setStockFreezeBy(pla1.getStockFreezeBy()); + pla.setStockFreezeDate(pla1.getStockFreezeDate()); + if (pla.getStockFreeze() == 0) { +// throw new CoolException("搴撳瓨宸茶鍐荤粨锛岃閲嶆柊閫夋嫨搴撳瓨"); + log.info("璇ュ簱瀛樺凡琚叾浠栫敤鎴峰喕缁擄紝璇烽噸鏂伴�夋嫨;{},{}", pla.getStockFreezeBy(), getUser().getUsername()); + if (!Cools.eq(pla.getStockFreezeBy(), getUser().getUsername())) { + throw new CoolException("璇ュ簱瀛樺凡琚叾浠栫敤鎴峰喕缁擄紝璇烽噸鏂伴�夋嫨"); + } } allOrderWeight += pla.getOrderWeight(); - if(pla.getWeightAnfme() - pla.getQtyAnfme() - pla.getOrderWeight() < 0){ - throw new CoolException("鎵瑰彿:" + pla.getBatch() +"锛屽寘鍙�:" + pla.getPackageNo() +" 鍓╀綑鍙嚭搴撻噸閲忎笉瓒筹紝璇疯皟鏁村嚭搴撻噸閲�"); + if (pla.getWeightAnfme() - pla.getQtyAnfme() - pla.getOrderWeight() < 0) { + throw new CoolException("鎵瑰彿:" + pla.getBatch() + "锛屽寘鍙�:" + pla.getPackageNo() + " 鍓╀綑鍙嚭搴撻噸閲忎笉瓒筹紝璇疯皟鏁村嚭搴撻噸閲�"); + } + if (Cools.isEmpty(pla.getMassState())){ + throw new CoolException("璐ㄩ噺鎸囨爣涓轰笂浼�"); } pla.setQtyAnfme(pla.getQtyAnfme() + pla.getOrderWeight()); pla.setHandlerBy(getUser().getUsername()); @@ -156,7 +190,7 @@ pla.setPakoutTime(pla.getPakoutTime().split("\\(")[0]); //鐢熸垚姝ゆ浣滀笟淇℃伅 PlaQty plaQty = new PlaQty(); - BeanUtils.copyProperties(pla,plaQty); + BeanUtils.copyProperties(pla, plaQty); plaQty.setCreateTime(new Date()); plaQty.setId(null); plaQty.setTransfer(order.getDocType$()); @@ -164,16 +198,17 @@ plaService.updateById(pla); plaQtyService.insert(plaQty); //鐢熸垚鎷h揣鍗� - addPakOUT(plaQty); + addPakOUT(plaQty, getUserId()); - }; + } + ; //淇敼鍗曟嵁淇℃伅 - if(orderDetl.getAnfme()-orderDetl.getWorkQty()-allOrderWeight < 0){ + if (orderDetl.getAnfme() - orderDetl.getWorkQty() - allOrderWeight < 0) { throw new CoolException("璇ヨ鍗曞嚭搴撴暟閲忓ぇ浜庤鍗曞緟鍑烘暟閲忥紝璇烽噸鏂伴�夋嫨鍑哄簱鏁伴噺"); } - if(order.getStatus() < 2){ - orderService.updateSettle(order.getId(),2L,getUserId()); + if (order.getStatus() < 2) { + orderService.updateSettle(order.getId(), 2L, getUserId()); } orderDetl.setWorkQty(orderDetl.getWorkQty() + allOrderWeight); @@ -186,14 +221,14 @@ @RequestMapping(value = "/pla/returned/auth") @ManagerAuth public R returned(@RequestBody List<PlaQty> plaQties) { - plaService.returned(plaQties,getUser()); + plaService.returned(plaQties, getUser()); return R.ok(); } @RequestMapping(value = "/pla/viladate/auth") @ManagerAuth public R viladate(@RequestBody List<Pla> plas) { - plaService.viladate(plas,getUser()); + plaService.viladate(plas, getUser()); return R.ok(); } @@ -206,8 +241,8 @@ pla.setModifyTime(new Date()); pla.setWeightAnfme(0.0); plaService.updateById(pla); - SaasUtils.insertLog(1,pla.getLocNo(),pla.getBrand(),anfme,getUser().getUsername(), - null,pla.getBatch(),pla.getPackageNo(),pla.getOwner(),pla.getWorkshop()); + SaasUtils.insertLog(1, pla.getLocNo(), pla.getBrand(), anfme, getUser().getUsername(), + null, pla.getBatch(), pla.getPackageNo(), pla.getOwner(), pla.getWorkshop(), null); }); return R.ok(); @@ -216,13 +251,14 @@ @RequestMapping(value = "/pla/updateStockFreeze") @Transactional @ManagerAuth(memo = "搴撲綅鍐荤粨") - public R updateStockFreeze(@RequestBody List<Pla> plas){ - if (Cools.isEmpty(plas)){ + public R updateStockFreeze(@RequestBody List<Pla> plas) { + if (Cools.isEmpty(plas)) { return R.error("鏃犳暟鎹�"); } - for (Pla pla : plas){ - if (pla.getStockFreeze() == 0){ - throw new CoolException("搴撳瓨宸茶鍐荤粨锛�"); + for (Pla pla : plas) { + if (pla.getStockFreeze() == 0) { + continue; +// throw new CoolException("搴撳瓨宸茶鍐荤粨锛�"); } pla.setStockFreeze(0); pla.setStockFreezeBy(getUser().getUsername()); @@ -235,15 +271,16 @@ @RequestMapping(value = "/pla/updateStockDisFreeze") @ManagerAuth(memo = "搴撲綅瑙e喕") - public R updateStockDisFreeze(@RequestBody List<Pla> plas){ - if (Cools.isEmpty(plas)){ + public R updateStockDisFreeze(@RequestBody List<Pla> plas) { + if (Cools.isEmpty(plas)) { return R.error("鏃犳暟鎹�"); } - for (Pla pla : plas){ - if (pla.getStockFreeze() == 1){ - throw new CoolException("搴撲綅鏈喕缁擄紝鏃犻渶瑙e喕"); + for (Pla pla : plas) { + if (pla.getStockFreeze() == 1) { + continue; +// throw new CoolException("搴撲綅鏈喕缁擄紝鏃犻渶瑙e喕"); } - if(!Cools.eq(pla.getStockFreezeBy(),getUser().getUsername())){ + if (!Cools.eq(pla.getStockFreezeBy(), getUser().getUsername())) { throw new CoolException("鏃犳硶瑙e喕鍏朵粬鐢ㄦ埛鍐荤粨鐨勫簱浣�"); } pla.setStockFreeze(1); @@ -263,7 +300,7 @@ wrapper.like("maktx", condition); Page<Mat> page = matService.selectPage(new Page<>(0, 10), wrapper); List<Map<String, Object>> result = new ArrayList<>(); - for (Mat mat : page.getRecords()){ + for (Mat mat : page.getRecords()) { Map<String, Object> map = new HashMap<>(); map.put("id", mat.getMaktx()); map.put("value", mat.getMaktx()); @@ -274,8 +311,8 @@ @RequestMapping(value = "/pla/statis/auth") @ManagerAuth - public R statis(@RequestParam(defaultValue = "1")Integer curr, - @RequestParam(defaultValue = "10")Integer limit, + public R statis(@RequestParam(defaultValue = "1") Integer curr, + @RequestParam(defaultValue = "10") Integer limit, @RequestParam Map<String, Object> param) { Page<Pla> stockStatis = plaService.getStockStatisAll(toPage(curr, limit, param, Pla.class)); @@ -307,50 +344,77 @@ PlaExcelListener listener = new PlaExcelListener(getUserId()); try { EasyExcel.read(file.getInputStream(), PlaExcel.class, listener).sheet().doRead(); - }catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); int index = listener.getIndex() - 1; throw new CoolException("瀵煎叆鐨勬暟鎹牸寮忛敊璇紝鍘熷洜锛�" + e.getMessage() + "锛岀" + index + "锛屾暟鎹牸寮忎笉瀵�"); } log.info("瀵煎叆淇敼淇℃伅杈撳嚭锛�" + listener.getRecordLog()); - return R.ok("鎴愬姛鍚屾"+listener.getTotal()+"鏉la鐗╂枡鏁版嵁"); + return R.ok("鎴愬姛鍚屾" + listener.getTotal() + "鏉la鐗╂枡鏁版嵁"); } // 鎵撳嵃 @RequestMapping(value = "/pla/print/auth") @ManagerAuth(memo = "pla缂栫爜鎵撳嵃") public R matCodePrint(@RequestBody List<Pla> plas) { - if(Cools.isEmpty(plas)) { + if (Cools.isEmpty(plas)) { return R.parse(CodeRes.EMPTY); } List<Pla> res = new ArrayList<>(); - for (Pla pla : plas){ + for (Pla pla : plas) { res.add(pla); } return R.ok().add(res); } - private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ - for (Map.Entry<String, Object> entry : map.entrySet()){ + /*************************************** xm-select ***********************************************/ + + // xm-select 鎼滅储鎵瑰彿 + @RequestMapping("/pla/batch/all/get/kv") + @ManagerAuth + public R getMatDataKV(@RequestParam(required = false) String condition) { + Wrapper<Pla> wrapper = new EntityWrapper<Pla>().setSqlSelect("batch") + .andNew().like("batch", condition) + .groupBy("batch") + .orderBy("batch", false); + Page<Pla> plaPage = new Page<>(1, 30); + plaPage.setSearchCount(false); + Page<Pla> plaPage1 = plaService.selectPage(plaPage, wrapper); + // 閲嶆柊鏌ヨ鐒跺悗缁檖age璁剧疆Total + plaPage.setTotal(this.plaService.selectCount(new EntityWrapper<Pla>().setSqlSelect("batch") + .andNew().like("batch", condition))); + List<KeyValueVo> valueVos = new ArrayList<>(); + for (Pla pla : plaPage1.getRecords()) { + KeyValueVo vo = new KeyValueVo(); + vo.setName(pla.getBatch()); + vo.setValue(pla.getBatch()); + valueVos.add(vo); + } + return R.ok().add(valueVos); + } + + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper) { + for (Map.Entry<String, Object> entry : map.entrySet()) { String val = String.valueOf(entry.getValue()); - if (val.contains(RANGE_TIME_LINK)){ + if (val.contains(RANGE_TIME_LINK)) { String[] dates = val.split(RANGE_TIME_LINK); wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); - }else if (entry.getKey().contains("Min")){ - wrapper.ge(entry.getKey().substring(0,entry.getKey().length()-3),val); - }else if (entry.getKey().contains("Max")){ - wrapper.le(entry.getKey().substring(0,entry.getKey().length()-3),val); + } else if (entry.getKey().contains("Min")) { + wrapper.ge(entry.getKey().substring(0, entry.getKey().length() - 3), val); + } else if (entry.getKey().contains("Max")) { + wrapper.le(entry.getKey().substring(0, entry.getKey().length() - 3), val); } else { wrapper.like(entry.getKey(), val); } } } - private R addPakOUT(PlaQty plaQty){ - ManPakOut manPakOut=new ManPakOut(); - manPakOut.setWrkNo(plaQty.getOrderNo()+"-"+System.currentTimeMillis()); - manPakOut.setWrkSts((long)1); + @Synchronized + private R addPakOUT(PlaQty plaQty, Long userId) { + ManPakOut manPakOut = new ManPakOut(); + manPakOut.setWrkNo(plaQty.getOrderNo() + "-" + String.valueOf(snowflakeIdWorker.nextId())); + manPakOut.setWrkSts((long) 1); manPakOut.setAnfme(plaQty.getOrderWeight()); manPakOut.setMaktx(plaQty.getBrand()); manPakOut.setLocNo(plaQty.getLocNo()); @@ -365,6 +429,9 @@ manPakOut.setDocId(plaQty.getOrderDetlId()); manPakOut.setNodeId(plaQty.getId()); manPakOut.setCustName(plaQty.getCustomer()); + manPakOut.setCreateBy(userId); + //棰勮鍙戣揣鏃堕棿 + manPakOut.setSpecs(plaQty.getPakoutTime()); //manPakOut.setNodeId(plaQty.getOrderDetlId()); manPakOutService.insert(manPakOut); return R.ok(); -- Gitblit v1.9.1