物质摆放功能代码提交

(cherry picked from commit e880330e7c)
pro
郑明梁 2 years ago committed by wj
parent 943cea1816
commit fa09ca7078

@ -55,4 +55,21 @@ public class InvPlaceOrderDetailEntity {
@TableField(value = "`count`")
private Integer count;
@TableField(value = "nameCode")
private String nameCode;
@TableField(value = "supId")
private String supId;
@TableField(value = "produceDate")
private String produceDate;
@TableField(value = "expireDate")
private String expireDate;
@TableField(value = "serialNo")
private String serialNo;
}

@ -60,4 +60,8 @@ public class InvPlaceOrderEntity {
@TableField(value = "remark")
private String remark;
@TableField(value = "count")
private int count;
}

@ -8,10 +8,11 @@ import com.github.pagehelper.PageHelper;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.dao.inv.InvPlaceOrderDao;
import com.glxp.api.dao.inv.InvPlaceOrderDetailDao;
import com.glxp.api.entity.inv.InvPlaceOrderDetailEntity;
import com.glxp.api.entity.inv.InvPlaceOrderEntity;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.dao.auth.InvWarehouseDao;
import com.glxp.api.dao.inv.*;
import com.glxp.api.entity.auth.InvWarehouseEntity;
import com.glxp.api.entity.inv.*;
import com.glxp.api.req.inv.AddInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceOrderRequest;
import com.glxp.api.req.inv.FilterInvPlaceRequest;
@ -20,6 +21,7 @@ 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.basic.UdiRelevanceService;
import com.glxp.api.service.inv.InvPlaceOrderService;
import com.glxp.api.util.GennerOrderUtils;
import com.glxp.api.util.OrderNoTypeBean;
@ -45,6 +47,15 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
private CustomerService customerService;
@Resource
private GennerOrderUtils gennerOrderUtils;
@Resource
private InvWarehouseDao invWarehouseDao;
@Resource
private InvProductDetailDao invProductDetailDao;
@Resource
private InvPreProductDetailDao invPreProductDetailDao;
@Resource
private InvPreInProductDetailDao invPreInProductDetailDao;
@Override
public List<InvPlaceOrderResponse> filterList(FilterInvPlaceOrderRequest filterInvPlaceOrderRequest) {
@ -106,11 +117,57 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
// ew.isNull("invSpaceCode");
// ew.
// invPreInProductDetailDao.selectOne()
Long relId = null;
String batchNo = null;
String nameCode = null;
String supId = null;
String produceDate = null;
String expireDate = null;
String serialNo = null;
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.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.last("limit 1");
InvPreProductDetailEntity invPreInProductDetailEntity = invPreProductDetailDao.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_NORMAL) {
QueryWrapper<InvProductDetailEntity> ew = new QueryWrapper<>();
ew.eq("code", bindInvSpaceRequest.getCode());
ew.last("limit 1");
InvProductDetailEntity invPreInProductDetailEntity = invProductDetailDao.selectOne(ew);
relId = invPreInProductDetailEntity.getRelId();
batchNo = invPreInProductDetailEntity.getBatchNo();
nameCode = invPreInProductDetailEntity.getNameCode();
supId = invPreInProductDetailEntity.getSupId();
produceDate = invPreInProductDetailEntity.getProduceDate();
expireDate = invPreInProductDetailEntity.getExpireDate();
serialNo = invPreInProductDetailEntity.getSerialNo();
}
//判断是不是第一次进行添加 是就插入一条主表
String recordId = "";
if(StrUtil.isEmpty(bindInvSpaceRequest.getOrderId())){
InvPlaceOrderEntity invPlaceOrderEntity=new InvPlaceOrderEntity();
if (StrUtil.isEmpty(bindInvSpaceRequest.getOrderId())) {
InvPlaceOrderEntity invPlaceOrderEntity = new InvPlaceOrderEntity();
//操作人ID
String userId = customerService.getUserIdStr();
@ -126,39 +183,52 @@ public class InvPlaceOrderServiceImpl implements InvPlaceOrderService {
invPlaceOrderDao.insert(orderEntity);
//插入附表
InvPlaceOrderDetailEntity invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity();
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();
} 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);
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{
} else {
//插入附表
invPlaceOrderDetailEntity=new InvPlaceOrderDetailEntity();
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);
}

