diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index 517bf383..e2edb7cd 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -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 Integer ORDER_DELIVERY_STATUS_ED = 2; + public static final int ORDER_DELIVERY_STATUS_UN = 1; + public static final int ORDER_DELIVERY_STATUS_ED = 2; /** * 单据创建类型 2.新增扫码单据,1、新增业务单据,3、正常单据处理,4:带配货页面 */ - public static final Integer ORDER_TYPE_BIZ = 1; - public static final Integer ORDER_TYPE_SCAN = 2; - public static final Integer ORDER_TYPE_NORMAL = 3; - public static final Integer ORDER_TYPE_WAIT = 4; + public static final int ORDER_TYPE_BIZ = 1; + public static final int ORDER_TYPE_SCAN = 2; + public static final int ORDER_TYPE_NORMAL = 3; + public static final int ORDER_TYPE_WAIT = 4; /** * 供应商自助平台单据类型 */ - public static final Integer BUS_TYPE_NORMAL = 1; //正常出入库单据(入账) - public static final Integer BUS_TYPE_DELIVERY = 2; //送货出入库单据 - public static final Integer BUS_TYPE_ARRIVAL = 3; //到货出库单据类型 - public static final Integer BUS_TYPE_RETURNED = 4; //退货单单据类型 - public static final Integer BUS_TYPE_INVOICE = 4; //退货单单据类型 + public static final int BUS_TYPE_NORMAL = 1; //正常出入库单据(入账) + public static final int BUS_TYPE_DELIVERY = 2; //送货出入库单据 + public static final int BUS_TYPE_ARRIVAL = 3; //到货出库单据类型 + public static final int BUS_TYPE_RETURNED = 4; //退货单单据类型 + public static final int BUS_TYPE_INVOICE = 4; //退货单单据类型 - public static final Integer ACTION_TYPE_NORMAL = 1; //带票 - public static final Integer ACTION_TYPE_PREIN = 2; //预验收 - public static final Integer ACTION_TYPE_ADVANCE = 3; //寄售 + public static final int ACTION_TYPE_NORMAL = 1; //带票 + public static final int ACTION_TYPE_PREIN = 2; //预验收 + public static final int ACTION_TYPE_ADVANCE = 3; //寄售 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 Integer ORDER_STATUS_ADDITIONAL = 5; //补录单据 -// public static final Integer ORDER_STATUS_RECEIVEED = 7; + public static final int ORDER_STATUS_ADDITIONAL = 5; //补录单据 +// public static final int ORDER_STATUS_RECEIVEED = 7; //订单处理状态 - public static final Integer ORDER_DEAL_DRAFT = 1; //草稿 - public static final Integer ORDER_DEAL_POST = 2; //已提交,待交接 - public static final Integer ORDER_DEAL_REW = 4; //交接中,待审核 - public static final Integer ORDER_DEAL_CHECK = 3; //已审核 + public static final int ORDER_DEAL_DRAFT = 1; //草稿 + public static final int ORDER_DEAL_POST = 2; //已提交,待交接 + public static final int ORDER_DEAL_REW = 4; //交接中,待审核 + public static final int ORDER_DEAL_CHECK = 3; //已审核 //ERP校验状态 - public static final Integer ORDER_CHECK_SUCCESS = 2; //校验成功 - public static final Integer ORDER_CHECK_FAIL = 1; //校验失败 - public static final Integer ORDER_CHECK_UN = 0; //未校验 + public static final int ORDER_CHECK_SUCCESS = 2; //校验成功 + public static final int ORDER_CHECK_FAIL = 1; //校验失败 + public static final int ORDER_CHECK_UN = 0; //未校验 //ERP订单上传状态 - public static final Integer ORDER_EXPORT_UN = 0; //未导出 - public static final Integer ORDER_EXPORT_ED = 1; //已导出 - public static final Integer ORDER_EXPORT_FAIL = 2; //导出失败 + public static final int ORDER_EXPORT_UN = 0; //未导出 + public static final int ORDER_EXPORT_ED = 1; //已导出 + public static final int ORDER_EXPORT_FAIL = 2; //导出失败 //ERP订单签字状态 - public static final Integer ORDER_SIGN_UN = 0; //未签字 - public static final Integer ORDER_SIGN_ED = 1; //已签字 - public static final Integer ORDER_SIGN_FAIL = 2; //签字失败 + public static final int ORDER_SIGN_UN = 0; //未签字 + public static final int ORDER_SIGN_ED = 1; //已签字 + public static final int ORDER_SIGN_FAIL = 2; //签字失败 //UDI产品信息表字段类型 - public static final Integer PRODUCT_TYPE_UDI = 0; - public static final Integer PRODUCT_TYPE_THIRD = 1; + public static final int PRODUCT_TYPE_UDI = 0; + public static final int PRODUCT_TYPE_THIRD = 1; //DI类型 - public static final Integer DI_TYPE_MAIN = 1;//主标识 - public static final Integer DI_TYPE_SYDY = 2;//使用单元 - public static final Integer DI_TYPE_BTBS = 3;//本体标识 - public static final Integer DI_TYPE_BZBS = 4;//包装标识 + public static final int DI_TYPE_MAIN = 1;//主标识 + public static final int DI_TYPE_SYDY = 2;//使用单元 + public static final int DI_TYPE_BTBS = 3;//本体标识 + 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 Integer PRUCHASE_COMMON = 2; //普通采购 + public static final int PRUCHASE_ADVANCE = 1; //预入库 + public static final int PRUCHASE_COMMON = 2; //普通采购 //往来单位类型 @@ -297,5 +302,4 @@ public class ConstantStatus { public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期) - } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 7d5596ec..668a8925 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -45,6 +45,8 @@ import java.util.Arrays; import java.util.Date; import java.util.List; +import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS; + @Slf4j @RestController @@ -183,6 +185,11 @@ public class IoOrderController extends BaseController { @Log(title = "单据管理", businessType = BusinessType.UPDATE) public BaseResponse submitBiz(@RequestBody AddOrderRequest addOrderRequest) { + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + //校验单据是否已完成 List 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()); return ResultVOUtils.success("提交成功!"); } @@ -220,6 +226,10 @@ public class IoOrderController extends BaseController { @PostMapping("warehouse/inout/submitCodes") @Log(title = "单据管理", businessType = BusinessType.UPDATE) public BaseResponse submitCodes(@RequestBody AddOrderRequest addOrderRequest) { + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; //校验单据是否已完成 List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); @@ -227,7 +237,6 @@ public class IoOrderController extends BaseController { if (CollUtil.isEmpty(orderDetailCodeEntities)) { return ResultVOUtils.error(500, "单据未扫码或扫码校验无法通过,提交失败,请检查后重新提交!"); } - IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); ioAddInoutService.dealProcess(orderEntity); //不需要手动校验,则走正常单据校验处理流程 @@ -274,6 +283,11 @@ public class IoOrderController extends BaseController { @Log(title = "单据管理", businessType = BusinessType.UPDATE) public BaseResponse submitOrderWeb(@RequestBody AddOrderRequest addOrderRequest) { + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + //校验单据是否已完成 List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); @@ -295,7 +309,6 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, errMsg); } saveOrderWeb(addOrderRequest); - IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderService.update(orderEntity); @@ -304,7 +317,6 @@ public class IoOrderController extends BaseController { return ResultVOUtils.error(500, "单据校验提交失败,请先录入业务单据!"); } } else { - IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); ioAddInoutService.dealProcess(orderEntity); checkInoutService.check(addOrderRequest.getBillNo()); return ResultVOUtils.success("提交成功!"); @@ -313,6 +325,17 @@ public class IoOrderController extends BaseController { 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("") @PostMapping("warehouse/inout/waitAllocate/submitOrderWeb") @@ -321,6 +344,10 @@ public class IoOrderController extends BaseController { //校验单据是否已完成 IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + BaseResponse tempResponse = checkSubmitEnable(orderEntity); + if (tempResponse != null) + return tempResponse; + List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); diff --git a/src/main/java/com/glxp/api/entity/inout/IoCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoCodeEntity.java index 95686f2a..2580bf71 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeEntity.java @@ -137,7 +137,7 @@ public class IoCodeEntity implements Serializable { private Date createTime; @TableField(exist = false) - private int status; //条码校验状态 + private Integer status; //条码校验状态 @TableField(exist = false) private int scanCount; @@ -148,6 +148,7 @@ public class IoCodeEntity implements Serializable { return 0; return count; } + @JsonIgnore public int getMyReCount() { if (reCount == null) { diff --git a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java index 9a5dfe02..b1d54d82 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inout; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.UUID; import cn.hutool.core.thread.ThreadUtil; @@ -42,6 +43,8 @@ import javax.annotation.Resource; import java.io.IOException; 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) return; + + orderEntity.setStatus(ORDER_STATUS_CHECK_PROCESS); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); if (!bussinessTypeEntity.isCheckEnable()) { unCheckFirstFinish(orderEntity);