package com.java110.store.bmo.collection.impl; import com.java110.core.annotation.Java110Transactional; import com.java110.core.factory.GenerateCodeFactory; import com.java110.dto.purchaseApply.PurchaseApplyDto; import com.java110.dto.resourceStore.ResourceStoreDto; import com.java110.dto.userStorehouse.UserStorehouseDto; import com.java110.intf.common.IPurchaseApplyUserInnerServiceSMO; import com.java110.intf.store.IPurchaseApplyDetailInnerServiceSMO; import com.java110.intf.store.IPurchaseApplyInnerServiceSMO; import com.java110.intf.store.IResourceStoreInnerServiceSMO; import com.java110.intf.store.IUserStorehouseInnerServiceSMO; import com.java110.po.purchase.PurchaseApplyDetailPo; import com.java110.po.purchase.PurchaseApplyPo; import com.java110.po.purchase.ResourceStorePo; import com.java110.po.userStorehouse.UserStorehousePo; import com.java110.store.bmo.collection.IResourceOutBMO; import com.java110.utils.util.Assert; import com.java110.vo.ResultVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.util.List; @Service("resourceOutBMOImpl") public class ResourceOutBMOImpl implements IResourceOutBMO { @Autowired private IPurchaseApplyDetailInnerServiceSMO purchaseApplyDetailInnerServiceSMOImpl; @Autowired private IResourceStoreInnerServiceSMO resourceStoreInnerServiceSMOImpl; @Autowired private IUserStorehouseInnerServiceSMO userStorehouseInnerServiceSMOImpl; @Autowired private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl; @Override @Java110Transactional public ResponseEntity out(PurchaseApplyPo purchaseApplyPo) { PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto(); purchaseApplyDto.setApplyOrderId(purchaseApplyPo.getApplyOrderId()); List purchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplys(purchaseApplyDto); Assert.listOnlyOne(purchaseApplyDtos, "出库单不存在"); List purchaseApplyDetailPos = purchaseApplyPo.getPurchaseApplyDetailPos(); for (PurchaseApplyDetailPo purchaseApplyDetailPo : purchaseApplyDetailPos) { purchaseApplyDetailInnerServiceSMOImpl.updatePurchaseApplyDetail(purchaseApplyDetailPo); ResourceStorePo resourceStorePo = new ResourceStorePo(); resourceStorePo.setResId(purchaseApplyDetailPo.getResId()); resourceStorePo.setStock("-" + purchaseApplyDetailPo.getPurchaseQuantity()); resourceStorePo.setResOrderType(PurchaseApplyDto.RES_ORDER_TYPE_OUT); resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo); ResourceStoreDto resourceStoreDto = new ResourceStoreDto(); resourceStoreDto.setResId(purchaseApplyDetailPo.getResId()); List resourceStoreDtos = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto); if (resourceStoreDtos == null || resourceStoreDtos.size() < 1) { continue; } //入库到个人仓库中 UserStorehousePo userStorehousePo = new UserStorehousePo(); userStorehousePo.setUsId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_usId)); userStorehousePo.setResId(resourceStoreDtos.get(0).getResId()); userStorehousePo.setResName(resourceStoreDtos.get(0).getResName()); userStorehousePo.setStoreId(resourceStoreDtos.get(0).getStoreId()); userStorehousePo.setUserId(purchaseApplyDtos.get(0).getUserId()); //查询物品 是否已经存在 UserStorehouseDto userStorehouseDto = new UserStorehouseDto(); userStorehouseDto.setResId(resourceStoreDtos.get(0).getResId()); userStorehouseDto.setUserId(purchaseApplyDtos.get(0).getUserId()); userStorehouseDto.setStoreId(resourceStoreDtos.get(0).getStoreId()); List userStorehouseDtos = userStorehouseInnerServiceSMOImpl.queryUserStorehouses(userStorehouseDto); if (userStorehouseDtos == null || userStorehouseDtos.size() < 1) { userStorehousePo.setStock(purchaseApplyDetailPo.getPurchaseQuantity()); userStorehouseInnerServiceSMOImpl.saveUserStorehouses(userStorehousePo); } else { int total = Integer.parseInt(purchaseApplyDetailPo.getPurchaseQuantity()) + Integer.parseInt(userStorehouseDtos.get(0).getStock()); userStorehousePo.setStock(total + ""); userStorehousePo.setUsId(userStorehouseDtos.get(0).getUsId()); userStorehouseInnerServiceSMOImpl.updateUserStorehouses(userStorehousePo); } } //获取订单号 String applyOrderId = purchaseApplyPo.getApplyOrderId(); PurchaseApplyPo purchaseApply = new PurchaseApplyPo(); purchaseApply.setApplyOrderId(applyOrderId); purchaseApply.setState(PurchaseApplyDto.STATE_AUDITED); purchaseApply.setStatusCd("0"); purchaseApplyInnerServiceSMOImpl.updatePurchaseApply(purchaseApply); return ResultVo.createResponseEntity(ResultVo.CODE_OK, "出库成功"); } }