物资摆放下架代码提交

pro
郑明梁 2 years ago
parent d55358b8cd
commit 3b29b7f804

@ -94,6 +94,20 @@ public class InvPlaceController {
return invPlaceService.bindInvSpace(bindInvSpaceRequest);
}
/**
*
*
* @param bindInvSpaceRequest
* @return
*/
@PostMapping("/spms/inv/product/unbindInvOrderSpace")
public BaseResponse unbindInvOrderSpace(@RequestBody BindInvSpaceRequest bindInvSpaceRequest) {
if (null == bindInvSpaceRequest) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
return invPlaceService.unbindInvOrderSpace(bindInvSpaceRequest);
}
/**
*
@ -175,6 +189,26 @@ public class InvPlaceController {
}
/**
*
*
* @param bindInvSpaceRequest
* @return
*/
@GetMapping("/spms/inv/product/getInvProductOutInfo")
private BaseResponse getInvProductOutInfo(BindInvSpaceRequest bindInvSpaceRequest) {
List<InvPlaceDetailResponse> list = new ArrayList<>();
//判断有没有库存
String msg=invPlaceService.checkOutCount(bindInvSpaceRequest);
if(StrUtil.isEmpty(msg)){
//有库存做插入货位号
return invPlaceOrderService.unbindInvSpaceOne(bindInvSpaceRequest);
}else{
return ResultVOUtils.error(500, msg);
}
}
/**
*
*

@ -1,9 +1,6 @@
package com.glxp.api.entity.inv;
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 com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
@ -118,7 +115,7 @@ public class InvPreInProductDetailEntity {
/**
*
*/
@TableField(value = "invSpaceCode")
@TableField(value = "invSpaceCode" , updateStrategy = FieldStrategy.IGNORED)
private String invSpaceCode;
/**

@ -41,7 +41,7 @@ public class BindInvSpaceRequest {
private String code;
/**
* 1 2 3
* 1 2 3 4
*/
private Integer type;
@ -55,4 +55,5 @@ public class BindInvSpaceRequest {
private String changeSpaceCode;
private Integer outCount;
}

@ -27,6 +27,9 @@ public interface InvPlaceOrderService {
//批量绑定货位
BaseResponse bindInvSpaceAll(BindInvSpaceRequest bindInvSpaceRequest);
//单条解绑货位
BaseResponse unbindInvSpaceOne(BindInvSpaceRequest bindInvSpaceRequest);
List<InvPlaceOrderDetailResponse> filterInvPlaceOrderDetailList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest);
}

