物质摆放功能代码提交

master
郑明梁 2 years ago
parent 75077b05a4
commit 9ac295028b

@ -6,10 +6,15 @@ import com.github.pagehelper.PageInfo;
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.dao.inv.InvPlaceOrderDetailDao;
import com.glxp.api.entity.inv.InvPlaceOrderDetailEntity;
import com.glxp.api.req.inv.FilterInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.res.inv.InvPlaceOrderDetailResponse;
import com.glxp.api.service.inv.InvPlaceOrderService;
import com.glxp.api.service.inv.InvPlaceService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -18,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
/**
@ -28,6 +34,10 @@ public class InvPlaceController {
@Resource
private InvPlaceService invPlaceService;
@Resource
private InvPlaceOrderService invPlaceOrderService;
/**
*
@ -48,7 +58,7 @@ public class InvPlaceController {
* @return
*/
@PostMapping("/spms/inv/product/bindInvSpace")
public BaseResponse bindInvSpace(@RequestBody @Valid BindInvSpaceRequest bindInvSpaceRequest) {
public BaseResponse bindInvSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
@ -87,15 +97,21 @@ public class InvPlaceController {
/**
*
*
* @param filterInvPlaceRequest
* @param bindInvSpaceRequest
* @return
*/
@GetMapping("/spms/inv/product/getInvProductInfo")
private BaseResponse getInvProductInfo(FilterInvPlaceRequest filterInvPlaceRequest) {
List<InvPlaceDetailResponse> list = invPlaceService.getInvProductInfo(filterInvPlaceRequest);
if (CollUtil.isEmpty(list))
return ResultVOUtils.error(500, "库存未找到产品信息!");
return ResultVOUtils.success(list);
private BaseResponse getInvProductInfo(BindInvSpaceRequest bindInvSpaceRequest) {
List<InvPlaceDetailResponse> list = new ArrayList<>();
//判断有没有库存
String msg=invPlaceService.checkCount(bindInvSpaceRequest);
if(StrUtil.isEmpty(msg)){
//有库存做插入货位号
return invPlaceOrderService.bindInvSpaceOne(bindInvSpaceRequest);
}else{
return ResultVOUtils.error(500, msg);
}
}
/**
@ -114,4 +130,17 @@ public class InvPlaceController {
return ResultVOUtils.page(pageInfo);
}
/**
*
*
* @return
*/
@GetMapping("/spms/inv/product/getInvPlaceOrderDetailList")
public BaseResponse getInvPlaceOrderDetailList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest) {
List<InvPlaceOrderDetailResponse> list = invPlaceOrderService.filterInvPlaceOrderDetailList(filterInvPlaceOrderRequest);
PageInfo<InvPlaceOrderDetailResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
}

@ -2,7 +2,14 @@ package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvPlaceOrderDetailEntity;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.InvPlaceOrderDetailResponse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface InvPlaceOrderDetailDao extends BaseMapper<InvPlaceOrderDetailEntity> {
List<InvPlaceOrderDetailResponse> selectDetailList(@Param("recordId") String recordId);
}

@ -44,4 +44,6 @@ public interface InvPreInProductDetailDao extends BaseMapperPlus<InvPreInProduct
List<IoOrderResponse> getInvPlaceOrderList(FilterInvPlaceRequest filterInvPlaceRequest);
Integer getInventoryQuantity(@Param("code") String code);
}

@ -43,4 +43,6 @@ public interface InvPreProductDetailDao extends BaseMapperPlus<InvPreProductDeta
void batchBindSpace(@Param("ids") List<Integer> ids, @Param("invSpaceCode") String invSpaceCode);
List<IoOrderResponse> getInvPlaceOrderList(FilterInvPlaceRequest filterInvPlaceRequest);
Integer getInventoryQuantity(@Param("code") String code);
}

@ -96,4 +96,6 @@ public interface InvProductDetailDao extends BaseMapperPlus<InvProductDetailDao,
* @return
*/
List<IoOrderResponse> getInvPlaceOrderList(FilterInvPlaceRequest filterInvPlaceRequest);
Integer getInventoryQuantity(@Param("code") String code);
}

