From 1071b496ddba9a33bfcbe01185a891515de03a7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=91=E6=98=8E=E6=A2=81?= <2429105222@qq.com> Date: Sat, 6 May 2023 16:16:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=B4=A8=E6=91=86=E6=94=BE=E6=8C=89?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/inv/InvPlaceController.java | 29 +++- .../inv/InvPreInProductDetailEntity.java | 8 +- .../req/inv/FilterInvPlaceOrderRequest.java | 11 +- .../glxp/api/res/inv/BindInvSpaceRequest.java | 2 + .../api/service/inv/InvPlaceOrderService.java | 3 + .../glxp/api/service/inv/InvPlaceService.java | 7 + .../inv/impl/InvPlaceOrderServiceImpl.java | 130 +++++++++++++++++- .../service/inv/impl/InvPlaceServiceImpl.java | 45 ++++++ 8 files changed, 227 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/glxp/api/controller/inv/InvPlaceController.java b/src/main/java/com/glxp/api/controller/inv/InvPlaceController.java index a904b35ca..7002f7c29 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPlaceController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPlaceController.java @@ -65,6 +65,20 @@ public class InvPlaceController { return invPlaceService.bindInvSpace(bindInvSpaceRequest); } + /** + * 绑定货位接口 + * + * @param bindInvSpaceRequest + * @return + */ + @PostMapping("/spms/inv/product/bindInvOrderSpace") + public BaseResponse bindInvOrderSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) { + if (null == bindInvSpaceRequest) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return invPlaceService.bindInvOrderSpace(bindInvSpaceRequest); + } + /** * 更换货位接口 @@ -95,7 +109,7 @@ public class InvPlaceController { } /** - * 查询库存产品信息 + * 按物资 * * @param bindInvSpaceRequest * @return @@ -114,6 +128,19 @@ public class InvPlaceController { } + + + /** + * 按单号 + * + * @param bindInvSpaceRequest + * @return + */ + @GetMapping("/spms/inv/product/getInvProductOrderInfo") + private BaseResponse getInvProductOrderInfo(BindInvSpaceRequest bindInvSpaceRequest) { + return invPlaceOrderService.bindInvSpaceAll(bindInvSpaceRequest); + } + /** * 从库存详情查询单据列表 * diff --git a/src/main/java/com/glxp/api/entity/inv/InvPreInProductDetailEntity.java b/src/main/java/com/glxp/api/entity/inv/InvPreInProductDetailEntity.java index 5690fe4b3..b465b09a1 100644 --- a/src/main/java/com/glxp/api/entity/inv/InvPreInProductDetailEntity.java +++ b/src/main/java/com/glxp/api/entity/inv/InvPreInProductDetailEntity.java @@ -87,20 +87,20 @@ public class InvPreInProductDetailEntity { * 扫码数量 */ @TableField(value = "`count`") - private int count; + private Integer count; /** * 实际数量 */ @TableField(value = "reCount") - private int reCount; + private Integer reCount; @TableField(value = "inCount") - private int inCount; + private Integer inCount; @TableField(value = "outCount") - private int outCount; + private Integer outCount; /** diff --git a/src/main/java/com/glxp/api/req/inv/FilterInvPlaceOrderRequest.java b/src/main/java/com/glxp/api/req/inv/FilterInvPlaceOrderRequest.java index 1a460fab4..7a444e1c6 100644 --- a/src/main/java/com/glxp/api/req/inv/FilterInvPlaceOrderRequest.java +++ b/src/main/java/com/glxp/api/req/inv/FilterInvPlaceOrderRequest.java @@ -4,7 +4,7 @@ import com.glxp.api.util.page.ListPageRequest; import lombok.Data; /** - * 物资上架记录接口查询参数 + * 库存摆放接口参数 */ @Data public class FilterInvPlaceOrderRequest extends ListPageRequest { @@ -29,4 +29,13 @@ public class FilterInvPlaceOrderRequest extends ListPageRequest { private String zczbhhzbapzbh; + + private Long relId; + private String supId; + private String produceDate; + private String expireDate; + private String serialNo; + private int count; + + } diff --git a/src/main/java/com/glxp/api/res/inv/BindInvSpaceRequest.java b/src/main/java/com/glxp/api/res/inv/BindInvSpaceRequest.java index 77ce9bedb..f4a886925 100644 --- a/src/main/java/com/glxp/api/res/inv/BindInvSpaceRequest.java +++ b/src/main/java/com/glxp/api/res/inv/BindInvSpaceRequest.java @@ -50,6 +50,8 @@ public class BindInvSpaceRequest { */ private String orderId; + private String oId; + private String changeSpaceCode; diff --git a/src/main/java/com/glxp/api/service/inv/InvPlaceOrderService.java b/src/main/java/com/glxp/api/service/inv/InvPlaceOrderService.java index 85b645161..42f5abd70 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPlaceOrderService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPlaceOrderService.java @@ -24,6 +24,9 @@ public interface InvPlaceOrderService { //单条绑定货位 BaseResponse bindInvSpaceOne(BindInvSpaceRequest bindInvSpaceRequest); + //批量绑定货位 + BaseResponse bindInvSpaceAll(BindInvSpaceRequest bindInvSpaceRequest); + List filterInvPlaceOrderDetailList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest); } diff --git a/src/main/java/com/glxp/api/service/inv/InvPlaceService.java b/src/main/java/com/glxp/api/service/inv/InvPlaceService.java index e42751e78..44358651c 100644 --- a/src/main/java/com/glxp/api/service/inv/InvPlaceService.java +++ b/src/main/java/com/glxp/api/service/inv/InvPlaceService.java @@ -29,6 +29,13 @@ public interface InvPlaceService { */ BaseResponse bindInvSpace(BindInvSpaceRequest bindInvSpaceRequest); + /** + * 绑定货位 + * + * @param bindInvSpaceRequest + */ + BaseResponse bindInvOrderSpace(BindInvSpaceRequest bindInvSpaceRequest); + /** * 更换货位 diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java index a18dd2411..b2604af42 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceOrderServiceImpl.java @@ -30,6 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; @@ -187,7 +188,7 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId()); invPlaceOrderDetailEntity.setRecordId(recordId); invPlaceOrderDetailEntity.setBatchNo(batchNo); - invPlaceOrderDetailEntity.setRelId(relId+""); + invPlaceOrderDetailEntity.setRelId(relId + ""); invPlaceOrderDetailEntity.setNameCode(nameCode); invPlaceOrderDetailEntity.setExpireDate(expireDate); invPlaceOrderDetailEntity.setProduceDate(produceDate); @@ -215,7 +216,7 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { invPlaceOrderDetailEntity.setRecordId(bindInvSpaceRequest.getOrderId()); invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode()); invPlaceOrderDetailEntity.setBatchNo(batchNo); - invPlaceOrderDetailEntity.setRelId(relId+""); + invPlaceOrderDetailEntity.setRelId(relId + ""); invPlaceOrderDetailEntity.setNameCode(nameCode); invPlaceOrderDetailEntity.setExpireDate(expireDate); invPlaceOrderDetailEntity.setProduceDate(produceDate); @@ -232,6 +233,131 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { return ResultVOUtils.success(recordId); } + @Override + public BaseResponse bindInvSpaceAll(BindInvSpaceRequest bindInvSpaceRequest) { + + List filterInvPlaceOrderRequestList = new ArrayList<>(); + InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper().eq("code", bindInvSpaceRequest.getInvCode())); + if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("orderId", bindInvSpaceRequest.getOId()); + ew.eq("mainAction", "WareHouseIn"); + List invPreInProductDetailEntityList = invPreInProductDetailDao.selectList(ew); + if (invPreInProductDetailEntityList.size() == 0) { + return ResultVOUtils.error(999, "该单号不存在可以上架产品!"); + } + for (InvPreInProductDetailEntity invPreInProductDetailEntity : invPreInProductDetailEntityList) { + FilterInvPlaceOrderRequest filterInvPlaceOrderRequest = new FilterInvPlaceOrderRequest(); + filterInvPlaceOrderRequest.setBatchNo(invPreInProductDetailEntity.getBatchNo()); + filterInvPlaceOrderRequest.setCount(invPreInProductDetailEntity.getReCount()); + filterInvPlaceOrderRequest.setExpireDate(invPreInProductDetailEntity.getExpireDate()); + filterInvPlaceOrderRequest.setRelId(invPreInProductDetailEntity.getRelId()); + filterInvPlaceOrderRequest.setNameCode(invPreInProductDetailEntity.getNameCode()); + filterInvPlaceOrderRequest.setSerialNo(invPreInProductDetailEntity.getSerialNo()); + filterInvPlaceOrderRequest.setProduceDate(invPreInProductDetailEntity.getProduceDate()); + filterInvPlaceOrderRequest.setSupId(invPreInProductDetailEntity.getSupId()); + filterInvPlaceOrderRequest.setCode(invPreInProductDetailEntity.getCode()); + filterInvPlaceOrderRequestList.add(filterInvPlaceOrderRequest); + } + + } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("orderId", bindInvSpaceRequest.getOId()); + ew.eq("mainAction", "WareHouseIn"); + List invPreProductDetailEntityList = invPreProductDetailDao.selectList(ew); + for (InvPreProductDetailEntity invPreProductDetailEntity : invPreProductDetailEntityList) { + FilterInvPlaceOrderRequest filterInvPlaceOrderRequest = new FilterInvPlaceOrderRequest(); + filterInvPlaceOrderRequest.setBatchNo(invPreProductDetailEntity.getBatchNo()); + filterInvPlaceOrderRequest.setExpireDate(invPreProductDetailEntity.getExpireDate()); + filterInvPlaceOrderRequest.setRelId(invPreProductDetailEntity.getRelId()); + filterInvPlaceOrderRequest.setNameCode(invPreProductDetailEntity.getNameCode()); + filterInvPlaceOrderRequest.setSerialNo(invPreProductDetailEntity.getSerialNo()); + filterInvPlaceOrderRequest.setProduceDate(invPreProductDetailEntity.getProduceDate()); + filterInvPlaceOrderRequest.setCount(invPreProductDetailEntity.getReCount()); + filterInvPlaceOrderRequest.setSupId(invPreProductDetailEntity.getSupId()); + filterInvPlaceOrderRequest.setCode(invPreProductDetailEntity.getCode()); + filterInvPlaceOrderRequestList.add(filterInvPlaceOrderRequest); + } + } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) { + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("orderId", bindInvSpaceRequest.getOId()); + ew.eq("mainAction", "WareHouseIn"); + List invProductDetailEntityList = invProductDetailDao.selectList(ew); + for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntityList) { + FilterInvPlaceOrderRequest filterInvPlaceOrderRequest = new FilterInvPlaceOrderRequest(); + filterInvPlaceOrderRequest.setBatchNo(invProductDetailEntity.getBatchNo()); + filterInvPlaceOrderRequest.setExpireDate(invProductDetailEntity.getExpireDate()); + filterInvPlaceOrderRequest.setRelId(invProductDetailEntity.getRelId()); + filterInvPlaceOrderRequest.setNameCode(invProductDetailEntity.getNameCode()); + filterInvPlaceOrderRequest.setCount(invProductDetailEntity.getReCount()); + filterInvPlaceOrderRequest.setSerialNo(invProductDetailEntity.getSerialNo()); + filterInvPlaceOrderRequest.setProduceDate(invProductDetailEntity.getProduceDate()); + filterInvPlaceOrderRequest.setSupId(invProductDetailEntity.getSupId()); + filterInvPlaceOrderRequest.setCode(invProductDetailEntity.getCode()); + filterInvPlaceOrderRequestList.add(filterInvPlaceOrderRequest); + } + } + + + //判断是不是第一次进行添加 是就插入一条主表 + String recordId = ""; + if (StrUtil.isEmpty(bindInvSpaceRequest.getOrderId())) { + //操作人ID + String userId = customerService.getUserIdStr(); + + recordId = gennerOrderUtils.createInvPlaceOrderNo(new OrderNoTypeBean(Constant.INV_PLACE_ORDER, "yyyyMMdd")); + InvPlaceOrderEntity orderEntity = new InvPlaceOrderEntity(); + orderEntity.setId(IdUtil.getSnowflakeNextId()); + orderEntity.setRecordId(recordId); + orderEntity.setType(2); + orderEntity.setOrderId(bindInvSpaceRequest.getOId()); + orderEntity.setCreateUser(userId); + orderEntity.setCreateTime(new Date()); + orderEntity.setUpdateTime(new Date()); + invPlaceOrderDao.insert(orderEntity); + //插入附表 + for (FilterInvPlaceOrderRequest filterInvPlaceOrderRequest : filterInvPlaceOrderRequestList) { + InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity(); + invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId()); + invPlaceOrderDetailEntity.setRecordId(recordId); + invPlaceOrderDetailEntity.setBatchNo(filterInvPlaceOrderRequest.getBatchNo()); + invPlaceOrderDetailEntity.setCode(filterInvPlaceOrderRequest.getCode()); + invPlaceOrderDetailEntity.setRelId(filterInvPlaceOrderRequest.getRelId()+""); + invPlaceOrderDetailEntity.setNameCode(filterInvPlaceOrderRequest.getNameCode()); + invPlaceOrderDetailEntity.setExpireDate(filterInvPlaceOrderRequest.getExpireDate()); + invPlaceOrderDetailEntity.setProduceDate(filterInvPlaceOrderRequest.getProduceDate()); + invPlaceOrderDetailEntity.setSupId(filterInvPlaceOrderRequest.getSupId()); + invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode()); + invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + invPlaceOrderDetailEntity.setSerialNo(filterInvPlaceOrderRequest.getSerialNo()); + invPlaceOrderDetailEntity.setCount(filterInvPlaceOrderRequest.getCount()); + invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity); + } + } else { + //插入附表 + for (FilterInvPlaceOrderRequest filterInvPlaceOrderRequest : filterInvPlaceOrderRequestList) { + InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity(); + invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId()); + invPlaceOrderDetailEntity.setRecordId(recordId); + invPlaceOrderDetailEntity.setCode(filterInvPlaceOrderRequest.getCode()); + invPlaceOrderDetailEntity.setBatchNo(filterInvPlaceOrderRequest.getBatchNo()); + invPlaceOrderDetailEntity.setRelId(filterInvPlaceOrderRequest.getRelId()+""); + invPlaceOrderDetailEntity.setNameCode(filterInvPlaceOrderRequest.getNameCode()); + invPlaceOrderDetailEntity.setExpireDate(filterInvPlaceOrderRequest.getExpireDate()); + invPlaceOrderDetailEntity.setProduceDate(filterInvPlaceOrderRequest.getProduceDate()); + invPlaceOrderDetailEntity.setSupId(filterInvPlaceOrderRequest.getSupId()); + invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode()); + invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + invPlaceOrderDetailEntity.setSerialNo(filterInvPlaceOrderRequest.getSerialNo()); + invPlaceOrderDetailEntity.setCount(filterInvPlaceOrderRequest.getCount()); + invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity); + } + } + + + return ResultVOUtils.success(recordId); + } + @Override public List filterInvPlaceOrderDetailList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest) { if (null == filterInvPlaceOrderRequest) { diff --git a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java index a34a29ba6..e2ae4ed33 100644 --- a/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java +++ b/src/main/java/com/glxp/api/service/inv/impl/InvPlaceServiceImpl.java @@ -260,6 +260,51 @@ public class InvPlaceServiceImpl implements InvPlaceService { return ResultVOUtils.success(); } + + @Override + public BaseResponse bindInvOrderSpace(BindInvSpaceRequest bindInvSpaceRequest) { + //查询仓库的部门ID +// String deptCode = invWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode()); + InvWarehouseEntity invWarehouseEntity = invWarehouseDao.filterGroupInvSubAndcode(bindInvSpaceRequest.getInvCode()); + List invPlaceOrderDetailEntityList=new ArrayList<>(); + + if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) { + invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderId",bindInvSpaceRequest.getOId()); + InvPreInProductDetailEntity invPreInProductDetailEntity=new InvPreInProductDetailEntity(); + invPreInProductDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + invPreInProductDetailDao.update(invPreInProductDetailEntity,ew); + + } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) { + + invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderId",bindInvSpaceRequest.getOId()); + InvPreProductDetailEntity invPreProductDetailEntity=new InvPreProductDetailEntity(); + invPreProductDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + invPreProductDetailDao.update(invPreProductDetailEntity,ew); + + + } else { + invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper().eq("recordId",bindInvSpaceRequest.getOrderId())); + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("orderId",bindInvSpaceRequest.getOId()); + InvProductDetailEntity invProductDetailEntity=new InvProductDetailEntity(); + invProductDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + invProductDetailDao.update(invProductDetailEntity,ew); + + } + int total = invPlaceOrderDetailEntityList.stream().mapToInt(InvPlaceOrderDetailEntity::getCount).sum(); + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("recordId",bindInvSpaceRequest.getOrderId()); + InvPlaceOrderEntity invPlaceOrderEntity=new InvPlaceOrderEntity(); + invPlaceOrderEntity.setRecordId(bindInvSpaceRequest.getOrderId()); + invPlaceOrderEntity.setCount(total); + invPlaceOrderDao.update(invPlaceOrderEntity,ew); + return ResultVOUtils.success(); + } + @Override public BaseResponse changeInvSpace(BindInvSpaceRequest bindInvSpaceRequest) { //查询仓库的部门ID