package com.consum.base.service.impl; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.consum.base.core.type.InventoryResultType; import com.consum.base.core.utils.IdUtil; import com.consum.base.pojo.response.FormInventoryGoodsVO; import com.consum.base.service.LWhFormInventoryGoodsService; import com.consum.model.po.LWhFormInventoryGoods; import com.walker.jdbc.service.BaseServiceImpl; import lombok.extern.slf4j.Slf4j; /** * @Description 盘点单物品 * @Author 卢庆阳 * @Date 2023/10/31 */ @Slf4j @Service @Transactional(propagation = Propagation.REQUIRED) public class LWhFormInventoryGoodsServiceImpl extends BaseServiceImpl implements LWhFormInventoryGoodsService { @Override public List getByInventoryId(Long id) { LWhFormInventoryGoods inventoryGoods = new LWhFormInventoryGoods(); inventoryGoods.setWhFormInventoryId(id); return this.select(inventoryGoods); } @Override public List add(List inventoryGoodsList, Long inventoryId) { List goodsList = new ArrayList<>(); for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) { LWhFormInventoryGoods lWhFormInventoryGoods = new LWhFormInventoryGoods(); lWhFormInventoryGoods.setId(IdUtil.generateId()); lWhFormInventoryGoods.setWhFormInventoryId(inventoryId); lWhFormInventoryGoods.setBaseGoodsTemplateId(inventoryGoods.getBaseGoodsTemplateId()); lWhFormInventoryGoods.setGoodsTemplateName(inventoryGoods.getGoodsTemplateName()); lWhFormInventoryGoods.setUnit(inventoryGoods.getUnit()); lWhFormInventoryGoods.setBaseGoodsModelsId(inventoryGoods.getBaseGoodsModelId()); lWhFormInventoryGoods.setBaseGoodsModelsName(inventoryGoods.getBaseGoodsModelsName()); lWhFormInventoryGoods.setInitCounts(inventoryGoods.getInventoryCount()); // 保存成功后返回id,用来进行记录的更新 inventoryGoods.setId(lWhFormInventoryGoods.getId()); goodsList.add(lWhFormInventoryGoods); } this.insert(goodsList); return inventoryGoodsList; } @Override public int updateInventoryGoods(List inventoryGoodsList) { List goodsList = new ArrayList<>(); for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) { LWhFormInventoryGoods lWhFormInventoryGoods = new LWhFormInventoryGoods(); lWhFormInventoryGoods.setId(inventoryGoods.getId()); Integer inventoryCount = inventoryGoods.getInventoryCount(); Integer realNum = inventoryGoods.getRealNum(); if (realNum != null) { int errorCount = realNum - inventoryCount; lWhFormInventoryGoods.setInventoryCounts(realNum); lWhFormInventoryGoods.setErrorCounts(Math.abs(errorCount)); // 盘点结果(1=正常;2=盘盈;3=盘亏) lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? InventoryResultType.SURPLUS.getValue() : (errorCount < 0) ? InventoryResultType.LOSS.getValue() : InventoryResultType.NORMAL.getValue()); goodsList.add(lWhFormInventoryGoods); } } this.updateBatch(goodsList); return 1; } }