@ -10,8 +10,8 @@ import lombok.Data;
@TableName(value = "inv_place_order_detail")
public class InvPlaceOrderDetailEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Long id;
/**
*

@ -15,8 +15,8 @@ import java.util.Date;
@TableName(value = "inv_place_order")
public class InvPlaceOrderEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Long id;
/**
*

@ -68,6 +68,8 @@ public class InvPlaceOrderDetailResponse {
*/
private String invSpaceCode;
private String invSpaceName;
/**
*
*/

@ -1,8 +1,13 @@
package com.glxp.api.service.inv;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.entity.inv.InvPlaceOrderDetailEntity;
import com.glxp.api.req.inv.AddInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceOrderDetailResponse;
import com.glxp.api.res.inv.InvPlaceOrderResponse;
import java.util.List;
@ -16,4 +21,9 @@ public interface InvPlaceOrderService {
BaseResponse addInvPlaceOrder(AddInvPlaceOrderRequest addInvPlaceOrderRequest);
//单条绑定货位
BaseResponse bindInvSpaceOne(BindInvSpaceRequest bindInvSpaceRequest);
List<InvPlaceOrderDetailResponse> filterInvPlaceOrderDetailList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest);
}

@ -47,10 +47,10 @@ public interface InvPlaceService {
BaseResponse checkCodeSpace(BindInvSpaceRequest bindInvSpaceRequest);
/**
* @param filterInvPlaceRequest
* @param bindInvSpaceRequest
* @return
*/
List<InvPlaceDetailResponse> getInvProductInfo(FilterInvPlaceRequest filterInvPlaceRequest);
List<InvPlaceDetailResponse> getInvProductInfo(BindInvSpaceRequest bindInvSpaceRequest);
/**
*
@ -59,4 +59,8 @@ public interface InvPlaceService {
* @return
*/
List<IoOrderResponse> getInvPlaceOrderList(FilterInvPlaceRequest filterInvPlaceRequest);
//判断有没有库存
String checkCount(BindInvSpaceRequest bindInvSpaceRequest);
}

@ -1,7 +1,9 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
@ -12,6 +14,10 @@ import com.glxp.api.entity.inv.InvPlaceOrderDetailEntity;
import com.glxp.api.entity.inv.InvPlaceOrderEntity;
import com.glxp.api.req.inv.AddInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceOrderDetailResponse;
import com.glxp.api.res.inv.InvPlaceOrderResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.inv.InvPlaceOrderService;
@ -90,4 +96,80 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
invPlaceOrderDao.insert(orderEntity);
return ResultVOUtils.success();
}
@Override
public BaseResponse bindInvSpaceOne(BindInvSpaceRequest bindInvSpaceRequest) {
// QueryWrapper ew=new QueryWrapper();
// ew.eq("code",filterInvPlaceRequest.getCode());
// ew.isNull("invSpaceCode");
// ew.
// invPreInProductDetailDao.selectOne()
//判断是不是第一次进行添加 是就插入一条主表
String recordId = "";
if(StrUtil.isEmpty(bindInvSpaceRequest.getOrderId())){
InvPlaceOrderEntity invPlaceOrderEntity=new InvPlaceOrderEntity();
//操作人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(1);
// orderEntity.setOrderId(addInvPlaceOrderRequest.getOrderId());
orderEntity.setCreateUser(userId);
orderEntity.setCreateTime(new Date());
orderEntity.setUpdateTime(new Date());
invPlaceOrderDao.insert(orderEntity);
//插入附表
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(recordId);
invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode());
invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode());
invPlaceOrderDetailEntity.setCount(1);
invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity);
}else{
recordId=bindInvSpaceRequest.getOrderId();
//查询有没有存在一样的code有就加数量没有新增
QueryWrapper<InvPlaceOrderDetailEntity> ew=new QueryWrapper<>();
ew.eq("recordId",bindInvSpaceRequest.getOrderId());
ew.eq("code",bindInvSpaceRequest.getCode());
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity=invPlaceOrderDetailDao.selectOne(ew);
if(invPlaceOrderDetailEntity!=null){
invPlaceOrderDetailEntity.setCount(invPlaceOrderDetailEntity.getCount()+1);
invPlaceOrderDetailDao.updateById(invPlaceOrderDetailEntity);
}else{
//插入附表
invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(bindInvSpaceRequest.getOrderId());
invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode());
invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode());
invPlaceOrderDetailEntity.setCount(1);
invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity);
}
}
return ResultVOUtils.success(recordId);
}
@Override
public List<InvPlaceOrderDetailResponse> filterInvPlaceOrderDetailList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest) {
if (null == filterInvPlaceOrderRequest) {
return Collections.emptyList();
}
if (null != filterInvPlaceOrderRequest.getPage() && null != filterInvPlaceOrderRequest.getLimit()) {
PageHelper.offsetPage((filterInvPlaceOrderRequest.getPage() - 1) * filterInvPlaceOrderRequest.getLimit(), filterInvPlaceOrderRequest.getLimit());
}
return invPlaceOrderDetailDao.selectDetailList(filterInvPlaceOrderRequest.getOrderId());
}
}

