From 1f6a08e74ce2b420c5c849371fd14d872392682c Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 25 Apr 2023 13:35:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=89=E6=9C=9F=E6=8B=A3?= =?UTF-8?q?=E8=B4=A7=EF=BC=8C=E6=97=A0=E4=B8=89=E6=9C=9F=E6=8B=A3=E8=B4=A7?= =?UTF-8?q?=EF=BC=8C=E4=B8=BA=E9=85=8D=E8=B4=A7=E7=AD=89=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/constant/Constant.java | 7 +- .../com/glxp/api/constant/ConstantStatus.java | 10 ++ .../basic/BasicBussinessTypeController.java | 32 ++++++- .../inout/IoCodeTempController.java | 22 ++++- .../controller/inout/IoOrderController.java | 54 ++++++++++- .../inout/IoOrderDetailResultController.java | 9 ++ .../inout/IoOrderReviewController.java | 4 +- .../api/dao/inout/IoOrderDetailCodeDao.java | 4 + .../basic/BasicBussinessTypeEntity.java | 18 ++-- .../api/entity/purchase/SupCertSetEntity.java | 2 +- .../req/basic/BussinessTypeSaveRequest.java | 18 ++-- .../glxp/api/req/inout/AddOrderRequest.java | 2 + .../res/basic/BasicBussinessTypeResponse.java | 18 ++-- .../auth/impl/InvBusUserServiceImpl.java | 2 +- .../api/service/inout/IoAddInoutService.java | 8 +- .../service/inout/IoCheckInoutService.java | 91 +++++++++++++++---- .../inout/IoOrderDetailBizService.java | 3 + .../inout/IoOrderDetailCodeService.java | 4 + .../impl/IoOrderDetailBizServiceImpl.java | 28 +++++- .../impl/IoOrderDetailCodeServiceImpl.java | 8 ++ .../inout/impl/IoOrderServiceImpl.java | 7 ++ .../mybatis/mapper/auth/SysMenuDao.xml | 2 +- .../mapper/inout/IoOrderDetailCodeDao.xml | 20 +++- 23 files changed, 302 insertions(+), 71 deletions(-) diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index 9c62c7459..875e5d5ca 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -215,9 +215,14 @@ public class Constant { /** - * 单据-未校验标识 + * 单据-未校验/待校验标识 */ public static final String ORDER_STATUS_UN_CHECK = "unCheck"; + /** + * 单据-未校验/待校验标识 + */ + public static final String ORDER_STATUS_UN_ALLOCATE = "unAllocate"; + /** * 单据-校验异常标识 diff --git a/src/main/java/com/glxp/api/constant/ConstantStatus.java b/src/main/java/com/glxp/api/constant/ConstantStatus.java index 67474a16f..7e96e7e28 100644 --- a/src/main/java/com/glxp/api/constant/ConstantStatus.java +++ b/src/main/java/com/glxp/api/constant/ConstantStatus.java @@ -59,6 +59,11 @@ public class ConstantStatus { */ public static final Integer ORDER_STATUS_PROCESSING = 9; + /** + * 业务单已提交待配货 + */ + public static final Integer ORDER_STATUS_ALLOCATE = 11; + public static final Integer ORDER_DELIVERY_STATUS_UN = 1; public static final Integer ORDER_DELIVERY_STATUS_ED = 2; @@ -305,4 +310,9 @@ public class ConstantStatus { public static final int BUS_TYPE_DD = 5; + public static final int SCAN_NO_BUS = 0; //无业业务单扫码拣货 + public static final int SCAN_BUS_PI = 1; //有业务单有三期拣货 + public static final int SCAN_NO_PI = 2; //有业务单无三期拣货 + public static final int SCAN_ALL_PI = 3; //有业务单拣货(有无三期) + } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java index 48b19b05d..92268c540 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicBussinessTypeController.java @@ -1,6 +1,7 @@ package com.glxp.api.controller.basic; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; @@ -178,18 +179,43 @@ public class BasicBussinessTypeController extends BaseController { if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getVueType())) { + List result = new ArrayList<>(); List bussinessTypeEntities = basicBussinessTypeService.findByVueType(bussinessTypeFilterRequest.getVueType()); + if (StrUtil.isNotEmpty(bussinessTypeFilterRequest.getInvCode()) || StrUtil.isNotEmpty(bussinessTypeFilterRequest.getCode())) { + //过滤是否是当前仓库底下单据类型 + FilterBussinessTypeRequest tempRequest = new FilterBussinessTypeRequest(); + tempRequest.setCode(bussinessTypeFilterRequest.getCode()); + tempRequest.setInvCode(bussinessTypeFilterRequest.getInvCode()); + List bussinessTypeResponses = basicBussinessTypeService.filterJoinByInv(tempRequest); + if (CollUtil.isNotEmpty(bussinessTypeResponses)) { + for (BasicBussinessTypeResponse bussinessTypExportResponse : bussinessTypeResponses) { + for (BasicBussinessTypeEntity basicBussinessTypeEntity : bussinessTypeEntities) { + if (bussinessTypExportResponse.getAction().equals(basicBussinessTypeEntity.getAction())) { + result.add(basicBussinessTypeEntity); + } + } + } + + } + } else { + result.addAll(bussinessTypeEntities); + } + PageInfo pageInfo; - pageInfo = new PageInfo<>(bussinessTypeEntities); + pageInfo = new PageInfo<>(result); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); - pageSimpleResponse.setList(bussinessTypeEntities); + pageSimpleResponse.setList(result); return ResultVOUtils.success(pageSimpleResponse); } else { - bussinessTypeFilterRequest.setUserId(getUserId()); + List bussinessTypeEntities; + //判断是否是医院用户 + bussinessTypeFilterRequest.setUserId(getUserId()); bussinessTypeEntities = basicBussinessTypeService.filterJoinByUser( bussinessTypeFilterRequest); + + PageInfo pageInfo; pageInfo = new PageInfo<>(bussinessTypeEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index fc890e477..dfb35fe15 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -629,12 +629,18 @@ public class IoCodeTempController extends BaseController { } if (StringUtils.isBlank(exitLocalEntity.getSerialNo())) { - if (bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew() && addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL) { + if (bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() == 1 && addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL) { String errMsg = ioCheckInoutService.checkCode(genDetaiEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.updateById(exitLocalEntity); + } else if (bussinessTypeEntity.isCheckEnable() && (bussinessTypeEntity.getCheckWebNew() == 2 || (bussinessTypeEntity.getCheckWebNew() == 3 && addOrderRequest.getFromVailPi() == 1)) && addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL) { + String errMsg = ioCheckInoutService.checkNoPiCode(genDetaiEntity); + if (errMsg != null) { + return ResultVOUtils.error(500, errMsg); + } else + codeTempService.updateById(exitLocalEntity); } else { codeTempService.updateById(exitLocalEntity); } @@ -734,7 +740,7 @@ public class IoCodeTempController extends BaseController { } - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) { + if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() != 0) { boolean isBillExit = orderDetailBizService.isExit(orderEntity.getBillNo()); if (!isBillExit) { @@ -776,12 +782,18 @@ public class IoCodeTempController extends BaseController { } //是否边扫边校验 - if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) { + if (addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() == 1) { String errMsg = ioCheckInoutService.checkCode(codeEnttity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); } else codeTempService.insert(codeEnttity); + } else if (bussinessTypeEntity.isCheckEnable() && (bussinessTypeEntity.getCheckWebNew() == 2 || (bussinessTypeEntity.getCheckWebNew() == 3 && addOrderRequest.getFromVailPi() == 1)) && addOrderRequest.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL) { + String errMsg = ioCheckInoutService.checkNoPiCode(codeEnttity); + if (errMsg != null) { + return ResultVOUtils.error(500, errMsg); + } else + codeTempService.insert(codeEnttity); } else { codeTempService.insert(codeEnttity); } @@ -1001,8 +1013,8 @@ public class IoCodeTempController extends BaseController { } IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); - - if (orderEntity.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.isCheckWebNew()) { + //todo 可能会出问题 + if (orderEntity.getOrderType() == ConstantStatus.ORDER_TYPE_NORMAL && bussinessTypeEntity.isCheckEnable() && bussinessTypeEntity.getCheckWebNew() == 1) { String errMsg = ioCheckInoutService.checkCode(codeTempEntity); if (errMsg != null) { return ResultVOUtils.error(500, errMsg); 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 f4a4ec197..43a9ffd62 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -160,13 +160,16 @@ public class IoOrderController extends BaseController { if (orderDetailBizEntity.getCount() == 0) { return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "产品数量不能为0!"); } - if (StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { + if (addOrderRequest.getFromVailPi() != 2 && + StrUtil.isEmpty(orderDetailBizEntity.getBatchNo()) + && StrUtil.isEmpty(orderDetailBizEntity.getProductDate()) + && StrUtil.isEmpty(orderDetailBizEntity.getExpireDate())) { return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "三期不能全为空!"); } } IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); - ioAddInoutService.dealBusProcess(orderEntity); + ioAddInoutService.dealBusProcess(orderEntity, addOrderRequest.getFromVailPi()); return ResultVOUtils.success("提交成功!"); } @@ -269,6 +272,53 @@ public class IoOrderController extends BaseController { } + //带配货-立即提交 + @AuthRuleAnnotation("") + @PostMapping("warehouse/inout/waitAllocate/submitOrderWeb") + @Log(title = "单据管理", businessType = BusinessType.UPDATE) + public BaseResponse submitWaitAllocateWeb(@RequestBody AddOrderRequest addOrderRequest) { + + //校验单据是否已完成 + IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo()); + List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); + List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); + + if (CollUtil.isEmpty(orderDetailCodeEntities)) { + return ResultVOUtils.error(500, "单据还未扫码或和扫码校验存在异常无法提交!"); + } + String errMsg = checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); + if (StrUtil.isNotEmpty(errMsg)) { + return ResultVOUtils.error(500, errMsg); + } + orderDetailBizService.deleteByOrderId(addOrderRequest.getBillNo()); + for (IoOrderDetailCodeEntity orderDetailCodeEntity : orderDetailCodeEntities) { + IoOrderDetailBizEntity orderDetailBizEntity = new IoOrderDetailBizEntity(); + BeanUtils.copyProperties(orderDetailCodeEntity, orderDetailBizEntity); + orderDetailBizEntity.setId(null); + getSomeBiz(orderDetailBizEntities, orderDetailBizEntity); + orderDetailBizService.insert(orderDetailBizEntity); + } + saveOrderWeb(addOrderRequest); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderService.update(orderEntity); + + ioAddInoutService.dealProcess(orderEntity); + checkInoutService.check(addOrderRequest.getBillNo()); + return ResultVOUtils.success("提交成功!"); + } + + + public void getSomeBiz(List orderDetailBizEntities, IoOrderDetailBizEntity resutBizEntity) { + for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { + if (orderDetailBizEntity.getBindRlFk().longValue() == resutBizEntity.getBindRlFk().longValue()) { + resutBizEntity.setCertCode(orderDetailBizEntity.getCertCode()); + resutBizEntity.setPrice(orderDetailBizEntity.getPrice()); + } + } + } + + @Resource IoCodeService codeService; diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index 29e81d7fb..8328cff81 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -126,5 +126,14 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.success(checkInoutService.combineCheck(orderDetailBizEntities, orderDetailCodeEntities)); } + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/waitAllocate/filterList") + public BaseResponse waitAllocate(FilterOrderDetailResultRequest orderDetailResultRequest) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderDetailResultRequest.getOrderIdFk()); + List orderDetailBizEntities = orderDetailBizService.findByOrderId(orderDetailResultRequest.getOrderIdFk()); + checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); + return ResultVOUtils.success(orderDetailBizEntities); + } + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java index b5743ac3f..735211777 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -503,7 +503,7 @@ public class IoOrderReviewController extends BaseController { //校验用户是否验收权限 private String checkReviewAuth(String orderId, String userId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); - if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW || orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { + if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW && orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { return "单据非未验收状态,无法审核!"; } if (!invBusUserService.exitBus(userId, orderEntity.getAction())) { @@ -512,7 +512,7 @@ public class IoOrderReviewController extends BaseController { return "无验收权限!"; } } else { - return "无验收权限!"; + return null; } diff --git a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailCodeDao.java b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailCodeDao.java index 7581490ab..0059a4de8 100644 --- a/src/main/java/com/glxp/api/dao/inout/IoOrderDetailCodeDao.java +++ b/src/main/java/com/glxp/api/dao/inout/IoOrderDetailCodeDao.java @@ -4,6 +4,7 @@ import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.req.inout.FilterOrderDetailCodeRequest; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -23,4 +24,7 @@ public interface IoOrderDetailCodeDao extends BaseMapperPlus - * + * *

* * @author 作者 diff --git a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java index a3ea6e52f..677a570ab 100644 --- a/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BussinessTypeSaveRequest.java @@ -74,37 +74,37 @@ public class BussinessTypeSaveRequest { /** * UDIMS平台来源是否需要校验 */ - private Boolean checkUdims; + private Integer checkUdims; /** * pda已校验单据 */ - private Boolean checkPdaEd; + private Integer checkPdaEd; /** * pda未检验单据 */ - private Boolean checkPdaUn; + private Integer checkPdaUn; /** * PC端扫码精灵 */ - private Boolean checkPc; + private Integer checkPc; /** * web前端页面新增单据 */ - private Boolean checkWebNew; + private Integer checkWebNew; /** * 供应商平台导出单据 */ - private Boolean checkSp; + private Integer checkSp; /** * 流转生成单据 */ - private Boolean checkChange; + private Integer checkChange; /** * UDIMS平台单据 二次校验 @@ -155,7 +155,7 @@ public class BussinessTypeSaveRequest { /** * 平衡补单是否校验 */ - private Boolean checkBalance; + private Integer checkBalance; /** * 平衡补单是否二次验收 @@ -235,7 +235,7 @@ public class BussinessTypeSaveRequest { /** * 是否校验复制单据 */ - private Boolean checkCopy; + private Integer checkCopy; /** * 是否二次校验复制单据 diff --git a/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java b/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java index 6b1531cf4..78ab31c0b 100644 --- a/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/AddOrderRequest.java @@ -28,4 +28,6 @@ public class AddOrderRequest { private Integer orderType; private String remark; private String checkPreInOrders; + + private int fromVailPi; //是否需要校验三期;1:不需要,2:需要 } diff --git a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java index 1e6785904..44b1fad8a 100644 --- a/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java +++ b/src/main/java/com/glxp/api/res/basic/BasicBussinessTypeResponse.java @@ -48,12 +48,12 @@ public class BasicBussinessTypeResponse { private String defaultUnit; private int spUse; private Boolean secCheckEnable; - private boolean checkUdims; - private boolean checkPdaEd; - private boolean checkPdaUn; - private boolean checkPc; - private boolean checkWebNew; - private boolean checkChange; + private int checkUdims; + private int checkPdaEd; + private int checkPdaUn; + private int checkPc; + private int checkWebNew; + private int checkChange; private boolean secCheckUdims; private boolean secCheckPdaEd; private boolean secCheckPdaUn; @@ -74,7 +74,7 @@ public class BasicBussinessTypeResponse { private boolean enableSupplementOrder; - private boolean checkBalance; + private int checkBalance; private boolean secCheckBalance; private boolean useDyCount; @@ -104,7 +104,7 @@ public class BasicBussinessTypeResponse { * 是否全量补单 */ private boolean supplementAll; - private boolean checkCopy; + private int checkCopy; private boolean secCheckCopy; /** @@ -112,7 +112,7 @@ public class BasicBussinessTypeResponse { */ private boolean checkSelect; - private boolean checkSp; + private int checkSp; /** * 自助平台同步 diff --git a/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java b/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java index 11ce1facd..e0237357d 100644 --- a/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java +++ b/src/main/java/com/glxp/api/service/auth/impl/InvBusUserServiceImpl.java @@ -109,6 +109,6 @@ public class InvBusUserServiceImpl extends ServiceImpl().eq("userId", userId).eq("action", action)); + return invBusUserDao.exists(new QueryWrapper().eq("userId", userId).eq("scAction", action)); } } diff --git a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java index 08c107653..75d3dff28 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -237,7 +237,7 @@ public class IoAddInoutService { //新增业务单据处理 - public void dealBusProcess(IoOrderEntity orderEntity) { + public void dealBusProcess(IoOrderEntity orderEntity, Integer fromVailPi) { orderEntity.setErrMsg("正在处理!"); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESSING); orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); @@ -293,7 +293,11 @@ public class IoAddInoutService { return; } - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + if (fromVailPi != null && fromVailPi == 2) + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_ALLOCATE); + else + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK); + orderEntity.setDealStatus(ConstantStatus.ORDER_DEAL_POST); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); 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 d318170d4..5f603f53f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -75,39 +75,39 @@ public class IoCheckInoutService { return false; } else { if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) { - if (!bussinessTypeEntity.isCheckUdims()) { + if (bussinessTypeEntity.getCheckUdims() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) { - if (!bussinessTypeEntity.isCheckWebNew()) { + if (bussinessTypeEntity.getCheckWebNew() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) { - if (!bussinessTypeEntity.isCheckPdaEd()) { + if (bussinessTypeEntity.getCheckPdaEd() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) { - if (!bussinessTypeEntity.isCheckPdaUn()) { + if (bussinessTypeEntity.getCheckPdaUn() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) { - if (!bussinessTypeEntity.isCheckPc()) { + if (bussinessTypeEntity.getCheckPc() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) { - if (!bussinessTypeEntity.isCheckChange()) { + if (bussinessTypeEntity.getCheckChange() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) { - if (!bussinessTypeEntity.isCheckBalance()) { + if (bussinessTypeEntity.getCheckBalance() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDISP) { - if (!bussinessTypeEntity.isCheckSp()) { + if (bussinessTypeEntity.getCheckSp() == 0) { return false; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) { - if (!bussinessTypeEntity.isCheckCopy()) { + if (bussinessTypeEntity.getCheckCopy() == 0) { return false; } } @@ -126,47 +126,47 @@ public class IoCheckInoutService { unCheckFirstFinish(orderEntity); } else { if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) { - if (!bussinessTypeEntity.isCheckUdims()) { + if (bussinessTypeEntity.getCheckUdims() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) { - if (!bussinessTypeEntity.isCheckWebNew()) { + if (bussinessTypeEntity.getCheckWebNew() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) { - if (!bussinessTypeEntity.isCheckPdaEd()) { + if (bussinessTypeEntity.getCheckPdaEd() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) { - if (!bussinessTypeEntity.isCheckPdaUn()) { + if (bussinessTypeEntity.getCheckPdaUn() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) { - if (!bussinessTypeEntity.isCheckPc()) { + if (bussinessTypeEntity.getCheckPc() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) { - if (!bussinessTypeEntity.isCheckChange()) { + if (bussinessTypeEntity.getCheckChange() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) { - if (!bussinessTypeEntity.isCheckBalance()) { + if (bussinessTypeEntity.getCheckBalance() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDISP) { - if (!bussinessTypeEntity.isCheckSp()) { + if (bussinessTypeEntity.getCheckSp() == 0) { unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) { - if (!bussinessTypeEntity.isCheckCopy()) { + if (bussinessTypeEntity.getCheckCopy() == 0) { unCheckFirstFinish(orderEntity); return; } @@ -242,6 +242,29 @@ public class IoCheckInoutService { return null; } + // 无三期拣货校验 + public String checkNoPiCode(IoCodeTempEntity codeTempEntity) { + boolean isBillExit = orderDetailBizService.isExit(codeTempEntity.getOrderId()); + if (!isBillExit) { + return "请先录入业务详情"; + } + IoOrderDetailBizEntity bizEntity = orderDetailBizService.findByRelId(codeTempEntity.getOrderId(), codeTempEntity.getRelId()); + if (bizEntity == null) { + return "非此单产品!"; + } + Integer detailCount = orderDetailCodeService.findByRelIdCount(codeTempEntity.getOrderId(), codeTempEntity.getRelId()); + int curCount = 0; + if (detailCount != null) { + curCount = detailCount + codeTempEntity.getMyReCount(); + } else { + curCount = codeTempEntity.getMyReCount(); + } + if (curCount > bizEntity.getCount()) { + return "当前产品数量超出!"; + } + return null; + } + //一次校验(无需校验)完成 public void unCheckFirstFinish(IoOrderEntity orderEntity) { @@ -414,6 +437,36 @@ public class IoCheckInoutService { } } + + //业务单正向校验 + public String bizNoPiCheck(List orderDetailBizEntities,IoOrderEntity orderEntity) { + + String errMsg = ""; + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + bizEntity.setCheckSuccess(false); + } + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + String msg = ""; + Integer count = orderDetailCodeService.findByRelIdCount(orderEntity.getBillNo(), bizEntity.getBindRlFk()); + if (bizEntity.getCount() == count) { + bizEntity.setCheckSuccess(true); + bizEntity.setScanCount(count); + } else { + msg = "数量不匹配"; + bizEntity.setScanCount(count); + bizEntity.setCheckSuccess(false); + } + bizEntity.setErrMsg(msg); + } + for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { + if (!bizEntity.isCheckSuccess()) { + errMsg = errMsg + bizEntity.getCoName() + bizEntity.getErrMsg() + ";"; + } + } + return errMsg; + } + + //业务单正向校验 public String bizOrderCheck(List orderDetailBizEntities, List orderDetailCodeEntities) { String errMsg = ""; @@ -652,7 +705,7 @@ public class IoCheckInoutService { orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) { - if (!bussinessTypeEntity.isThrCheckPc()) { + if (bussinessTypeEntity.isThrCheckPc()) { orderEntity.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) { diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java index ea8110db7..71b468f70 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailBizService.java @@ -30,6 +30,9 @@ public interface IoOrderDetailBizService { IoOrderDetailBizEntity findByUnique(String orderId, Long relId, String bacthNo, String productDate, String expireDate); + + IoOrderDetailBizEntity findByRelId(String orderId, Long relId); + List filterList(FilterOrderDetailBizRequest orderDetailBizRequest); IoOrderDetailBizEntity selectByBatchNoAndBindRlFk(String batchNo, String bindRlFk); diff --git a/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java b/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java index eb429e159..72d4379be 100644 --- a/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java +++ b/src/main/java/com/glxp/api/service/inout/IoOrderDetailCodeService.java @@ -3,6 +3,7 @@ package com.glxp.api.service.inout; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.req.inout.FilterOrderDetailCodeRequest; import com.glxp.api.res.inout.IoOrderDetailCodeResponse; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -12,6 +13,9 @@ public interface IoOrderDetailCodeService { IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo); + + int findByRelIdCount(String orderId, Long relId); + int insert(IoOrderDetailCodeEntity orderDetailCodeEntity); int update(IoOrderDetailCodeEntity orderDetailCodeEntity); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java index 16bff6920..30425f422 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailBizServiceImpl.java @@ -1,17 +1,21 @@ package com.glxp.api.service.inout.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.inout.IoOrderDetailBizDao; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; +import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderInvoiceResponse; import com.glxp.api.service.inout.IoCheckInoutService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderDetailCodeService; +import com.glxp.api.service.inout.IoOrderService; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -92,6 +96,17 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { return ioOrderDetailBizDao.selectOrderDetailBiz(orderId, relId, bacthNo, productDate, expireDate); } + @Override + public IoOrderDetailBizEntity findByRelId(String orderId, Long relId) { + if (relId == null) + return null; + List orderDetailBizEntities = ioOrderDetailBizDao.selectList(new QueryWrapper().eq("orderIdFk", orderId).eq("bindRlFk", relId)); + if (CollUtil.isNotEmpty(orderDetailBizEntities)) { + return orderDetailBizEntities.get(0); + } + return null; + } + @Override public List filterList(FilterOrderDetailBizRequest orderDetailBizRequest) { if (null == orderDetailBizRequest) { @@ -122,13 +137,20 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { @Resource @Lazy IoCheckInoutService checkInoutService; + @Resource + IoOrderService orderService; @Override public List checkOrderList(String orderId) { - + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); List orderDetailBizEntities = findByOrderId(orderId); - List codeEntities = orderDetailCodeService.findByOrderId(orderId); - checkInoutService.bizOrderCheck(orderDetailBizEntities, codeEntities); + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_ALLOCATE) { + checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); + } else { + List codeEntities = orderDetailCodeService.findByOrderId(orderId); + checkInoutService.bizOrderCheck(orderDetailBizEntities, codeEntities); + } + return orderDetailBizEntities; } diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java index ca0a4a8fd..273072469 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailCodeServiceImpl.java @@ -48,6 +48,14 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService { .isNull(StrUtil.isEmpty(bacthNo), "batchNo")); } + @Override + public int findByRelIdCount(String orderId, Long relId) { + Integer count = ioOrderDetailCodeDao.findByRelIdCount(orderId, relId); + if (count == null) + return 0; + return count; + } + @Override public int insert(IoOrderDetailCodeEntity orderDetailCodeEntity) { orderDetailCodeEntity.setId(null); diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java index 1fa106d1b..6bdac5f5a 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.glxp.api.service.inout.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.UUID; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; @@ -160,6 +161,9 @@ public class IoOrderServiceImpl implements IoOrderService { @Override public int insertOrder(IoOrderEntity orderEntity) { orderEntity.setId(null); + if (StrUtil.isEmpty(orderEntity.getRelKey())) { + orderEntity.setRelKey(UUID.fastUUID().toString(true)); + } orderEntity.setExportStatus(0); //上传状态:未上传 return orderDao.insert(orderEntity); } @@ -645,6 +649,9 @@ public class IoOrderServiceImpl implements IoOrderService { filterOrderRequest.setStatuses(Arrays.asList(10, 7)); filterOrderRequest.setDealStatuses(Arrays.asList(3, 4)); break; + case Constant.ORDER_STATUS_UN_ALLOCATE: + filterOrderRequest.setStatuses(Arrays.asList(ConstantStatus.ORDER_STATUS_ALLOCATE)); + filterOrderRequest.setDealStatuses(Arrays.asList(2)); default: break; } diff --git a/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml b/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml index aceaec650..63e4d220b 100644 --- a/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml +++ b/src/main/resources/mybatis/mapper/auth/SysMenuDao.xml @@ -36,7 +36,7 @@ - + INSERT INTO auth_menu(`menu_id`, `menu_name`, parent_id, `order_num`, `path`, component , query_param, is_frame, is_cache, menu_type, visible, status, perms, icon, remark, create_by, create_time, update_time, update_by) diff --git a/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml b/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml index 1009d742d..57553e2ae 100644 --- a/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml +++ b/src/main/resources/mybatis/mapper/inout/IoOrderDetailCodeDao.xml @@ -3,10 +3,10 @@ - update io_order_detail_code set count = #{count}, reCount = #{reCount} where id = #{id} + update io_order_detail_code + set count = #{count}, + reCount = #{reCount} + where id = #{id} + +