From 8fe7d604e08890f9875e82f38e004636b5eea330 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Tue, 7 Feb 2023 08:57:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E6=B5=81=E7=A8=8B->=E5=BA=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/api/controller/BaseController.java | 4 +- .../inout/IoCodeTempController.java | 2 +- .../glxp/api/dao/inv/InvPreinDetailDao.java | 10 + .../glxp/api/dao/inv/InvPreinOrderDao.java | 9 + .../com/glxp/api/dao/inv/InvProductDao.java | 10 + .../glxp/api/dao/inv/InvProductDetailDao.java | 10 + .../inout/IoOrderDetailResultEntity.java | 4 +- .../glxp/api/entity/inout/IoOrderEntity.java | 8 +- .../api/entity/inv/InvPreinOrderEntity.java | 6 - .../entity/inv/InvProductDetailEntity.java | 17 +- .../glxp/api/entity/inv/InvProductEntity.java | 22 +- .../glxp/api/req/inout/PostOrderRequest.java | 2 +- .../basic/IBasicBusTypePreService.java | 3 + .../impl/BasicBusTypePreServiceImpl.java | 6 + .../api/service/inout/IoAddInoutService.java | 4 - .../service/inout/IoCheckInoutService.java | 131 +++++++- .../api/service/inout/IoGenInvService.java | 282 ++++++++++++++++++ .../service/inv/InvPreinDetailService.java | 14 + .../api/service/inv/InvPreinOrderService.java | 5 + .../service/inv/InvProductDetailService.java | 15 + .../api/service/inv/InvProductService.java | 13 + .../inv/impl/InvPreinDetailServiceImpl.java | 37 +++ .../inv/impl/InvPreinOrderServiceImpl.java | 20 ++ .../inv/impl/InvProductDetailServiceImpl.java | 35 +++ .../inv/impl/InvProductServiceImpl.java | 34 ++- src/main/java/com/glxp/api/util/DateUtil.java | 26 ++ src/main/resources/application-dev.yml | 4 +- 27 files changed, 688 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/glxp/api/dao/inv/InvPreinDetailDao.java create mode 100644 src/main/java/com/glxp/api/dao/inv/InvPreinOrderDao.java create mode 100644 src/main/java/com/glxp/api/dao/inv/InvProductDao.java create mode 100644 src/main/java/com/glxp/api/dao/inv/InvProductDetailDao.java create mode 100644 src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java create mode 100644 src/main/java/com/glxp/api/service/inv/InvProductDetailService.java create mode 100644 src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java create mode 100644 src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java diff --git a/src/main/java/com/glxp/api/controller/BaseController.java b/src/main/java/com/glxp/api/controller/BaseController.java index 2f6630fa4..e8d3fde94 100644 --- a/src/main/java/com/glxp/api/controller/BaseController.java +++ b/src/main/java/com/glxp/api/controller/BaseController.java @@ -38,9 +38,9 @@ public class BaseController { return authAdmin.getId(); } - public Long getCustomerId() { + public String getCustomerId() { AuthAdmin authAdmin = getUser(); - return authAdmin.getCustomerId(); + return authAdmin.getCustomerId() + ""; } } 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 d9627801a..b983e0e80 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -590,7 +590,7 @@ public class IoCodeTempController extends BaseController { orderEntity.setCreateTime(new Date()); orderEntity.setUpdateUser(authAdmin.getId() + ""); orderEntity.setUpdateTime(new Date()); - orderEntity.setCustomerId(authAdmin.getCustomerId()); + orderEntity.setCustomerId(authAdmin.getCustomerId() + ""); orderEntity.setDeptCode(invWarehouseEntity.getParentId()); orderEntity.setInvCode(addOrderRequest.getInvCode()); orderService.insertOrder(orderEntity); diff --git a/src/main/java/com/glxp/api/dao/inv/InvPreinDetailDao.java b/src/main/java/com/glxp/api/dao/inv/InvPreinDetailDao.java new file mode 100644 index 000000000..7ff41b1ea --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InvPreinDetailDao.java @@ -0,0 +1,10 @@ +package com.glxp.api.dao.inv; + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inv.InvPreinDetailEntity; +import com.glxp.api.entity.inv.InvPreinOrderEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface InvPreinDetailDao extends BaseMapperPlus { +} diff --git a/src/main/java/com/glxp/api/dao/inv/InvPreinOrderDao.java b/src/main/java/com/glxp/api/dao/inv/InvPreinOrderDao.java new file mode 100644 index 000000000..f8e5729f1 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InvPreinOrderDao.java @@ -0,0 +1,9 @@ +package com.glxp.api.dao.inv; + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inv.InvPreinOrderEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface InvPreinOrderDao extends BaseMapperPlus { +} diff --git a/src/main/java/com/glxp/api/dao/inv/InvProductDao.java b/src/main/java/com/glxp/api/dao/inv/InvProductDao.java new file mode 100644 index 000000000..52ccf096b --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InvProductDao.java @@ -0,0 +1,10 @@ +package com.glxp.api.dao.inv; + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inv.InvPreinDetailEntity; +import com.glxp.api.entity.inv.InvProductEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface InvProductDao extends BaseMapperPlus { +} diff --git a/src/main/java/com/glxp/api/dao/inv/InvProductDetailDao.java b/src/main/java/com/glxp/api/dao/inv/InvProductDetailDao.java new file mode 100644 index 000000000..ffecafe2b --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inv/InvProductDetailDao.java @@ -0,0 +1,10 @@ +package com.glxp.api.dao.inv; + +import com.glxp.api.dao.BaseMapperPlus; +import com.glxp.api.entity.inv.InvPreinDetailEntity; +import com.glxp.api.entity.inv.InvProductDetailEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface InvProductDetailDao extends BaseMapperPlus { +} diff --git a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java index daab7d3bb..517a78922 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderDetailResultEntity.java @@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import java.io.Serializable; import java.math.BigDecimal; + import lombok.Data; @Data @@ -24,7 +26,7 @@ public class IoOrderDetailResultEntity implements Serializable { * 耗材字典ID外键 */ @TableField(value = "bindRlFk") - private String bindRlFk; + private Long bindRlFk; /** * DI信息UUID外键 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 ef435ecc6..ac40da409 100644 --- a/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inout/IoOrderEntity.java @@ -116,7 +116,7 @@ public class IoOrderEntity implements Serializable { * ID */ @TableField(value = "customerId") - private Long customerId; + private String customerId; /** * 部门编码 @@ -181,5 +181,11 @@ public class IoOrderEntity implements Serializable { @TableField(value = "errMsg") private String errMsg; + @TableField(value = "preOutBillNo") + private String preOutBillNo; + + @TableField(value = "preInBillNo") + private String preInBillNo; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inv/InvPreinOrderEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPreinOrderEntity.java index 56213152e..9038f8eab 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPreinOrderEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPreinOrderEntity.java @@ -20,12 +20,6 @@ public class InvPreinOrderEntity implements Serializable { @TableField(value = "billNo") private String billNo; - /** - * 单据类型 - */ - @TableField(value = "`action`") - private String action; - /** * 往来单位 */ diff --git a/src/main/java/com/glxp/api/entity/inv/InvProductDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvProductDetailEntity.java index 34699c1e8..a622a2de2 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvProductDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvProductDetailEntity.java @@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import java.io.Serializable; import java.util.Date; + import lombok.Data; @Data @@ -48,13 +50,13 @@ public class InvProductDetailEntity implements Serializable { * 生产日期 */ @TableField(value = "produceDate") - private Date produceDate; + private String produceDate; /** * 失效日期 */ @TableField(value = "expireDate") - private Date expireDate; + private String expireDate; /** * 序列号 @@ -66,7 +68,7 @@ public class InvProductDetailEntity implements Serializable { * 供应商 */ @TableField(value = "supId") - private Integer supId; + private String supId; /** * 扫码数量 @@ -78,7 +80,7 @@ public class InvProductDetailEntity implements Serializable { * 实际数量 */ @TableField(value = "reCount") - private String reCount; + private Integer reCount; /** * 部门编码 @@ -108,7 +110,7 @@ public class InvProductDetailEntity implements Serializable { * 采购类型 */ @TableField(value = "purchaseType") - private String purchaseType; + private Integer purchaseType; /** * 更新时间 @@ -116,5 +118,10 @@ public class InvProductDetailEntity implements Serializable { @TableField(value = "updateTime") private Date updateTime; + @TableField(value = "mainAction") + private String mainAction; + @TableField(value = "action") + private String action; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java b/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java index dbd084dcc..a7de38061 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvProductEntity.java @@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import java.io.Serializable; import java.util.Date; + import lombok.Data; @Data @@ -18,7 +20,7 @@ public class InvProductEntity implements Serializable { * 耗材字典ID */ @TableField(value = "relIdFk") - private String relIdFk; + private Long relIdFk; /** * 最小销售标识 @@ -36,25 +38,25 @@ public class InvProductEntity implements Serializable { * 生产日期 */ @TableField(value = "productionDate") - private Date productionDate; + private String productionDate; /** * 失效日期 */ @TableField(value = "expireDate") - private Date expireDate; + private String expireDate; /** * 入库数量 */ @TableField(value = "inCount") - private String inCount; + private Integer inCount; /** * 出库数量 */ @TableField(value = "outCount") - private String outCount; + private Integer outCount; /** * 实际数量 @@ -72,7 +74,7 @@ public class InvProductEntity implements Serializable { * 供应商ID */ @TableField(value = "supId") - private Integer supId; + private String supId; /** * 部门编码 @@ -86,11 +88,19 @@ public class InvProductEntity implements Serializable { @TableField(value = "invCode") private String invCode; + /** + * 创建时间 + */ + @TableField(value = "createTime") + private Date createTime; + + /** * 更新时间 */ @TableField(value = "updateTime") private Date updateTime; + private static final long serialVersionUID = 1L; } \ No newline at end of file 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 cfd419ad9..0770eacb2 100644 --- a/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inout/PostOrderRequest.java @@ -9,7 +9,7 @@ public class PostOrderRequest { List postOrders; int submitType;//0:提交,1:保存 String oldOrderId;//保存再编辑后再保存或提交,根据旧id删除旧数据。 - private Long customerId; + private String customerId; private Long userId; private String wmsUserId; diff --git a/src/main/java/com/glxp/api/service/basic/IBasicBusTypePreService.java b/src/main/java/com/glxp/api/service/basic/IBasicBusTypePreService.java index 4957facc7..75482700b 100644 --- a/src/main/java/com/glxp/api/service/basic/IBasicBusTypePreService.java +++ b/src/main/java/com/glxp/api/service/basic/IBasicBusTypePreService.java @@ -70,4 +70,7 @@ public interface IBasicBusTypePreService { */ List filterBusTypePreResList(FilterBusTypePreRequest filterBusTypePreRequest); + + BasicBusTypePreEntity findByOriginAction(String orginAction); + } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java index 47d2ea0b9..395c60135 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBusTypePreServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.basic.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.BasicBusTypePreDao; import com.glxp.api.entity.basic.BasicBusTypePreEntity; @@ -73,6 +74,11 @@ public class BasicBusTypePreServiceImpl implements IBasicBusTypePreService { return basicBusTypePreDao.selectBusTypePreResList(filterBusTypePreRequest); } + @Override + public BasicBusTypePreEntity findByOriginAction(String orginAction) { + return basicBusTypePreDao.selectOne(new QueryWrapper().eq("originAction", orginAction)); + } + /** * 设置创建/更新信息 * 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 8caef060c..eb0c8a316 100644 --- a/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoAddInoutService.java @@ -95,10 +95,6 @@ public class IoAddInoutService { } } - - - - //校验条码关联供应商 public String checkExitSup(Long relId) { FilterCompanyProductRelevanceRequest filterCompanyProductRelevanceRequest = new FilterCompanyProductRelevanceRequest(); 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 d1383a2bd..dc14b376f 100644 --- a/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java +++ b/src/main/java/com/glxp/api/service/inout/IoCheckInoutService.java @@ -3,15 +3,23 @@ package com.glxp.api.service.inout; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.constant.ConstantType; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.*; +import com.glxp.api.entity.inv.InvPreinDetailEntity; +import com.glxp.api.entity.inv.InvProductDetailEntity; +import com.glxp.api.res.basic.UdiRelevanceResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.service.inv.InvPreinDetailService; +import com.glxp.api.service.inv.InvPreinOrderService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * 校验出入库服务 @@ -33,64 +41,71 @@ public class IoCheckInoutService { IoOrderDetailBizService orderDetailBizService; @Resource IoOrderDetailResultService orderDetailResultService; + @Resource + InvPreinOrderService invPreinOrderService; + @Resource + InvPreinDetailService invPreinDetailService; + @Resource + IoGenInvService genInvService; public void check(String orderId) { IoOrderEntity orderEntity = orderService.findByBillNo(orderId); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); if (!bussinessTypeEntity.isCheckEnable()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); } else { if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) { if (!bussinessTypeEntity.isCheckUdims()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) { if (!bussinessTypeEntity.isCheckWebNew()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) { if (!bussinessTypeEntity.isCheckPdaEd()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) { if (!bussinessTypeEntity.isCheckPdaUn()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) { if (!bussinessTypeEntity.isCheckPc()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) { if (!bussinessTypeEntity.isCheckChange()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) { if (!bussinessTypeEntity.isCheckBalance()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDISP) { if (!bussinessTypeEntity.isCheckSp()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) { if (!bussinessTypeEntity.isCheckCopy()) { - unCheckFinish(orderEntity); + unCheckFirstFinish(orderEntity); return; } } - checkFinish(orderEntity); + checkFirstFinish(orderEntity); } } - public void unCheckFinish(IoOrderEntity orderEntity) { + //一次校验(无需校验)完成 + public void unCheckFirstFinish(IoOrderEntity orderEntity) { List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); @@ -116,12 +131,14 @@ public class IoCheckInoutService { }); - orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); + checkSecond(orderEntity); } - public void checkFinish(IoOrderEntity orderEntity) { + //一次校验完成 + public void checkFirstFinish(IoOrderEntity orderEntity) { List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); List orderDetailBizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo()); @@ -189,7 +206,7 @@ public class IoCheckInoutService { } } - if (StrUtil.isEmpty(errMsg)) { + if (StrUtil.isNotEmpty(errMsg)) { orderEntity.setErrMsg(errMsg + "校验失败"); orderEntity.setStatus(ConstantStatus.ORDER_STATUS_FAIL); orderEntity.setUpdateTime(new Date()); @@ -214,9 +231,93 @@ public class IoCheckInoutService { orderEntity.setStatus(ConstantStatus.ORDER_STATUS_SUCCESS); orderEntity.setUpdateTime(new Date()); orderService.update(orderEntity); + checkSecond(orderEntity); + } + } + + //二次校验 + public void checkSecond(IoOrderEntity orderEntity) { + BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); + if (bussinessTypeEntity.isSecCheckEnable()) { + if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_UDIMS) { + if (!bussinessTypeEntity.isSecCheckUdims()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_WEBNEW) { + if (!bussinessTypeEntity.isSecCheckWebNew()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAED) { + if (!bussinessTypeEntity.isSecCheckPdaEd()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PDAUN) { + if (!bussinessTypeEntity.isSecCheckPdaUn()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PC) { + if (!bussinessTypeEntity.isSecCheckPc()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_CHANGE) { + if (!bussinessTypeEntity.isSecCheckChange()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_PEACE_CHANGE) { + if (!bussinessTypeEntity.isSecCheckBalance()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } else if (orderEntity.getFromType().intValue() == ConstantStatus.FROM_COPY) { + if (!bussinessTypeEntity.isSecCheckCopy()) { + orderEntity.setStatus(ConstantStatus.ORDER_STATUS_RECEIVEED); + } + } + } + if (orderEntity.getStatus() == ConstantStatus.ORDER_STATUS_RECEIVEED) { + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + genInv(orderEntity, bussinessTypeEntity); + } + } + + //校验完成后生成库存 + public void genInv(IoOrderEntity orderEntity, BasicBussinessTypeEntity bussinessTypeEntity) { + + //预验收出库,删掉对应预验收库存 + if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT) && bussinessTypeEntity.isScanPreIn()) { + List codeList = codeService.findByOrderId(orderEntity.getBillNo()); + Map preInOrder = new HashMap<>(); + for (IoCodeEntity warehouseEntity : codeList) { + List invProductDetailEntities = invPreinDetailService.findByCode(warehouseEntity.getCode()); + if (invProductDetailEntities.size() > 0) { + preInOrder.put(invProductDetailEntities.get(0).getOrderId(), invProductDetailEntities.get(0).getOrderId()); + } + } + if (preInOrder.size() > 0) { + String preInBillNo = ""; + for (String key : preInOrder.keySet()) { + preInBillNo = preInBillNo + "," + key; + IoOrderEntity preInEntity = orderService.findByBillNo(key); + preInEntity.setPreOutBillNo(orderEntity.getBillNo()); + orderService.update(preInEntity); + invPreinOrderService.deleteByOrderId(preInEntity.getBillNo()); + invPreinDetailService.deleteByOrderId(preInEntity.getBillNo()); + } + orderEntity.setPreInBillNo(preInBillNo.substring(1)); + orderService.update(orderEntity); + } } + + //生成库存 + if (bussinessTypeEntity.isPreIn()) { + genInvService.genPreInInv(orderEntity.getBillNo()); + } else { + genInvService.genNorInv(orderEntity.getBillNo()); + } + } + public String checkId(IoOrderDetailBizEntity bizEntity, IoOrderDetailCodeEntity codeEntity) { if (bizEntity.getBindRlFk() == codeEntity.getBindRlFk()) { 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 85cfa704d..b3eaa3803 100644 --- a/src/main/java/com/glxp/api/service/inout/IoGenInvService.java +++ b/src/main/java/com/glxp/api/service/inout/IoGenInvService.java @@ -1,10 +1,292 @@ package com.glxp.api.service.inout; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.glxp.api.constant.Constant; +import com.glxp.api.constant.ConstantStatus; +import com.glxp.api.constant.ConstantType; +import com.glxp.api.entity.auth.InvWarehouseEntity; +import com.glxp.api.entity.basic.BasicBusTypePreEntity; +import com.glxp.api.entity.basic.BasicBussinessTypeEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; +import com.glxp.api.entity.inout.IoCodeEntity; +import com.glxp.api.entity.inout.IoCodeTempEntity; +import com.glxp.api.entity.inout.IoOrderDetailResultEntity; +import com.glxp.api.entity.inout.IoOrderEntity; +import com.glxp.api.entity.inv.InvPreinDetailEntity; +import com.glxp.api.entity.inv.InvPreinOrderEntity; +import com.glxp.api.entity.inv.InvProductDetailEntity; +import com.glxp.api.entity.inv.InvProductEntity; +import com.glxp.api.entity.system.SystemParamConfigEntity; +import com.glxp.api.service.auth.InvWarehouseService; +import com.glxp.api.service.basic.IBasicBusTypePreService; +import com.glxp.api.service.basic.IBasicBussinessTypeService; +import com.glxp.api.service.inv.InvPreinDetailService; +import com.glxp.api.service.inv.InvPreinOrderService; +import com.glxp.api.service.inv.InvProductDetailService; +import com.glxp.api.service.inv.InvProductService; +import com.glxp.api.service.system.SystemParamConfigService; +import com.glxp.api.util.CustomUtil; +import com.glxp.api.util.DateUtil; +import com.glxp.api.util.GennerOrderUtils; +import com.glxp.api.util.OrderNoTypeBean; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.*; + @Service public class IoGenInvService { + @Resource + InvProductService invProductService; + @Resource + InvProductDetailService invProductDetailService; + @Resource + InvPreinOrderService invPreinOrderService; + @Resource + InvPreinDetailService invPreinDetailService; + @Resource + IBasicBussinessTypeService basicBussinessTypeService; + @Resource + IoOrderService orderService; + @Resource + IoOrderDetailResultService orderDetailResultService; + @Resource + IoCodeService codeService; + @Resource + IBasicBusTypePreService basicBusTypePreService; + @Resource + GennerOrderUtils gennerOrderUtils; + @Resource + InvWarehouseService invWarehouseService; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + IoCodeTempService codeTempService; + + + //生成普通库存 + public void genNorInv(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + List orderDetailResultEntities = orderDetailResultService.findByOrderId(orderId); + List codeEnttities = codeService.findByOrderId(orderId); + + //生成库存产品表 + List invProductEntities = new ArrayList<>(); + for (IoOrderDetailResultEntity orderDetailResultEntity : orderDetailResultEntities) { + InvProductEntity invProductEntity = invProductService.selectByUnique(orderDetailResultEntity.getBindRlFk(), orderDetailResultEntity.getBatchNo(), orderDetailResultEntity.getSupId(), orderEntity.getDeptCode(), orderEntity.getInvCode()); + if (invProductEntity == null) { + invProductEntity = new InvProductEntity(); + invProductEntity.setRelIdFk(orderDetailResultEntity.getBindRlFk()); + invProductEntity.setNameCode(orderDetailResultEntity.getNameCode()); + invProductEntity.setBatchNo(orderDetailResultEntity.getBatchNo()); + invProductEntity.setProductionDate(orderDetailResultEntity.getProductDate()); + invProductEntity.setExpireDate(orderDetailResultEntity.getExpireDate()); + invProductEntity.setInCount(0); + invProductEntity.setOutCount(0); + invProductEntity.setSupId(orderDetailResultEntity.getSupId()); + invProductEntity.setDeptCode(orderEntity.getDeptCode()); + invProductEntity.setInvCode(orderEntity.getInvCode()); + invProductEntity.setCreateTime(new Date()); + invProductEntity.setUpdateTime(new Date()); + invProductService.insert(invProductEntity); + } + + if (orderEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + invProductEntity.setOutCount(invProductEntity.getOutCount() + orderDetailResultEntity.getReCount()); + } else if (orderEntity.getMainAction().equals(ConstantType.TYPE_PUT)) { + invProductEntity.setInCount(invProductEntity.getInCount() + orderDetailResultEntity.getReCount()); + } + invProductEntity.setUpdateTime(new Date()); + invProductEntities.add(invProductEntity); + } + invProductService.updateBatch(invProductEntities); + + //生成库存码详情 + List invProductDetailEntities = new ArrayList<>(); + for (IoCodeEntity codeEntity : codeEnttities) { + InvProductDetailEntity invProductDetailEntity = new InvProductDetailEntity(); + BeanUtils.copyProperties(codeEntity, invProductDetailEntity); + invProductDetailEntity.setUpdateTime(new Date()); + invProductDetailEntity.setPurchaseType(ConstantStatus.PRUCHASE_COMMON); + invProductDetailEntities.add(invProductDetailEntity); + } + BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); + if (basicBusTypePreEntity != null) { //进行单据流转 + genNewOrder(orderEntity, invProductDetailEntities); + } else { //生成库存结束 + invProductDetailService.insertList(invProductDetailEntities); + } + + + } + + + //生成预验收库存 + public void genPreInInv(String orderId) { + IoOrderEntity orderEntity = orderService.findByBillNo(orderId); + InvPreinOrderEntity invPreinOrderEntity = new InvPreinOrderEntity(); + BeanUtils.copyProperties(orderEntity, invPreinOrderEntity); + invPreinOrderService.insert(invPreinOrderEntity); + + List codeEnttities = codeService.findByOrderId(orderId); + List invPreinDetailEntities = new ArrayList<>(); + codeEnttities.forEach(codeEntity -> + { + InvPreinDetailEntity invPreinDetailEntity = new InvPreinDetailEntity(); + BeanUtils.copyProperties(codeEntity, invPreinDetailEntity); + invPreinDetailEntities.add(invPreinDetailEntity); + }); + + invPreinDetailService.insertList(invPreinDetailEntities); + + } + + + //单据流转 + public void genNewOrder(IoOrderEntity orderEntity, List invProductDetailEntities) { + + BasicBusTypePreEntity basicBusTypePreEntity = basicBusTypePreService.findByOriginAction(orderEntity.getAction()); + List codeEnttities = codeService.findByOrderId(orderEntity.getBillNo()); + if (basicBusTypePreEntity.getSupplementAll()) {//全量补单 + invProductDetailService.insertList(invProductDetailEntities); + buildInOrder(basicBusTypePreEntity, codeEnttities, orderEntity); + } else { //缺量补单 + List inList = new ArrayList<>(); + for (IoCodeEntity warehouseEntity : codeEnttities) { + Integer invCount = getInvCount(warehouseEntity); + Integer count = warehouseEntity.getReCount(); + if (invCount > 0) {//仓库已存在该产品 + if (count > invCount) { //当前数量>结余数量,说明该产品是无序列号或者是多级包装 + if (count > invCount) { //该产品实际数量大于结余数量,说明是多级包装,直接补 + inList.add(warehouseEntity); + } else if (warehouseEntity.getSerialNo() == null) { //无序列号(多级包装无序列号的已在上一步被排除),补齐数量 + int lea = count - invCount; + warehouseEntity.setCount(lea / (count)); // + inList.add(warehouseEntity); + } + } + } else { //结余数量《=0直接补 + inList.add(warehouseEntity); + } + InvProductDetailEntity invProductDetailEntity = filterInvByCode(invProductDetailEntities, warehouseEntity.getCode()); + invProductDetailService.insert(invProductDetailEntity); + } + buildInOrder(basicBusTypePreEntity, inList, orderEntity); + } + } + + + public InvProductDetailEntity filterInvByCode(List invProductDetailEntities, String + code) { + for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { + if (invProductDetailEntity.getCode().equals(code)) { + return invProductDetailEntity; + } + } + return null; + } + + + //生成单据 + public void buildInOrder(BasicBusTypePreEntity bussinessChangeTypeEntity, List useInList, IoOrderEntity orderEntity) { + if (useInList.size() <= 0) { + return; + } + Map> filterSupMaps = new HashMap<>(); + BasicBussinessTypeEntity targetBustypeEntity = basicBussinessTypeService.findByAction(bussinessChangeTypeEntity.getAction()); + //过滤供应商 + if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + for (IoCodeEntity warehouseEntity : useInList) { + if (warehouseEntity.getSupId() != null) { + if (filterSupMaps.get(warehouseEntity.getSupId()) == null) { + List temps = new ArrayList<>(); + temps.add(warehouseEntity); + filterSupMaps.put(warehouseEntity.getSupId(), temps); + } else { + filterSupMaps.get(warehouseEntity.getSupId()).add(warehouseEntity); + } + } + } + } else { + filterSupMaps.put(bussinessChangeTypeEntity.getDefaultInvCode(), useInList); + } + //根据往来单位生成入库单 + for (String corpName : filterSupMaps.keySet()) { + List temps; + temps = filterSupMaps.get(corpName); + IoOrderEntity outOrder = new IoOrderEntity(); + BeanUtils.copyProperties(orderEntity, outOrder); + outOrder.setSupplementNo(null);//补单需置空 + outOrder.setCreateTime(DateUtil.getBeforeDay(DateUtil.fromDate(orderEntity), bussinessChangeTypeEntity.getBeforeTime())); + outOrder.setAction(targetBustypeEntity.getAction()); + outOrder.setMainAction(targetBustypeEntity.getMainAction()); + + outOrder.setFromType(ConstantStatus.FROM_CHANGE); + String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trimToEmpty(targetBustypeEntity.getPrefix()), "yyyyMMdd")); + outOrder.setBillNo(orderNo); + + if (targetBustypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_OUT) { + outOrder.setCustomerId(corpName); + outOrder.setFromCorp(corpName); + } else { + outOrder.setCustomerId(Constant.SYSTEM_CUSTOMER_ID); + outOrder.setFromInvCode(bussinessChangeTypeEntity.getDefaultInvCode()); + } + outOrder.setCorpOrderId(CustomUtil.getId() + "x"); + InvWarehouseEntity invWarehouseEntity = invWarehouseService.findByInvSubByCode(bussinessChangeTypeEntity.getInvCode()); + outOrder.setInvCode(invWarehouseEntity.getCode()); + outOrder.setDeptCode(invWarehouseEntity.getParentId()); + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("additional_auto_submit"); + if ("1".equals(systemParamConfigEntity.getParamValue())) { + outOrder.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); + } else { + outOrder.setStatus(ConstantStatus.ORDER_STATUS_ADDITIONAL); + } + + //互填单号 + orderEntity.setUllageSupNo(outOrder.getBillNo()); + orderEntity.setUpdateTime(new Date()); + orderService.update(orderEntity); + outOrder.setOriginUllageSupNo(orderEntity.getBillNo()); + outOrder.setCreateUser(null); + outOrder.setReviewUser(null); + orderService.insertOrder(outOrder); + List codeTempEntities = new ArrayList<>(); + for (IoCodeEntity warehouseEntity : temps) { + IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); + BeanUtils.copyProperties(warehouseEntity, codeTempEntity); + codeTempEntity.setOrderId(outOrder.getBillNo()); + codeTempEntity.setId(null); + codeTempEntity.setAction(outOrder.getAction()); + codeTempEntity.setMainAction(outOrder.getMainAction()); + codeTempEntities.add(codeTempEntity); + } + codeTempService.insertBatch(codeTempEntities); + } + } + + + //计算当前库存数量 + public int getInvCount(IoCodeEntity codeEntity) { + + List resultLists = invProductDetailService.selectByUnique(codeEntity.getRelId(), codeEntity.getBatchNo(), codeEntity.getSupId(), codeEntity.getDeptCode(), codeEntity.getInvCode()); + int invCount = 0; + if (CollUtil.isNotEmpty(resultLists)) { + for (InvProductDetailEntity invProductDetailEntity : resultLists) { + if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) { + invCount = invCount - invProductDetailEntity.getCount(); + } else { + invCount = invCount + invProductDetailEntity.getCount(); + } + } + } + return invCount; + } + + } diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java new file mode 100644 index 000000000..e25acc084 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/InvPreinDetailService.java @@ -0,0 +1,14 @@ +package com.glxp.api.service.inv; + +import com.glxp.api.entity.inv.InvPreinDetailEntity; + +import java.util.List; + +public interface InvPreinDetailService { + + public void insertList(List invPreinDetailEntities); + + List findByCode(String code); + + int deleteByOrderId(String orderId); +} diff --git a/src/main/java/com/glxp/api/service/inv/InvPreinOrderService.java b/src/main/java/com/glxp/api/service/inv/InvPreinOrderService.java index 57196a302..4b698e659 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPreinOrderService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPreinOrderService.java @@ -1,5 +1,10 @@ package com.glxp.api.service.inv; +import com.glxp.api.entity.inv.InvPreinOrderEntity; + public interface InvPreinOrderService { + public void insert(InvPreinOrderEntity invPreinOrderEntity); + + int deleteByOrderId(String orderId); } diff --git a/src/main/java/com/glxp/api/service/inv/InvProductDetailService.java b/src/main/java/com/glxp/api/service/inv/InvProductDetailService.java new file mode 100644 index 000000000..fa4fa6bc9 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/InvProductDetailService.java @@ -0,0 +1,15 @@ +package com.glxp.api.service.inv; + +import com.glxp.api.entity.inv.InvProductDetailEntity; +import com.glxp.api.entity.inv.InvProductEntity; + +import java.util.List; + +public interface InvProductDetailService { + + int insert(InvProductDetailEntity invProductDetailEntity); + + List selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode); + + boolean insertList(List invProductDetailEntities); +} diff --git a/src/main/java/com/glxp/api/service/inv/InvProductService.java b/src/main/java/com/glxp/api/service/inv/InvProductService.java index 408f51730..b3c9d086d 100644 --- a/src/main/java/com/glxp/api/service/inv/InvProductService.java +++ b/src/main/java/com/glxp/api/service/inv/InvProductService.java @@ -1,5 +1,18 @@ package com.glxp.api.service.inv; +import com.glxp.api.entity.inv.InvProductEntity; + +import java.util.List; + public interface InvProductService { + int insert(InvProductEntity invProductEntity); + + int update(InvProductEntity invProductEntity); + + + boolean updateBatch(List invProductEntities); + + InvProductEntity selectByUnique(Long relId, String batchNo, String supId, String deptCode, String invCode); + } diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java new file mode 100644 index 000000000..25afaa9bc --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreinDetailServiceImpl.java @@ -0,0 +1,37 @@ +package com.glxp.api.service.inv.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.inv.InvPreinDetailDao; +import com.glxp.api.dao.inv.InvPreinOrderDao; +import com.glxp.api.entity.inv.InvPreinDetailEntity; +import com.glxp.api.service.inv.InvPreinDetailService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class InvPreinDetailServiceImpl implements InvPreinDetailService { + + @Resource + InvPreinDetailDao invPreinDetailDao; + + @Override + public void insertList(List invPreinDetailEntities) { + invPreinDetailDao.insertBatch(invPreinDetailEntities); + } + + @Override + public List findByCode(String code) { + return invPreinDetailDao.selectList(new QueryWrapper().eq("code", code)); + } + + @Override + public int deleteByOrderId(String orderId) { + return invPreinDetailDao.delete(new QueryWrapper().eq("orderIdFk", orderId)); + } + + +} diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPreinOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPreinOrderServiceImpl.java index 716b144a3..f7114aef3 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPreinOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPreinOrderServiceImpl.java @@ -1,8 +1,28 @@ package com.glxp.api.service.inv.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.inv.InvPreinOrderDao; +import com.glxp.api.entity.inv.InvPreinOrderEntity; import com.glxp.api.service.inv.InvPreinOrderService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; @Service +@Transactional(rollbackFor = Exception.class) public class InvPreinOrderServiceImpl implements InvPreinOrderService { + @Resource + InvPreinOrderDao invPreinOrderDao; + + @Override + public void insert(InvPreinOrderEntity invPreinOrderEntity) { + invPreinOrderDao.insert(invPreinOrderEntity); + } + + @Override + public int deleteByOrderId(String orderId) { + return invPreinOrderDao.delete(new QueryWrapper().eq("orderId", orderId)); + } + } 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 new file mode 100644 index 000000000..c64b60785 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inv/impl/InvProductDetailServiceImpl.java @@ -0,0 +1,35 @@ +package com.glxp.api.service.inv.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.inv.InvProductDetailDao; +import com.glxp.api.entity.inv.InvProductDetailEntity; +import com.glxp.api.entity.inv.InvProductEntity; +import com.glxp.api.service.inv.InvProductDetailService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +@Service +@Transactional(rollbackFor = Exception.class) +public class InvProductDetailServiceImpl implements InvProductDetailService { + + @Resource + InvProductDetailDao invProductDetailDao; + + @Override + public int insert(InvProductDetailEntity invProductDetailEntity) { + return invProductDetailDao.insert(invProductDetailEntity); + } + + @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)); + } + + @Override + public boolean insertList(List invProductDetailEntities) { + return invProductDetailDao.insertBatch(invProductDetailEntities); + } +} 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 d6200d703..aa34ae08e 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,8 +1,40 @@ package com.glxp.api.service.inv.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.glxp.api.dao.inv.InvProductDao; +import com.glxp.api.entity.inv.InvProductEntity; import com.glxp.api.service.inv.InvProductService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; @Service +@Transactional(rollbackFor = Exception.class) public class InvProductServiceImpl implements InvProductService { -} + + @Resource + InvProductDao invProductDao; + + @Override + public int insert(InvProductEntity invProductEntity) { + return invProductDao.insert(invProductEntity); + } + + @Override + public int update(InvProductEntity invProductEntity) { + return invProductDao.updateById(invProductEntity); + } + + @Override + public boolean updateBatch(List invProductEntities) { + return invProductDao.updateBatchById(invProductEntities); + } + + @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)); + } + +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/util/DateUtil.java b/src/main/java/com/glxp/api/util/DateUtil.java index 42f00c8c1..7843e85d8 100644 --- a/src/main/java/com/glxp/api/util/DateUtil.java +++ b/src/main/java/com/glxp/api/util/DateUtil.java @@ -1,5 +1,6 @@ package com.glxp.api.util; +import com.glxp.api.entity.inout.IoOrderEntity; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.lang3.time.FastDateFormat; @@ -544,6 +545,20 @@ public class DateUtil extends DateUtils { return null; } + + public static Date getBeforeDay(Date actDate, int hour) { + try { + long time = actDate.getTime(); + long move = hour * 1000 * 60 * 60; + time = time - move; + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return new Date(time); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + public static String formatExpireTime(String str) { try { Date date = DateUtil.parseDate(str, "yyyyMMdd"); @@ -553,4 +568,15 @@ public class DateUtil extends DateUtils { } return str; } + + + public static Date fromDate(IoOrderEntity orderEntity) { + Date time = null; + if (orderEntity.getAuditTime() != null) { + time = orderEntity.getAuditTime(); + } else { + time = orderEntity.getCreateTime(); + } + return time; + } } \ No newline at end of file diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index c7e9cd220..97fee7870 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -4,9 +4,9 @@ server: spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver - jdbc-url: jdbc:p6spy:mysql://127.0.0.1:3306/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true + jdbc-url: jdbc:p6spy:mysql://192.168.0.66:3364/udi_wms?allowMultiQueries=true&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true username: root - password: 123456 + password: Glxp@6066 hikari: connection-timeout: 60000 maximum-pool-size: 60