1.完善盘点转单逻辑

2.修复空库状态下添加部门失败问题
master
x_z 2 years ago
parent 78dde4ca60
commit 667a51a126

@ -33,7 +33,13 @@ public class DeptServiceImpl implements DeptService {
@Override
public DeptEntity selectMaxCode(FilterInvWarehouseRequest filterInvWarehouseRequest) {
return deptDao.selectMaxCode(filterInvWarehouseRequest);
DeptEntity deptEntity = deptDao.selectMaxCode(filterInvWarehouseRequest);
if (null == deptEntity) {
//当前为空数据库初始化部门最大编码为1000
deptEntity = new DeptEntity();
deptEntity.setCode("1000");
}
return deptEntity;
}
@Override

@ -294,20 +294,28 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
}
}
if (CollUtil.isNotEmpty(inCodes)) {
log.info("开始生成盘盈单据");
//开始生成盘盈单据
String inOrderId = buildOrder(invCountOrder, inCodes, inBusType);
log.info("盘点单据:{} 生成的盘盈入库单据号:{}", invCountOrder.getOrderId(), inOrderId);
invCountOrder.setInOrderIds(inOrderId);
//更新单据号
invCountOrderDao.updateById(invCountOrder);
log.info("盘盈单据生成成功");
}
if (CollUtil.isNotEmpty(outCodes)) {
//开始生成盘亏单据
log.info("开始生成盘亏单据");
String outOrderId = buildOrder(invCountOrder, outCodes, outBusType);
invCountOrder.setOrderId(outOrderId);
log.info("盘点单据:{} 生成的盘亏出库单据号:{}", invCountOrder.getOrderId(), outOrderId);
invCountOrder.setOutOrderIds(outOrderId);
//更新单据号
invCountOrderDao.updateById(invCountOrder);
log.info("盘亏单据生成成功");
}
//更新盘点单据的出入库单据信息
invCountOrderDao.updateById(invCountOrder);
}
/**
@ -315,32 +323,35 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
*
* @param invCountOrder
* @param codeTempList
* @param inBusType
* @param busType
*/
private String buildOrder(InvCountOrderEntity invCountOrder, List<IoCodeTempEntity> codeTempList, BasicBussinessTypeEntity inBusType) {
private String buildOrder(InvCountOrderEntity invCountOrder, List<IoCodeTempEntity> codeTempList, BasicBussinessTypeEntity busType) {
if (CollUtil.isNotEmpty(codeTempList)) {
//构造单据数据
IoOrderEntity order = new IoOrderEntity();
order.setMainAction(inBusType.getMainAction());
order.setAction(inBusType.getAction());
order.setMainAction(busType.getMainAction());
order.setAction(busType.getAction());
Date date = new Date();
order.setCreateTime(date);
order.setUpdateTime(date);
order.setDeptCode(invCountOrder.getDeptCode());
order.setInvCode(invCountOrder.getInvCode());
//查询单据往来单位信息
order.setFromCorp(inBusType.getDefaultUnit());
order.setFromCorp(busType.getDefaultUnit());
order.setFromType(ConstantStatus.FROM_COUNT);
order.setCorpOrderId(CustomUtil.getId() + "x");
//设置为草稿状态
order.setStatus(1);
order.setDealStatus(1);
order.setOrderType(3); //正常单据
//设置上传状态为未上传
order.setExportStatus(0);
String prefix = StrUtil.trim(busType.getPrefix());
prefix = Constant.SCAN_ORDER + (StrUtil.isBlank(prefix) ? "" : prefix);
//生成单据号
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(Constant.SCAN_ORDER + StrUtil.trim(inBusType.getPrefix()), "yyyyMMdd"));
String orderNo = gennerOrderUtils.createScOrderNo(new OrderNoTypeBean(prefix, "yyyyMMdd"));
order.setBillNo(orderNo);
//对条码统一设置创建时间,单号等信息
codeTempList.forEach(codeTemp -> {
@ -440,9 +451,9 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) {
if (!countCodeList.contains(invProductDetailEntity.getCode()) && !verifyCodeExist(codeList, invProductDetailEntity.getCode())) {
InvCountOrderDetailEntity orderDetailEntity = new InvCountOrderDetailEntity();
orderDetailEntity.setRelId(invCountOrderDetailEntity.getRelId());
BeanUtil.copyProperties(invCountOrderDetailEntity, orderDetailEntity);
orderDetailEntity.setStatus(0);
IoCodeTempEntity codeTempEntity = buildCodeTempEntity(invCountOrder, invProductDetailEntity.getCode(), orderDetailEntity);
IoCodeTempEntity codeTempEntity = buildCodeTempEntity(invCountOrder, invProductDetailEntity.getCode(), invCountOrderDetailEntity);
codeList.add(codeTempEntity);
}
}
@ -552,10 +563,11 @@ public class InvCountOrderServiceImpl implements InvCountOrderService {
if (CollUtil.isNotEmpty(list)) {
List<BasicBussinessTypeEntity> busTypes = new ArrayList<>(2);
for (BasicBusTypeChangeEntity basicBusTypeChangeEntity : list) {
if ("PDRK".equals(basicBusTypeChangeEntity.getOriginAction()) || "PDCK".equals(basicBusTypeChangeEntity.getOriginAction())) {
if ("PYRK".equals(basicBusTypeChangeEntity.getOriginAction().toUpperCase()) || "PKCK".equals(basicBusTypeChangeEntity.getOriginAction().toUpperCase())) {
busTypes.add(bussinessTypeDao.selectOne(new QueryWrapper<BasicBussinessTypeEntity>().eq("action", basicBusTypeChangeEntity.getTargetAction())));
}
}
return busTypes;
}
return null;
}

@ -140,6 +140,8 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
detailRequest.setBatchNo(invProductEntity.getBatchNo());
detailRequest.setDeptCode(invProductEntity.getDeptCode());
detailRequest.setInvCode(invProductEntity.getInvCode());
detailRequest.setProductionDate(invProductEntity.getProductionDate());
detailRequest.setExpireDate(invProductEntity.getExpireDate());
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetailList(detailRequest);
//提取去重后的码集合
List<String> codeList = invProductDetailEntities.stream().map(InvProductDetailEntity::getCode).distinct().collect(Collectors.toList());
@ -183,11 +185,10 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService {
maOrderDetail.setOrderIdFk(addMAOrderDetailRequest.getOrderIdFk());
maOrderDetail.setCode(invProductDetailEntity.getCode());
maOrderDetail.setRelId(invProductDetailEntity.getRelId());
UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getCode());
maOrderDetail.setNameCode(udi.getUdi());
maOrderDetail.setProductionDate(udi.getProduceDate());
maOrderDetail.setExpireDate(udi.getExpireDate());
maOrderDetail.setBatchNo(udi.getBatchNo());
maOrderDetail.setNameCode(invProductDetailEntity.getNameCode());
maOrderDetail.setProductionDate(invProductDetailEntity.getProduceDate());
maOrderDetail.setExpireDate(invProductDetailEntity.getExpireDate());
maOrderDetail.setBatchNo(invProductDetailEntity.getBatchNo());
maOrderDetail.setCount(codeMap.get(code));
maOrderDetail.setMaStatus(0);
maOrderDetail.setDeviceStatus(1);

@ -69,7 +69,7 @@
AND orderIdFk = #{orderIdFk}
</if>
<if test="relId != null and relId != ''">
AND relId = #{relId
AND relId = #{relId}
</if>
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}

@ -39,7 +39,7 @@
delete
from inv_count_codes
where orderIdFk = #{orderIdFk}
and productId = #{productId}
and relId = #{productId}
</delete>
<select id="selectOrderDetail" resultType="com.glxp.api.entity.inv.InvCountOrderDetailEntity">

Loading…
Cancel
Save