单据重复提交问题

pro
anthonywj 2 years ago
parent 491173a242
commit 5b2ad5b348

@ -10,86 +10,91 @@ public class ConstantStatus {
/** /**
* (稿 * (稿
*/ */
public static final Integer ORDER_STATUS_TEMP_SAVE = 1; public static final int ORDER_STATUS_TEMP_SAVE = 1;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_PROCESS = 2; public static final int ORDER_STATUS_PROCESS = 2;
/**
*
*/
public static final int ORDER_STATUS_CHECK_PROCESS = 12;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_CHECK = 3; public static final int ORDER_STATUS_CHECK = 3;
/** /**
* *
*/ */
public static final Integer ORDER_STATS_ERROR = 4; public static final int ORDER_STATS_ERROR = 4;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_CHECK_SUCCESS = 5; public static final int ORDER_STATUS_CHECK_SUCCESS = 5;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_CHECK_FAIL = 6; public static final int ORDER_STATUS_CHECK_FAIL = 6;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_CHECK_REW = 10; public static final int ORDER_STATUS_CHECK_REW = 10;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_AUDITED = 7; public static final int ORDER_STATUS_AUDITED = 7;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_AUDITED_REFUSED = 8; public static final int ORDER_STATUS_AUDITED_REFUSED = 8;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_PROCESSING = 9; public static final int ORDER_STATUS_PROCESSING = 9;
/** /**
* *
*/ */
public static final Integer ORDER_STATUS_ALLOCATE = 11; public static final int ORDER_STATUS_ALLOCATE = 11;
public static final Integer ORDER_DELIVERY_STATUS_UN = 1; public static final int ORDER_DELIVERY_STATUS_UN = 1;
public static final Integer ORDER_DELIVERY_STATUS_ED = 2; public static final int ORDER_DELIVERY_STATUS_ED = 2;
/** /**
* 2.13,4: * 2.13,4:
*/ */
public static final Integer ORDER_TYPE_BIZ = 1; public static final int ORDER_TYPE_BIZ = 1;
public static final Integer ORDER_TYPE_SCAN = 2; public static final int ORDER_TYPE_SCAN = 2;
public static final Integer ORDER_TYPE_NORMAL = 3; public static final int ORDER_TYPE_NORMAL = 3;
public static final Integer ORDER_TYPE_WAIT = 4; public static final int ORDER_TYPE_WAIT = 4;
/** /**
* *
*/ */
public static final Integer BUS_TYPE_NORMAL = 1; //正常出入库单据(入账) public static final int BUS_TYPE_NORMAL = 1; //正常出入库单据(入账)
public static final Integer BUS_TYPE_DELIVERY = 2; //送货出入库单据 public static final int BUS_TYPE_DELIVERY = 2; //送货出入库单据
public static final Integer BUS_TYPE_ARRIVAL = 3; //到货出库单据类型 public static final int BUS_TYPE_ARRIVAL = 3; //到货出库单据类型
public static final Integer BUS_TYPE_RETURNED = 4; //退货单单据类型 public static final int BUS_TYPE_RETURNED = 4; //退货单单据类型
public static final Integer BUS_TYPE_INVOICE = 4; //退货单单据类型 public static final int BUS_TYPE_INVOICE = 4; //退货单单据类型
public static final Integer ACTION_TYPE_NORMAL = 1; //带票 public static final int ACTION_TYPE_NORMAL = 1; //带票
public static final Integer ACTION_TYPE_PREIN = 2; //预验收 public static final int ACTION_TYPE_PREIN = 2; //预验收
public static final Integer ACTION_TYPE_ADVANCE = 3; //寄售 public static final int ACTION_TYPE_ADVANCE = 3; //寄售
public static final int ORDER_SPUSE_NO = 0; //不允许供应商使用 public static final int ORDER_SPUSE_NO = 0; //不允许供应商使用
@ -97,41 +102,41 @@ public class ConstantStatus {
public static final int ORDER_SPUSE_EDIT = 2; //允许供应商编辑 public static final int ORDER_SPUSE_EDIT = 2; //允许供应商编辑
public static final Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据 public static final int ORDER_STATUS_ADDITIONAL = 5; //补录单据
// public static final Integer ORDER_STATUS_RECEIVEED = 7; // public static final int ORDER_STATUS_RECEIVEED = 7;
//订单处理状态 //订单处理状态
public static final Integer ORDER_DEAL_DRAFT = 1; //草稿 public static final int ORDER_DEAL_DRAFT = 1; //草稿
public static final Integer ORDER_DEAL_POST = 2; //已提交,待交接 public static final int ORDER_DEAL_POST = 2; //已提交,待交接
public static final Integer ORDER_DEAL_REW = 4; //交接中,待审核 public static final int ORDER_DEAL_REW = 4; //交接中,待审核
public static final Integer ORDER_DEAL_CHECK = 3; //已审核 public static final int ORDER_DEAL_CHECK = 3; //已审核
//ERP校验状态 //ERP校验状态
public static final Integer ORDER_CHECK_SUCCESS = 2; //校验成功 public static final int ORDER_CHECK_SUCCESS = 2; //校验成功
public static final Integer ORDER_CHECK_FAIL = 1; //校验失败 public static final int ORDER_CHECK_FAIL = 1; //校验失败
public static final Integer ORDER_CHECK_UN = 0; //未校验 public static final int ORDER_CHECK_UN = 0; //未校验
//ERP订单上传状态 //ERP订单上传状态
public static final Integer ORDER_EXPORT_UN = 0; //未导出 public static final int ORDER_EXPORT_UN = 0; //未导出
public static final Integer ORDER_EXPORT_ED = 1; //已导出 public static final int ORDER_EXPORT_ED = 1; //已导出
public static final Integer ORDER_EXPORT_FAIL = 2; //导出失败 public static final int ORDER_EXPORT_FAIL = 2; //导出失败
//ERP订单签字状态 //ERP订单签字状态
public static final Integer ORDER_SIGN_UN = 0; //未签字 public static final int ORDER_SIGN_UN = 0; //未签字
public static final Integer ORDER_SIGN_ED = 1; //已签字 public static final int ORDER_SIGN_ED = 1; //已签字
public static final Integer ORDER_SIGN_FAIL = 2; //签字失败 public static final int ORDER_SIGN_FAIL = 2; //签字失败
//UDI产品信息表字段类型 //UDI产品信息表字段类型
public static final Integer PRODUCT_TYPE_UDI = 0; public static final int PRODUCT_TYPE_UDI = 0;
public static final Integer PRODUCT_TYPE_THIRD = 1; public static final int PRODUCT_TYPE_THIRD = 1;
//DI类型 //DI类型
public static final Integer DI_TYPE_MAIN = 1;//主标识 public static final int DI_TYPE_MAIN = 1;//主标识
public static final Integer DI_TYPE_SYDY = 2;//使用单元 public static final int DI_TYPE_SYDY = 2;//使用单元
public static final Integer DI_TYPE_BTBS = 3;//本体标识 public static final int DI_TYPE_BTBS = 3;//本体标识
public static final Integer DI_TYPE_BZBS = 4;//包装标识 public static final int DI_TYPE_BZBS = 4;//包装标识
//业务单据状态 //业务单据状态
@ -174,8 +179,8 @@ public class ConstantStatus {
//采购类型 //采购类型
public static final Integer PRUCHASE_ADVANCE = 1; //预入库 public static final int PRUCHASE_ADVANCE = 1; //预入库
public static final Integer PRUCHASE_COMMON = 2; //普通采购 public static final int PRUCHASE_COMMON = 2; //普通采购
//往来单位类型 //往来单位类型
@ -297,5 +302,4 @@ public class ConstantStatus {
public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期) public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期)
} }