@ -1,31 +1,32 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.auth.InvSpaceDao;
import com.glxp.api.dao.auth.InvWarehouseDao;
import com.glxp.api.dao.inv.InvPreInProductDetailDao;
import com.glxp.api.dao.inv.InvPreProductDetailDao;
import com.glxp.api.dao.inv.InvProductDetailDao;
import com.glxp.api.dao.inv.*;
import com.glxp.api.entity.auth.InvSpace;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.inv.InvPreInProductDetailEntity;
import com.glxp.api.entity.inv.InvPreProductDetailEntity;
import com.glxp.api.entity.inv.InvProductDetailEntity;
import com.glxp.api.entity.inv.*;
import com.glxp.api.req.inv.AddInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inout.IoOrderResponse;
import com.glxp.api.res.inv.BindInvSpaceRequest;
import com.glxp.api.res.inv.InvPlaceDetailResponse;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inv.InvPlaceOrderService;
import com.glxp.api.service.inv.InvPlaceService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.OrderNoTypeBean;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -34,6 +35,7 @@ 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;
import java.util.stream.Collectors;
@ -54,6 +56,14 @@ public class InvPlaceServiceImpl implements InvPlaceService {
private InvSpaceDao invSpaceDao;
@Resource
private InvPlaceOrderService invPlaceOrderService;
@Resource
private InvPlaceOrderDao invPlaceOrderDao;
@Resource
private InvPlaceOrderDetailDao invPlaceOrderDetailDao;
@Resource
private UdiRelevanceService udiRelevanceService;
@Override
public List<InvPlaceDetailResponse> getPlaceDetailList(FilterInvPlaceRequest filterInvPlaceRequest) {
@ -75,67 +85,160 @@ public class InvPlaceServiceImpl implements InvPlaceService {
List<InvProductDetailEntity> list = new ArrayList<>();
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
List<InvPreInProductDetailEntity> invPreInProductDetailEntities = invPreInProductDetailDao.selectList(new QueryWrapper<InvPreInProductDetailEntity>()
.select("id", "code", "relId", "batchNo")
.eq("deptCode", deptCode)
.eq("invCode", bindInvSpaceRequest.getInvCode())
.in("code", bindInvSpaceRequest.getCodeArray())
);
for (InvPreInProductDetailEntity invPreInProductDetailEntity : invPreInProductDetailEntities) {
InvProductDetailEntity invProductDetailEntity = new InvProductDetailEntity();
BeanCopyUtils.copy(invPreInProductDetailEntity, invProductDetailEntity);
list.add(invProductDetailEntity);
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) {
for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) {
//拆解库存表
QueryWrapper<InvPreInProductDetailEntity> 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);
if(invPreInProductDetailEntity.getInCount()>0){
invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount()-1);
invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount()-1);
// invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-getActCount(invPlaceOrderDetailEntity.get));
invPreInProductDetailDao.updateById(invPreInProductDetailEntity);
ew.clear();
ew.eq("code",invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode",invPlaceOrderDetailEntity.getInvSpaceCode());
InvPreInProductDetailEntity invPreInProductDetailEntity1=invPreInProductDetailDao.selectOne(ew);
if(invPreInProductDetailEntity1!=null){
invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1);
invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1);
invPreInProductDetailDao.updateById(invPreInProductDetailEntity1);
}else{
invPreInProductDetailEntity.setId(null);
invPreInProductDetailEntity.setInCount(1);
invPreInProductDetailEntity.setCount(1);
invPreInProductDetailEntity.setOutCount(0);
invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode());
invPreInProductDetailDao.insert(invPreInProductDetailEntity);
}
}
}
}
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
List<InvPreProductDetailEntity> invPreProductDetailEntities = invPreProductDetailDao.selectList(new QueryWrapper<InvPreProductDetailEntity>()
.select("id", "code", "relId", "batchNo")
.eq("deptCode", deptCode)
.eq("invCode", bindInvSpaceRequest.getInvCode())
.in("code", bindInvSpaceRequest.getCodeArray())
);
for (InvPreProductDetailEntity invPreInProductDetailEntity : invPreProductDetailEntities) {
InvProductDetailEntity invProductDetailEntity = new InvProductDetailEntity();
BeanCopyUtils.copy(invPreInProductDetailEntity, invProductDetailEntity);
list.add(invProductDetailEntity);
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) {
for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) {
//拆解库存表
QueryWrapper<InvPreProductDetailEntity> 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");
InvPreProductDetailEntity invPreInProductDetailEntity=invPreProductDetailDao.selectOne(ew);
if(invPreInProductDetailEntity.getInCount()>0){
invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount()-1);
invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount()-1);
// invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-getActCount(invPlaceOrderDetailEntity.get));
invPreProductDetailDao.updateById(invPreInProductDetailEntity);
ew.clear();
ew.eq("code",invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode",invPlaceOrderDetailEntity.getInvSpaceCode());
InvPreProductDetailEntity invPreInProductDetailEntity1=invPreProductDetailDao.selectOne(ew);
if(invPreInProductDetailEntity1!=null){
invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1);
invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1);
invPreProductDetailDao.updateById(invPreInProductDetailEntity1);
}else{
invPreInProductDetailEntity.setId(null);
invPreInProductDetailEntity.setInCount(1);
invPreInProductDetailEntity.setCount(1);
invPreInProductDetailEntity.setOutCount(0);
invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode());
invPreProductDetailDao.insert(invPreInProductDetailEntity);
}
}
}
}
} else {
list = invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>()
.select("id", "code", "relId", "batchNo")
.eq("deptCode", deptCode)
.eq("invCode", bindInvSpaceRequest.getInvCode())
.in("code", bindInvSpaceRequest.getCodeArray())
);
}
if (CollUtil.isNotEmpty(list)) {
List<Integer> ids = list.stream().map(InvProductDetailEntity::getId).collect(Collectors.toList());
log.info("本次绑定货位的库存详情数量为:{} 条", ids.size());
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
invPreInProductDetailDao.batchBindSpace(ids, bindInvSpaceRequest.getInvSpaceCode());
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
invPreProductDetailDao.batchBindSpace(ids, bindInvSpaceRequest.getInvSpaceCode());
} else {
invProductDetailDao.batchBindSpace(ids, bindInvSpaceRequest.getInvSpaceCode());
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) {
for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) {
//拆解库存表
QueryWrapper<InvProductDetailEntity> 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");
InvProductDetailEntity invPreInProductDetailEntity=invProductDetailDao.selectOne(ew);
if(invPreInProductDetailEntity.getInCount()>0){
invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount()-1);
invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount()-1);
// invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-getActCount(invPlaceOrderDetailEntity.get));
invProductDetailDao.updateById(invPreInProductDetailEntity);
ew.clear();
ew.eq("code",invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode",invPlaceOrderDetailEntity.getInvSpaceCode());
InvProductDetailEntity invPreInProductDetailEntity1=invProductDetailDao.selectOne(ew);
if(invPreInProductDetailEntity1!=null){
invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1);
invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1);
invProductDetailDao.updateById(invPreInProductDetailEntity1);
}else{
invPreInProductDetailEntity.setId(null);
invPreInProductDetailEntity.setInCount(1);
invPreInProductDetailEntity.setCount(1);
invPreInProductDetailEntity.setOutCount(0);
invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode());
invProductDetailDao.insert(invPreInProductDetailEntity);
}
}
}
}
//添加物资上架记录
AddInvPlaceOrderRequest addInvPlaceOrderRequest = new AddInvPlaceOrderRequest();
addInvPlaceOrderRequest.setType(bindInvSpaceRequest.getType());
addInvPlaceOrderRequest.setOrderId(bindInvSpaceRequest.getOrderId());
addInvPlaceOrderRequest.setCodeList(list);
addInvPlaceOrderRequest.setInvCode(bindInvSpaceRequest.getInvCode());
addInvPlaceOrderRequest.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderService.addInvPlaceOrder(addInvPlaceOrderRequest);
return ResultVOUtils.success("绑定成功!本次绑定货位的库存详情数量为:" + ids.size() + "条");
} else {
log.info("绑定货位列表查询无数据");
return ResultVOUtils.error(500, "绑定货位列表查询无数据");
}
// if (CollUtil.isNotEmpty(list)) {
// List<Integer> ids = list.stream().map(InvProductDetailEntity::getId).collect(Collectors.toList());
// log.info("本次绑定货位的库存详情数量为:{} 条", ids.size());
//
//
// if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
// invPreInProductDetailDao.batchBindSpace(ids, bindInvSpaceRequest.getInvSpaceCode());
// } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
// invPreProductDetailDao.batchBindSpace(ids, bindInvSpaceRequest.getInvSpaceCode());
// } else {
// invProductDetailDao.batchBindSpace(ids, bindInvSpaceRequest.getInvSpaceCode());
// }
//
//
// //添加物资上架记录
// AddInvPlaceOrderRequest addInvPlaceOrderRequest = new AddInvPlaceOrderRequest();
// addInvPlaceOrderRequest.setType(bindInvSpaceRequest.getType());
// addInvPlaceOrderRequest.setOrderId(bindInvSpaceRequest.getOrderId());
// addInvPlaceOrderRequest.setCodeList(list);
// addInvPlaceOrderRequest.setInvCode(bindInvSpaceRequest.getInvCode());
// addInvPlaceOrderRequest.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
// invPlaceOrderService.addInvPlaceOrder(addInvPlaceOrderRequest);
// return ResultVOUtils.success("绑定成功!本次绑定货位的库存详情数量为:" + ids.size() + "条");
// } else {
// log.info("绑定货位列表查询无数据");
// return ResultVOUtils.error(500, "绑定货位列表查询无数据");
// }
return ResultVOUtils.success();
}
@Override
@ -229,16 +332,16 @@ public class InvPlaceServiceImpl implements InvPlaceService {
}
@Override
public List<InvPlaceDetailResponse> getInvProductInfo(FilterInvPlaceRequest filterInvPlaceRequest) {
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper<InvWarehouseEntity>().eq("code", filterInvPlaceRequest.getInvCode()));
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
return invPreInProductDetailDao.getInvProductInfo(filterInvPlaceRequest);
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
return invPreProductDetailDao.getInvProductInfo(filterInvPlaceRequest);
} else
return invProductDetailDao.getInvProductInfo(filterInvPlaceRequest);
public List<InvPlaceDetailResponse> getInvProductInfo(BindInvSpaceRequest bindInvSpaceRequest) {
return null;
//
// InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper<InvWarehouseEntity>().eq("code", filterInvPlaceRequest.getInvCode()));
// if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
// return invPreInProductDetailDao.getInvProductInfo(filterInvPlaceRequest);
// } else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
// return invPreProductDetailDao.getInvProductInfo(filterInvPlaceRequest);
// } else
// return invProductDetailDao.getInvProductInfo(filterInvPlaceRequest);
}
@Override
@ -261,4 +364,79 @@ public class InvPlaceServiceImpl implements InvPlaceService {
}
@Override
public String checkCount(BindInvSpaceRequest bindInvSpaceRequest) {
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper<InvWarehouseEntity>().eq("code", bindInvSpaceRequest.getInvCode()));
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
Integer count = invPreInProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode());
if(count==null || count<=0){
return "该产品库存不足!";
}
if(StrUtil.isNotBlank(bindInvSpaceRequest.getOrderId())){
QueryWrapper ew=new QueryWrapper();
ew.eq("recordId",bindInvSpaceRequest.getOrderId());
ew.eq("code",bindInvSpaceRequest.getCode());
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity =invPlaceOrderDetailDao.selectOne(ew);
if(invPlaceOrderDetailEntity.getCount()>=count){
return "该产品库存不足!";
}
}
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
Integer count = invPreProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode());
if(count==null || count<=0){
return "该产品库存不足!";
}
if(StrUtil.isNotBlank(bindInvSpaceRequest.getOrderId())){
QueryWrapper ew=new QueryWrapper();
ew.eq("recordId",bindInvSpaceRequest.getOrderId());
ew.eq("code",bindInvSpaceRequest.getCode());
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity =invPlaceOrderDetailDao.selectOne(ew);
if(invPlaceOrderDetailEntity.getCount()>=count){
return "该产品库存不足!";
}
}
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL){
Integer count = invProductDetailDao.getInventoryQuantity(bindInvSpaceRequest.getCode());
if(count==null || count<=0){
return "该产品库存不足!";
}
if(StrUtil.isNotBlank(bindInvSpaceRequest.getOrderId())){
QueryWrapper ew=new QueryWrapper();
ew.eq("recordId",bindInvSpaceRequest.getOrderId());
ew.eq("code",bindInvSpaceRequest.getCode());
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity =invPlaceOrderDetailDao.selectOne(ew);
if(invPlaceOrderDetailEntity.getCount()>=count){
return "该产品库存不足!";
}
}
}
return "";
}
public int getActCount(String nameCode) {
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByNameCode(nameCode);
int count = getActCount(udiRelevanceResponse);
return count;
}
public int getActCount(UdiRelevanceResponse udiRelevanceResponse) {
int actCount;
if (!udiRelevanceResponse.getUseDy() && (udiRelevanceResponse.getDiType() == null || udiRelevanceResponse.getDiType() != 2)) {
if (udiRelevanceResponse.getBhzxxsbzsl() == 0) {
actCount = udiRelevanceResponse.getZxxsbzbhsydysl();
} else {
if (udiRelevanceResponse.getBhzxxsbzsl() == 0) {
udiRelevanceResponse.setBhzxxsbzsl(1);
}
if (udiRelevanceResponse.getZxxsbzbhsydysl() == null || udiRelevanceResponse.getZxxsbzbhsydysl() == 0) {
udiRelevanceResponse.setZxxsbzbhsydysl(1);
}
actCount = udiRelevanceResponse.getBhzxxsbzsl() * udiRelevanceResponse.getZxxsbzbhsydysl();
}
} else {
actCount = udiRelevanceResponse.getBhzxxsbzsl();
}
return actCount;
}
}

