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 7002f7c29..d879b7a03 100644 --- a/src/main/java/com/glxp/api/controller/inv/InvPlaceController.java +++ b/src/main/java/com/glxp/api/controller/inv/InvPlaceController.java @@ -80,6 +80,21 @@ public class InvPlaceController { } + /** + * 变更货位绑定货位接口 + * + * @param bindInvSpaceRequest + * @return + */ + @PostMapping("/spms/inv/product/bindCheckInvSpace") + public BaseResponse bindCheckInvSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) { + if (null == bindInvSpaceRequest) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + return invPlaceService.bindInvSpace(bindInvSpaceRequest); + } + + /** * 更换货位接口 * @@ -141,6 +156,25 @@ public class InvPlaceController { return invPlaceOrderService.bindInvSpaceAll(bindInvSpaceRequest); } + /** + * 变更货位 + * + * @param bindInvSpaceRequest + * @return + */ + @GetMapping("/spms/inv/product/getCheckInvProductInfo") + private BaseResponse getCheckInvProductInfo(BindInvSpaceRequest bindInvSpaceRequest) { + //判断有没有库存 + String msg=invPlaceService.checkCount(bindInvSpaceRequest); + if(StrUtil.isEmpty(msg)){ + //有库存做插入货位号 + return invPlaceOrderService.bindInvSpaceOne(bindInvSpaceRequest); + }else{ + return ResultVOUtils.error(500, msg); + } + + } + /** * 从库存详情查询单据列表 * 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 f4a886925..d549c103d 100644 --- a/src/main/java/com/glxp/api/res/inv/BindInvSpaceRequest.java +++ b/src/main/java/com/glxp/api/res/inv/BindInvSpaceRequest.java @@ -41,7 +41,7 @@ public class BindInvSpaceRequest { private String code; /** - * 上架方式 1:按物资上架 2:按单上架 + * 上架方式 1:按物资上架 2:按单上架 3:变更货位 */ private Integer type; 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 b2604af42..913172bf7 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 @@ -129,6 +129,9 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) { QueryWrapper ew = new QueryWrapper<>(); ew.eq("code", bindInvSpaceRequest.getCode()); + if(bindInvSpaceRequest.getType()==3){ + ew.eq("invSpaceCode",bindInvSpaceRequest.getInvSpaceCode()); + } ew.last("limit 1"); InvPreInProductDetailEntity invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew); relId = invPreInProductDetailEntity.getRelId(); @@ -141,6 +144,9 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) { QueryWrapper ew = new QueryWrapper<>(); ew.eq("code", bindInvSpaceRequest.getCode()); + if(bindInvSpaceRequest.getType()==3){ + ew.eq("invSpaceCode",bindInvSpaceRequest.getInvSpaceCode()); + } ew.last("limit 1"); InvPreProductDetailEntity invPreInProductDetailEntity = invPreProductDetailDao.selectOne(ew); relId = invPreInProductDetailEntity.getRelId(); @@ -153,6 +159,9 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) { QueryWrapper ew = new QueryWrapper<>(); ew.eq("code", bindInvSpaceRequest.getCode()); + if(bindInvSpaceRequest.getType()==3){ + ew.eq("invSpaceCode",bindInvSpaceRequest.getInvSpaceCode()); + } ew.last("limit 1"); InvProductDetailEntity invPreInProductDetailEntity = invProductDetailDao.selectOne(ew); relId = invPreInProductDetailEntity.getRelId(); @@ -194,7 +203,11 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { invPlaceOrderDetailEntity.setProduceDate(produceDate); invPlaceOrderDetailEntity.setSupId(supId); invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode()); - invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + if(bindInvSpaceRequest.getType()==3){ + invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getChangeSpaceCode()); + }else{ + invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + } invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode()); invPlaceOrderDetailEntity.setSerialNo(serialNo); invPlaceOrderDetailEntity.setCount(1); @@ -221,7 +234,11 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService { invPlaceOrderDetailEntity.setExpireDate(expireDate); invPlaceOrderDetailEntity.setProduceDate(produceDate); invPlaceOrderDetailEntity.setSupId(supId); - invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + if(bindInvSpaceRequest.getType()==3){ + invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getChangeSpaceCode()); + }else{ + invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode()); + } invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode()); invPlaceOrderDetailEntity.setCount(1); invPlaceOrderDetailEntity.setSerialNo(serialNo); 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 e2ae4ed33..364c7f176 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 @@ -83,7 +83,6 @@ public class InvPlaceServiceImpl implements InvPlaceService { // 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())); for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) { @@ -91,11 +90,20 @@ public class InvPlaceServiceImpl implements InvPlaceService { for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) { //拆解库存表 QueryWrapper ew=new QueryWrapper<>(); - ew.eq("code",invPlaceOrderDetailEntity.getCode()); - ew.and(o-> o.isNull("invSpaceCode").or().eq("invSpaceCode","")); - ew.gt("inCount",0); - ew.last("limit 1"); - InvPreInProductDetailEntity invPreInProductDetailEntity=invPreInProductDetailDao.selectOne(ew); + InvPreInProductDetailEntity invPreInProductDetailEntity=new InvPreInProductDetailEntity(); + if(bindInvSpaceRequest.getType()==3){ + ew.eq("code",invPlaceOrderDetailEntity.getCode()); + ew.eq("invSpaceCode",bindInvSpaceRequest.getInvSpaceCode()); + ew.last("limit 1"); + invPreInProductDetailEntity=invPreInProductDetailDao.selectOne(ew); + }else{ + ew.eq("code",invPlaceOrderDetailEntity.getCode()); + ew.and(o-> o.isNull("invSpaceCode").or().eq("invSpaceCode","")); + ew.gt("inCount",0); + ew.last("limit 1"); + invPreInProductDetailEntity=invPreInProductDetailDao.selectOne(ew); + } + if(invPreInProductDetailEntity.getInCount()>0){ String nameCode=invPreInProductDetailEntity.getNameCode(); @@ -108,7 +116,12 @@ public class InvPlaceServiceImpl implements InvPlaceService { ew.clear(); ew.eq("code",invPlaceOrderDetailEntity.getCode()); - ew.eq("invSpaceCode",invPlaceOrderDetailEntity.getInvSpaceCode()); + if(bindInvSpaceRequest.getType()==3){ + ew.eq("invSpaceCode",bindInvSpaceRequest.getChangeSpaceCode()); + }else{ + ew.eq("invSpaceCode",invPlaceOrderDetailEntity.getInvSpaceCode()); + } + InvPreInProductDetailEntity invPreInProductDetailEntity1=invPreInProductDetailDao.selectOne(ew); if(invPreInProductDetailEntity1!=null){ @@ -122,7 +135,11 @@ public class InvPlaceServiceImpl implements InvPlaceService { invPreInProductDetailEntity.setCount(1); invPreInProductDetailEntity.setReCount(reCount); invPreInProductDetailEntity.setOutCount(0); - invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode()); + if (bindInvSpaceRequest.getType()==3){ + invPreInProductDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getChangeSpaceCode()); + }else{ + invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode()); + } invPreInProductDetailDao.insert(invPreInProductDetailEntity); } } @@ -432,8 +449,17 @@ public class InvPlaceServiceImpl implements InvPlaceService { @Override public String checkCount(BindInvSpaceRequest bindInvSpaceRequest) { InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper().eq("code", bindInvSpaceRequest.getInvCode())); + Integer count=0; if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) { - Integer count = invPreInProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode()); + if(bindInvSpaceRequest.getType()==3){ + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("code",bindInvSpaceRequest.getCode()); + ew.eq("invSpaceCode",bindInvSpaceRequest.getInvSpaceCode()); + InvPreInProductDetailEntity invPreInProductDetailEntity=invPreInProductDetailDao.selectOne(ew); + count=invPreInProductDetailEntity.getInCount(); + }else{ + count = invPreInProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode()); + } if(count==null || count<=0){ return "该产品库存不足!"; } @@ -442,12 +468,25 @@ public class InvPlaceServiceImpl implements InvPlaceService { ew.eq("recordId",bindInvSpaceRequest.getOrderId()); ew.eq("code",bindInvSpaceRequest.getCode()); InvPlaceOrderDetailEntity invPlaceOrderDetailEntity =invPlaceOrderDetailDao.selectOne(ew); + if(invPlaceOrderDetailEntity==null){ + invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity(); + invPlaceOrderDetailEntity.setCount(0); + } if(invPlaceOrderDetailEntity.getCount()>=count){ return "该产品库存不足!"; } } } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) { - Integer count = invPreProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode()); + if(bindInvSpaceRequest.getType()==3){ + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("code",bindInvSpaceRequest.getCode()); + ew.eq("invSpaceCode",bindInvSpaceRequest.getInvSpaceCode()); + InvPreProductDetailEntity invPreProductDetailEntity=invPreProductDetailDao.selectOne(ew); + count=invPreProductDetailEntity.getInCount(); + }else{ + count = invPreProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode()); + } + if(count==null || count<=0){ return "该产品库存不足!"; } @@ -456,12 +495,25 @@ public class InvPlaceServiceImpl implements InvPlaceService { ew.eq("recordId",bindInvSpaceRequest.getOrderId()); ew.eq("code",bindInvSpaceRequest.getCode()); InvPlaceOrderDetailEntity invPlaceOrderDetailEntity =invPlaceOrderDetailDao.selectOne(ew); + if(invPlaceOrderDetailEntity==null){ + invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity(); + invPlaceOrderDetailEntity.setCount(0); + } if(invPlaceOrderDetailEntity.getCount()>=count){ return "该产品库存不足!"; } } } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL){ - Integer count = invProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode()); + if(bindInvSpaceRequest.getType()==3){ + QueryWrapper ew=new QueryWrapper<>(); + ew.eq("code",bindInvSpaceRequest.getCode()); + ew.eq("invSpaceCode",bindInvSpaceRequest.getInvSpaceCode()); + InvProductDetailEntity invProductDetailEntity=invProductDetailDao.selectOne(ew); + count=invProductDetailEntity.getInCount(); + }else{ + count = invProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode()); + } + if(count==null || count<=0){ return "该产品库存不足!"; } @@ -470,6 +522,10 @@ public class InvPlaceServiceImpl implements InvPlaceService { ew.eq("recordId",bindInvSpaceRequest.getOrderId()); ew.eq("code",bindInvSpaceRequest.getCode()); InvPlaceOrderDetailEntity invPlaceOrderDetailEntity =invPlaceOrderDetailDao.selectOne(ew); + if(invPlaceOrderDetailEntity==null){ + invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity(); + invPlaceOrderDetailEntity.setCount(0); + } if(invPlaceOrderDetailEntity.getCount()>=count){ return "该产品库存不足!"; }