@ -36,6 +36,13 @@ public interface InvPlaceService {
*/
BaseResponse bindInvOrderSpace(BindInvSpaceRequest bindInvSpaceRequest);
/**
*
*
* @param bindInvSpaceRequest
*/
BaseResponse unbindInvOrderSpace(BindInvSpaceRequest bindInvSpaceRequest);
/**
*
@ -70,4 +77,7 @@ public interface InvPlaceService {
//判断有没有库存
String checkCount(BindInvSpaceRequest bindInvSpaceRequest);
//判断有没有库存
String checkOutCount(BindInvSpaceRequest bindInvSpaceRequest);
}

@ -375,6 +375,128 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
return ResultVOUtils.success(recordId);
}
@Override
public BaseResponse unbindInvSpaceOne(BindInvSpaceRequest bindInvSpaceRequest) {
Long relId = null;
String batchNo = null;
String nameCode = null;
String supId = null;
String produceDate = null;
String expireDate = null;
String serialNo = null;
List<FilterInvPlaceOrderRequest> filterInvPlaceOrderRequestList = new ArrayList<>();
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper<InvWarehouseEntity>().eq("code", bindInvSpaceRequest.getInvCode()));
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
QueryWrapper<InvPreInProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("code", bindInvSpaceRequest.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.last("limit 1");
InvPreInProductDetailEntity invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew);
relId = invPreInProductDetailEntity.getRelId();
batchNo = invPreInProductDetailEntity.getBatchNo();
nameCode = invPreInProductDetailEntity.getNameCode();
supId = invPreInProductDetailEntity.getSupId();
produceDate = invPreInProductDetailEntity.getProduceDate();
expireDate = invPreInProductDetailEntity.getExpireDate();
serialNo = invPreInProductDetailEntity.getSerialNo();
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
QueryWrapper<InvPreProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("code", bindInvSpaceRequest.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.last("limit 1");
InvPreProductDetailEntity invPreProductDetailEntity = invPreProductDetailDao.selectOne(ew);
relId = invPreProductDetailEntity.getRelId();
batchNo = invPreProductDetailEntity.getBatchNo();
nameCode = invPreProductDetailEntity.getNameCode();
supId = invPreProductDetailEntity.getSupId();
produceDate = invPreProductDetailEntity.getProduceDate();
expireDate = invPreProductDetailEntity.getExpireDate();
serialNo = invPreProductDetailEntity.getSerialNo();
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) {
QueryWrapper<InvProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("code", bindInvSpaceRequest.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.last("limit 1");
InvProductDetailEntity invProductDetailEntity = invProductDetailDao.selectOne(ew);
relId = invProductDetailEntity.getRelId();
batchNo = invProductDetailEntity.getBatchNo();
nameCode = invProductDetailEntity.getNameCode();
supId = invProductDetailEntity.getSupId();
produceDate = invProductDetailEntity.getProduceDate();
expireDate = invProductDetailEntity.getExpireDate();
serialNo = invProductDetailEntity.getSerialNo();
}
//判断是不是第一次进行添加 是就插入一条主表
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(4);
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.setBatchNo(batchNo);
invPlaceOrderDetailEntity.setRelId(relId + "");
invPlaceOrderDetailEntity.setNameCode(nameCode);
invPlaceOrderDetailEntity.setExpireDate(expireDate);
invPlaceOrderDetailEntity.setProduceDate(produceDate);
invPlaceOrderDetailEntity.setSupId(supId);
invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode());
invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode());
invPlaceOrderDetailEntity.setSerialNo(serialNo);
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.setBatchNo(batchNo);
invPlaceOrderDetailEntity.setRelId(relId + "");
invPlaceOrderDetailEntity.setNameCode(nameCode);
invPlaceOrderDetailEntity.setExpireDate(expireDate);
invPlaceOrderDetailEntity.setProduceDate(produceDate);
invPlaceOrderDetailEntity.setSupId(supId);
invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode());
invPlaceOrderDetailEntity.setCount(1);
invPlaceOrderDetailEntity.setSerialNo(serialNo);
invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity);
}
}
return ResultVOUtils.success(recordId);
}
@Override
public List<InvPlaceOrderDetailResponse> filterInvPlaceOrderDetailList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest) {
if (null == filterInvPlaceOrderRequest) {

@ -22,10 +22,12 @@ 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.auth.CustomerService;
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.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
@ -62,7 +64,10 @@ public class InvPlaceServiceImpl implements InvPlaceService {
private InvPlaceOrderDetailDao invPlaceOrderDetailDao;
@Resource
private UdiRelevanceService udiRelevanceService;
@Resource
private CustomerService customerService;
@Resource
private GennerOrderUtils gennerOrderUtils;
@Override
@ -565,11 +570,90 @@ public class InvPlaceServiceImpl implements InvPlaceService {
return "";
}
@Override
public String checkOutCount(BindInvSpaceRequest bindInvSpaceRequest) {
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.selectOne(new QueryWrapper<InvWarehouseEntity>().eq("code", bindInvSpaceRequest.getInvCode()));
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
QueryWrapper<InvPreInProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.eq("code", bindInvSpaceRequest.getCode());
ew.select("count");
ew.last("limit 1");
InvPreInProductDetailEntity invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew);
if (invPreInProductDetailEntity.getCount() <= 0) {
return "该产品没存在该货架上!";
}
if (StrUtil.isNotBlank(bindInvSpaceRequest.getOrderId())) {
QueryWrapper ew1 = new QueryWrapper();
ew1.eq("recordId", bindInvSpaceRequest.getOrderId());
ew1.eq("code", bindInvSpaceRequest.getCode());
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = invPlaceOrderDetailDao.selectOne(ew1);
if (invPlaceOrderDetailEntity == null) {
invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setCount(0);
}
if (invPlaceOrderDetailEntity.getCount() >= invPreInProductDetailEntity.getCount()) {
return "该产品库存不足!";
}
}
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
QueryWrapper<InvPreProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.eq("code", bindInvSpaceRequest.getCode());
ew.select("count");
ew.last("limit 1");
InvPreProductDetailEntity invPreProductDetailEntity = invPreProductDetailDao.selectOne(ew);
if (invPreProductDetailEntity.getCount() <= 0) {
return "该产品没存在该货架上!";
}
if (StrUtil.isNotBlank(bindInvSpaceRequest.getOrderId())) {
QueryWrapper ew1 = new QueryWrapper();
ew1.eq("recordId", bindInvSpaceRequest.getOrderId());
ew1.eq("code", bindInvSpaceRequest.getCode());
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = invPlaceOrderDetailDao.selectOne(ew1);
if (invPlaceOrderDetailEntity == null) {
invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setCount(0);
}
if (invPlaceOrderDetailEntity.getCount() >= invPreProductDetailEntity.getCount()) {
return "该产品库存不足!";
}
}
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_NORMAL) {
QueryWrapper<InvProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.eq("code", bindInvSpaceRequest.getCode());
ew.select("count");
ew.last("limit 1");
InvProductDetailEntity invProductDetailEntity = invProductDetailDao.selectOne(ew);
if (invProductDetailEntity.getCount() <= 0) {
return "该产品没存在该货架上!";
}
if (StrUtil.isNotBlank(bindInvSpaceRequest.getOrderId())) {
QueryWrapper ew1 = new QueryWrapper();
ew1.eq("recordId", bindInvSpaceRequest.getOrderId());
ew1.eq("code", bindInvSpaceRequest.getCode());
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = invPlaceOrderDetailDao.selectOne(ew1);
if (invPlaceOrderDetailEntity == null) {
invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setCount(0);
}
if (invPlaceOrderDetailEntity.getCount() >= invProductDetailEntity.getCount()) {
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)) {
@ -590,4 +674,352 @@ public class InvPlaceServiceImpl implements InvPlaceService {
return actCount;
}
@Override
public BaseResponse unbindInvOrderSpace(BindInvSpaceRequest bindInvSpaceRequest) {
//查询仓库的部门ID
// String deptCode = invWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode());
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.filterGroupInvSubAndcode(bindInvSpaceRequest.getInvCode());
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList = new ArrayList<>();
int total=0;
if (bindInvSpaceRequest.getOutCount() > 0) {
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
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<>();
InvPreInProductDetailEntity invPreInProductDetailEntity = new InvPreInProductDetailEntity();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.gt("inCount", 0);
ew.last("limit 1");
invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew);
if (invPreInProductDetailEntity.getInCount() > 0) {
String nameCode = invPreInProductDetailEntity.getNameCode();
int reCount = getActCount(nameCode);
invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount() - 1);
invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount() - 1);
invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount() - reCount);
invPreInProductDetailDao.updateById(invPreInProductDetailEntity);
//如果库存为空就删了该数据
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.last("limit 1");
invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew);
if (invPreInProductDetailEntity != null && invPreInProductDetailEntity.getInCount() == 0 && invPreInProductDetailEntity.getOutCount() == 0
&& invPreInProductDetailEntity.getCount() == 0 && invPreInProductDetailEntity.getReCount() == 0) {
invPreInProductDetailDao.deleteById(invPreInProductDetailEntity);
}
//如果有存在数据就加没有就新建
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.and(o -> o.isNull("invSpaceCode").or().eq("invSpaceCode", ""));
ew.last("limit 1");
invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew);
if (invPreInProductDetailEntity != null) {
nameCode = invPreInProductDetailEntity.getNameCode();
reCount = getActCount(nameCode);
invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount() + 1);
invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount() + 1);
invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount() + reCount);
invPreInProductDetailDao.updateById(invPreInProductDetailEntity);
} else {
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.last("limit 1");
invPreInProductDetailEntity = invPreInProductDetailDao.selectOne(ew);
invPreInProductDetailEntity.setId(null);
invPreInProductDetailEntity.setInvSpaceCode("");
invPreInProductDetailEntity.setInCount(1);
invPreInProductDetailEntity.setCount(1);
invPreInProductDetailEntity.setReCount(reCount);
invPreInProductDetailEntity.setOutCount(0);
invPreInProductDetailDao.insert(invPreInProductDetailEntity);
}
}
}
}
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
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<>();
InvPreProductDetailEntity invPreProductDetailEntity = new InvPreProductDetailEntity();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.gt("inCount", 0);
ew.last("limit 1");
invPreProductDetailEntity = invPreProductDetailDao.selectOne(ew);
if (invPreProductDetailEntity.getInCount() > 0) {
String nameCode = invPlaceOrderDetailEntity.getNameCode();
int reCount = getActCount(nameCode);
invPreProductDetailEntity.setInCount(invPreProductDetailEntity.getInCount() - 1);
invPreProductDetailEntity.setCount(invPreProductDetailEntity.getCount() - 1);
invPreProductDetailEntity.setReCount(invPreProductDetailEntity.getReCount() - reCount);
invPreProductDetailDao.updateById(invPreProductDetailEntity);
//如果库存为空就删了该数据
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.last("limit 1");
invPreProductDetailEntity = invPreProductDetailDao.selectOne(ew);
if (invPreProductDetailEntity != null && invPreProductDetailEntity.getInCount() == 0 && invPreProductDetailEntity.getOutCount() == 0
&& invPreProductDetailEntity.getCount() == 0 && invPreProductDetailEntity.getReCount() == 0) {
invPreProductDetailDao.deleteById(invPreProductDetailEntity);
}
//如果有存在数据就加没有就新建
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.and(o -> o.isNull("invSpaceCode").or().eq("invSpaceCode", ""));
ew.last("limit 1");
invPreProductDetailEntity = invPreProductDetailDao.selectOne(ew);
if (invPreProductDetailEntity != null) {
nameCode = invPreProductDetailEntity.getNameCode();
reCount = getActCount(nameCode);
invPreProductDetailEntity.setInCount(invPreProductDetailEntity.getInCount() + 1);
invPreProductDetailEntity.setCount(invPreProductDetailEntity.getCount() + 1);
invPreProductDetailEntity.setReCount(invPreProductDetailEntity.getReCount() + reCount);
invPreProductDetailDao.updateById(invPreProductDetailEntity);
} else {
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.last("limit 1");
invPreProductDetailEntity = invPreProductDetailDao.selectOne(ew);
invPreProductDetailEntity.setId(null);
invPreProductDetailEntity.setInvSpaceCode("");
invPreProductDetailEntity.setInCount(1);
invPreProductDetailEntity.setCount(1);
invPreProductDetailEntity.setReCount(reCount);
invPreProductDetailEntity.setOutCount(0);
invPreProductDetailDao.insert(invPreProductDetailEntity);
}
}
}
}
} else {
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<>();
InvProductDetailEntity invProductDetailEntity = new InvProductDetailEntity();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.gt("inCount", 0);
ew.last("limit 1");
invProductDetailEntity = invProductDetailDao.selectOne(ew);
if (invProductDetailEntity.getInCount() > 0) {
String nameCode = invProductDetailEntity.getNameCode();
int reCount = getActCount(nameCode);
invProductDetailEntity.setInCount(invProductDetailEntity.getInCount() - 1);
invProductDetailEntity.setCount(invProductDetailEntity.getCount() - 1);
invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() - reCount);
invProductDetailDao.updateById(invProductDetailEntity);
//如果库存为空就删了该数据
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
ew.last("limit 1");
invProductDetailEntity = invProductDetailDao.selectOne(ew);
if (invProductDetailEntity != null && invProductDetailEntity.getInCount() == 0 && invProductDetailEntity.getOutCount() == 0
&& invProductDetailEntity.getCount() == 0 && invProductDetailEntity.getReCount() == 0) {
invProductDetailDao.deleteById(invProductDetailEntity);
}
//如果有存在数据就加没有就新建
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.and(o -> o.isNull("invSpaceCode").or().eq("invSpaceCode", ""));
ew.last("limit 1");
invProductDetailEntity = invProductDetailDao.selectOne(ew);
if (invProductDetailEntity != null) {
nameCode = invProductDetailEntity.getNameCode();
reCount = getActCount(nameCode);
invProductDetailEntity.setInCount(invProductDetailEntity.getInCount() + 1);
invProductDetailEntity.setCount(invProductDetailEntity.getCount() + 1);
invProductDetailEntity.setReCount(invProductDetailEntity.getReCount() + reCount);
invProductDetailDao.updateById(invProductDetailEntity);
} else {
ew.clear();
ew.eq("code", invPlaceOrderDetailEntity.getCode());
ew.last("limit 1");
invProductDetailEntity = invProductDetailDao.selectOne(ew);
invProductDetailEntity.setId(null);
invProductDetailEntity.setInvSpaceCode("");
invProductDetailEntity.setInCount(1);
invProductDetailEntity.setCount(1);
invProductDetailEntity.setReCount(reCount);
invProductDetailEntity.setOutCount(0);
invProductDetailDao.insert(invProductDetailEntity);
}
}
}
}
}
total = invPlaceOrderDetailEntityList.stream().mapToInt(InvPlaceOrderDetailEntity::getCount).sum();
} else {
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
QueryWrapper<InvPreInProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
InvPreInProductDetailEntity invPreInProductDetailEntity = new InvPreInProductDetailEntity();
invPreInProductDetailEntity.setInvSpaceCode("");
List<InvPreInProductDetailEntity> invProductDetailEntityList=invPreInProductDetailDao.selectList(ew);
//操作人ID
String userId = customerService.getUserIdStr();
String recordId = gennerOrderUtils.createInvPlaceOrderNo(new OrderNoTypeBean(Constant.INV_PLACE_ORDER, "yyyyMMdd"));
//插入主表
InvPlaceOrderEntity orderEntity = new InvPlaceOrderEntity();
orderEntity.setId(IdUtil.getSnowflakeNextId());
orderEntity.setRecordId(recordId);
orderEntity.setType(4);
orderEntity.setCreateUser(userId);
orderEntity.setCreateTime(new Date());
orderEntity.setUpdateTime(new Date());
invPlaceOrderDao.insert(orderEntity);
for (InvPreInProductDetailEntity productDetailEntity : invProductDetailEntityList) {
for (int i=0;i<productDetailEntity.getCount();i++){
//插入附表
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(recordId);
invPlaceOrderDetailEntity.setBatchNo(productDetailEntity.getBatchNo());
invPlaceOrderDetailEntity.setRelId(productDetailEntity.getRelId() + "");
invPlaceOrderDetailEntity.setNameCode(productDetailEntity.getNameCode());
invPlaceOrderDetailEntity.setExpireDate(productDetailEntity.getExpireDate());
invPlaceOrderDetailEntity.setProduceDate(productDetailEntity.getProduceDate());
invPlaceOrderDetailEntity.setSupId(productDetailEntity.getSupId());
invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode());
invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode());
invPlaceOrderDetailEntity.setSerialNo(productDetailEntity.getSerialNo());
invPlaceOrderDetailEntity.setCount(1);
invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity);
total++;
}
}
invPreInProductDetailDao.update(invPreInProductDetailEntity, ew);
bindInvSpaceRequest.setOrderId(recordId);
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
QueryWrapper<InvPreProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
InvPreProductDetailEntity invPreProductDetailEntity = new InvPreProductDetailEntity();
invPreProductDetailEntity.setInvSpaceCode("");
List<InvPreProductDetailEntity> invProductDetailEntityList=invPreProductDetailDao.selectList(ew);
//操作人ID
String userId = customerService.getUserIdStr();
String recordId = gennerOrderUtils.createInvPlaceOrderNo(new OrderNoTypeBean(Constant.INV_PLACE_ORDER, "yyyyMMdd"));
//插入主表
InvPlaceOrderEntity orderEntity = new InvPlaceOrderEntity();
orderEntity.setId(IdUtil.getSnowflakeNextId());
orderEntity.setRecordId(recordId);
orderEntity.setType(4);
orderEntity.setCreateUser(userId);
orderEntity.setCreateTime(new Date());
orderEntity.setUpdateTime(new Date());
invPlaceOrderDao.insert(orderEntity);
for (InvPreProductDetailEntity productDetailEntity : invProductDetailEntityList) {
for (int i=0;i<productDetailEntity.getCount();i++){
//插入附表
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(recordId);
invPlaceOrderDetailEntity.setBatchNo(productDetailEntity.getBatchNo());
invPlaceOrderDetailEntity.setRelId(productDetailEntity.getRelId() + "");
invPlaceOrderDetailEntity.setNameCode(productDetailEntity.getNameCode());
invPlaceOrderDetailEntity.setExpireDate(productDetailEntity.getExpireDate());
invPlaceOrderDetailEntity.setProduceDate(productDetailEntity.getProduceDate());
invPlaceOrderDetailEntity.setSupId(productDetailEntity.getSupId());
invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode());
invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode());
invPlaceOrderDetailEntity.setSerialNo(productDetailEntity.getSerialNo());
invPlaceOrderDetailEntity.setCount(1);
invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity);
total++;
}
}
invPreProductDetailDao.update(invPreProductDetailEntity, ew);
bindInvSpaceRequest.setOrderId(recordId);
} else {
QueryWrapper<InvProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("invSpaceCode", bindInvSpaceRequest.getInvSpaceCode());
InvProductDetailEntity invProductDetailEntity = new InvProductDetailEntity();
invProductDetailEntity.setInvSpaceCode("");
List<InvProductDetailEntity> invProductDetailEntityList=invProductDetailDao.selectList(ew);
//操作人ID
String userId = customerService.getUserIdStr();
String recordId = gennerOrderUtils.createInvPlaceOrderNo(new OrderNoTypeBean(Constant.INV_PLACE_ORDER, "yyyyMMdd"));
//插入主表
InvPlaceOrderEntity orderEntity = new InvPlaceOrderEntity();
orderEntity.setId(IdUtil.getSnowflakeNextId());
orderEntity.setRecordId(recordId);
orderEntity.setType(4);
orderEntity.setCreateUser(userId);
orderEntity.setCreateTime(new Date());
orderEntity.setUpdateTime(new Date());
invPlaceOrderDao.insert(orderEntity);
for (InvProductDetailEntity productDetailEntity : invProductDetailEntityList) {
for (int i=0;i<productDetailEntity.getCount();i++){
//插入附表
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity = new InvPlaceOrderDetailEntity();
invPlaceOrderDetailEntity.setId(IdUtil.getSnowflakeNextId());
invPlaceOrderDetailEntity.setRecordId(recordId);
invPlaceOrderDetailEntity.setBatchNo(productDetailEntity.getBatchNo());
invPlaceOrderDetailEntity.setRelId(productDetailEntity.getRelId() + "");
invPlaceOrderDetailEntity.setNameCode(productDetailEntity.getNameCode());
invPlaceOrderDetailEntity.setExpireDate(productDetailEntity.getExpireDate());
invPlaceOrderDetailEntity.setProduceDate(productDetailEntity.getProduceDate());
invPlaceOrderDetailEntity.setSupId(productDetailEntity.getSupId());
invPlaceOrderDetailEntity.setInvCode(bindInvSpaceRequest.getInvCode());
invPlaceOrderDetailEntity.setInvSpaceCode(bindInvSpaceRequest.getInvSpaceCode());
invPlaceOrderDetailEntity.setCode(bindInvSpaceRequest.getCode());
invPlaceOrderDetailEntity.setSerialNo(productDetailEntity.getSerialNo());
invPlaceOrderDetailEntity.setCount(1);
invPlaceOrderDetailDao.insert(invPlaceOrderDetailEntity);
total++;
}
}
invProductDetailDao.update(invProductDetailEntity, ew);
bindInvSpaceRequest.setOrderId(recordId);
}
}
QueryWrapper<InvPlaceOrderEntity> 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();
}
}

Loading…
Cancel
Save