@ -1,4 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.glxp.api.dao.inv.InvPlaceOrderDetailDao">
<select id="selectDetailList" resultType="com.glxp.api.res.inv.InvPlaceOrderDetailResponse">
SELECT
a1.count,
a2.relId,
bp.cpmctymc as productName,
bp.ggxh,
a2.batchNo,
a2.serialNo,
bp.measname,
bp.zczbhhzbapzbh,
bp.manufactory,
asp.name as invSpaceName
FROM
inv_place_order_detail a1
LEFT JOIN inv_prein_product_detail a2 ON a1.CODE = a2.CODE
LEFT JOIN basic_udirel bu ON bu.id = a2.relId
LEFT JOIN basic_products bp ON bp.uuid = bu.uuid
LEFT JOIN auth_space asp on a1.invSpaceCode=asp.`code`
<where>
<if test="recordId != null and recordId != ''">
AND a1.recordId = #{recordId}
</if>
</where>
GROUP BY a1.code
</select>
</mapper>

@ -221,4 +221,16 @@
</where>
group by ipd.orderId
</select>
<select id="getInventoryQuantity" resultType="Integer">
SELECT
SUM( inCount )- SUM( outCount )
FROM
inv_prein_product_detail ipd
WHERE
CODE = #{code}
and (invSpaceCode is null or invSpaceCode = '' )
</select>
</mapper>

@ -221,4 +221,15 @@
</where>
group by ipd.orderId
</select>
<select id="getInventoryQuantity" resultType="Integer">
SELECT
SUM( inCount )- SUM( outCount )
FROM
inv_pre_product_detail ipd
WHERE
CODE = #{code}
and (invSpaceCode is null or invSpaceCode = '' )
</select>
</mapper>

@ -303,4 +303,15 @@
</where>
group by ipd.orderId
</select>
<select id="getInventoryQuantity" resultType="Integer">
SELECT
SUM( inCount )- SUM( outCount )
FROM
inv_product_detail ipd
WHERE
CODE = #{code}
and (invSpaceCode is null or invSpaceCode = '' )
</select>
</mapper>

Loading…
Cancel
Save