From 5dca49269399c21333b16d62945c7f74570f9ad5 Mon Sep 17 00:00:00 2001
From: chen.llin <1442464845@qq.comm>
Date: 星期三, 24 十二月 2025 20:33:59 +0800
Subject: [PATCH] 字段调整
---
src/main/java/com/zy/asrs/controller/OrderPakoutLogController.java | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 227 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OrderPakoutLogController.java b/src/main/java/com/zy/asrs/controller/OrderPakoutLogController.java
new file mode 100644
index 0000000..8738156
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/OrderPakoutLogController.java
@@ -0,0 +1,227 @@
+package com.zy.asrs.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.*;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.result.WrkTraceVo;
+import com.zy.asrs.service.*;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+@RequestMapping("order/pakoutLog")
+public class OrderPakoutLogController extends BaseController {
+
+ @Autowired
+ private OrderPakoutLogService orderService;
+ @Autowired
+ private OrderDetlPakoutLogService orderDetlService;
+ @Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
+ private WrkMastService wrkMastService;
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+ @Autowired
+ private OrderTimeChangeLogService orderTimeChangeLogService;
+
+ @RequestMapping(value = "/order/head/page/auth")
+ @ManagerAuth
+ public R head(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
+ EntityWrapper<OrderPakoutLog> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ } else {
+ wrapper.orderBy("create_time", false);
+ }
+ Page<OrderPakoutLog> page = orderService.selectPage(new Page<>(curr, limit), wrapper);
+ // 鎵归噺鏌ヨ鍝簺璁㈠崟鏈夊彉鏇磋褰�
+ if (page.getRecords() != null && !page.getRecords().isEmpty()) {
+ java.util.List<Long> orderIds = new java.util.ArrayList<>();
+ for (OrderPakoutLog order : page.getRecords()) {
+ orderIds.add(order.getId());
+ }
+ if (!orderIds.isEmpty()) {
+ EntityWrapper<OrderTimeChangeLog> logWrapper = new EntityWrapper<>();
+ logWrapper.in("order_id", orderIds);
+ logWrapper.eq("order_type", 2); // 2:鍑哄簱
+ java.util.List<OrderTimeChangeLog> changeLogs = orderTimeChangeLogService.selectList(logWrapper);
+ java.util.Set<Long> orderIdsWithLog = new java.util.HashSet<>();
+ if (changeLogs != null) {
+ for (OrderTimeChangeLog log : changeLogs) {
+ orderIdsWithLog.add(log.getOrderId());
+ }
+ }
+ // 璁剧疆鏄惁鏈夊彉鏇磋褰曟爣璇�
+ for (OrderPakoutLog order : page.getRecords()) {
+ order.setHasChangeLog(orderIdsWithLog.contains(order.getId()));
+ }
+ }
+ }
+ return R.ok(page);
+ }
+
+ @RequestMapping(value = "/order/detl/all/auth")
+ @ManagerAuth
+ public R head(@RequestParam Long orderId) {
+ return R.ok().add(orderDetlService.selectList(new EntityWrapper<OrderDetlPakoutLog>().eq("order_id", orderId)));
+ }
+
+ @PostMapping(value = "/order/wrk/trace/auth")
+ @ManagerAuth
+ public R orderWrkTrace(@RequestParam("orderId") Long orderId) {
+ OrderPakoutLog order = orderService.selectById(orderId);
+ if (null == order) {
+ return R.error("鍗曟嵁涓嶅瓨鍦�");
+ }
+ // 鏁伴噺缁熻
+ List<OrderDetlPakoutLog> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetlPakoutLog>().eq("order_id", orderId));
+ double totalQty = 0;
+ double wrkQty = 0;
+ double lackQty = 0;
+ double endQty = 0;
+ for (OrderDetlPakoutLog orderDetl : orderDetls) {
+ totalQty = totalQty + orderDetl.getAnfme();
+ wrkQty = wrkQty + (orderDetl.getWorkQty() != null ? orderDetl.getWorkQty() : 0);
+ endQty = endQty + (orderDetl.getQty() != null ? orderDetl.getQty() : 0);
+ }
+ // 浠诲姟杩芥函
+ 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 != null && 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));
+ }
+
+ @RequestMapping(value = "/order/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(orderService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/order/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1") Integer curr,
+ @RequestParam(defaultValue = "10") Integer limit,
+ @RequestParam(required = false) String orderByField,
+ @RequestParam(required = false) String orderByType,
+ @RequestParam Map<String, Object> param) {
+ EntityWrapper<OrderPakoutLog> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)) {
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ }
+ return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ @PostMapping(value = "/order/update/orderTime/auth")
+ @ManagerAuth(memo = "淇敼鍘嗗彶鍗曟嵁涓氬姟鏃堕棿")
+ public R updateOrderTime(@RequestParam Long id, @RequestParam String orderTime, @RequestParam(required = false) String memo) {
+ if (Cools.isEmpty(id) || Cools.isEmpty(orderTime)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖");
+ }
+ OrderPakoutLog order = orderService.selectById(id);
+ if (order == null) {
+ return R.error("鍗曟嵁涓嶅瓨鍦�");
+ }
+ // 妫�鏌ユ槸鍚﹀凡缁戝畾鏈堢粨鍗曟嵁锛屽鏋滃凡缁戝畾鍒欑姝慨鏀�
+ if (order.getMonthlySettleId() != null && order.getMonthlySettleId() > 0) {
+ return R.error("璇ュ崟鎹凡缁戝畾鏈堢粨鍗曟嵁锛屼笉鑳戒慨鏀逛笟鍔℃椂闂�");
+ }
+ // 鑾峰彇鍘熶笟鍔℃椂闂达紙鍦ㄤ慨鏀瑰墠鑾峰彇锛�
+ String oldOrderTime = order.getOrderTime();
+ // 妫�鏌ユ柊鏃ф椂闂存槸鍚︾浉鍚�
+ if (oldOrderTime != null && oldOrderTime.equals(orderTime)) {
+ return R.error("鏂颁笟鍔℃椂闂翠笌鍘熶笟鍔℃椂闂寸浉鍚岋紝鏃犻渶淇敼");
+ }
+ // 鏇存柊涓氬姟鏃堕棿
+ order.setOrderTime(orderTime);
+ order.setUpdateBy(getUserId());
+ order.setUpdateTime(new Date());
+ if (!orderService.updateById(order)) {
+ throw new CoolException("淇敼涓氬姟鏃堕棿澶辫触");
+ }
+ // 淇濆瓨鍙樻洿璁板綍锛堝彧鏈夋椂闂翠笉鍚屾椂鎵嶄繚瀛橈級
+ if (oldOrderTime != null && !oldOrderTime.equals(orderTime)) {
+ OrderTimeChangeLog changeLog = new OrderTimeChangeLog();
+ changeLog.setOrderId(order.getId());
+ changeLog.setOrderNo(order.getOrderNo());
+ changeLog.setOrderType(2); // 2:鍑哄簱
+ changeLog.setOldOrderTime(oldOrderTime);
+ changeLog.setNewOrderTime(orderTime);
+ changeLog.setMemo(memo);
+ changeLog.setCreateBy(getUserId());
+ changeLog.setCreateTime(new Date());
+ orderTimeChangeLogService.insert(changeLog);
+ }
+ return R.ok("淇敼鎴愬姛");
+ }
+
+ 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)) {
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+}
+
--
Gitblit v1.9.1