feat: 工位上货选已完成单

dev_no_inv
chenhc 10 months ago
parent 415ec8729b
commit 47f1b6875d

@ -86,6 +86,7 @@ public class IoCollectOriginController extends BaseController {
getSickPrescribeRequest.setPage(collectOrderRequest.getPage());
getSickPrescribeRequest.setFromCorpName(collectOrderRequest.getFromCorpName());
getSickPrescribeRequest.setShipperName(collectOrderRequest.getShipperName());
getSickPrescribeRequest.setBusType(collectOrderRequest.getBusType());
BaseResponse<PageSimpleResponse<IoCollectOrder>> baseResponse = erpBasicClient.getPrescribeV2(getSickPrescribeRequest);
return baseResponse;

@ -1,8 +1,10 @@
package com.glxp.api.controller.inout;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.glxp.api.annotation.CusRedissonAnnotation;
import com.glxp.api.constant.*;
import com.glxp.api.entity.basic.*;
import com.glxp.api.entity.collect.IoCollectCode;
import com.glxp.api.entity.collect.IoCollectOrder;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.exception.JsonException;
@ -10,6 +12,8 @@ import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.res.inout.IoOrderDetailCodeResponse;
import com.glxp.api.res.inout.VailCodeResultResponse;
import com.glxp.api.service.collect.IoCollectCodeService;
import com.glxp.api.service.collect.IoCollectOrderBizBackupService;
import com.glxp.api.service.collect.IoCollectOrderService;
import com.glxp.api.service.collect.IoCollectOriginService;
import com.glxp.api.service.inout.impl.IoCodeService;
@ -105,6 +109,8 @@ public class IoCodeTempController extends BaseController {
IoCollectOriginService collectOriginService;
@Resource
IoCollectOrderService collectOrderService;
@Resource
IoCollectCodeService ioCollectCodeService;
/**
* PDA-----
@ -2515,4 +2521,101 @@ public class IoCodeTempController extends BaseController {
}
return true;
}
/**
*
*/
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/batchAddCodeByOrderFinish")
@Log(title = "单据管理", businessType = BusinessType.INSERT)
public BaseResponse batchAddCodeByOrderFinish(@RequestBody AddOrderCodeRequest addOrderCodeRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
String orderFinishBillNo = addOrderCodeRequest.getOrderFinishBillNo();
List<IoCollectCode> list = ioCollectCodeService.list(new LambdaUpdateWrapper<IoCollectCode>().eq(IoCollectCode::getBillNo, orderFinishBillNo));
if (CollUtil.isEmpty(list)) return ResultVOUtils.error(500, "未找到已完成单的码明细");
List<String> codeList = new ArrayList<>();
list.forEach(item -> {
String code = item.getCode();
Integer reCountObj = item.getScanCount();
int reCount = reCountObj != null ? reCountObj : 0; // 如果reCountObj为null则默认为0次迭代
for (int i = 0; i < reCount; i++) {
codeList.add(code);
}
});
addOrderCodeRequest.setCodeList(codeList);
addOrderCodeRequest.setCorpOrderId(orderFinishBillNo);
AddCodeResult addCodeResult = new AddCodeResult();
if (CollUtil.isEmpty(codeList))
return ResultVOUtils.error(500, "追溯码不能为空");
List<VailCodeResultResponse> vailCodeResultResponses = new ArrayList<>();
for (String code : codeList) {
VailCodeResultResponse vailCodeResultResponse = new VailCodeResultResponse();
AddOrderRequest addOrderRequest = new AddOrderRequest();
BeanUtils.copyProperties(addOrderCodeRequest, addOrderRequest);
addOrderRequest.setBillNo(addCodeResult.getOrderId());
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
code = code.trim();
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null) {
vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(2);
vailCodeResultResponse.setErrMsg("无效条码");
}
if (StrUtil.isNotEmpty(addOrderRequest.getBatchNo())) {
udiEntity.setBatchNo(addOrderRequest.getBatchNo());
}
if (StrUtil.isNotEmpty(addOrderRequest.getProduceDate())) {
udiEntity.setProduceDate(addOrderRequest.getProduceDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getExpireDate())) {
udiEntity.setExpireDate(addOrderRequest.getExpireDate());
}
if (StrUtil.isNotEmpty(addOrderRequest.getSerialNo())) {
udiEntity.setSerialNo(addOrderRequest.getSerialNo());
}
AuthAdmin authAdmin = getUser();
addOrderRequest.setInvCode(authAdmin.getLocInvCode());
if (IntUtil.value(addOrderCodeRequest.getInoutType()) == 2) {
addOrderRequest.setAction(ConstantType.SPLIT_RETURN);
} else {
addOrderRequest.setAction(ConstantType.SPLIT_OUT);
}
addOrderRequest.setFromCorp(ConstantType.SPLIT_CORP);
BaseResponse baseResponse = null;
addOrderRequest.setCode(code);
if (IntUtil.value(udiEntity.getProductType()) == 2) {
baseResponse = adddGrugOrder(addOrderRequest, udiEntity, code);
} else {
baseResponse = addMaterOrder(addOrderRequest, udiEntity, code);
}
if (baseResponse.getCode() == 20000) {
vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(1);
vailCodeResultResponse.setErrMsg("正确");
AddCodeResult temp = (AddCodeResult) baseResponse.getData();
addCodeResult.setOrderId(temp.getOrderId());
addOrderRequest.setBillNo(temp.getOrderId());
} else {
vailCodeResultResponse.setCode(code);
vailCodeResultResponse.setStatus(2);
vailCodeResultResponse.setErrMsg(baseResponse.getMessage());
}
vailCodeResultResponses.add(vailCodeResultResponse);
}
addCodeResult.setVailCodeResultResponses(vailCodeResultResponses);
return ResultVOUtils.success(addCodeResult);
}
}

