From 68aafce5aaef75bc6505b899d380aa58e00067fa Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期二, 20 八月 2024 15:18:30 +0800 Subject: [PATCH] 桁架理货出库流程修改 --- src/main/java/com/zy/asrs/controller/OrderController.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 113 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index 8063a13..bf673f9 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -9,12 +9,17 @@ import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OrderDomainParam; + +import com.zy.asrs.entity.result.WrkTraceVo; import com.zy.asrs.service.*; +import com.zy.asrs.utils.FileSaveExampleUtil; 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.*; +import org.springframework.web.multipart.MultipartFile; import java.util.*; @@ -33,6 +38,12 @@ 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 @@ -221,6 +232,80 @@ 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) + .add("lackQty", lackQty) + .add("endQty",endQty) + ); + } + // ------------------------------------------------------------------------------------------------ @@ -334,4 +419,32 @@ return R.ok(); } + @RequestMapping(value = "/order/insert/labelUp/file/auth") +// @ManagerAuth + public R insertLabelUpFile(@RequestParam("orderId") String orderId,@RequestParam MultipartFile file){ + String[] split = orderId.split("-"); + int id = Integer.parseInt(split[1]); + System.out.println("---寮�濮�---"); + String savePath = "D:/order/labelUp/file/"+id+"/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰� + try{ + FileSaveExampleUtil.saveFile(file, savePath); + }catch (Exception e){ + return R.error(); + } + return R.ok(); + } + + @RequestMapping(value = "/order/view/labelUp/file/auth") +// @ManagerAuth + public R viewLabelUpFile(@RequestParam("orderId") Long orderId){ +// int id = Integer.parseInt(orderId); + String savePath = "D:/order/labelUp/file/"+orderId+"/"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰� + try{ + List<FileSaveExampleUtil.FileDTO> fileDTOS = FileSaveExampleUtil.viewFileList(savePath); + return R.ok(fileDTOS); + }catch (Exception e){ + return R.error(); + } + } + } -- Gitblit v1.9.1