java110
2023-06-28 7cd9cc73b6bbae05e8fa734e29f6cd435e2599ba
service-store/src/main/java/com/java110/store/cmd/assetInventory/UpdateAssetInventoryCmd.java
@@ -23,17 +23,14 @@
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.resource.ResourceStoreTimesDto;
import com.java110.dto.user.UserDto;
import com.java110.intf.store.IAssetInventoryDetailV1InnerServiceSMO;
import com.java110.intf.store.IAssetInventoryV1InnerServiceSMO;
import com.java110.intf.store.IAllocationStorehouseInnerServiceSMO;
import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
import com.java110.intf.store.IResourceStoreV1InnerServiceSMO;
import com.java110.intf.store.*;
import com.java110.intf.user.IUserV1InnerServiceSMO;
import com.java110.po.assetInventory.AssetInventoryPo;
import com.java110.po.assetInventoryDetail.AssetInventoryDetailPo;
import com.java110.po.assetInventory.AssetInventoryDetailPo;
import com.java110.po.purchase.ResourceStorePo;
import com.java110.po.user.UserPo;
import com.java110.po.resource.ResourceStoreTimesPo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
@@ -43,6 +40,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal;
import java.util.List;
@@ -80,6 +78,9 @@
    @Autowired
    private IUserV1InnerServiceSMO userV1InnerServiceSMO;
    @Autowired
    private IResourceStoreTimesV1InnerServiceSMO resourceStoreTimesV1InnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
@@ -166,12 +167,41 @@
                    assetInventoryDetailPo = BeanConvertUtil.covertBean(resourceStore, AssetInventoryDetailPo.class);
                    assetInventoryDetailPo.setId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
                    assetInventoryDetailPo.setApplyOrderId(assetInventoryPo.getAiId());
                    //更新批次库存
                    ResourceStoreTimesDto resourceStoreTimesDto = new ResourceStoreTimesDto();
                    resourceStoreTimesDto.setTimesId(assetInventoryDetailPo.getTimesId());
                    List<ResourceStoreTimesDto> resourceStoreTimesDtos = resourceStoreTimesV1InnerServiceSMOImpl.queryResourceStoreTimess(resourceStoreTimesDto);
                    if(resourceStoreTimesDtos.size()>0){
                        ResourceStoreTimesPo resourceStoreTimesPo = new ResourceStoreTimesPo();
                        resourceStoreTimesPo.setTimesId(resourceStoreTimesDtos.get(0).getTimesId());
                        resourceStoreTimesPo.setStock(assetInventoryDetailPo.getQuantity());;
                        resourceStoreTimesV1InnerServiceSMOImpl.updateResourceStoreTimes(resourceStoreTimesPo);
                    }
                    //查询批次库存总和
                    ResourceStoreTimesDto resourceStoreTimesDto1 = new ResourceStoreTimesDto();
                    resourceStoreTimesDto1.setShId(assetInventoryDetailPo.getShId());
                    resourceStoreTimesDto1.setResCode(assetInventoryDetailPo.getResCode());
                    Integer timessCountStock = resourceStoreTimesV1InnerServiceSMOImpl.queryResourceStoreTimessCountStock(resourceStoreTimesDto1);
                    //更新某个仓库某个商品
                    ResourceStorePo resourceStorePo = new ResourceStorePo();
                    resourceStorePo.setResId(assetInventoryDetailPo.getResId());
                    resourceStorePo.setStock(assetInventoryDetailPo.getQuantity());
                    resourceStorePo.setStock(Integer.toString(timessCountStock));
                    //获取紧急采购数量
                    BigDecimal quantity = new BigDecimal(timessCountStock);
                    BigDecimal miniUnitStock = new BigDecimal(resourceStore.getString("miniUnitStock"));
                    //计算最小计量总数
                    BigDecimal miniStock = quantity.multiply(miniUnitStock);
                    resourceStorePo.setMiniStock(String.valueOf(miniStock));
                    resourceStorePo.setStatusCd("0");
                    resourceStoreV1InnerServiceSMOImpl.updateResourceStore(resourceStorePo);
                }
            }
        }