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/IoCollectOrderCodeManContro...

238 lines
10 KiB
Java

package com.glxp.api.controller.collect;
10 months ago
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
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;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.collect.IoCollectOrderBiz;
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.collect.CollectOrderCodeManRequest;
import com.glxp.api.req.inout.AddTagCodeReqeust;
11 months ago
import com.glxp.api.req.inout.DeleteTageCodeRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.collect.CollectOrderCodeManResponse;
10 months ago
import com.glxp.api.res.inout.VailCodeResultResponse;
import com.glxp.api.res.inout.VailTagResultResponse;
import com.glxp.api.service.collect.IoCollectOrderBizService;
import com.glxp.api.service.collect.IoCollectOrderCodeManService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.util.IntUtil;
import lombok.extern.slf4j.Slf4j;
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;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
10 months ago
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
public class IoCollectOrderCodeManController extends BaseController {
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
/**
*
*
* @return
*/
@GetMapping("/udiwms/ioSplit/collect/manual/code/list")
public BaseResponse manuCodeList(CollectOrderCodeManRequest collectOrderCodeManRequest,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<CollectOrderCodeManResponse> collectOrderCodeManResponses = collectOrderCodeManService.filterList(collectOrderCodeManRequest);
PageInfo<CollectOrderCodeManResponse> pageInfo = new PageInfo<>(collectOrderCodeManResponses);
PageSimpleResponse<CollectOrderCodeManResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(collectOrderCodeManResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
/**
* )
*
* @return
*/
@PostMapping("/udiwms/ioSplit/collect/order/tagCode")
public BaseResponse prescribeTagCode(@RequestBody @Valid AddTagCodeReqeust addTagCodeReqeust,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
11 months ago
IoCollectOrder collectOrder = collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust);
11 months ago
return ResultVOUtils.success(collectOrder);
}
10 months ago
/**
* )
*
* @return
*/
@PostMapping("/udiwms/ioSplit/collect/order/batchAddCode")
public BaseResponse batchAddCode(@RequestBody @Valid AddTagCodeReqeust addTagCodeReqeust,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
IoCollectOrder collectOrder = null;
VailTagResultResponse vailTagResultResponse = new VailTagResultResponse();
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
List<String> vailCodesList = new ArrayList<String>();
10 months ago
if (CollUtil.isNotEmpty(addTagCodeReqeust.getCodeList())) {
for (String code : addTagCodeReqeust.getCodeList()) {
VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse();
addTagCodeReqeust.setCode(code);
vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(1);
10 months ago
try {
collectOrder = collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust);
} catch (JsonException e) {
vailCodeResultResponse.setErrMsg(e.getMessage());
if (e.getCode() == 502) {
vailCodeResultResponse.setStatus(3);
} else if (e.getCode() == 503) {
// 单据扫码数量大于1 的需要拆零确认
String msg = e.getMessage();
String[] data = msg.split(";");
String count = data[1];
if (IntUtil.value(count) > 1) {
vailCodeResultResponse.setStatus(4);
vailCodeResultResponse.setBizId(data[0]);
vailCodeResultResponse.setCpmctymc(data[2]);
vailCodeResultResponse.setErrMsg(data[3]);
}
vailCodesList.add(code);
} else {
vailCodeResultResponse.setStatus(2);
}
10 months ago
}
10 months ago
vailCodeResultResponses.add(vailCodeResultResponse);
10 months ago
}
}
vailTagResultResponse.setCollectOrder(collectOrder);
vailTagResultResponse.setVailCodeResultResponses(vailCodeResultResponses);
String errMsg = countSameErrMsg(vailCodeResultResponses);
if (StrUtil.isNotEmpty(errMsg)) {
return ResultVOUtils.error(500, errMsg);
} else {
addTagCodeReqeust.setCodeList(vailCodesList);
addTagCodeReqeust.setInsert(true);
for (String code : vailCodesList) {
addTagCodeReqeust.setCode(code);
collectOrderCodeManService.prescribeTagCode(addTagCodeReqeust);
}
}
10 months ago
return ResultVOUtils.success(vailTagResultResponse);
10 months ago
}
@Resource
IoCollectOrderBizService collectOrderBizService;
/**
*
*
* @param
* @return
*/
@PostMapping("/udiwms/ioSplit/collect/order/batchUpdateCode")
public BaseResponse batchUpdate(@RequestBody AddTagCodeReqeust addTagCodeReqeust,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<IoCollectOrderCodeMan> collectOrderCodeMEN = addTagCodeReqeust.getCollectOrderCodeManList();
if (CollUtil.isNotEmpty(collectOrderCodeMEN)) {
for (IoCollectOrderCodeMan collectOrderCodeMan : collectOrderCodeMEN) {
collectOrderCodeManService.updateById(collectOrderCodeMan);
IoCollectOrderBiz collectiveOrderBiz = new IoCollectOrderBiz();
collectiveOrderBiz.setId(collectOrderCodeMan.getBizIdFk());
collectiveOrderBiz.setSplitUnCheck(false);
collectOrderBizService.updateById(collectiveOrderBiz);
}
return ResultVOUtils.success("更新成功!");
} else {
return ResultVOUtils.error("数据不能为空");
}
}
public String countSameErrMsg(List<VailCodeResultResponse> vailCodeResultResponses) {
Map<String, Integer> errMsgCountMap = new HashMap<>();
for (VailCodeResultResponse response : vailCodeResultResponses) {
String errMsg = response.getCode().substring(0, 7) + ";" + response.getErrMsg();
if (errMsgCountMap.containsKey(errMsg)) {
errMsgCountMap.put(errMsg, errMsgCountMap.get(errMsg) + 1);
} else {
errMsgCountMap.put(errMsg, 1);
}
}
for (Map.Entry<String, Integer> entry : errMsgCountMap.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
if (value > 1) {
return key.substring(8);
}
}
return null;
}
11 months ago
@PostMapping("/udiwms/ioSplit/collect/code/remove")
11 months ago
public BaseResponse removeCode(@RequestBody @Valid DeleteTageCodeRequest deleteTageCodeRequest,
11 months ago
BindingResult bindingResult) {
if (CollUtil.isNotEmpty(deleteTageCodeRequest.getCodeManIds())) {
for (Long codeManId : deleteTageCodeRequest.getCodeManIds()) {
deleteTageCodeRequest.setCodeManId(codeManId);
collectOrderService.removeCode(deleteTageCodeRequest);
}
} else {
collectOrderService.removeCode(deleteTageCodeRequest);
}
11 months ago
return ResultVOUtils.success("操作成功!");
11 months ago
}
@PostMapping("/udiwms/ioSplit/collect/code/removeByScanCode")
public BaseResponse removeByScanCode(@RequestBody @Valid DeleteTageCodeRequest deleteTageCodeRequest,
BindingResult bindingResult) {
//codes orderId
String orderId = deleteTageCodeRequest.getOrderId();
IoCollectOrder ioCollectOrder = collectOrderService.getByBillNo(orderId);
if (ioCollectOrder == null)
return ResultVOUtils.error(500, "单据不存在");
if (CollUtil.isNotEmpty(deleteTageCodeRequest.getCodeList())) {
List<IoCollectOrderCodeMan> ioCollectOrderCodes = collectOrderCodeManService.selectByCodeAndOrderId(deleteTageCodeRequest.getCodeList(), orderId);
for (IoCollectOrderCodeMan ioCollectOrderCode : ioCollectOrderCodes) {
deleteTageCodeRequest.setDelType(1);
deleteTageCodeRequest.setCodeManId(Long.valueOf(ioCollectOrderCode.getId()));
collectOrderService.removeCode(deleteTageCodeRequest);
}
}
else
return ResultVOUtils.error("无效条码");
return ResultVOUtils.success("剔除成功!");
}
}