From ac32ef672d0e539512a870668d9a97748c8a51c2 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Sat, 18 Feb 2023 09:43:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=8D=95=E9=97=AE=E9=A2=98=EF=BC=8Cpd?= =?UTF-8?q?a=E5=8D=95=E6=8D=AE=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/UdiRelevanceController.java | 2 +- .../controller/basic/UdiRlSupController.java | 4 +- .../inout/IoCodeTempController.java | 2 +- .../controller/inout/IoOrderController.java | 41 +++- .../glxp/api/entity/inout/PdaCodeEntity.java | 45 +++++ .../glxp/api/entity/inout/PdaOrderEntity.java | 23 +++ .../com/glxp/api/req/inout/PdaCodeEntity.java | 60 ------ .../glxp/api/req/inout/PostOrderRequest.java | 20 ++ .../api/res/basic/UdiRelevanceResponse.java | 3 + .../api/res/inout/PdaBusOrderResponse.java | 13 ++ .../api/service/inout/IoAddInoutService.java | 77 ++++---- .../api/service/inout/IoGenInvService.java | 5 +- .../mybatis/mapper/basic/UdiRelevanceDao.xml | 178 +++++++++--------- 13 files changed, 280 insertions(+), 193 deletions(-) create mode 100644 src/main/java/com/glxp/api/entity/inout/PdaCodeEntity.java create mode 100644 src/main/java/com/glxp/api/entity/inout/PdaOrderEntity.java delete mode 100644 src/main/java/com/glxp/api/req/inout/PdaCodeEntity.java create mode 100644 src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java index b685dd674..52a6fbd78 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRelevanceController.java @@ -61,7 +61,7 @@ public class UdiRelevanceController { @Resource UdiRlSupService udiRlSupService; - + //手持终端下载UDI产品信息 @AuthRuleAnnotation("") @GetMapping("/udi/udirel/download") public BaseResponse downloadProducts(FilterUdiRelRequest filterUdiRelRequest, diff --git a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java index d338dd6d6..d4e816e0b 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiRlSupController.java @@ -187,8 +187,8 @@ public class UdiRlSupController { CompanyProductRelevanceRequest filterUdiInfoRequest = new CompanyProductRelevanceRequest(); filterUdiInfoRequest.setNameCode(udiInfoExportRequest.getNameCode()); List udiRlSupResponses = udiRlSupService.filterUdiGp(filterUdiInfoRequest); - if(udiRlSupResponses.size()!=0){ - return ResultVOUtils.error(999,"产品已存在,请勿重复导入!"); + if (udiRlSupResponses.size() != 0) { + return ResultVOUtils.error(999, "产品已存在,请勿重复导入!"); } companyProductsRelService.insertCompanyProducts(udiInfoExportRequest); 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 452bb1615..04e816319 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -112,7 +112,7 @@ public class IoCodeTempController extends BaseController { List postOrders = postOrderRequest.getPostOrders(); if (postOrders != null && postOrders.size() > 0) { for (PostOrderRequest.PostOrder postOrder : postOrders) { - BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(postOrder.getCodes().get(0).getAction()); + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(postOrder.getOrderBean().getType()); if (bussinessTypeEntity.isOutToSpms()) { outPostOrders.add(postOrder); } else { 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 da53ccb29..8e7717f33 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -4,6 +4,7 @@ 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.ConstantStatus; @@ -14,19 +15,25 @@ 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.AddOrderRequest; +import com.glxp.api.req.inout.FilterOrderDetailBizRequest; import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.system.DeleteRequest; 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.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -75,7 +82,7 @@ public class IoOrderController extends BaseController { } - //草稿保存 + //处理单据提交,草稿保存 @AuthRuleAnnotation("") @PostMapping("warehouse/inout/saveOrderWeb") public BaseResponse saveOrderWeb(@RequestBody AddOrderRequest addOrderRequest) { @@ -208,5 +215,37 @@ public class IoOrderController extends BaseController { } + //手持终端获取未处理业务单据进行校验 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/erpOrder/filter") + public BaseResponse filterErpOrder(FilterOrderRequest filterOrderRequest, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (StrUtil.isEmpty(filterOrderRequest.getAction())) + return ResultVOUtils.error(500, "单据类型不能为空!"); + List orderResponses = orderService.filterList(filterOrderRequest); + List erpOrderResponses = new ArrayList<>(); + if (CollUtil.isNotEmpty(orderResponses)) { + for (IoOrderResponse orderResponse : orderResponses) { + PdaBusOrderResponse pdaBusOrderResponse = new PdaBusOrderResponse(); + pdaBusOrderResponse.setOrderResponse(orderResponse); + FilterOrderDetailBizRequest filterOrderDetailBizRequest = new FilterOrderDetailBizRequest(); + filterOrderDetailBizRequest.setOrderIdFk(orderResponse.getBillNo()); + List orderDetailBizEntities = orderDetailBizService.filterList(filterOrderDetailBizRequest); + pdaBusOrderResponse.setOrderDetailBizResponses(orderDetailBizEntities); + } + } + PageInfo pageInfo; + pageInfo = new PageInfo<>(orderResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(erpOrderResponses); + return ResultVOUtils.success(pageSimpleResponse); +// } + } + } diff --git a/src/main/java/com/glxp/api/entity/inout/PdaCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/PdaCodeEntity.java new file mode 100644 index 000000000..37fb813d3 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/PdaCodeEntity.java @@ -0,0 +1,45 @@ +package com.glxp.api.entity.inout; + +import lombok.Data; + +@Data +public class PdaCodeEntity { + private String code; //药监码 + private String order; //订单号 + private String type; //业务类型 + private String Actor; + private String ActDate; + private String FromCorpID; + private String inout; + + //新增字段 + private String batchNo; + private String produceDate; + private String expireDate; + private String serialNo; + private String udi; + private Integer count; //码数量 + private String thirdProductNo; + private Integer sCount; //扫码实际数量 + private String supId; + private Long relId; + + public String getSupId() { + + if (supId == null) { + return null; + } else if (supId.equals("")) + return null; + return supId; + } + + public Integer getCount() { + + if (count == null) { + return 1; + } + if (count == 0) + return 1; + return count; + } +} diff --git a/src/main/java/com/glxp/api/entity/inout/PdaOrderEntity.java b/src/main/java/com/glxp/api/entity/inout/PdaOrderEntity.java new file mode 100644 index 000000000..36df2b555 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/PdaOrderEntity.java @@ -0,0 +1,23 @@ +package com.glxp.api.entity.inout; + +import lombok.Data; + +@Data +public class PdaOrderEntity { + + private String exportStatus; //导出状态 + private String type; //业务类型 + private String order; //单号 + private String inout; + private String FromCorpID; + private String fromCorp; + private int version; + private String docid; + private String stockCheckFk; + private String supId; + private String fromDeptCode; + private String fromInvCode; + private String deptCode; + private String invCode; + +} diff --git a/src/main/java/com/glxp/api/req/inout/PdaCodeEntity.java b/src/main/java/com/glxp/api/req/inout/PdaCodeEntity.java deleted file mode 100644 index 28fc65654..000000000 --- a/src/main/java/com/glxp/api/req/inout/PdaCodeEntity.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.glxp.api.req.inout; - -import lombok.Data; - -@Data -public class PdaCodeEntity { - private Long id; - private String action; - private String mainAction; - private String code; - private String corpOrderId; - private String actor; - private String actDate; - private String fromCorpId; - private String fromCorp; - private String orderId; - private String batchNo; - private String produceDate; - private String expireDate; - private String serialNo; - private Integer count; //扫码数量 - private Integer reCount; //实际数量 - private String packageLevel; - private String warehouseCode; - - private String customerId; - private String nameCode; - private Integer sCount; - private String supId;//供应商ID - private String supName; - private String invStorageCode; - private String invWarehouseCode; - private String relId; - private Integer status; - private String locStorageCode; - private String fromSubInvCode; - - private String mySupId; - - private int scanCount; - - public String getSupId() { - - if (supId == null) { - return null; - } else if (supId.equals("")) - return null; - return supId; - } - - public Integer getCount() { - - if (count == null) { - return 1; - } - if (count == 0) - return 1; - return count; - } -} diff --git a/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java b/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java index 0770eacb2..eb64de5af 100644 --- a/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java @@ -1,5 +1,7 @@ package com.glxp.api.req.inout; +import com.glxp.api.entity.inout.PdaCodeEntity; +import com.glxp.api.entity.inout.PdaOrderEntity; import lombok.Data; import java.util.List; @@ -32,12 +34,14 @@ public class PostOrderRequest { } public static class PostOrder { + private String bizOrderId; public List erpOrders; List codes; private String billType; private String orderId; private boolean outChangeEnable; private boolean preCheck; + PdaOrderEntity orderBean; public String getStockIdFk() { return stockIdFk; @@ -96,6 +100,22 @@ public class PostOrderRequest { public void setPreCheck(boolean preCheck) { this.preCheck = preCheck; } + + public PdaOrderEntity getOrderBean() { + return orderBean; + } + + public void setOrderBean(PdaOrderEntity orderBean) { + this.orderBean = orderBean; + } + + public String getBizOrderId() { + return bizOrderId; + } + + public void setBizOrderId(String bizOrderId) { + this.bizOrderId = bizOrderId; + } } } diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index 8ac84d907..14f0b71d7 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -91,6 +91,9 @@ public class UdiRelevanceResponse { private String unitFk; //供应商ID private String companyName; //供应商名称 + //手持终端下载需要主键 + private Long relId; + public int getBhzxxsbzsl() { if (bhzxxsbzsl == null || bhzxxsbzsl == 0) { return 1; diff --git a/src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java b/src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java new file mode 100644 index 000000000..14a59a4b5 --- /dev/null +++ b/src/main/java/com/glxp/api/res/inout/PdaBusOrderResponse.java @@ -0,0 +1,13 @@ +package com.glxp.api.res.inout; + +import lombok.Data; + +import java.util.List; + +@Data +public class PdaBusOrderResponse { + + IoOrderResponse orderResponse; + + 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 253a07a31..7efc2050c 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -12,14 +12,11 @@ import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.basic.BasicCorpEntity; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.basic.UdiRlSupEntity; -import com.glxp.api.entity.inout.IoCodeEntity; -import com.glxp.api.entity.inout.IoCodeTempEntity; -import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; -import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inout.*; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.entity.system.SystemParamConfigEntity; import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest; -import com.glxp.api.req.inout.PdaCodeEntity; +import com.glxp.api.entity.inout.PdaCodeEntity; import com.glxp.api.req.inout.PostOrderRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.basic.BasicCorpService; @@ -33,6 +30,7 @@ import com.glxp.api.util.DateUtil; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import com.glxp.api.util.udi.FilterUdiUtils; +import com.glxp.api.util.udi.UdiCalCountUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -314,56 +312,69 @@ public class IoAddInoutService { return ResultVOUtils.success(); } + //手持终端上传生成扫码单据 public void creatOrderByPda(PostOrderRequest postOrderRequest) { List postOrders = postOrderRequest.getPostOrders(); if (postOrders != null && postOrders.size() > 0) { for (int i = 0; i < postOrders.size(); i++) { 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); - BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(pdaCodeEntity.getAction()); - String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(bussinessTypeEntity.getPrefix()), "yyyyMMdd")); - - IoOrderEntity orderSaveRequest = new IoOrderEntity(); - orderSaveRequest.setBillNo(orderNo); if (pdaCodeEntity.getActDate() != null) { orderSaveRequest.setCreateTime(DateUtil.parseDate(pdaCodeEntity.getActDate())); } - orderSaveRequest.setMainAction(pdaCodeEntity.getMainAction()); - orderSaveRequest.setAction(pdaCodeEntity.getAction()); - orderSaveRequest.setCorpOrderId(pdaCodeEntity.getCorpOrderId()); - orderSaveRequest.setFromCorp(pdaCodeEntity.getFromCorpId()); - orderSaveRequest.setOutChangeEnable(postOrder.isOutChangeEnable()); - orderSaveRequest.setCustomerId(postOrderRequest.getCustomerId()); - orderSaveRequest.setFromInvCode(pdaCodeEntity.getFromSubInvCode()); - orderSaveRequest.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); - orderSaveRequest.setDealStatus(ConstantStatus.ORDER_DEAL_POST); - orderSaveRequest.setCreateUser(postOrderRequest.getUserId() + ""); - if (postOrder.getErpOrders() != null && postOrder.getErpOrders().size() > 0) - orderSaveRequest.setFromType(ConstantStatus.FROM_PDAED); - else - orderSaveRequest.setFromType(ConstantStatus.FROM_PDAUN); - orderService.insertOrder(orderSaveRequest); - - //写入条码 - List ioCodeEnttities = new ArrayList<>(); + List ioCodeEnttities = new ArrayList<>(); for (int index = 0; index < pdaCodeEntities.size(); index++) { - pdaCodeEntities.get(index).setOrderId(orderNo); - IoCodeEntity codeEnttity = new IoCodeEntity(); + 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); } - codeService.insertBatch(ioCodeEnttities); + codeTempService.insertBatch(ioCodeEnttities); } + orderService.insertOrder(orderSaveRequest); } } } + @Resource + UdiCalCountUtil udiCalCountUtil; + //校验条码关联供应商 public String checkExitSup(Long relId) { FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); diff --git a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java index dfe4e3dd7..2b2c78742 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -225,7 +225,10 @@ public class IoGenInvService { BeanUtils.copyProperties(orderEntity, outOrder); outOrder.setId(null); outOrder.setSupplementNo(null);//补单需置空 - outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime())); + if (bussinessChangeTypeEntity.getBeforeTime() != null) + outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime())); + else + outOrder.setCreateTime(DateUtil.fromDate(orderEntity)); outOrder.setAction(targetBustypeEntity.getAction()); outOrder.setMainAction(targetBustypeEntity.getMainAction()); diff --git a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml index f05a11b57..139b9594a 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiRelevanceDao.xml @@ -5,6 +5,7 @@ - \ No newline at end of file +