@ -80,12 +80,12 @@ public class InvPlaceServiceImpl implements InvPlaceService {
@Override
public BaseResponse bindInvSpace(BindInvSpaceRequest bindInvSpaceRequest) {
//查询仓库的部门ID
String deptCode = invWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode());
// String deptCode = invWarehouseDao.selectParentIdByCode(bindInvSpaceRequest.getInvCode());
InvWarehouseEntity invWarehouseEntity = invWarehouseDao.filterGroupInvSubAndcode(bindInvSpaceRequest.getInvCode());
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList=new ArrayList<>();
List<InvProductDetailEntity> list = new ArrayList<>();
if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_PREIN) {
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) {
for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) {
@ -93,14 +93,16 @@ public class InvPlaceServiceImpl implements InvPlaceService {
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){
String nameCode=invPreInProductDetailEntity.getNameCode();
int reCount=getActCount(nameCode);
invPreInProductDetailEntity.setInCount(invPreInProductDetailEntity.getInCount()-1);
invPreInProductDetailEntity.setCount(invPreInProductDetailEntity.getCount()-1);
// invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-getActCount(invPlaceOrderDetailEntity.get));
invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-reCount);
invPreInProductDetailDao.updateById(invPreInProductDetailEntity);
@ -112,11 +114,13 @@ public class InvPlaceServiceImpl implements InvPlaceService {
if(invPreInProductDetailEntity1!=null){
invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1);
invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1);
invPreInProductDetailEntity1.setReCount(invPreInProductDetailEntity1.getReCount()+reCount);
invPreInProductDetailDao.updateById(invPreInProductDetailEntity1);
}else{
invPreInProductDetailEntity.setId(null);
invPreInProductDetailEntity.setInCount(1);
invPreInProductDetailEntity.setCount(1);
invPreInProductDetailEntity.setReCount(reCount);
invPreInProductDetailEntity.setOutCount(0);
invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode());
invPreInProductDetailDao.insert(invPreInProductDetailEntity);
@ -128,7 +132,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
} else if (invWarehouseEntity.getAdvanceType() == ConstantStatus.ACTION_TYPE_ADVANCE) {
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) {
for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) {
@ -141,9 +145,11 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.last("limit 1");
InvPreProductDetailEntity invPreInProductDetailEntity=invPreProductDetailDao.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()-getActCount(invPlaceOrderDetailEntity.get));
invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-reCount);
invPreProductDetailDao.updateById(invPreInProductDetailEntity);
@ -155,6 +161,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
if(invPreInProductDetailEntity1!=null){
invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1);
invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1);
invPreInProductDetailEntity1.setReCount(invPreInProductDetailEntity1.getReCount()+reCount);
invPreProductDetailDao.updateById(invPreInProductDetailEntity1);
}else{
invPreInProductDetailEntity.setId(null);
@ -162,6 +169,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
invPreInProductDetailEntity.setCount(1);
invPreInProductDetailEntity.setOutCount(0);
invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode());
invPreInProductDetailEntity.setReCount(reCount);
invPreProductDetailDao.insert(invPreInProductDetailEntity);
}
}
@ -169,7 +177,7 @@ public class InvPlaceServiceImpl implements InvPlaceService {
}
} else {
List<InvPlaceOrderDetailEntity> invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
invPlaceOrderDetailEntityList=invPlaceOrderDetailDao.selectList(new QueryWrapper<InvPlaceOrderDetailEntity>().eq("recordId",bindInvSpaceRequest.getOrderId()));
for (InvPlaceOrderDetailEntity invPlaceOrderDetailEntity : invPlaceOrderDetailEntityList) {
for (Integer i = 0; i < invPlaceOrderDetailEntity.getCount(); i++) {
@ -182,9 +190,11 @@ public class InvPlaceServiceImpl implements InvPlaceService {
ew.last("limit 1");
InvProductDetailEntity invPreInProductDetailEntity=invProductDetailDao.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()-getActCount(invPlaceOrderDetailEntity.get));
invPreInProductDetailEntity.setReCount(invPreInProductDetailEntity.getReCount()-reCount);
invProductDetailDao.updateById(invPreInProductDetailEntity);
@ -196,12 +206,14 @@ public class InvPlaceServiceImpl implements InvPlaceService {
if(invPreInProductDetailEntity1!=null){
invPreInProductDetailEntity1.setCount(invPreInProductDetailEntity1.getCount()+1);
invPreInProductDetailEntity1.setInCount(invPreInProductDetailEntity1.getInCount()+1);
invPreInProductDetailEntity1.setReCount(invPreInProductDetailEntity1.getReCount()+reCount);
invProductDetailDao.updateById(invPreInProductDetailEntity1);
}else{
invPreInProductDetailEntity.setId(null);
invPreInProductDetailEntity.setInCount(1);
invPreInProductDetailEntity.setCount(1);
invPreInProductDetailEntity.setOutCount(0);
invPreInProductDetailEntity.setReCount(reCount);
invPreInProductDetailEntity.setInvSpaceCode(invPlaceOrderDetailEntity.getInvSpaceCode());
invProductDetailDao.insert(invPreInProductDetailEntity);
}
@ -210,6 +222,13 @@ public class InvPlaceServiceImpl implements InvPlaceService {
}
}
int total = invPlaceOrderDetailEntityList.stream().mapToInt(InvPlaceOrderDetailEntity::getCount).sum();
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);
// if (CollUtil.isNotEmpty(list)) {
// List<Integer> ids = list.stream().map(InvProductDetailEntity::getId).collect(Collectors.toList());

@ -8,6 +8,7 @@
t2.invCode,
t2.invSpaceCode,
t.createUser,
t.count as count,
(select employeeName from auth_user where id = t.createUser) operatorName,
(select name from auth_warehouse where code = t2.invCode) invName,
(select name from auth_space where code = t2.invSpaceCode) invSpaceName,
@ -17,20 +18,17 @@
t2.relId,
bp.cpmctymc productName,
bp.ggxh,
pd.produceDate productionDate,
pd.expireDate,
t2.produceDate productionDate,
t2.expireDate,
bp.nameCode,
bp.zczbhhzbapzbh,
bp.ylqxzcrbarmc,
(select name from basic_corp where erpId = pd.supId) supName,
pd.serialNo,
(select name from basic_corp where erpId = t2.supId) supName,
t2.serialNo,
bp.manufactory,
bp.measname
from inv_place_order t
right join inv_place_order_detail t2 on t.recordId = t2.recordId
left join inv_product_detail pd
on t2.invCode = pd.invCode and t2.invSpaceCode = pd.invSpaceCode and t2.relId = pd.relId
and t2.code = pd.code
left join basic_udirel bu on bu.id = t2.relId
left join basic_products bp on bp.uuid = bu.uuid
<where>
@ -65,6 +63,6 @@
and bp.zczbhhzbapzbh like concat('%', #{zczbhhzbapzbh}, '%')
</if>
</where>
group by t2.code
</select>
</mapper>

@ -14,7 +14,9 @@
bp.measname,
bp.zczbhhzbapzbh,
bp.manufactory,
asp.name as invSpaceName
asp.name as invSpaceName,
bp.nameCode,
(select name from basic_corp where erpId = a2.supId) supName
FROM
inv_place_order_detail a1
LEFT JOIN inv_prein_product_detail a2 ON a1.CODE = a2.CODE

Loading…
Cancel
Save