| | |
| | | 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.*; |
| | |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private WrkMastLogService wrkMastLogService; |
| | | @Autowired |
| | | private OrderTimeChangeLogService orderTimeChangeLogService; |
| | | |
| | | @RequestMapping(value = "/order/head/page/auth") |
| | | @ManagerAuth |
| | |
| | | } else { |
| | | wrapper.orderBy("create_time", false); |
| | | } |
| | | return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); |
| | | Page<OrderPakinLog> 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 (OrderPakinLog order : page.getRecords()) { |
| | | orderIds.add(order.getId()); |
| | | } |
| | | if (!orderIds.isEmpty()) { |
| | | EntityWrapper<OrderTimeChangeLog> logWrapper = new EntityWrapper<>(); |
| | | logWrapper.in("order_id", orderIds); |
| | | logWrapper.eq("order_type", 1); // 1:入库 |
| | | 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 (OrderPakinLog order : page.getRecords()) { |
| | | order.setHasChangeLog(orderIdsWithLog.contains(order.getId())); |
| | | } |
| | | } |
| | | } |
| | | return R.ok(page); |
| | | } |
| | | |
| | | @RequestMapping(value = "/order/detl/all/auth") |
| | |
| | | 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("参数不能为空"); |
| | | } |
| | | OrderPakinLog 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(1); // 1:入库 |
| | | 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()); |