@ -32,4 +32,5 @@ public class GetSickPrescribeRequest extends ListPageRequest {
private String fromCorpName;
private String shipperName;
private String busType;
}

@ -143,10 +143,6 @@ public class CollectOrderRequest extends ListPageRequest {
private List<String> documentTypeCodes;
/**
*
*/
private String keywords;
private String excludeWorkCode;

@ -44,4 +44,6 @@ public class AddOrderCodeRequest {
*/
private String billNo;
private String orderFinishBillNo;
}

@ -104,12 +104,12 @@
<if test="uploadStatus != null">
and icob.uploadStatus = #{uploadStatus}
</if>
<if test="keywords != null and keywords != ''">
and (icob.billNo like concat('%', #{keywords}, '%')
or icob.fromCorp like concat('%', #{keywords}, '%')
or icob.workPlaceCode like concat('%', #{keywords}, '%')
or icob.busType like concat('%', #{keywords}, '%')
or icob.fromType like concat('%', #{keywords}, '%'))
<if test="keyWords != null and keyWords != ''">
and (icob.billNo like concat('%', #{keyWords}, '%')
or icob.fromCorp like concat('%', #{keyWords}, '%')
or icob.workPlaceCode like concat('%', #{keyWords}, '%')
or icob.busType like concat('%', #{keyWords}, '%')
or icob.fromType like concat('%', #{keyWords}, '%'))
</if>
<if test="shipperName != '' and shipperName != null">
AND icob.shipperName LIKE concat('%', #{shipperName}, '%')
@ -119,12 +119,12 @@
</if>
<if test="startTime != null">
<![CDATA[
and icob.finishTime >= DATE_FORMAT(#{startTime}, '%Y-%m-%d %H:%i:%S')
and icob.updateTime >= DATE_FORMAT(#{startTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="endTime != null">
<![CDATA[
and icob.finishTime <= DATE_FORMAT(#{endTime}, '%Y-%m-%d %H:%i:%S')
and icob.updateTime <= DATE_FORMAT(#{endTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
</where>

Loading…
Cancel
Save