From 4f770eb094e10a310e494a304dce6756d3dd99e2 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期三, 27 十一月 2024 15:43:06 +0800 Subject: [PATCH] ioType=3不判断库位 --- src/main/java/com/zy/asrs/controller/OrderController.java | 144 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 144 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..8465ddb 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -1,5 +1,6 @@ package com.zy.asrs.controller; +import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; @@ -9,13 +10,25 @@ 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.importexcle.ImportOrderDto; +import com.zy.asrs.importexcle.ImportOrderListener; +import com.zy.asrs.mapper.OrderDetlMapper; import com.zy.asrs.service.*; +import com.zy.asrs.utils.FileSaveExampleUtil; import com.zy.common.model.DetlDto; import com.zy.common.web.BaseController; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; +import java.io.IOException; import java.util.*; @RestController @@ -33,6 +46,35 @@ private WrkDetlService wrkDetlService; @Autowired private WaitPakinService waitPakinService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WrkMastLogService wrkMastLogService; + + @Resource + private OrderDetlMapper orderDetlMapper; + + @PostMapping("/importOrder") + @ManagerAuth(memo = "鍗曟嵁瀵煎叆") + @ApiOperation(value = "鍗曟嵁瀵煎叆", produces = MediaType.APPLICATION_JSON_VALUE) + public R importOrderData(@RequestParam("file") MultipartFile multipartFile) { + try { + importOrder(multipartFile); + } catch (Exception e) { + e.printStackTrace(); + return R.error(e.getMessage()); + } + return R.ok("瀵煎叆鎴愬姛"); + } + + @Transactional(rollbackFor = Exception.class) + public void importOrder(MultipartFile multipartFile) throws IOException { + // 鑰冩牳鏁版嵁鐨勫垽閲嶄娇鐢╫rder_id,check_type鐨勭粍鍚堝敮涓�绱㈠紩瑙e喅 + EasyExcel.read(multipartFile.getInputStream(), ImportOrderDto.class, + new ImportOrderListener(orderService, orderDetlMapper,docTypeService, snowflakeIdWorker,getUserId())).sheet().doReadSync(); + } @RequestMapping(value = "/order/nav/list/auth") @ManagerAuth @@ -221,6 +263,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 +450,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