业务单据,库存相关bug修改

master
anthonywj 2 years ago
parent b911d27085
commit dfd5e936cb

@ -182,6 +182,8 @@ public class Constant {
*/
public static final String ORDER_STATUS_NEW_ORDER = "newOrder";
/**
* -
*/

@ -453,9 +453,15 @@ public class IoCodeTempController extends BaseController {
}
if (StrUtil.isNotEmpty(orderId)) {//非首次添加
if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品
//无序列号,则可能存在多个预验收入库单
IoCodeTempEntity codeTempEntity = codeTempService.findByUnique(orderId, code);
List<InvPreinDetailEntity> invPreinDetailEntities = invPreinDetailService.findByCode(code);
int count = 0;
for (InvPreinDetailEntity temp : invPreinDetailEntities) {
count = count + temp.getCount();
}
if (codeTempEntity != null) {
if (invProductDetailEntity.getCount() < (codeTempEntity.getMyCount() + 1)) {
if (count < (codeTempEntity.getMyCount() + 1)) {
return ResultVOUtils.error(500, "超出预验收库存数量");
}
}
@ -497,6 +503,9 @@ public class IoCodeTempController extends BaseController {
if (codeEnttitys.size() > 0) {
exitLocalEntity = isExitLocal(code, codeEnttitys);
if (exitLocalEntity != null) {
if (StrUtil.isEmpty(exitLocalEntity.getSupId()) || exitLocalEntity.getRelId() == null) {
return ResultVOUtils.error(500, "当前UDI码已存在且存在异常未处理");
}
udiRelevanceResponses = udiRelevanceService.selectGroupByNameCode(exitLocalEntity.getNameCode());
BeanUtils.copyProperties(exitLocalEntity, genDetaiEntity);
genDetaiEntity.setCount(1);
@ -781,7 +790,7 @@ public class IoCodeTempController extends BaseController {
// return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
// }
} else {
int count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null);
int count = invProductDetailService.vailStockCount(codeTempEntity.getRelId(), codeTempEntity.getBatchNo(), codeTempEntity.getSupId(), codeTempEntity.getDeptCode(), codeTempEntity.getInvCode(), null);
if (count <= 0) {
return ResultVOUtils.error(500, "当前库存不足不允许0库存出库");
} else {
@ -857,7 +866,7 @@ public class IoCodeTempController extends BaseController {
IoOrderEntity orderEntity = orderService.findByBillNo(codeTempEntity.getOrderId());
if (codeTempEntity.getMyCount() > 1) {
codeTempEntity.setCount(codeTempEntity.getMyCount() - 1);
codeTempEntity.setReCount(codeTempEntity.getMyCount() - udiCalCountUtil.getActCount(codeTempEntity.getRelId()));
codeTempEntity.setReCount(codeTempEntity.getMyReCount() - udiCalCountUtil.getActCount(codeTempEntity.getRelId()));
codeTempService.updateById(codeTempEntity);
} else {
codeTempService.deleteById(id);
@ -870,8 +879,8 @@ public class IoCodeTempController extends BaseController {
int orderCount = orderDetailCodeEntity.getCount();
int orderReCount = orderDetailCodeEntity.getReCount();
if (orderCount > 1) {
orderDetailCodeEntity.setCount(orderCount - codeTempEntity.getMyCount());
orderDetailCodeEntity.setReCount(orderReCount - codeTempEntity.getMyReCount());
orderDetailCodeEntity.setCount(orderCount - 1);
orderDetailCodeEntity.setReCount(orderReCount - udiCalCountUtil.getActCount(codeTempEntity.getRelId()));
ioOrderDetailCodeService.update(orderDetailCodeEntity);
} else {
ioOrderDetailCodeService.deleteById(orderDetailCodeEntity.getId());

@ -91,17 +91,23 @@ public class IoOrderController extends BaseController {
if (CollUtil.isEmpty(orderDetailBizEntities)) {
return ResultVOUtils.error(500, "请先录入产品!");
}
String vailKey = "";
for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) {
if (orderDetailBizEntity.getBindRlFk() == null) {
return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "该产品未指定唯一耗材编码!");
}
if (StrUtil.isEmpty(orderDetailBizEntity.getSupId())) {
return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "该产品未指定供应商!");
}
if (orderDetailBizEntity.getCount() == 0) {
return ResultVOUtils.error(500, orderDetailBizEntity.getCoName() + "产品数量不能为0");
}
// if(orderDetailBizEntity.)
}
IoOrderEntity orderEntity = orderService.findByBillNo(addOrderRequest.getBillNo());
ioAddInoutService.dealBusProcess(orderEntity);
return ResultVOUtils.success("提交成功!");

@ -85,10 +85,6 @@ public class InvPreProductController {
*/
@GetMapping("/spms/inv/pre/product/filterDetail")
public BaseResponse filterInvPreProductDetail(FilterInvPreProductDetailRequest detailRequest) {
if (StrUtil.isBlank(detailRequest.getBatchNo())) {
detailRequest.setBatchNo("empty");
}
List<InvPreProductDetailEntity> invPreProductDetailEntities = invPreProductDetailService.filterPreProductDetailList(detailRequest);
PageInfo<InvPreProductDetailEntity> pageInfo = new PageInfo<>(invPreProductDetailEntities);

@ -86,10 +86,6 @@ public class InvProductController {
*/
@GetMapping("/spms/inv/product/filterDetail")
public BaseResponse filterInvProductDetail(FilterInvProductDetailRequest filterInvProductDetailRequest) {
if (StrUtil.isBlank(filterInvProductDetailRequest.getBatchNo())) {
filterInvProductDetailRequest.setBatchNo("empty");
}
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailService.filterInvProductDetailList(filterInvProductDetailRequest);
PageInfo<InvProductDetailEntity> pageInfo = new PageInfo<>(invProductDetailEntities);

@ -191,6 +191,9 @@ public class IoCheckInoutService {
orderService.update(orderEntity);
return;
}
orderDetailBizService.deleteByOrderId(orderEntity.getBillNo());
orderDetailResultService.deleteByOrderId(orderEntity.getBillNo());
orderDetailCodeEntities.forEach(orderDetailCodeEntity ->
{
//生成业务单据
@ -306,6 +309,7 @@ public class IoCheckInoutService {
orderService.update(orderEntity);
} else {
//生成单据结果
orderDetailResultService.deleteByOrderId(orderEntity.getBillNo());
for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) {
IoOrderDetailResultEntity orderDetailResultEntity = new IoOrderDetailResultEntity();
BeanUtils.copyProperties(orderDetailBizEntity, orderDetailResultEntity);
@ -527,6 +531,8 @@ public class IoCheckInoutService {
//预验收出库,删掉对应预验收库存
if (bussinessTypeEntity.getMainAction().equals(ConstantType.TYPE_OUT) && bussinessTypeEntity.isScanPreIn()) {
List<IoCodeEntity> codeList = codeService.findByOrderId(orderEntity.getBillNo());
//找出UDI码对应的预验收入库单号
Map<String, String> preInOrder = new HashMap<>();
for (IoCodeEntity warehouseEntity : codeList) {
List<InvPreinDetailEntity> invProductDetailEntities = invPreinDetailService.findByCode(warehouseEntity.getCode());
@ -542,27 +548,31 @@ public class IoCheckInoutService {
preInEntity.setPreOutBillNo(orderEntity.getBillNo());
orderService.update(preInEntity);
//预验收不删除单号,方便后续查询
if (bussinessTypeEntity.isPreInBack()) { //预验收如果带回,则清空相关预验收库存;
invPreinOrderService.deleteByOrderId(preInEntity.getBillNo());
// invPreinOrderService.deleteByOrderId(preInEntity.getBillNo());
invPreinDetailService.deleteByOrderId(preInEntity.getBillNo());
} else { //预验收如果不带回,则清除已出库相关库存
for (IoCodeEntity codeEntity : codeList) {
if (StrUtil.isEmpty(codeEntity.getSerialNo())) {
InvPreinDetailEntity invPreinDetailEntity = invPreinDetailService.findByCode(key, codeEntity.getCode());
int count = invPreinDetailEntity.getCount() - 1;
if (count == 0) {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
} else {
invPreinDetailEntity.setCount(count);
invPreinDetailService.update(invPreinDetailEntity);
}
int reCount = invPreinDetailEntity.getReCount() - codeEntity.getMyReCount();
if (reCount == 0) {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
} else {
invPreinDetailEntity.setReCount(reCount);
invPreinDetailService.update(invPreinDetailEntity);
if (invPreinDetailEntity != null) {
int count = invPreinDetailEntity.getCount() - 1;
if (count == 0) {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
} else {
invPreinDetailEntity.setCount(count);
invPreinDetailService.update(invPreinDetailEntity);
}
int reCount = invPreinDetailEntity.getReCount() - codeEntity.getMyReCount();
if (reCount == 0) {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
} else {
invPreinDetailEntity.setReCount(reCount);
invPreinDetailService.update(invPreinDetailEntity);
}
}
} else {
invPreinDetailService.deleteByCode(key, codeEntity.getCode());
}

@ -474,7 +474,7 @@ public class IoOrderServiceImpl implements IoOrderService {
filterOrderRequest.setOrderType(ConstantStatus.ORDER_TYPE_SCAN);
break;
case Constant.ORDER_STATUS_NEW_ORDER:
filterOrderRequest.setStatuses(Arrays.asList(1, 2, 3, 4, 6));
filterOrderRequest.setStatuses(Arrays.asList(1, 2, 4));
filterOrderRequest.setDealStatuses(Arrays.asList(1, 2));
break;
case Constant.ORDER_STATUS_UN_CHECK:

@ -47,7 +47,7 @@ public interface InvProductDetailService {
void setOrderInfo(InvProductDetailResponse response);
int vailStockCount(Long relId, String invStorageCode, String invWarehouseCode, String invSpaceCode);
int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode);
}

@ -131,19 +131,21 @@ public class InvProductDetailServiceImpl implements InvProductDetailService {
@Override
public int vailStockCount(Long relId, String deptCode, String invCode, String invSpaceCode) {
public int vailStockCount(Long relId, String batchNo, String supId, String deptCode, String invCode, String invSpaceCode) {
if (relId == null) {
return 0;
}
List<InvProductDetailEntity> datas =
invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>().eq("relId", relId).eq("deptCode", deptCode).eq("invCode", invCode).eq("invSpaceCode", invSpaceCode));
invProductDetailDao.selectList(new QueryWrapper<InvProductDetailEntity>().eq("relId", relId).eq(StrUtil.isNotEmpty(batchNo), "batchNo", batchNo)
.isNull(StrUtil.isEmpty(batchNo), "batchNo").eq(StrUtil.isNotEmpty(supId),"supId", supId).eq("deptCode", deptCode).eq("invCode", invCode).eq(StrUtil.isNotEmpty(invSpaceCode), "invSpaceCode", invSpaceCode));
int count = 0;
if (CollUtil.isNotEmpty(datas)) {
for (InvProductDetailEntity invProductDetailEntity : datas) {
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT))
count = count + invProductDetailEntity.getCount();
count = count + invProductDetailEntity.getReCount();
else {
count = count - invProductDetailEntity.getCount();
count = count - invProductDetailEntity.getReCount();
}
}
}

@ -73,6 +73,7 @@
AND orderType = #{orderType}
</if>
</where>
order by createTime desc
</select>
<select id="filterOrderList" resultType="com.glxp.api.entity.inout.IoOrderEntity">
@ -122,6 +123,7 @@
AND date_format(createTime, '%Y-%m-%d') &lt;= date_format(#{endTime}, '%Y-%m-%d')
</if>
</where>
order by createTime desc
</select>

@ -1,7 +1,6 @@
<?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.InvPreProductDetailDao">
<select id="filterPreProductDetailList" resultType="com.glxp.api.entity.inv.InvPreProductDetailEntity">
select *
from inv_pre_product_detail
@ -39,7 +38,7 @@
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
<if test="batchNo == 'empty'">
<if test="batchNo == null and batchNo == ''">
AND batchNo is null
</if>
<if test="productIdList != null and productIdList.size() != 0">
@ -75,4 +74,4 @@
</if>
</where>
</delete>
</mapper>
</mapper>

@ -38,10 +38,10 @@
<if test="invSpaceCode != null and invSpaceCode != ''">
AND invSpaceCode = #{invSpaceCode}
</if>
<if test="batchNo != null and batchNo != '' and batchNo != 'empty'">
<if test="batchNo != null and batchNo != ''">
AND batchNo = #{batchNo}
</if>
<if test="batchNo == 'empty'">
<if test="batchNo == null and batchNo == ''">
AND batchNo is null
</if>
<if test="productionDate != null and productionDate != ''">

Loading…
Cancel
Save