@ -45,6 +45,8 @@ import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS;
@Slf4j @Slf4j
@RestController @RestController
@ -183,6 +185,11 @@ public class IoOrderController extends BaseController {
@Log(title = "单据管理", businessType = BusinessType.UPDATE) @Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse submitBiz(@RequestBody AddOrderRequest addOrderRequest) { public BaseResponse submitBiz(@RequestBody AddOrderRequest addOrderRequest) {
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
BaseResponse tempResponse = checkSubmitEnable(orderEntity);
if (tempResponse != null)
return tempResponse;
//校验单据是否已完成 //校验单据是否已完成
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo());
@ -210,7 +217,6 @@ public class IoOrderController extends BaseController {
} }
} }
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
ioAddInoutService.dealBusProcess(orderEntity, addOrderRequest.getFromVailPi()); ioAddInoutService.dealBusProcess(orderEntity, addOrderRequest.getFromVailPi());
return ResultVOUtils.success("提交成功!"); return ResultVOUtils.success("提交成功!");
} }
@ -220,6 +226,10 @@ public class IoOrderController extends BaseController {
@PostMapping("warehouse/inout/submitCodes") @PostMapping("warehouse/inout/submitCodes")
@Log(title = "单据管理", businessType = BusinessType.UPDATE) @Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse submitCodes(@RequestBody AddOrderRequest addOrderRequest) { public BaseResponse submitCodes(@RequestBody AddOrderRequest addOrderRequest) {
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
BaseResponse tempResponse = checkSubmitEnable(orderEntity);
if (tempResponse != null)
return tempResponse;
//校验单据是否已完成 //校验单据是否已完成
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo());
@ -227,7 +237,6 @@ public class IoOrderController extends BaseController {
if (CollUtil.isEmpty(orderDetailCodeEntities)) { if (CollUtil.isEmpty(orderDetailCodeEntities)) {
return ResultVOUtils.error(500, "单据未扫码或扫码校验无法通过,提交失败,请检查后重新提交!"); return ResultVOUtils.error(500, "单据未扫码或扫码校验无法通过,提交失败,请检查后重新提交!");
} }
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
ioAddInoutService.dealProcess(orderEntity); ioAddInoutService.dealProcess(orderEntity);
//不需要手动校验,则走正常单据校验处理流程 //不需要手动校验,则走正常单据校验处理流程
@ -274,6 +283,11 @@ public class IoOrderController extends BaseController {
@Log(title = "单据管理", businessType = BusinessType.UPDATE) @Log(title = "单据管理", businessType = BusinessType.UPDATE)
public BaseResponse submitOrderWeb(@RequestBody AddOrderRequest addOrderRequest) { public BaseResponse submitOrderWeb(@RequestBody AddOrderRequest addOrderRequest) {
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
BaseResponse tempResponse = checkSubmitEnable(orderEntity);
if (tempResponse != null)
return tempResponse;
//校验单据是否已完成 //校验单据是否已完成
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo());
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo());
@ -295,7 +309,6 @@ public class IoOrderController extends BaseController {
return ResultVOUtils.error(500, errMsg); return ResultVOUtils.error(500, errMsg);
} }
saveOrderWeb(addOrderRequest); saveOrderWeb(addOrderRequest);
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK);
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
orderService.update(orderEntity); orderService.update(orderEntity);
@ -304,7 +317,6 @@ public class IoOrderController extends BaseController {
return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!");
} }
} else { } else {
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
ioAddInoutService.dealProcess(orderEntity); ioAddInoutService.dealProcess(orderEntity);
checkInoutService.check(addOrderRequest.getBillNo()); checkInoutService.check(addOrderRequest.getBillNo());
return ResultVOUtils.success("提交成功!"); return ResultVOUtils.success("提交成功!");
@ -313,6 +325,17 @@ public class IoOrderController extends BaseController {
return ResultVOUtils.success("提交成功!"); return ResultVOUtils.success("提交成功!");
} }
public BaseResponse checkSubmitEnable(IoOrderEntity orderEntity) {
if (orderEntity.getStatus() == ORDER_STATUS_CHECK_PROCESS || orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_PROCESS
|| orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_PROCESSING) {
return ResultVOUtils.error(500, "提交失败,单据正在处理,请稍后刷新查看!");
}
if (orderEntity.getStatus() != 1 && orderEntity.getStatus() != 3 && orderEntity.getStatus() != 4 && orderEntity.getStatus() != 6) {
return ResultVOUtils.error(500, "提交失败,单据已提交,请稍后刷新查看!");
}
return null;
}
//带配货-立即提交 //带配货-立即提交
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@PostMapping("warehouse/inout/waitAllocate/submitOrderWeb") @PostMapping("warehouse/inout/waitAllocate/submitOrderWeb")
@ -321,6 +344,10 @@ public class IoOrderController extends BaseController {
//校验单据是否已完成 //校验单据是否已完成
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
BaseResponse tempResponse = checkSubmitEnable(orderEntity);
if (tempResponse != null)
return tempResponse;
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo());
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo());

