From af212f68a20cfd2549a37093a7850b5a99f1a2ea Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期六, 21 九月 2024 09:39:19 +0800 Subject: [PATCH] 逻辑调整 --- src/main/java/com/zy/asrs/controller/OrderController.java | 224 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 159 insertions(+), 65 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index 26ecbbe..6e8131f 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -7,15 +7,14 @@ import com.core.annotations.ManagerAuth; import com.core.common.*; import com.core.exception.CoolException; -import com.zy.asrs.entity.DocType; -import com.zy.asrs.entity.Order; -import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OrderDomainParam; -import com.zy.asrs.service.DocTypeService; -import com.zy.asrs.service.OrderDetlService; -import com.zy.asrs.service.OrderService; + +import com.zy.asrs.entity.result.WrkTraceVo; +import com.zy.asrs.service.*; import com.zy.common.model.DetlDto; import com.zy.common.web.BaseController; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -33,6 +32,16 @@ private SnowflakeIdWorker snowflakeIdWorker; @Autowired private DocTypeService docTypeService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private WaitPakinService waitPakinService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WrkMastLogService wrkMastLogService; @RequestMapping(value = "/order/nav/list/auth") @ManagerAuth @@ -85,12 +94,17 @@ return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_id", orderId))); } - @RequestMapping(value = "/order/form/add/auth") + /*@RequestMapping(value = "/order/form/add/auth") @ManagerAuth(memo = "鎵嬪姩娣诲姞璁㈠崟") @Transactional public R formAdd(@RequestBody OrderDomainParam param){ if(Cools.isEmpty(param.getOrderNo())){ - param.setOrderNo("HAND" + snowflakeIdWorker.nextId()); + String prefix = ""; + DocType docType = docTypeService.selectById(param.getDocType()); + if(!Cools.isEmpty(docType)){ + prefix = docType.getPakin() == 1 ? "RK" : "CK"; + } + param.setOrderNo(prefix + snowflakeIdWorker.nextId()); } Order order = orderService.selectByNo(param.getOrderNo()); if (order != null) { @@ -140,7 +154,7 @@ for (OrderDetl orderDetl : param.getOrderDetlList()) { DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); if (DetlDto.has(list, dto)) { - OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); + OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getAnfme()); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); @@ -161,64 +175,134 @@ } } return R.ok("璁㈠崟娣诲姞鎴愬姛"); - } + }*/ - @RequestMapping(value = "/order/form/modify/auth") - @ManagerAuth(memo = "鎵嬪姩淇敼璁㈠崟") - @Transactional - public R formModify(@RequestBody OrderDomainParam param){ - Order order = orderService.selectById(param.getOrderId()); - if (order == null || order.getStatus() == 0) { - return R.error("璁㈠崟涓嶅瓨鍦�"); - } - Date now = new Date(); - Long userId = getUserId(); - // 淇敼涓绘。 - if (!param.getDocType().equals(order.getDocType())) { - order.setDocType(param.getDocType()); - order.setUpdateBy(userId); - order.setUpdateTime(now); - if (!orderService.updateById(order)) { - throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触"); - } - } - // 淇敼鏄庣粏妗� -// List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); - // 1.娓呯┖鏄庣粏妗� - if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) { - throw new CoolException("娓呯┖璁㈠崟鏄庣粏澶辫触"); - } - // 2.閲嶇粍鏁版嵁 - List<DetlDto> list = new ArrayList<>(); - for (OrderDetl orderDetl : param.getOrderDetlList()) { - DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); - if (DetlDto.has(list, dto)) { - OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); - item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); - if (!orderDetlService.updateById(item)) { - throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); - } - } else { - list.add(dto); - orderDetl.setOrderId(order.getId()); - orderDetl.setOrderNo(order.getOrderNo()); - orderDetl.setCreateBy(getUserId()); - orderDetl.setCreateTime(now); - orderDetl.setUpdateBy(getUserId()); - orderDetl.setUpdateTime(now); - orderDetl.setStatus(1); - orderDetl.setQty(0.0D); - if (!orderDetlService.insert(orderDetl)) { - throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); - } - } - } - return R.ok("璁㈠崟淇敼鎴愬姛"); - } +// @RequestMapping(value = "/order/form/modify/auth") +// @ManagerAuth(memo = "鎵嬪姩淇敼璁㈠崟") +// @Transactional +// public R formModify(@RequestBody OrderDomainParam param){ +// Order order = orderService.selectById(param.getOrderId()); +// if (order == null || order.getStatus() == 0) { +// return R.error("璁㈠崟涓嶅瓨鍦�"); +// } +// Date now = new Date(); +// Long userId = getUserId(); +// // 淇敼涓绘。 +// if (!param.getDocType().equals(order.getDocType())) { +// order.setDocType(param.getDocType()); +// order.setUpdateBy(userId); +// order.setUpdateTime(now); +// if (!orderService.updateById(order)) { +// throw new CoolException("淇敼璁㈠崟绫诲瀷澶辫触"); +// } +// } +// // 淇敼鏄庣粏妗� +//// List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); +// // 1.娓呯┖鏄庣粏妗� +// if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) { +// throw new CoolException("娓呯┖璁㈠崟鏄庣粏澶辫触"); +// } +// // 2.閲嶇粍鏁版嵁 +// List<DetlDto> list = new ArrayList<>(); +// for (OrderDetl orderDetl : param.getOrderDetlList()) { +// DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); +// if (DetlDto.has(list, dto)) { +// OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getAnfme()); +// item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); +// if (!orderDetlService.updateById(item)) { +// throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); +// } +// } else { +// list.add(dto); +// orderDetl.setOrderId(order.getId()); +// orderDetl.setOrderNo(order.getOrderNo()); +// orderDetl.setCreateBy(getUserId()); +// orderDetl.setCreateTime(now); +// orderDetl.setUpdateBy(getUserId()); +// orderDetl.setUpdateTime(now); +// orderDetl.setStatus(1); +// orderDetl.setQty(0.0D); +// if (!orderDetlService.insert(orderDetl)) { +// throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�"); +// } +// } +// } +// return R.ok("璁㈠崟淇敼鎴愬姛"); +// } - - - +// @PostMapping(value = "/order/wrk/trace/auth") +// @ManagerAuth +// public R orderWrkTrace(@RequestParam("orderId") Long orderId) { +// Order order = orderService.selectById(orderId); +// if (null == order) { +// return R.error("鍗曟嵁涓嶅瓨鍦�"); +// } +// // 鏁伴噺缁熻 +// List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(orderId); +// double totalQty = 0; +// double wrkQty = 0; +// double lackQty = 0; +// double endQty = 0; +// for (OrderDetl orderDetl : orderDetls) { +// totalQty = totalQty + orderDetl.getAnfme(); +// wrkQty = wrkQty + orderDetl.getWorkQty(); +// endQty = endQty + orderDetl.getQty(); +// double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); +// if (issued > 0.0) { +// List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOrigin(), null); +// for (LocDetl locDetl : locDetls) { +// if (issued > 0) { +// issued = issued - locDetl.getAnfme(); +// } else { +// break; +// } +// } +// } +// if (issued > 0.0) { +// lackQty = lackQty + issued; +// } +// } +// // 浠诲姟杩芥函 +// List<WrkTraceVo> wrkTraceVos = new ArrayList<>(); +// List<WrkDetl> wrkDetls = wrkDetlService.selectAndLogByOrderNoGroupByMatnrOfSum(order.getOrderNo()); +// for (WrkDetl wrkDetl : wrkDetls) { +// WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime())); +// if (wrkMast == null) { +// WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime())); +// if (wrkMastLog.getIoType()==103){ +// wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>().eq("wrk_no", wrkDetl.getWrkNo()).eq("io_time", wrkDetl.getIoTime()).eq("io_type",53)); +// } +// if (wrkMastLog != null) { +// wrkMast = new WrkMast(); +// BeanUtils.copyProperties(wrkMastLog, wrkMast); +// } else { +// continue; +// } +// } +// boolean exist = false; +// for (WrkTraceVo vo : wrkTraceVos) { +// if (vo.getWrkNo().equals(wrkMast.getWrkNo()) && vo.getIoTimeStr().equals(DateUtils.convert(wrkMast.getIoTime()))) { +// vo.getWrkDetls().add(wrkDetl); +// exist = true; +// } +// } +// if (!exist) { +// WrkTraceVo vo = new WrkTraceVo(wrkMast.getWrkNo(), DateUtils.convert(wrkMast.getIoTime()), wrkMast, wrkDetl); +// wrkTraceVos.add(vo); +// } +// } +// if (!Cools.isEmpty(wrkTraceVos) && wrkTraceVos.size() > 1) { +// wrkTraceVos.sort((o1, o2) -> (int) (o2.getWrkMast().getIoTime().getTime() - o1.getWrkMast().getIoTime().getTime())); +// } +// return R.ok().add(Cools +// .add("list", wrkTraceVos) +// .add("orderNo", order.getOrderNo()) +// .add("totalQty", totalQty) +// .add("wrkQty", wrkQty+endQty) +// .add("lackQty", lackQty) +// .add("endQty",endQty) +// ); +// } // ------------------------------------------------------------------------------------------------ @@ -262,6 +346,16 @@ if (Cools.isEmpty(order) || null == order.getId()){ return R.error(); } + + //璁㈠崟瀹岀粨鍓嶏紝鍒ゆ柇鏄惁瀛樺湪浣滀笟涓暟鎹紝瀛樺湪鍒欎笉鑳藉畬缁� + if(order.getSettle() == 4){ + int wrkCount = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no",order.getOrderNo())); + int pakinCount = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("order_no",order.getOrderNo())); + if (wrkCount > 0 || pakinCount > 0) { + throw new CoolException("瀛樺湪浣滀笟涓暟鎹紝涓嶈兘瀹岀粨銆傝妫�鏌ュ叆搴撻�氱煡妗e拰宸ヤ綔妗�"); + } + } + order.setUpdateBy(getUserId()); order.setUpdateTime(new Date()); if (!orderService.updateById(order)) { -- Gitblit v1.9.1