1.完善盘点转单逻辑

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

@ -33,7 +33,13 @@ public class DeptServiceImpl implements DeptService {
@Override @Override
public DeptEntity selectMaxCode(FilterInvWarehouseRequest filterInvWarehouseRequest) { 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 @Override

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

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

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

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

Loading…
Cancel
Save