@ -137,7 +137,7 @@ public class IoCodeEntity implements Serializable {
private Date createTime; private Date createTime;
@TableField(exist = false) @TableField(exist = false)
private int status; //条码校验状态 private Integer status; //条码校验状态
@TableField(exist = false) @TableField(exist = false)
private int scanCount; private int scanCount;
@ -148,6 +148,7 @@ public class IoCodeEntity implements Serializable {
return 0; return 0;
return count; return count;
} }
@JsonIgnore @JsonIgnore
public int getMyReCount() { public int getMyReCount() {
if (reCount == null) { if (reCount == null) {

@ -1,5 +1,6 @@
package com.glxp.api.service.inout; package com.glxp.api.service.inout;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID; import cn.hutool.core.lang.UUID;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
@ -42,6 +43,8 @@ import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS;
/** /**
* *
*/ */
@ -127,6 +130,11 @@ public class IoCheckInoutService {
//过滤非未校验或校验异常 //过滤非未校验或校验异常
if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_FAIL) if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_FAIL)
return; return;
orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS);
orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST);
orderService.update(orderEntity);
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
if (!bussinessTypeEntity.isCheckEnable()) { if (!bussinessTypeEntity.isCheckEnable()) {
unCheckFirstFinish(orderEntity); unCheckFirstFinish(orderEntity);

Loading…
Cancel
Save