You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/controller/collect/IoCollectOrderController.java

282 lines
13 KiB
Java

package com.glxp.api.controller.collect;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
11 months ago
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
11 months ago
import com.glxp.api.entity.collect.IoCollectOrderCodeAuto;
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
11 months ago
import com.glxp.api.req.basic.PrescribeBindWorkRequest;
import com.glxp.api.req.collect.CollectOrderBindWorkRequest;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.collect.CollectOrderSaveRequest;
import com.glxp.api.req.system.DeleteRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.collect.IoCollectOrderBizService;
11 months ago
import com.glxp.api.service.collect.IoCollectOrderCodeAutoService;
import com.glxp.api.service.collect.IoCollectOrderCodeManService;
import com.glxp.api.service.collect.IoCollectOrderService;
11 months ago
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
11 months ago
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
11 months ago
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
11 months ago
import java.util.Date;
import java.util.List;
11 months ago
@RestController
public class IoCollectOrderController extends BaseController {
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@GetMapping("/udiwms/basic/collect/order/filter")
public BaseResponse filterOrder(CollectOrderRequest collectOrderRequest) {
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(collectOrderRequest);
PageInfo<IoCollectOrderResponse> pageInfo = new PageInfo<>(orderResponses);
PageSimpleResponse<IoCollectOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(orderResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
*
*
* @param collectOrderRequest
* @return
*/
@GetMapping("/udiwms/basic/collect/order/next")
public BaseResponse getNextOrder(CollectOrderRequest collectOrderRequest) {
11 months ago
if (collectOrderRequest.getWorkPlaceCode() == null) {
return ResultVOUtils.error(500, "工位不能为空!");
}
CollectOrderRequest request = new CollectOrderRequest();
request.setLimit(1);
request.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
request.setTagStatusList(List.of(1));
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(request);
if (CollUtil.isNotEmpty(orderResponses))
return ResultVOUtils.success(orderResponses.get(0));
return ResultVOUtils.error(500, "未查到待处理单据");
}
@GetMapping("/udiwms/basic/collect/order/detail")
public BaseResponse detail(CollectOrderBizRequest collectOrderBizRequest) {
if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) {
return ResultVOUtils.error(500, "单据号不能为空");
}
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBizRequest.getOrderIdFk());
if (collectOrder == null) {
return ResultVOUtils.error(500, "未找到单据");
}
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(list);
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(list);
return ResultVOUtils.success(pageSimpleResponse);
}
11 months ago
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@GetMapping("/udiwms/basic/collect/order/allDetail")
public BaseResponse allDetail(CollectOrderBizRequest collectOrderBizRequest) {
if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) {
return ResultVOUtils.error(500, "单据号不能为空");
}
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBizRequest.getOrderIdFk());
if (collectOrder == null) {
return ResultVOUtils.error(500, "未找到单据");
}
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
List<IoCollectOrderCodeAuto> splitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 1);
List<IoCollectOrderCodeAuto> unSplitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 2);
List<IoCollectOrderCodeMan> manList = collectOrderCodeManService.listByBillNo(collectOrderBizRequest.getOrderIdFk());
List<CollectOrderBizResponse> collectOrderBizResponses = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBiz : list) {
CollectOrderBizResponse collectOrderBizResponse = new CollectOrderBizResponse();
BeanUtils.copyProperties(collectOrderBiz, collectOrderBizResponse);
//拆零
for (IoCollectOrderCodeAuto collectOrderCodeAuto : splitCodes) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
}
}
if (StrUtil.isNotEmpty(collectOrderBizResponse.getSplitUdiCode())) {
collectOrderBizResponse.setSplitUdiCode(collectOrderBizResponse.getSplitUdiCode().substring(1));
}
//整取
for (IoCollectOrderCodeAuto collectOrderCodeAuto : unSplitCodes) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
}
}
if (StrUtil.isNotEmpty(collectOrderBizResponse.getUnSplitUdiCode())) {
collectOrderBizResponse.setUnSplitUdiCode(collectOrderBizResponse.getUnSplitUdiCode().substring(1));
}
//手动
for (IoCollectOrderCodeMan collectOrderCodeAuto : manList) {
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && collectOrderBiz.getBatchNo().equals(collectOrderCodeAuto.getBatchNo()))) {
collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
}
}
if (StrUtil.isNotEmpty(collectOrderBizResponse.getScanUdiCode())) {
collectOrderBizResponse.setUnSplitUdiCode(collectOrderBizResponse.getScanUdiCode().substring(1));
}
collectOrderBizResponses.add(collectOrderBizResponse);
}
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(collectOrderBizResponses);
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderBizResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/basic/collect/order/deleteOrder")
public BaseResponse deleteOrder(@RequestBody DeleteRequest deleteRequest) {
String billNo = deleteRequest.getBillNo();
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
collectOrderService.remove(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, billNo));
return ResultVOUtils.success();
}
/**
*
*
* @return
*/
@GetMapping("/udiwms/basic/collect/order/save")
public BaseResponse saveOrder(@RequestBody CollectOrderSaveRequest collectOrderSaveRequest) {
List<IoCollectOrder> list = collectOrderSaveRequest.getList();
collectOrderService.saveOrUpdateBatch(list);
return ResultVOUtils.success();
}
11 months ago
/**
*
*
* @return
*/
11 months ago
@PostMapping("/udiwms/basic/collect/order/update")
public BaseResponse updateOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
IoCollectOrder collectOrder = new IoCollectOrder();
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
collectOrder.setUpdateTime(new Date());
collectOrder.setUpdateUser(getUserId());
collectOrderService.updateById(collectOrder);
return ResultVOUtils.success();
}
/**
*
*
* @return
*/
@PostMapping("/udiwms/basic/collect/order/draft")
11 months ago
public BaseResponse saveDraftOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
IoCollectOrder collectOrder = new IoCollectOrder();
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
collectOrder.setTagStatus(-1);
collectOrder.setUpdateTime(new Date());
collectOrder.setUpdateUser(getUserId());
collectOrderService.updateById(collectOrder);
return ResultVOUtils.success();
}
/**
*
*
* @return
*/
11 months ago
@PostMapping("/udiwms/basic/collect/order/finish")
11 months ago
public BaseResponse saveFinishOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
//1.校验是否全部自动赋码
11 months ago
11 months ago
//2.校验扫码是否完成
IoCollectOrder collectOrder = new IoCollectOrder();
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
collectOrder.setTagStatus(3);
collectOrder.setUpdateTime(new Date());
collectOrder.setUpdateUser(getUserId());
collectOrderService.updateById(collectOrder);
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/collect/order/bindWork")
public BaseResponse bindWork(@RequestBody CollectOrderBindWorkRequest bindWorkRequest) {
11 months ago
if (bindWorkRequest.getCollOrder() != null) {
IoCollectOrder collectOrder = bindWorkRequest.getCollOrder();
collectOrder.setWorkPlaceCode(bindWorkRequest.getWorkplaceCode());
11 months ago
collectOrder.setTagStatus(1);
11 months ago
collectOrderService.updateById(collectOrder);
} else {
for (IoCollectOrder collectOrder : bindWorkRequest.getList()) {
11 months ago
collectOrder.setTagStatus(1);
11 months ago
collectOrder.setWorkPlaceCode(bindWorkRequest.getWorkplaceCode());
}
collectOrderService.updateBatchById(bindWorkRequest.getList());
}
11 months ago
return ResultVOUtils.success("绑定成功");
}
11 months ago
@GetMapping("/udiwms/collect/order/import")
public BaseResponse importOrder() {
collectOrderService.importOrder();
return ResultVOUtils.success();
}
11 months ago
@GetMapping("/udiwms/collect/order/clearAll")
public BaseResponse clearAll() {
collectOrderService.clearOrder();
return ResultVOUtils.success();
}
11 months ago
}