Compare commits

...

2 Commits

Author SHA1 Message Date
gaowdong f0fdea424f Merge remote-tracking branch 'origin/master' 2025-07-10 15:14:20 +08:00
gaowdong 00d3be250d 库存管理-按入库单出库 2025-07-10 15:13:54 +08:00
3 changed files with 64 additions and 1 deletions

View File

@ -89,4 +89,6 @@ public interface ImsIntoInventoryMapper {
public List<ImsIntoInventoryDetail> selectImsIntoInventoryDetailListByInventoryId(Long inventoryId);
public int updateIntoInventoryNum(@Param("intoDetailId") Long intoDetailId, @Param("fetchNum") BigDecimal fetchNum);
public ImsIntoInventoryDetail selectImsIntoInventoryDetailListByIntoDetailId(@Param("intoDetailId") Long intoDetailId);
}

View File

@ -186,7 +186,7 @@ public class ImsOutInventoryServiceImpl implements IImsOutInventoryService
Long outId = imsOutInventory.getOutId();
if (StringUtils.isNotNull(imsOutInventoryDetailAddList))
{
List<ImsOutInventoryDetail> list = new ArrayList<ImsOutInventoryDetail>();
List<ImsOutInventoryDetail> list = new ArrayList<>();
long totalPriceSum = 0L;
for (ImsOutInventoryDetailAdd imsOutInventoryDetailAdd : imsOutInventoryDetailAddList)
{
@ -215,6 +215,7 @@ public class ImsOutInventoryServiceImpl implements IImsOutInventoryService
if(Objects.isNull(imsOutInventoryDetail.getFetchNum())) {
throw new ServiceException("出库数量不能为空");
}
//出库
ImsInventory imsInventoryUpdate = new ImsInventory();
imsInventoryUpdate.setInventoryId(imsOutInventoryDetail.getInventoryId());
imsInventoryUpdate.setFetchNum(imsOutInventoryDetail.getFetchNum());
@ -267,6 +268,31 @@ public class ImsOutInventoryServiceImpl implements IImsOutInventoryService
throw new ServiceException("出口失败,库存不足");
}
totalPriceSum += totalPrice;
}else {
ImsIntoInventoryDetail imsIntoInventoryDetail = imsIntoInventoryMapper
.selectImsIntoInventoryDetailListByIntoDetailId(imsOutInventoryDetail.getIntoDetailId());
if(Objects.nonNull(imsIntoInventoryDetail)) {
if(Objects.isNull(imsOutInventoryDetail.getFetchNum())) {
throw new ServiceException("出库数量不能为空");
}
int updateRows = imsIntoInventoryMapper.
updateIntoInventoryNum(imsIntoInventoryDetail.getIntoDetailId(), imsOutInventoryDetail.getFetchNum());
if(updateRows > 0) {
long outTotalPrice = (imsOutInventoryDetail.getFetchNum()
.multiply(BigDecimal.valueOf(imsIntoInventoryDetail.getUnitPrice()))).longValue();
totalPriceSum += outTotalPrice;
ImsOutInventoryDetail imsOutInventoryDetailForInsert = new ImsOutInventoryDetail();
BeanUtils.copyProperties(imsOutInventoryDetail, imsOutInventoryDetailForInsert);
imsOutInventoryDetailForInsert.setIntoDetailId(imsIntoInventoryDetail.getIntoDetailId());
imsOutInventoryDetailForInsert.setFetchNum(imsOutInventoryDetail.getFetchNum());
imsOutInventoryDetailForInsert.setTotalPrice(outTotalPrice);
list.add(imsOutInventoryDetailForInsert);
}else{
throw new ServiceException("出库失败");
}
}else {
throw new ServiceException("出库失败");
}
}
updateFetchMaterialOrderStatus(imsOutInventory);
}

View File

@ -172,6 +172,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by iii.into_date
</select>
<select id="selectImsIntoInventoryDetailListByIntoDetailId" resultMap="ImsIntoInventoryDetailResult">
select into_detail_id,
iiid.into_id,
iiid.into_code,
inventory_id,
material_id,
iiid.supplier_id,
unit_id,
size,
unit_price,
total_price,
delivery_num,
pur_num,
unqualified_num,
inventory_num,
product_date,
expire_time,
img_url,
if_fill_inventory,
relate_order_goods_detail_id,
relate_delivery_goods_detail_id,
iiid.del_flag,
iiid.create_by,
iiid.create_time,
iiid.update_by,
iiid.update_time
from ims_into_inventory_detail iiid
left join ims_into_inventory iii on iii.into_id = iiid.into_id
where iiid.into_detail_id = #{intoDetailId}
and iii.status = '2'
and iiid.inventory_num > 0
and iiid.del_flag = '0'
order by iii.into_date
</select>
<insert id="insertImsIntoInventory" parameterType="com.bonus.canteen.core.ims.domain.ImsIntoInventory" useGeneratedKeys="true" keyProperty="intoId">
insert into ims_into_inventory
<trim prefix="(" suffix=")" suffixOverrides=",">