| | |
| | | package com.zy.asrs.wms.asrs.controller; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.zy.asrs.framework.common.R; |
| | | import com.zy.asrs.framework.exception.CoolException; |
| | | import com.zy.asrs.wms.asrs.entity.Order; |
| | | import com.zy.asrs.wms.asrs.entity.WaveDetl; |
| | | import com.zy.asrs.wms.asrs.entity.dto.MergePreviewDto; |
| | | import com.zy.asrs.wms.asrs.entity.dto.MergePreviewResultDto; |
| | | import com.zy.asrs.wms.asrs.entity.dto.OrderOutBatchPreviewDto; |
| | | import com.zy.asrs.wms.asrs.entity.param.*; |
| | | import com.zy.asrs.wms.asrs.manage.OutManage; |
| | | import com.zy.asrs.wms.asrs.service.OrderService; |
| | | import com.zy.asrs.wms.asrs.service.WaveDetlService; |
| | | import com.zy.asrs.wms.common.annotation.OperationLog; |
| | | import com.zy.asrs.wms.system.controller.BaseController; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | |
| | | @RestController |
| | | @RequestMapping("/api") |
| | | public class OutController extends BaseController { |
| | | |
| | | @Autowired |
| | | private OutManage outManage; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private WaveDetlService waveDetlService; |
| | | |
| | | /** |
| | | * 出库 |
| | | */ |
| | | @PostMapping("/out/start") |
| | | @OperationLog("出库") |
| | | @Transactional |
| | | public R start(@RequestBody OutParam param) { |
| | | outManage.out(param); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/batch/preview") |
| | | @OperationLog("批量出库预览") |
| | | @Transactional |
| | | public R orderOutBatchPreview(@RequestBody OrderOutBatchPreviewParam param) { |
| | | List<OrderOutBatchPreviewDto> previewDtos = outManage.orderOutBatchPreview(param); |
| | | return R.ok().add(previewDtos); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/batch") |
| | | @OperationLog("批量出库") |
| | | @Transactional |
| | | public R orderOutBatch(@RequestBody List<OrderOutBatchPreviewDto> param) { |
| | | outManage.orderOutBatch(param); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/merge/preview") |
| | | @OperationLog("预览合并订单") |
| | | @Transactional |
| | | public R orderOutMergePreview(@RequestBody OrderOutMergePreviewParam param) { |
| | | List<MergePreviewDto> dtos = outManage.orderOutMergePreview(param); |
| | | return R.ok().add(dtos); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/merge/loc/preview") |
| | | @OperationLog("预览合并订单出库") |
| | | @Transactional |
| | | public R orderOutMergeLocPreview(@RequestBody List<MergePreviewDto> param) { |
| | | List<MergePreviewResultDto> dtos = outManage.orderOutMergeLocPreview(param); |
| | | return R.ok().add(dtos); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/wave/preview") |
| | | @OperationLog("预览波次出库") |
| | | @Transactional |
| | | public R orderOutWavePreview(@RequestBody OrderOutWavePreviewParam param) { |
| | | if (param == null) { |
| | | throw new CoolException("参数不能为空"); |
| | | } |
| | | |
| | | Long waveId = param.getWaveId(); |
| | | if (waveId == null) { |
| | | throw new CoolException("波次不能为空"); |
| | | } |
| | | |
| | | List<Long> orderIds = new ArrayList<>(); |
| | | List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId)); |
| | | for (Order order : orders) { |
| | | orderIds.add(order.getId()); |
| | | } |
| | | |
| | | List<MergePreviewDto> dtos = new ArrayList<>(); |
| | | List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId)); |
| | | for (WaveDetl waveDetl : waveDetls) { |
| | | MergePreviewDto dto = new MergePreviewDto(); |
| | | dtos.add(dto); |
| | | |
| | | double anfme = waveDetl.getAnfme() - waveDetl.getWorkQty(); |
| | | dto.setMatnr(waveDetl.getMatnr()); |
| | | dto.setBatch(waveDetl.getBatch()); |
| | | dto.setAnfme(anfme); |
| | | dto.setOrderIds(orderIds); |
| | | dto.setFieldParams(JSON.parseArray(waveDetl.getFieldParams(), FieldParam.class)); |
| | | dto.setFieldParamsEncode(waveDetl.getFieldParams()); |
| | | } |
| | | |
| | | List<MergePreviewResultDto> resultDtos = outManage.orderOutMergeLocPreview(dtos); |
| | | return R.ok().add(resultDtos); |
| | | } |
| | | |
| | | @PostMapping("/out/orderOut/merge/wave") |
| | | @OperationLog("波次合并订单出库") |
| | | @Transactional |
| | | public R orderOutMerge(@RequestBody OrderOutMergeParamDto param) { |
| | | outManage.orderOutMergeWave(param); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/wave/generate") |
| | | @OperationLog("生成波次") |
| | | @Transactional |
| | | public R generateWave(@RequestBody GenerateWaveParam param) { |
| | | outManage.generateWave(param); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/out/wave/cancel") |
| | | @OperationLog("取消波次") |
| | | @Transactional |
| | | public R cancelWave(@RequestBody List<Long> waveIds) { |
| | | outManage.cancelWave(waveIds); |
| | | return R.ok(); |
| | | } |
| | | } |
| | | package com.zy.asrs.wms.asrs.controller;
|
| | |
|
| | | import com.alibaba.fastjson.JSON;
|
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
| | | import com.zy.asrs.framework.common.R;
|
| | | import com.zy.asrs.framework.exception.CoolException;
|
| | | import com.zy.asrs.wms.asrs.entity.Order;
|
| | | import com.zy.asrs.wms.asrs.entity.WaveDetl;
|
| | | import com.zy.asrs.wms.asrs.entity.dto.MergePreviewDto;
|
| | | import com.zy.asrs.wms.asrs.entity.dto.MergePreviewResultDto;
|
| | | import com.zy.asrs.wms.asrs.entity.dto.OrderOutBatchPreviewDto;
|
| | | import com.zy.asrs.wms.asrs.entity.param.*;
|
| | | import com.zy.asrs.wms.asrs.manage.OutManage;
|
| | | import com.zy.asrs.wms.asrs.service.OrderService;
|
| | | import com.zy.asrs.wms.asrs.service.WaveDetlService;
|
| | | import com.zy.asrs.wms.common.annotation.OperationLog;
|
| | | import com.zy.asrs.wms.system.controller.BaseController;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | | import org.springframework.web.bind.annotation.PostMapping;
|
| | | import org.springframework.web.bind.annotation.RequestBody;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.bind.annotation.RestController;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.util.List;
|
| | |
|
| | |
|
| | | @RestController
|
| | | @RequestMapping("/api")
|
| | | public class OutController extends BaseController {
|
| | |
|
| | | @Autowired
|
| | | private OutManage outManage;
|
| | | @Autowired
|
| | | private OrderService orderService;
|
| | | @Autowired
|
| | | private WaveDetlService waveDetlService;
|
| | |
|
| | | /**
|
| | | * 出库
|
| | | */
|
| | | @PostMapping("/out/start")
|
| | | @OperationLog("出库")
|
| | | @Transactional
|
| | | public R start(@RequestBody OutParam param) {
|
| | | outManage.out(param);
|
| | | return R.ok();
|
| | | }
|
| | |
|
| | | @PostMapping("/out/orderOut/batch/preview")
|
| | | @OperationLog("批量出库预览")
|
| | | @Transactional
|
| | | public R orderOutBatchPreview(@RequestBody OrderOutBatchPreviewParam param) {
|
| | | List<OrderOutBatchPreviewDto> previewDtos = outManage.orderOutBatchPreview(param);
|
| | | return R.ok().add(previewDtos);
|
| | | }
|
| | |
|
| | | @PostMapping("/out/orderOut/batch")
|
| | | @OperationLog("批量出库")
|
| | | @Transactional
|
| | | public R orderOutBatch(@RequestBody List<OrderOutBatchPreviewDto> param) {
|
| | | outManage.orderOutBatch(param);
|
| | | return R.ok();
|
| | | }
|
| | |
|
| | | @PostMapping("/out/orderOut/merge/preview")
|
| | | @OperationLog("预览合并订单")
|
| | | @Transactional
|
| | | public R orderOutMergePreview(@RequestBody OrderOutMergePreviewParam param) {
|
| | | List<MergePreviewDto> dtos = outManage.orderOutMergePreview(param);
|
| | | return R.ok().add(dtos);
|
| | | }
|
| | |
|
| | | @PostMapping("/out/orderOut/merge/loc/preview")
|
| | | @OperationLog("预览合并订单出库")
|
| | | @Transactional
|
| | | public R orderOutMergeLocPreview(@RequestBody List<MergePreviewDto> param) {
|
| | | List<MergePreviewResultDto> dtos = outManage.orderOutMergeLocPreview(param);
|
| | | return R.ok().add(dtos);
|
| | | }
|
| | |
|
| | | @PostMapping("/out/orderOut/wave/preview")
|
| | | @OperationLog("预览波次出库")
|
| | | @Transactional
|
| | | public R orderOutWavePreview(@RequestBody OrderOutWavePreviewParam param) {
|
| | | if (param == null) {
|
| | | throw new CoolException("参数不能为空");
|
| | | }
|
| | |
|
| | | Long waveId = param.getWaveId();
|
| | | if (waveId == null) {
|
| | | throw new CoolException("波次不能为空");
|
| | | }
|
| | |
|
| | | List<Long> orderIds = new ArrayList<>();
|
| | | List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
|
| | | for (Order order : orders) {
|
| | | orderIds.add(order.getId());
|
| | | }
|
| | |
|
| | | List<MergePreviewDto> dtos = new ArrayList<>();
|
| | | List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId));
|
| | | for (WaveDetl waveDetl : waveDetls) {
|
| | | MergePreviewDto dto = new MergePreviewDto();
|
| | | dtos.add(dto);
|
| | |
|
| | | double anfme = waveDetl.getAnfme() - waveDetl.getWorkQty();
|
| | | dto.setMatnr(waveDetl.getMatnr());
|
| | | dto.setBatch(waveDetl.getBatch());
|
| | | dto.setAnfme(anfme);
|
| | | dto.setOrderIds(orderIds);
|
| | | dto.setFieldParams(JSON.parseArray(waveDetl.getFieldParams(), FieldParam.class));
|
| | | dto.setFieldParamsEncode(waveDetl.getFieldParams());
|
| | | }
|
| | |
|
| | | List<MergePreviewResultDto> resultDtos = outManage.orderOutMergeLocPreview(dtos);
|
| | | return R.ok().add(resultDtos);
|
| | | }
|
| | |
|
| | | @PostMapping("/out/orderOut/merge/wave")
|
| | | @OperationLog("波次合并订单出库")
|
| | | @Transactional
|
| | | public R orderOutMerge(@RequestBody OrderOutMergeParamDto param) {
|
| | | outManage.orderOutMergeWave(param);
|
| | | return R.ok();
|
| | | }
|
| | |
|
| | | @PostMapping("/out/wave/generate")
|
| | | @OperationLog("生成波次")
|
| | | @Transactional
|
| | | public R generateWave(@RequestBody GenerateWaveParam param) {
|
| | | outManage.generateWave(param);
|
| | | return R.ok();
|
| | | }
|
| | |
|
| | | @PostMapping("/out/wave/cancel")
|
| | | @OperationLog("取消波次")
|
| | | @Transactional
|
| | | public R cancelWave(@RequestBody List<Long> waveIds) {
|
| | | outManage.cancelWave(waveIds);
|
| | | return R.ok();
|
| | | }
|
| | | }
|