|
|
|
@ -28,6 +28,7 @@ import com.glxp.api.req.basic.BasicEntrustRecRequest;
|
|
|
|
|
import com.glxp.api.req.inout.*;
|
|
|
|
|
import com.glxp.api.req.system.DeleteRequest;
|
|
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
|
|
import com.glxp.api.res.inout.IoCodeTempResponse;
|
|
|
|
|
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
|
|
|
|
|
import com.glxp.api.res.inout.IoOrderResponse;
|
|
|
|
|
import com.glxp.api.res.inout.PdaBusOrderResponse;
|
|
|
|
@ -371,40 +372,15 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
return tempResponse;
|
|
|
|
|
|
|
|
|
|
//校验单据是否已完成
|
|
|
|
|
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo());
|
|
|
|
|
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo());
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(orderDetailCodeEntities)) {
|
|
|
|
|
return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (checkInoutService.checkManual(addOrderRequest.getBillNo())) {
|
|
|
|
|
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
|
|
|
|
|
String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(errMsg)) {
|
|
|
|
|
return ResultVOUtils.error(500, errMsg);
|
|
|
|
|
}
|
|
|
|
|
errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities);
|
|
|
|
|
if (StrUtil.isNotEmpty(errMsg)) {
|
|
|
|
|
return ResultVOUtils.error(500, errMsg);
|
|
|
|
|
}
|
|
|
|
|
saveOrderWeb(addOrderRequest);
|
|
|
|
|
orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS);
|
|
|
|
|
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
|
|
|
|
|
orderService.update(orderEntity);
|
|
|
|
|
checkInoutService.check(addOrderRequest.getBillNo());
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS);
|
|
|
|
|
ioAddInoutService.dealProcess(orderEntity);
|
|
|
|
|
checkInoutService.check(addOrderRequest.getBillNo());
|
|
|
|
|
return ResultVOUtils.success("提交成功!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
saveOrderWeb(addOrderRequest);
|
|
|
|
|
orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS);
|
|
|
|
|
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
|
|
|
|
|
orderService.update(orderEntity);
|
|
|
|
|
checkInoutService.checkCodeResult(addOrderRequest.getBillNo());
|
|
|
|
|
return ResultVOUtils.success("提交成功!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -412,7 +388,7 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
//待校验提交,以比对结果提交
|
|
|
|
|
@RepeatSubmit()
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
|
|
@PostMapping("warehouse/inout/codeResult/submitOrderWeb")
|
|
|
|
|
@PostMapping("warehouse/inout/codeCheck/submitOrderWeb")
|
|
|
|
|
@Log(title = "单据管理", businessType = BusinessType.UPDATE)
|
|
|
|
|
public BaseResponse submitByCheckResult(@RequestBody AddOrderRequest addOrderRequest) {
|
|
|
|
|
|
|
|
|
@ -422,41 +398,28 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
return tempResponse;
|
|
|
|
|
|
|
|
|
|
//校验单据是否已完成
|
|
|
|
|
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo());
|
|
|
|
|
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo());
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(orderDetailCodeEntities)) {
|
|
|
|
|
List<IoCodeTempEntity> codeEntities = codeTempService.findByOrderId(addOrderRequest.getBillNo());
|
|
|
|
|
if (CollUtil.isEmpty(codeEntities)) {
|
|
|
|
|
return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (checkInoutService.checkManual(addOrderRequest.getBillNo())) {
|
|
|
|
|
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
|
|
|
|
|
String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (StrUtil.isNotEmpty(errMsg)) {
|
|
|
|
|
return ResultVOUtils.error(500, errMsg);
|
|
|
|
|
}
|
|
|
|
|
errMsg = checkInoutService.codeOrderCheck(orderDetailCodeEntities, orderDetailBizEntities);
|
|
|
|
|
if (StrUtil.isNotEmpty(errMsg)) {
|
|
|
|
|
return ResultVOUtils.error(500, errMsg);
|
|
|
|
|
}
|
|
|
|
|
saveOrderWeb(addOrderRequest);
|
|
|
|
|
orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS);
|
|
|
|
|
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
|
|
|
|
|
orderService.update(orderEntity);
|
|
|
|
|
checkInoutService.check(addOrderRequest.getBillNo());
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!");
|
|
|
|
|
List<IoCodeTempEntity> codeTempEntities = getCheckRusultCode(addOrderRequest.getBillNo(), codeEntities);
|
|
|
|
|
for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
|
|
|
|
|
if (codeTempEntity.getCheckStatus() == 2) {
|
|
|
|
|
return ResultVOUtils.error(501, "存在多余条码,请先剔除后重新提交!");
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS);
|
|
|
|
|
ioAddInoutService.dealProcess(orderEntity);
|
|
|
|
|
checkInoutService.check(addOrderRequest.getBillNo());
|
|
|
|
|
return ResultVOUtils.success("提交成功!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
codeTempService.deleteByBillNo(addOrderRequest.getBillNo());
|
|
|
|
|
for (IoCodeTempEntity codeTempEntity : codeTempEntities) {
|
|
|
|
|
if (codeTempEntity.getCheckStatus() == 0) {
|
|
|
|
|
codeTempService.insert(codeTempEntity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS);
|
|
|
|
|
ioAddInoutService.dealProcess(orderEntity);
|
|
|
|
|
checkInoutService.check(addOrderRequest.getBillNo());
|
|
|
|
|
return ResultVOUtils.success("提交成功!");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public BaseResponse checkSubmitEnable(IoOrderEntity orderEntity) {
|
|
|
|
@ -474,6 +437,77 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
|
|
@GetMapping("admin/warehouse/inout/findCheckCode")
|
|
|
|
|
public BaseResponse findCheckCode(FilterCodeRequest filterCodeRequest) {
|
|
|
|
|
//校验单据是否已完成
|
|
|
|
|
List<IoCodeTempEntity> codeTempEntities = codeTempService.findByOrderId(filterCodeRequest.getOrderId());
|
|
|
|
|
List<IoCodeTempEntity> codeEntities = getCheckRusultCode(filterCodeRequest.getOrderId(), codeTempEntities);
|
|
|
|
|
PageSimpleResponse<IoCodeTempEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
|
pageSimpleResponse.setTotal(0l);
|
|
|
|
|
pageSimpleResponse.setList(codeEntities);
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public List<IoCodeTempEntity> getOtherCode(String billNo, List<IoCodeTempEntity> codeEntities) {
|
|
|
|
|
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(billNo);
|
|
|
|
|
|
|
|
|
|
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
|
|
|
|
|
bizEntity.setCheckSuccess(false);
|
|
|
|
|
bizEntity.setScanCount(0);
|
|
|
|
|
}
|
|
|
|
|
for (IoCodeTempEntity codeTempEntity : codeEntities) {
|
|
|
|
|
codeTempEntity.setCheckSuccess(false);
|
|
|
|
|
}
|
|
|
|
|
List<IoCodeTempEntity> otherCodes = new ArrayList<>();
|
|
|
|
|
for (IoCodeTempEntity codeEntity : codeEntities) {
|
|
|
|
|
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
|
|
|
|
|
if (checkId(bizEntity, codeEntity) == null
|
|
|
|
|
&& checkBatchNo(bizEntity, codeEntity) == null
|
|
|
|
|
&& checkProductDate(bizEntity, codeEntity) == null
|
|
|
|
|
&& checkExpireDate(bizEntity, codeEntity) == null) {
|
|
|
|
|
int curCount = IntUtil.value(codeEntity.getReCount()) + bizEntity.getScanCount();
|
|
|
|
|
if (bizEntity.getCount() < curCount) {
|
|
|
|
|
otherCodes.add(codeEntity);
|
|
|
|
|
} else {
|
|
|
|
|
bizEntity.setScanCount(curCount);
|
|
|
|
|
}
|
|
|
|
|
codeEntity.setCheckSuccess(true);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!codeEntity.isCheckSuccess()) {
|
|
|
|
|
otherCodes.add(codeEntity);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return otherCodes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<IoCodeTempEntity> getCheckRusultCode(String billNo, List<IoCodeTempEntity> codeEntities) {
|
|
|
|
|
List<IoCodeTempEntity> otherCodes = getOtherCode(billNo, codeEntities);
|
|
|
|
|
for (IoCodeTempEntity codeTempEntity : otherCodes) {
|
|
|
|
|
boolean isTure = false;
|
|
|
|
|
for (IoCodeTempEntity codeEntity : codeEntities) {
|
|
|
|
|
if (IntUtil.value(codeTempEntity.getId()) != IntUtil.value(codeEntity.getId())) {
|
|
|
|
|
if (StrUtil.nullToEmpty(codeTempEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) {
|
|
|
|
|
codeEntity.setCheckStatus(2);
|
|
|
|
|
isTure = true;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (IntUtil.value(codeTempEntity.getReCount()) != IntUtil.value(codeEntity.getReCount()) || isTure) {
|
|
|
|
|
codeEntity.setCheckStatus(2);
|
|
|
|
|
isTure = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!isTure)
|
|
|
|
|
codeTempEntity.setCheckStatus(1);
|
|
|
|
|
}
|
|
|
|
|
return codeEntities;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//带配货-立即提交
|
|
|
|
|
@RepeatSubmit()
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
|
@ -954,4 +988,45 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String checkId(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) {
|
|
|
|
|
|
|
|
|
|
if (bizEntity.getBindRlFk().longValue() == codeEntity.getRelId().longValue()) {
|
|
|
|
|
return null;
|
|
|
|
|
} else {
|
|
|
|
|
return "产品ID不匹配";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String checkBatchNo(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) {
|
|
|
|
|
|
|
|
|
|
if (StrUtil.nullToEmpty(bizEntity.getBatchNo()).equals(StrUtil.nullToEmpty(codeEntity.getBatchNo()))) {
|
|
|
|
|
return null;
|
|
|
|
|
} else {
|
|
|
|
|
return bizEntity.getCoName() + "批次号不匹配";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String checkProductDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) {
|
|
|
|
|
if (StrUtil.nullToEmpty(bizEntity.getProductDate()).equals(StrUtil.nullToEmpty(codeEntity.getProduceDate()))) {
|
|
|
|
|
return null;
|
|
|
|
|
} else {
|
|
|
|
|
return bizEntity.getCoName() + "生产日期不匹配";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String checkExpireDate(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) {
|
|
|
|
|
if (StrUtil.nullToEmpty(bizEntity.getExpireDate()).equals(StrUtil.nullToEmpty(codeEntity.getExpireDate()))) {
|
|
|
|
|
return null;
|
|
|
|
|
} else {
|
|
|
|
|
return bizEntity.getCoName() + "失效日期不匹配";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String checkCount(IoOrderDetailBizEntity bizEntity, IoCodeTempEntity codeEntity) {
|
|
|
|
|
if (bizEntity.getCount() == codeEntity.getReCount()) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
return bizEntity.getCoName() + "数量不匹配!";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|