From da8a535959c72cf61cf904f3dffaa1d0bd33b79f Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 11 七月 2025 10:43:43 +0800 Subject: [PATCH] # --- src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java | 371 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 271 insertions(+), 100 deletions(-) diff --git a/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java b/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java index 202d21b..04efe68 100644 --- a/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java +++ b/src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java @@ -1,7 +1,6 @@ package com.zy.nc.task.handler; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.InventoryCheckOrder; @@ -9,26 +8,21 @@ import com.zy.asrs.entity.Mat; import com.zy.asrs.entity.param.OpenOrderPakinParam; import com.zy.asrs.entity.param.OpenOrderPakoutParam; -import com.zy.asrs.service.InventoryCheckOrderDetlService; -import com.zy.asrs.service.InventoryCheckOrderService; -import com.zy.asrs.service.MatService; -import com.zy.asrs.service.OpenService; +import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import com.zy.common.model.DetlDto; -import com.zy.nc.entity.NccCgCgdhdWms; -import com.zy.nc.entity.NccCkPddWms; -import com.zy.nc.entity.NccSaleXsfhmxWms; -import com.zy.nc.entity.NccScZkmxbWms; -import com.zy.nc.service.NccCgCgdhdWmsService; -import com.zy.nc.service.NccCkPddWmsService; -import com.zy.nc.service.NccSaleXsfhmxWmsService; -import com.zy.nc.service.NccScZkmxbWmsService; +import com.zy.nc.entity.*; +import com.zy.nc.service.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; import java.util.List; @Service @@ -45,6 +39,9 @@ private NccCgCgdhdWmsService nccCgCgdhdWmsService; @Autowired + private NccSaleDbddWmsService nccSaleDbddWmsService; + + @Autowired private NccCkPddWmsService nccCkPddWmsService; @Autowired @@ -58,108 +55,222 @@ @Autowired private OpenService openService; + @Autowired + private StoreTypeService storeTypeService; /** * 鍙戣揣 * * @return */ - public ReturnT<String> start1() { - List<String> Ids = nccSaleXsfhmxWmsService.selectXsfh(); - for (String id : Ids) { - List<NccSaleXsfhmxWms> wmsFlag = nccSaleXsfhmxWmsService.selectList(new EntityWrapper<NccSaleXsfhmxWms>().eq("vbillcode", id).ne("wms_flag", 1).eq("fstatusflag", 2)); - OpenOrderPakoutParam param = new OpenOrderPakoutParam(); - param.setOrderType("閿�鍞彂璐�"); - DetlDto detlDto; - List<DetlDto> orderDetails = new ArrayList<>(); - long i = 1; - for (NccSaleXsfhmxWms nccSaleXsfhmxWms : wmsFlag) { - if (nccSaleXsfhmxWms.getFstatusflag() == 2 && nccSaleXsfhmxWms.getBdr() == 0 && nccSaleXsfhmxWms.getHdr() == 0) { + @Transactional + public ReturnT<String> start1(List<NccSaleXsfhmxWms> wmsFlag) { + try { + List<String> ids = storeTypeService.listOwn(); + HashMap<String, List<NccSaleXsfhmxWms>> map = new HashMap<>(); + List<NccSaleXsfhmxWms> fenzu; + for (NccSaleXsfhmxWms wms : wmsFlag) { + if(!ids.contains(wms.getFhckbm())){ + continue; + } + + if (map.get(wms.getFhckbm()) == null) { + fenzu = new ArrayList<>(); + fenzu.add(wms); + map.put(wms.getFhckbm(), fenzu); + } else { + fenzu = map.get(wms.getFhckbm()); + fenzu.add(wms); + map.put(wms.getFhckbm(), fenzu); + } + } + int size = 1; + for (String key : map.keySet()) { + OpenOrderPakoutParam param = new OpenOrderPakoutParam(); + DetlDto detlDto; + List<DetlDto> orderDetails = new ArrayList<>(); + long i = 1; + for (NccSaleXsfhmxWms nccSaleXsfhmxWms : map.get(key)) { + param.setOrderType("閿�鍞彂璐�"); detlDto = new DetlDto(); detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm()); - detlDto.setAnfme(nccSaleXsfhmxWms.getNastnum().doubleValue()); + detlDto.setAnfme(nccSaleXsfhmxWms.getNnum().doubleValue()); + detlDto.setBatch(nccSaleXsfhmxWms.getVbatchcode()); + detlDto.setWeight(nccSaleXsfhmxWms.getNastnum().doubleValue()); + detlDto.setStandby1(nccSaleXsfhmxWms.getFhckbm()); detlDto.setLineNumber(i); detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms)); orderDetails.add(detlDto); log.info("NccSaleXsfhmxWms鏁版嵁:{}", JSONObject.toJSON(nccSaleXsfhmxWms)); i++; + nccSaleXsfhmxWms.setWmsFlag(1); + param.setOrderNo(nccSaleXsfhmxWms.getVbillcode() + "-" + size); + param.setCstmrName(nccSaleXsfhmxWms.getKhmc()); + param.setKpCstmrName(nccSaleXsfhmxWms.getKpkhmc()); } - nccSaleXsfhmxWms.setWmsFlag(1); + param.setOrderDetails(orderDetails); + openService.pakoutOrderCreate(param); + nccSaleXsfhmxWmsService.updateBatchById(map.get(key)); + size++; } - param.setOrderNo(id); - param.setOrderDetails(orderDetails); - openService.pakoutOrderCreate(param); - nccSaleXsfhmxWmsService.updateBatchById(wmsFlag); + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); } return SUCCESS; } /** - * 杞簱 + * 鍙戣揣 * * @return */ - public ReturnT<String> start2() { - List<String> strings = nccScZkmxbWmsService.selectZk(); - for (String string : strings) { - OpenOrderPakoutParam param = new OpenOrderPakoutParam(); - param.setOrderType("杞簱"); + @Transactional + public ReturnT<String> start1In(List<NccSaleXsfhmxWms> wmsFlag) { + try { + OpenOrderPakinParam param = new OpenOrderPakinParam(); DetlDto detlDto; List<DetlDto> orderDetails = new ArrayList<>(); long i = 1; - List<NccScZkmxbWms> wmsFlag = nccScZkmxbWmsService.selectList(new EntityWrapper<NccScZkmxbWms>().eq("vbillcode", string).ne("wms_flag", 1)); - for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) { - log.info("NccScZkmxbWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms)); - if (nccScZkmxbWms.getDjzt() == 2 && nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getDr() == 0) { - detlDto = new DetlDto(); - detlDto.setMatnr(nccScZkmxbWms.getWlbm()); - detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue()); - detlDto.setBatch(nccScZkmxbWms.getVbatchcode()); - detlDto.setLineNumber(i); - orderDetails.add(detlDto); - i++; - } - nccScZkmxbWms.setWmsFlag(1); + for (NccSaleXsfhmxWms nccSaleXsfhmxWms : wmsFlag) { + param.setOrderType("閿�鍞��璐�"); + detlDto = new DetlDto(); + detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm()); + detlDto.setAnfme(nccSaleXsfhmxWms.getNnum().doubleValue()); + detlDto.setWeight(nccSaleXsfhmxWms.getNastnum().doubleValue()); + detlDto.setStandby1(nccSaleXsfhmxWms.getFhckbm()); + detlDto.setLineNumber(i); + detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms)); + orderDetails.add(detlDto); + log.info("NccSaleXsfhmxWms鏁版嵁:{}", JSONObject.toJSON(nccSaleXsfhmxWms)); + i++; + nccSaleXsfhmxWms.setWmsFlag(1); + param.setOrderNo(nccSaleXsfhmxWms.getVbillcode()); } - param.setOrderNo(string); param.setOrderDetails(orderDetails); - openService.pakoutOrderCreate(param); - nccScZkmxbWmsService.updateBatchById(wmsFlag); + openService.pakinOrderCreate(param); + nccSaleXsfhmxWmsService.updateBatchById(wmsFlag); + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); } return SUCCESS; } + /** + * 杞簱锛屽寘鍚骇鎴愬搧鍏ュ簱鍗� + * + * @return + */ + @Transactional + public ReturnT<String> start2In(List<NccScZkmxbWms> wmsFlag) { + try { + OpenOrderPakinParam param = new OpenOrderPakinParam(); + param.setOrderType("杞簱-鍏ュ簱"); + DetlDto detlDto; + List<DetlDto> orderDetails = new ArrayList<>(); + long i = 1; + for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) { + log.info("NccScZkmxbWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms)); + detlDto = new DetlDto(); + detlDto.setMatnr(nccScZkmxbWms.getWlbm()); + detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue()); + detlDto.setWeight(nccScZkmxbWms.getYingzsl().doubleValue()); + detlDto.setBatch(nccScZkmxbWms.getVbatchcode()); + detlDto.setLineNumber(i); + detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms)); + detlDto.setStandby1(nccScZkmxbWms.getRkckbm()); + orderDetails.add(detlDto); + i++; + nccScZkmxbWms.setWmsFlag(1); + param.setOrderNo(nccScZkmxbWms.getVbillcode()); + } + param.setOrderDetails(orderDetails); + openService.pakinOrderCreate(param); + nccScZkmxbWmsService.updateBatchById(wmsFlag); + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } + return SUCCESS; + } + + /** + * 杞簱锛屽寘鍚嚭搴� + * + * @return + */ + @Transactional + public ReturnT<String> start2Out(List<NccScZkmxbWms> wmsFlag) { + try { + OpenOrderPakoutParam param = new OpenOrderPakoutParam(); + param.setOrderType("杞簱-鍑哄簱"); + DetlDto detlDto; + List<DetlDto> orderDetails = new ArrayList<>(); + long i = 1; + for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) { + log.info("NccScZkmxbWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms)); + detlDto = new DetlDto(); + detlDto.setMatnr(nccScZkmxbWms.getWlbm()); + detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue()); + detlDto.setWeight(nccScZkmxbWms.getYingzsl().doubleValue()); + detlDto.setBatch(nccScZkmxbWms.getVbatchcode()); + detlDto.setLineNumber(i); + detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms)); + orderDetails.add(detlDto); + i++; + nccScZkmxbWms.setWmsFlag(1); + param.setOrderNo(nccScZkmxbWms.getVbillcode()); + } + param.setOrderDetails(orderDetails); + openService.pakoutOrderCreate(param); + nccScZkmxbWmsService.updateBatchById(wmsFlag); + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } + return SUCCESS; + } /** * 閲囪喘鍒拌揣 * * @return */ - public ReturnT<String> start3() { - List<String> strings = nccCgCgdhdWmsService.selectCg(); - for (String string : strings) { + @Transactional + public ReturnT<String> start3(List<NccCgCgdhdWms> wmsFlag) { + try { OpenOrderPakinParam param = new OpenOrderPakinParam(); param.setOrderType("閲囪喘鍒拌揣"); DetlDto detlDto; List<DetlDto> orderDetails = new ArrayList<>(); long i = 1; - List<NccCgCgdhdWms> wmsFlag = nccCgCgdhdWmsService.selectList(new EntityWrapper<NccCgCgdhdWms>().eq("vbillcode", string).ne("wms_flag", 1)); - for (NccCgCgdhdWms nccScZkmxbWms : wmsFlag) { - log.info("NccCgCgdhdWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms)); - if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getHdr() == 0) { - detlDto = new DetlDto(); - detlDto.setMatnr(nccScZkmxbWms.getWlbm()); - detlDto.setAnfme(nccScZkmxbWms.getYdzsl().doubleValue()); - detlDto.setLineNumber(i); - orderDetails.add(detlDto); - i++; - } - nccScZkmxbWms.setWmsFlag(1); + for (NccCgCgdhdWms nccCgCgdhdWms : wmsFlag) { + log.info("nccCgCgdhdWms鏁版嵁:{}", JSONObject.toJSON(nccCgCgdhdWms)); + detlDto = new DetlDto(); + detlDto.setMatnr(nccCgCgdhdWms.getWlbm()); + detlDto.setAnfme(nccCgCgdhdWms.getYdzsl().doubleValue()); + detlDto.setAnfme(nccCgCgdhdWms.getYdsl().doubleValue()); + detlDto.setBatch(nccCgCgdhdWms.getVbatchcode()); + detlDto.setLineNumber(i); + detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms)); + detlDto.setStandby1(nccCgCgdhdWms.getCkbm()); + orderDetails.add(detlDto); + i++; + nccCgCgdhdWms.setWmsFlag(1); + param.setOrderNo(nccCgCgdhdWms.getVbillcode()); } - param.setOrderNo(string); param.setOrderDetails(orderDetails); openService.pakinOrderCreate(param); nccCgCgdhdWmsService.updateBatchById(wmsFlag); + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); } return SUCCESS; } @@ -170,41 +281,101 @@ * * @return */ - public ReturnT<String> start4() { - List<String> strings = nccCkPddWmsService.selectPdd(); - for (String string : strings) { - InventoryCheckOrder param = new InventoryCheckOrder(); - InventoryCheckOrderDetl checkOrderDetl = null; - List<NccCkPddWms> wmsFlag = nccCkPddWmsService.selectList(new EntityWrapper<NccCkPddWms>().eq("vbillcode", string).ne("wms_flag", 1)); - for (NccCkPddWms nccScZkmxbWms : wmsFlag) { - log.info("NccCkPddWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms)); - if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getHdr() == 0) { - Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm()); - if (Cools.isEmpty(mat)) { - throw new CoolException(nccScZkmxbWms.getWlbm() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); - } - List<InventoryCheckOrderDetl> checkOrderDetls = inventoryCheckOrderDetlService.selectList(new EntityWrapper<InventoryCheckOrderDetl>().eq("order_no", nccScZkmxbWms.getVbillcode()).eq("matnr", mat.getMatnr())); - if (checkOrderDetls==null||checkOrderDetls.isEmpty()) { - throw new CoolException(nccScZkmxbWms.getWlbm() + "鐩樼偣鍗曠殑"); - } - checkOrderDetl = new InventoryCheckOrderDetl(); - checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm()); - checkOrderDetl.setMaktx(mat.getMatnr()); - checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode()); - checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue()); - checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode()); - inventoryCheckOrderDetlService.insert(checkOrderDetl); - } - nccScZkmxbWms.setWmsFlag(1); +// @Transactional +// public ReturnT<String> start4(List<NccCkPddWms> wmsFlag) { +// try { +// InventoryCheckOrder param = new InventoryCheckOrder(); +// InventoryCheckOrderDetl checkOrderDetl = null; +// for (NccCkPddWms nccScZkmxbWms : wmsFlag) { +// log.info("NccCkPddWms鏁版嵁:{}", JSONObject.toJSON(nccScZkmxbWms)); +// Mat mat = matService.selectByMatnr(nccScZkmxbWms.getWlbm()); +// if (Cools.isEmpty(mat)) { +// throw new CoolException(nccScZkmxbWms.getWlbm() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); +// } +// checkOrderDetl = new InventoryCheckOrderDetl(); +// checkOrderDetl.setMatnr(nccScZkmxbWms.getWlbm()); +// checkOrderDetl.setMaktx(mat.getMaktx()); +// checkOrderDetl.setOrderNo(nccScZkmxbWms.getVbillcode()); +// checkOrderDetl.setAnfme(nccScZkmxbWms.getZmzsl().doubleValue()); +// checkOrderDetl.setBatch(nccScZkmxbWms.getVbatchcode()); +// inventoryCheckOrderDetlService.insert(checkOrderDetl); +// nccScZkmxbWms.setWmsFlag(1); +// param.setOrderNo(nccScZkmxbWms.getVbillcode()); +// param.setCreateBy(nccScZkmxbWms.getPdrmc()); +// +// } +// param.setCreateTime(new Date()); +// param.setStatus("1"); +// inventoryCheckOrderService.insert(param); +// nccCkPddWmsService.updateBatchById(wmsFlag); +// } catch (Exception e) { +// e.printStackTrace(); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// return FAIL.setMsg(e.getMessage()); +// } +// return SUCCESS; +// } + + /** + * 璋冩嫧鍗� + * + * @return + */ + @Transactional + public ReturnT<String> start5(List<NccSaleDbddWms> wmsFlag) { + try { + List<String> ids = storeTypeService.listOwn(); + HashMap<String, List<NccSaleDbddWms>> map = new HashMap<>(); + List<NccSaleDbddWms> fenzu; + for (NccSaleDbddWms wms : wmsFlag) { + if(!ids.contains(wms.getDcckbm())){ + continue; + } + + if (map.get(wms.getDcckbm()) == null) { + fenzu = new ArrayList<>(); + fenzu.add(wms); + map.put(wms.getDcckbm(), fenzu); + } else { + fenzu = map.get(wms.getDcckbm()); + fenzu.add(wms); + map.put(wms.getDcckbm(), fenzu); + } } - param.setOrderNo(string); - param.setStatus("1"); - inventoryCheckOrderService.insert(param); - nccCkPddWmsService.updateBatchById(wmsFlag); + int size = 1; + for (String key : map.keySet()) { + OpenOrderPakoutParam param = new OpenOrderPakoutParam(); + param.setOrderType("闆嗗洟鍐呴儴璋冩嫧"); + DetlDto detlDto; + List<DetlDto> orderDetails = new ArrayList<>(); + long i = 1; + for (NccSaleDbddWms nccSaleDbddWms : map.get(key)) { + log.info("nccSaleDbddWms鏁版嵁:{}", JSONObject.toJSON(nccSaleDbddWms)); + detlDto = new DetlDto(); + detlDto.setMatnr(nccSaleDbddWms.getWlbm()); + detlDto.setAnfme(nccSaleDbddWms.getZsl().doubleValue()); + detlDto.setWeight(nccSaleDbddWms.getFsl().doubleValue()); + detlDto.setBatch(nccSaleDbddWms.getVbatchcode()); + detlDto.setLineNumber(i); + detlDto.setRemark(JSONObject.toJSONString(nccSaleDbddWms)); + detlDto.setStandby1(nccSaleDbddWms.getDcckbm()); + orderDetails.add(detlDto); + i++; + param.setOrderNo(nccSaleDbddWms.getVbillcode() + "-" + size); + param.setCstmrName(nccSaleDbddWms.getDrkczzmc()); + nccSaleDbddWms.setWmsFlag(1); + } + param.setOrderDetails(orderDetails); + openService.pakoutOrderCreate(param); + nccSaleDbddWmsService.updateBatchById(map.get(key)); + size++; + } + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); } return SUCCESS; } - - } -- Gitblit v1.9.1