From 9de2e3881ce2b9f32c508a8f6966a25a844d25e6 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 20 Feb 2023 17:24:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E5=85=A5=E5=BA=93=E5=AD=98=E6=97=A0?= =?UTF-8?q?=E6=89=B9=E6=AC=A1=E5=8F=B7=E9=97=AE=E9=A2=98=EF=BC=8C=E6=89=8B?= =?UTF-8?q?=E6=8C=81=E7=BB=88=E7=AB=AF=E6=89=AB=E7=A0=81=E9=AA=8C=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/EntrustReceController.java | 2 - .../controller/inout/IoCodeController.java | 21 +++ .../controller/inout/IoOrderController.java | 73 ++++++++- .../inout/IoOrderDetailResultController.java | 41 ++++- .../inout/IoOrderReviewController.java | 141 ++++++++++++++++-- .../com/glxp/api/dao/auth/InvBusUserDao.java | 4 +- .../glxp/api/entity/inout/IoCodeEntity.java | 6 +- .../glxp/api/entity/inout/IoOrderEntity.java | 3 + .../api/req/basic/BasicEntrustRecRequest.java | 4 +- .../inout/FilterOrderDetailResultRequest.java | 2 + .../api/req/inout/FilterOrderRequest.java | 2 +- .../api/res/inout/AcceptOrderResponse.java | 2 +- .../inout/IoOrderDetailResultResponse.java | 3 +- .../api/res/inout/PdaBusOrderResponse.java | 2 - .../api/service/inout/IoAddInoutService.java | 125 ++++++++++------ .../impl/IoOrderDetailBizServiceImpl.java | 3 +- .../impl/IoOrderDetailCodeServiceImpl.java | 3 +- .../impl/IoOrderDetailResultServiceImpl.java | 2 +- .../inv/impl/InvProductDetailServiceImpl.java | 3 +- .../inv/impl/InvProductServiceImpl.java | 6 +- .../mybatis/mapper/auth/InvBusUserDao.xml | 15 +- .../mybatis/mapper/basic/EntrustReceDao.xml | 8 +- 22 files changed, 385 insertions(+), 86 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/basic/EntrustReceController.java b/src/main/java/com/glxp/api/controller/basic/EntrustReceController.java index c08649a1d..44f5260ac 100644 --- a/src/main/java/com/glxp/api/controller/basic/EntrustReceController.java +++ b/src/main/java/com/glxp/api/controller/basic/EntrustReceController.java @@ -32,8 +32,6 @@ public class EntrustReceController extends BaseController { @Resource EntrustReceService entrustReceService; @Resource - CustomerService customerService; - @Resource private IBasicBussinessTypeService bussinessTypeService; @GetMapping("/spms/entrust/rece/filter") diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeController.java index 2f506ce5f..e3983d154 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeController.java @@ -1,10 +1,13 @@ package com.glxp.api.controller.inout; import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; +import com.glxp.api.entity.inout.IoCodeEntity; import com.glxp.api.req.inout.FilterCodeRequest; +import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.service.inout.IoCodeService; import org.springframework.web.bind.annotation.GetMapping; @@ -51,4 +54,22 @@ public class IoCodeController extends BaseController { } + /** + * 单据复核,获取单据对应条码 + */ + @AuthRuleAnnotation("") + @GetMapping("spms/inout/dlcode/findByOrderId") + public BaseResponse downloadCodesByOrderId(String orderId) { + + + List codeEntityList = ioCodeService.findByOrderId(orderId); + PageInfo pageInfo; + pageInfo = new PageInfo<>(codeEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(codeEntityList); + return ResultVOUtils.success(pageSimpleResponse); + } + + } 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 f164eb134..4d90d4a33 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -9,11 +9,17 @@ import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.BaseController; +import com.glxp.api.entity.auth.InvBusUserEntity; +import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.EntrustReceEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; 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.auth.FilterInvBusUserRequest; +import com.glxp.api.req.auth.FilterInvWarehouseRequest; +import com.glxp.api.req.basic.BasicEntrustRecRequest; import com.glxp.api.req.inout.AddOrderRequest; import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.req.inout.FilterOrderRequest; @@ -22,6 +28,8 @@ import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.res.inout.PdaBusOrderResponse; +import com.glxp.api.service.auth.InvBusUserService; +import com.glxp.api.service.basic.EntrustReceService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; import lombok.extern.slf4j.Slf4j; @@ -245,7 +253,70 @@ public class IoOrderController extends BaseController { pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(erpOrderResponses); return ResultVOUtils.success(pageSimpleResponse); -// } + } + + @Resource + EntrustReceService entrustReceService; + @Resource + InvBusUserService invBusUserService; + + //手持终端下载扫码单据进行审核 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/inout/order/download") + public BaseResponse downloadOrder(FilterOrderRequest filterOrderRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + Long userId = null; + if (filterOrderRequest.getWmsUserId() != null) { + userId = filterOrderRequest.getWmsUserId(); + } else userId = getUserId(); + + List entrustReceEntities; + List warehouseUserEntities = null; + IoOrderEntity stockOrderEntity = orderService.findByBillNo(filterOrderRequest.getBillNo()); + if (stockOrderEntity == null) { + return ResultVOUtils.error(500, "单据未找到!"); + } else if (stockOrderEntity.getStatus() == ConstantStatus.ORDER_STATUS_CHECK_SUCCESS) { + + //1.校验是否为委托验收人 + if (!stockOrderEntity.isEntrustEnd()) { + BasicEntrustRecRequest basicEntrustRecRequest = new BasicEntrustRecRequest(); + basicEntrustRecRequest.setAction(stockOrderEntity.getAction()); + basicEntrustRecRequest.setEntrustUser(userId); + basicEntrustRecRequest.setCurInv(stockOrderEntity.getInvCode()); + entrustReceEntities = entrustReceService.filterEntrustRec(basicEntrustRecRequest); + } else { + return ResultVOUtils.error(500, "单据已委托验收完成!"); + } + + //2.校验是否为用户所属单据类型 + if (StrUtil.isNotEmpty(stockOrderEntity.getDeptCode())) { + FilterInvBusUserRequest filterInvBusUserRequest = new FilterInvBusUserRequest(); + filterInvBusUserRequest.setSubInvCode(stockOrderEntity.getInvCode()); + filterInvBusUserRequest.setUserId(userId + ""); + filterInvBusUserRequest.setScAction(stockOrderEntity.getAction()); + warehouseUserEntities = invBusUserService.filterInvBusUser(filterInvBusUserRequest); + } + + if (CollUtil.isEmpty(warehouseUserEntities) && CollUtil.isEmpty(entrustReceEntities)) { + return ResultVOUtils.error(500, "权限不足,无法验收!"); + } + } else if (stockOrderEntity.getStatus() == ConstantStatus.ORDER_STATUS_AUDITED) { + return ResultVOUtils.error(500, "单据已审核!"); + } else { + return ResultVOUtils.error(500, "非未审核单据!"); + } + + List orderEntityList = orderService.filterList(filterOrderRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(orderEntityList); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(orderEntityList); + return ResultVOUtils.success(pageSimpleResponse); } 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 947144349..72d5672e8 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -1,11 +1,19 @@ package com.glxp.api.controller.inout; +import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.res.inout.IoOrderDetailResultResponse; +import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.IoOrderDetailResultService; +import com.glxp.api.service.inout.IoOrderService; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -17,9 +25,12 @@ import java.util.List; */ @RestController public class IoOrderDetailResultController { - + @Resource + IoOrderService orderService; @Resource private IoOrderDetailResultService orderDetailResultService; + @Resource + IBasicBussinessTypeService basicBussinessTypeService; /** * 查询单据扫码明细列表 @@ -27,6 +38,7 @@ public class IoOrderDetailResultController { * @param orderDetailResultRequest * @return */ + @AuthRuleAnnotation("") @GetMapping("/udiwms/inout/resultDetail/filterList") public BaseResponse filterList(FilterOrderDetailResultRequest orderDetailResultRequest) { List list = orderDetailResultService.filterList(orderDetailResultRequest); @@ -34,4 +46,31 @@ public class IoOrderDetailResultController { return ResultVOUtils.page(pageInfo); } + /** + * pda下载业务单据详情复核 + */ + @AuthRuleAnnotation("") + @GetMapping(value = "/warehouse/inout/order/detail") + public BaseResponse orderDetail(FilterOrderDetailResultRequest filterErpOrderRequest, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (StrUtil.isEmpty(filterErpOrderRequest.getOrderIdFk())) { + return ResultVOUtils.error(500, "单据号不能为空!"); + } + filterErpOrderRequest.setPage(null); + filterErpOrderRequest.setLimit(null); + + IoOrderEntity orderEntity = orderService.findByBillNo(filterErpOrderRequest.getOrderIdFk()); + List list = orderDetailResultService.filterList(filterErpOrderRequest); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + if ((bussinessTypeEntity.getOrderVisibleType() == 1 && orderEntity.getStatus() == 4) || filterErpOrderRequest.getShowType() == 1) { + //todo使用关联查 +// erpOrderEntities = transferSerList(erpOrderEntities, filterErpOrderRequest.getOrderId()); + } + + return ResultVOUtils.success(list); + } + } 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 b7b702478..b7849a652 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderReviewController.java @@ -2,22 +2,26 @@ package com.glxp.api.controller.inout; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.constant.Constant; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.basic.EntrustReceEntity; +import com.glxp.api.entity.inout.IoCodeEntity; 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.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.ReviewFinishRequest; +import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.AcceptOrderResponse; -import com.glxp.api.service.inout.IoAddInoutService; -import com.glxp.api.service.inout.IoCheckInoutService; -import com.glxp.api.service.inout.IoOrderDetailBizService; -import com.glxp.api.service.inout.IoOrderService; +import com.glxp.api.res.inout.IoOrderDetailResultResponse; +import com.glxp.api.service.inout.*; import com.glxp.api.util.RedisUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; @@ -29,6 +33,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.Locale; //单据验收 @Slf4j @@ -38,7 +43,7 @@ public class IoOrderReviewController extends BaseController { @Resource private RedisUtil redisUtil; @Resource - IoOrderDetailBizService orderDetailBizService; + private IoOrderDetailResultService orderDetailResultService; @Resource IoOrderService orderService; @Resource @@ -53,13 +58,15 @@ public class IoOrderReviewController extends BaseController { } AcceptOrderResponse acceptOrderEntity = new AcceptOrderResponse(); acceptOrderEntity.setBillNo(billNo); - List datas = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); + List datas = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO + billNo); if (CollUtil.isNotEmpty(datas)) { acceptOrderEntity.setOrderDetailEntities(datas); acceptOrderEntity.setExitAccept(true); } else { - List stockOrderDetailEntities = orderDetailBizService.findByOrderId(billNo); - acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities); + FilterOrderDetailResultRequest filterOrderDetailResultRequest = new FilterOrderDetailResultRequest(); + filterOrderDetailResultRequest.setOrderIdFk(billNo); + List orderDetailResultResponses = orderDetailResultService.filterList(filterOrderDetailResultRequest); + acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses); acceptOrderEntity.setExitAccept(false); } return ResultVOUtils.success(acceptOrderEntity); @@ -83,6 +90,116 @@ public class IoOrderReviewController extends BaseController { return updateReview(orderEntity); } + @Resource + IoCodeService codeService; + + //前端扫码验收 + @AuthRuleAnnotation("") + @PostMapping("/udiwms/stock/order/accept/addCode") + public BaseResponse acceptAddCode(@RequestBody AcceptOrderResponse acceptOrderEntity) { + + IoOrderEntity stockOrderEntity = orderService.findByBillNo(acceptOrderEntity.getBillNo()); + + List codeList; + List codeEntityList = (List) redisUtil.get(ConstantStatus.REDIS_BILLNO_CODES + acceptOrderEntity.getBillNo()); + if (CollUtil.isEmpty(codeEntityList)) { + codeList = codeService.findByOrderId(stockOrderEntity.getBillNo()); + } else { + codeList = codeEntityList; + } + IoCodeEntity codeEntity = isExit(codeList, acceptOrderEntity.getCode()); + if (codeEntity == null) { + return ResultVOUtils.error(500, "非此单UDI码!"); + } + + int status = checkCodeExit(codeEntity.getCode(), codeList); + if (status == Constant.CHECK_REPEAT) { + return ResultVOUtils.error(500, "重复扫码!"); + } else if (status == Constant.CHECK_NULL) { + return ResultVOUtils.error(500, "非此单UDI码!"); + } + + List orderDetailResultResponses = acceptOrderEntity.getOrderDetailEntities(); + if (StrUtil.isNotEmpty(acceptOrderEntity.getCode()) && CollUtil.isNotEmpty(orderDetailResultResponses)) { + + boolean isExit = false; + for (IoOrderDetailResultResponse orderDetailResultResponse : orderDetailResultResponses) { + if (orderDetailResultResponse.getBindRlFk().longValue() == codeEntity.getRelId().longValue() && + StrUtil.trimToEmpty(orderDetailResultResponse.getBatchNo()).equals(StrUtil.trimToEmpty(codeEntity.getBatchNo()))) { + orderDetailResultResponse.setAcceptCount(orderDetailResultResponse.getAcceptCount() + codeEntity.getReCount()); + if (orderDetailResultResponse.getAcceptCount() > orderDetailResultResponse.getCount()) { + return ResultVOUtils.error(500, "数量溢出!"); + } + isExit = true; + break; + } + } + if (isExit) { + redisUtil.set(ConstantStatus.REDIS_BILLNO + acceptOrderEntity.getBillNo(), orderDetailResultResponses); + redisUtil.set(ConstantStatus.REDIS_BILLNO_CODES + acceptOrderEntity.getBillNo(), codeList); + acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses); + if (vailFinish(orderDetailResultResponses)) { + acceptOrderEntity.setFinishAccept(true); + return ResultVOUtils.success(acceptOrderEntity); + } + + return ResultVOUtils.success(acceptOrderEntity); + } + + } + return ResultVOUtils.error(500, "非此单条码!"); + } + + + public int checkCodeExit(String code, List codesList) { + if (StrUtil.isNotEmpty(code)) { + code = code.replace("\r\n", ""); + } + + if (code.endsWith("\u001D")) { + code = code.replace("\u001D", ""); + } + + for (IoCodeEntity checkOrderCodesBean : codesList) { + if (checkOrderCodesBean.getCode().toUpperCase(Locale.ROOT).equals(code.toUpperCase(Locale.ROOT))) { + if (checkOrderCodesBean.getStatus() == Constant.DB_CHECK_ED + && checkOrderCodesBean.getCount() == checkOrderCodesBean.getScanCount()) { + return Constant.CHECK_REPEAT; + } + int curCount = checkOrderCodesBean.getScanCount() + checkOrderCodesBean.getCount(); + if (curCount == checkOrderCodesBean.getCount()) { + checkOrderCodesBean.setStatus(Constant.DB_CHECK_ED); + } + checkOrderCodesBean.setScanCount(curCount); + return Constant.CHECK_EXIT; + } + } + return Constant.CHECK_NULL; + } + + public IoCodeEntity isExit(List codeList, String code) { + if (CollUtil.isNotEmpty(codeList)) { + for (IoCodeEntity codeEntity : codeList) { + if (codeEntity.getCode().equals(code)) { + return codeEntity; + } + } + } + return null; + } + + + public boolean vailFinish(List orderDetailResultResponses) { + if (CollUtil.isNotEmpty(orderDetailResultResponses)) { + for (IoOrderDetailResultResponse stockOrderDetailEntity : orderDetailResultResponses) { + if (stockOrderDetailEntity.getCount() != stockOrderDetailEntity.getAcceptCount()) { + return false; + } + } + return true; + } + return false; + } @AuthRuleAnnotation("") @PostMapping("/udiwms/stock/order/acceptClear") @@ -90,8 +207,10 @@ public class IoOrderReviewController extends BaseController { String billNo = acceptOrderEntity.getBillNo(); redisUtil.del(ConstantStatus.REDIS_BILLNO + billNo); redisUtil.del(ConstantStatus.REDIS_BILLNO_CODES + billNo); - List stockOrderDetailEntities = orderDetailBizService.findByOrderId(billNo); - acceptOrderEntity.setOrderDetailEntities(stockOrderDetailEntities); + FilterOrderDetailResultRequest filterOrderDetailResultRequest = new FilterOrderDetailResultRequest(); + filterOrderDetailResultRequest.setOrderIdFk(billNo); + List orderDetailResultResponses = orderDetailResultService.filterList(filterOrderDetailResultRequest); + acceptOrderEntity.setOrderDetailEntities(orderDetailResultResponses); return ResultVOUtils.success(acceptOrderEntity); } @@ -110,4 +229,6 @@ public class IoOrderReviewController extends BaseController { return ResultVOUtils.success("更新成功"); } + + } diff --git a/src/main/java/com/glxp/api/dao/auth/InvBusUserDao.java b/src/main/java/com/glxp/api/dao/auth/InvBusUserDao.java index 2348a5cbd..265c1f758 100644 --- a/src/main/java/com/glxp/api/dao/auth/InvBusUserDao.java +++ b/src/main/java/com/glxp/api/dao/auth/InvBusUserDao.java @@ -1,6 +1,8 @@ package com.glxp.api.dao.auth; +import com.glxp.api.dao.BaseMapperPlus; import com.glxp.api.entity.auth.InvBusUserEntity; +import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.auth.WarehouseBussinessTypeEntity; import com.glxp.api.req.auth.FilterInvBusUserRequest; import com.glxp.api.res.auth.InvBusUserResponse; @@ -10,7 +12,7 @@ import org.apache.ibatis.annotations.Param; import java.util.List; @Mapper -public interface InvBusUserDao { +public interface InvBusUserDao extends BaseMapperPlus { List filterInvBusUser(FilterInvBusUserRequest filterInvBusUserRequest); 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 4b122cd0a..77f8350e1 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoCodeEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoCodeEntity.java @@ -136,6 +136,8 @@ public class IoCodeEntity { private Date createTime; @TableField(exist = false) - private Integer status; //条码校验状态 + private int status; //条码校验状态 + @TableField(exist = false) + private int scanCount; -} \ No newline at end of file +} diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java index 6b91d7ee4..1a993442f 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -185,6 +185,9 @@ public class IoOrderEntity { @TableField(value = "preInBillNo") private String preInBillNo; + @TableField(value = "entrustEnd") + private boolean entrustEnd; + /** * 单据类型:1.业务单据,2:扫码单据,3.正常处理单据 只有草稿,异常,待处理 */ diff --git a/src/main/java/com/glxp/api/req/basic/BasicEntrustRecRequest.java b/src/main/java/com/glxp/api/req/basic/BasicEntrustRecRequest.java index 1f7de8025..32e5126c1 100644 --- a/src/main/java/com/glxp/api/req/basic/BasicEntrustRecRequest.java +++ b/src/main/java/com/glxp/api/req/basic/BasicEntrustRecRequest.java @@ -11,13 +11,13 @@ public class BasicEntrustRecRequest extends ListPageRequest { private Integer id; private String action; private String entrustInv; + private String entrustDept; private Long entrustUser; private String userId; private Date updateTime; private String curInv; + private String curDept; private String lastUpdateTime; - private String entrustSubInv; - private String invWarehouseCode; private String name; } diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java index e5d21653e..e1c2831b1 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderDetailResultRequest.java @@ -29,4 +29,6 @@ public class FilterOrderDetailResultRequest extends ListPageRequest { */ private String batchNo; + private int showType; + } diff --git a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java index 7a575e2dc..83032c839 100644 --- a/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/FilterOrderRequest.java @@ -92,7 +92,7 @@ public class FilterOrderRequest extends ListPageRequest { */ private String thirdBillNo; - private String wmsUserId; + private Long wmsUserId; private String wmsUserName; /** diff --git a/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java b/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java index fa24c023e..0be91b5d2 100644 --- a/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/AcceptOrderResponse.java @@ -17,6 +17,6 @@ public class AcceptOrderResponse { private boolean finishAccept; - private List orderDetailEntities; + private List orderDetailEntities; } diff --git a/src/main/java/com/glxp/api/res/inout/IoOrderDetailResultResponse.java b/src/main/java/com/glxp/api/res/inout/IoOrderDetailResultResponse.java index 4a530c973..0d37582df 100644 --- a/src/main/java/com/glxp/api/res/inout/IoOrderDetailResultResponse.java +++ b/src/main/java/com/glxp/api/res/inout/IoOrderDetailResultResponse.java @@ -20,7 +20,7 @@ public class IoOrderDetailResultResponse { /** * 耗材字典ID外键 */ - private String bindRlFk; + private Long bindRlFk; /** * DI信息UUID外键 @@ -151,5 +151,6 @@ public class IoOrderDetailResultResponse { * 扩展字段5 */ private String remark5; + private int acceptCount; } diff --git a/src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java b/src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java index 3ef075587..786a38b3c 100644 --- a/src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java +++ b/src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java @@ -7,8 +7,6 @@ import java.util.List; @Data public class PdaBusOrderResponse extends IoOrderResponse { - private List orderDetailBizResponses; - } 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 7efc2050c..ec7d8f797 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -321,55 +321,92 @@ public class IoAddInoutService { PostOrderRequest.PostOrder postOrder = postOrders.get(i); //创建单据 PdaOrderEntity pdaOrderEntity = postOrder.getOrderBean(); - BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(pdaOrderEntity.getType()); - String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); - IoOrderEntity orderSaveRequest = new IoOrderEntity(); - orderSaveRequest.setBillNo(orderNo); - - orderSaveRequest.setMainAction(pdaOrderEntity.getInout()); - orderSaveRequest.setAction(pdaOrderEntity.getType()); - orderSaveRequest.setCorpOrderId(pdaOrderEntity.getOrder()); - orderSaveRequest.setFromCorp(pdaOrderEntity.getFromCorpID()); - orderSaveRequest.setCustomerId(postOrderRequest.getCustomerId()); - orderSaveRequest.setFromDeptCode(pdaOrderEntity.getFromDeptCode()); - orderSaveRequest.setFromInvCode(pdaOrderEntity.getFromInvCode()); - orderSaveRequest.setDeptCode(pdaOrderEntity.getDeptCode()); - orderSaveRequest.setInvCode(pdaOrderEntity.getInvCode()); - orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); - orderSaveRequest.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + ""); - orderSaveRequest.setUpdateUser(postOrderRequest.getUserId() + ""); - orderSaveRequest.setUpdateTime(new Date()); - orderSaveRequest.setOrderType(ConstantStatus.ORDER_TYPE_SCAN); - if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0) - orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED); - else - orderSaveRequest.setFromType(ConstantStatus.FROM_PDAUN); - List pdaCodeEntities = postOrder.getCodes(); - if (pdaCodeEntities != null && pdaCodeEntities.size() > 0) { - PdaCodeEntity pdaCodeEntity = pdaCodeEntities.get(0); - if (pdaCodeEntity.getActDate() != null) { - orderSaveRequest.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); + IoOrderEntity orderEntity = null; + if (StrUtil.isNotEmpty(pdaOrderEntity.getDocid())) { + orderEntity = orderService.findByBillNo(pdaOrderEntity.getDocid()); + } + if (orderEntity != null) { + //已包含业务单据校验 + orderEntity.setUpdateUser(postOrderRequest.getUserId() + ""); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + List pdaCodeEntities = postOrder.getCodes(); + if (pdaCodeEntities != null && pdaCodeEntities.size() > 0) { + PdaCodeEntity pdaCodeEntity = pdaCodeEntities.get(0); + //写入条码 + List ioCodeEnttities = new ArrayList<>(); + for (int index = 0; index < pdaCodeEntities.size(); index++) { + IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); + BeanUtils.copyProperties(pdaCodeEntities.get(index), codeEnttity); + codeEnttity.setAction(orderEntity.getAction()); + codeEnttity.setMainAction(orderEntity.getMainAction()); + codeEnttity.setDeptCode(orderEntity.getDeptCode()); + codeEnttity.setOrderId(orderEntity.getBillNo()); + codeEnttity.setInvCode(orderEntity.getInvCode()); + codeEnttity.setReCount(codeEnttity.getCount() * udiCalCountUtil.getActCount(codeEnttity.getRelId())); + codeEnttity.setUpdateTime(new Date()); + codeEnttity.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); + ioCodeEnttities.add(codeEnttity); + } + codeTempService.insertBatch(ioCodeEnttities); + dealProcess(orderEntity); } - //写入条码 - List ioCodeEnttities = new ArrayList<>(); - for (int index = 0; index < pdaCodeEntities.size(); index++) { - IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); - BeanUtils.copyProperties(pdaCodeEntities.get(index), codeEnttity); - codeEnttity.setAction(orderSaveRequest.getAction()); - codeEnttity.setMainAction(orderSaveRequest.getMainAction()); - codeEnttity.setDeptCode(orderSaveRequest.getDeptCode()); - codeEnttity.setInvCode(orderSaveRequest.getInvCode()); - codeEnttity.setReCount(codeEnttity.getCount() * udiCalCountUtil.getActCount(codeEnttity.getRelId())); - codeEnttity.setUpdateTime(new Date()); - codeEnttity.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); - ioCodeEnttities.add(codeEnttity); + } else { + //创建新单据 + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(pdaOrderEntity.getType()); + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); + IoOrderEntity orderSaveRequest = new IoOrderEntity(); + orderSaveRequest.setBillNo(orderNo); + orderSaveRequest.setMainAction(pdaOrderEntity.getInout()); + orderSaveRequest.setAction(pdaOrderEntity.getType()); + orderSaveRequest.setCorpOrderId(pdaOrderEntity.getOrder()); + orderSaveRequest.setFromCorp(pdaOrderEntity.getFromCorpID()); + orderSaveRequest.setCustomerId(postOrderRequest.getCustomerId()); + orderSaveRequest.setFromDeptCode(pdaOrderEntity.getFromDeptCode()); + orderSaveRequest.setFromInvCode(pdaOrderEntity.getFromInvCode()); + orderSaveRequest.setDeptCode(pdaOrderEntity.getDeptCode()); + orderSaveRequest.setInvCode(pdaOrderEntity.getInvCode()); + orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + orderSaveRequest.setDealStatus(ConstantStatus.ORDER_DEAL_POST); + orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + ""); + orderSaveRequest.setUpdateUser(postOrderRequest.getUserId() + ""); + orderSaveRequest.setUpdateTime(new Date()); + orderSaveRequest.setOrderType(ConstantStatus.ORDER_TYPE_SCAN); + if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0) + orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED); + else + orderSaveRequest.setFromType(ConstantStatus.FROM_PDAUN); + List pdaCodeEntities = postOrder.getCodes(); + if (pdaCodeEntities != null && pdaCodeEntities.size() > 0) { + PdaCodeEntity pdaCodeEntity = pdaCodeEntities.get(0); + if (pdaCodeEntity.getActDate() != null) { + orderSaveRequest.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); + } + //写入条码 + List ioCodeEnttities = new ArrayList<>(); + for (int index = 0; index < pdaCodeEntities.size(); index++) { + IoCodeTempEntity codeEnttity = new IoCodeTempEntity(); + BeanUtils.copyProperties(pdaCodeEntities.get(index), codeEnttity); + codeEnttity.setAction(orderSaveRequest.getAction()); + codeEnttity.setMainAction(orderSaveRequest.getMainAction()); + codeEnttity.setDeptCode(orderSaveRequest.getDeptCode()); + codeEnttity.setOrderId(orderSaveRequest.getBillNo()); + codeEnttity.setInvCode(orderSaveRequest.getInvCode()); + codeEnttity.setReCount(codeEnttity.getCount() * udiCalCountUtil.getActCount(codeEnttity.getRelId())); + codeEnttity.setUpdateTime(new Date()); + codeEnttity.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); + ioCodeEnttities.add(codeEnttity); + } + codeTempService.insertBatch(ioCodeEnttities); } - codeTempService.insertBatch(ioCodeEnttities); + orderService.insertOrder(orderSaveRequest); + dealProcess(orderSaveRequest); } - orderService.insertOrder(orderSaveRequest); + + } } + } @Resource 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 c5a6cbfa6..d05815fae 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 @@ -57,7 +57,8 @@ public class IoOrderDetailBizServiceImpl implements IoOrderDetailBizService { @Override public boolean isExit(Long relId, String bacthNo, Integer ignoreId, String orderId) { - return ioOrderDetailBizDao.exists(new QueryWrapper().eq("bindRlFk", relId).eq("batchNo", bacthNo).eq("orderIdFk", orderId).ne("id", ignoreId)); + return ioOrderDetailBizDao.exists(new QueryWrapper().eq("bindRlFk", relId).eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo) + .isNull(StrUtil.isEmpty(bacthNo), "batchNo").eq("orderIdFk", orderId).ne("id", ignoreId)); } @Override 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 a9ddef8e3..27cc72a67 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 @@ -39,7 +39,8 @@ public class IoOrderDetailCodeServiceImpl implements IoOrderDetailCodeService { @Override public IoOrderDetailCodeEntity findByUnique(String orderId, Long relId, String bacthNo) { - return ioOrderDetailCodeDao.selectOne(new QueryWrapper().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq("batchNo", bacthNo)); + return ioOrderDetailCodeDao.selectOne(new QueryWrapper().eq("orderIdFk", orderId).eq("bindRlFk", relId).eq(StrUtil.isNotEmpty(bacthNo), "batchNo", bacthNo) + .isNull(StrUtil.isEmpty(bacthNo), "batchNo")); } @Override diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java index a0d43c9c5..04b20e76e 100644 --- a/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inout/impl/IoOrderDetailResultServiceImpl.java @@ -45,7 +45,7 @@ public class IoOrderDetailResultServiceImpl implements IoOrderDetailResultServic if (null == orderDetailResultRequest) { return Collections.emptyList(); } - if (null == orderDetailResultRequest.getPage() && null == orderDetailResultRequest.getLimit()) { + if (null != orderDetailResultRequest.getPage() && null != orderDetailResultRequest.getLimit()) { PageHelper.offsetPage((orderDetailResultRequest.getPage() - 1) * orderDetailResultRequest.getLimit(), orderDetailResultRequest.getLimit()); } return orderDetailResultDao.filterList(orderDetailResultRequest); diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java index 4ba9006b7..eb735c5e1 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java @@ -44,7 +44,8 @@ public class InvProductDetailServiceImpl implements InvProductDetailService { @Override public List selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) { - return invProductDetailDao.selectList(new QueryWrapper().eq("relId", relId).eq("batchNo", batchNo).eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode)); + return invProductDetailDao.selectList(new QueryWrapper().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo) + .isNull(StrUtil.isEmpty(batchNo), "batchNo").eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode)); } @Override diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java index c627de719..ee1d2632e 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.inv.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.inv.InvProductDao; @@ -39,7 +40,8 @@ public class InvProductServiceImpl implements InvProductService { @Override public InvProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode) { - return invProductDao.selectOne(new QueryWrapper().eq("relIdFk", relId).eq("batchNo", batchNo).eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode)); + return invProductDao.selectOne(new QueryWrapper().eq("relIdFk", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo) + .isNull(StrUtil.isEmpty(batchNo), "batchNo").eq("supId", supId).eq("deptCode", deptCode).eq("invCode", invCode)); } @Override @@ -96,4 +98,4 @@ public class InvProductServiceImpl implements InvProductService { return invProductDao.getCountInvProduct(filterInvProductRequest); } -} \ No newline at end of file +} diff --git a/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml b/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml index d20b84dbe..bb92fd43c 100644 --- a/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml +++ b/src/main/resources/mybatis/mapper/auth/InvBusUserDao.xml @@ -25,18 +25,18 @@