소스 검색

优化代码

java110 3 년 전
부모
커밋
762d2ea57f

+ 0 - 209
service-store/src/main/java/com/java110/store/api/PurchaseApi.java

@@ -202,213 +202,4 @@ public class PurchaseApi {
         purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos);
         return purchaseApplyBMOImpl.apply(purchaseApplyPo,reqJson);
     }
-
-    /**
-     * 紧急采购入库
-     *
-     * @author fqz
-     * @date 2021-07-07 15:46
-     */
-    @RequestMapping(value = "/urgentPurchaseApply", method = RequestMethod.POST)
-    public ResponseEntity<String> urgentPurchaseApply(@RequestBody JSONObject reqJson,
-                                                      @RequestHeader(value = "user-id") String userId,
-                                                      @RequestHeader(value = "user-name") String userName,
-                                                      @RequestHeader(value = "store-id") String storeId) {
-        Assert.hasKeyAndValue(reqJson, "resourceStores", "必填,请填写申请采购的物资");
-        Assert.hasKeyAndValue(reqJson, "description", "必填,请填写采购申请说明");
-        Assert.hasKeyAndValue(reqJson, "resOrderType", "必填,请填写申请类型");
-        PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
-        purchaseApplyDto.setResOrderType(reqJson.getString("resOrderType"));
-        //紧急采购入库
-        purchaseApplyDto.setWarehousingWay(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
-        purchaseApplyDto.setCommunityId(reqJson.getString("communityId"));
-        purchaseApplyDto.setUserId(userId);
-        //查询当月数据标识,当值为1时查询当月数据
-        purchaseApplyDto.setUrgentFlag("1");
-        //查询当月紧急采购的次数
-        int count = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplysCount(purchaseApplyDto);
-        //取出开关映射的值
-        String value = MappingCache.getValue(DOMAIN_COMMON, URGRNT_NUMBER);
-        if (StringUtil.isEmpty(value)) {
-            throw new IllegalArgumentException("映射值为空!");
-        }
-        int number = Integer.parseInt(value);
-        if (count >= number) {
-            throw new IllegalArgumentException("本月紧急采购次数已超过" + number + "次,请下月再使用!");
-        }
-        PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
-        purchaseApplyPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
-        purchaseApplyPo.setDescription(reqJson.getString("description"));
-        purchaseApplyPo.setUserId(userId);
-        purchaseApplyPo.setUserName(userName);
-        purchaseApplyPo.setEndUserName(reqJson.getString("endUserName"));
-        purchaseApplyPo.setEndUserTel(reqJson.getString("endUserTel"));
-        purchaseApplyPo.setStoreId(storeId);
-        purchaseApplyPo.setResOrderType(PurchaseApplyDto.RES_ORDER_TYPE_ENTER);
-        purchaseApplyPo.setState(PurchaseApplyDto.STATE_END);
-        purchaseApplyPo.setCreateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        purchaseApplyPo.setDescription(reqJson.getString("description"));
-        purchaseApplyPo.setCreateUserId(userId);
-        purchaseApplyPo.setCreateUserName(userName);
-        purchaseApplyPo.setWarehousingWay(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
-        purchaseApplyPo.setCommunityId(reqJson.getString("communityId"));
-        //获取采购物品信息
-        JSONArray resourceStores = reqJson.getJSONArray("resourceStores");
-        List<PurchaseApplyDetailPo> purchaseApplyDetailPos = new ArrayList<>();
-        for (int resourceStoreIndex = 0; resourceStoreIndex < resourceStores.size(); resourceStoreIndex++) {
-            JSONObject resourceStore = resourceStores.getJSONObject(resourceStoreIndex);
-            PurchaseApplyDetailPo purchaseApplyDetailPo = BeanConvertUtil.covertBean(resourceStore, PurchaseApplyDetailPo.class);
-            purchaseApplyDetailPo.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
-            purchaseApplyDetailPo.setPurchaseQuantity(resourceStore.get("quantity").toString());
-            purchaseApplyDetailPo.setPurchaseRemark(resourceStore.get("remark").toString());
-            purchaseApplyDetailPo.setOriginalStock(resourceStore.getString("stock"));
-            purchaseApplyDetailPo.setPrice(resourceStore.getString("urgentPrice"));
-            purchaseApplyDetailPos.add(purchaseApplyDetailPo);
-            //查询当前小区仓库下该物品信息
-            ResourceStoreDto resourceStoreDto = new ResourceStoreDto();
-            resourceStoreDto.setResCode(resourceStore.getString("resCode"));
-
-            if (StringUtil.isEmpty(resourceStore.getString("shzId"))) {
-                resourceStore.put("shzId", resourceStore.getString("shId"));
-            }
-            resourceStoreDto.setShId(resourceStore.getString("shzId")); //小区目标仓库
-
-            List<ResourceStoreDto> resourceStoreDtos = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto);
-            //调整集团仓库物品信息
-            ResourceStorePo resourceStorePo = new ResourceStorePo();
-            resourceStorePo.setResId(purchaseApplyDetailPo.getResId());
-            resourceStorePo.setPurchasePrice(resourceStore.getString("urgentPrice"));
-            resourceStorePo.setStock(purchaseApplyDetailPo.getQuantity());
-            resourceStorePo.setResOrderType(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
-            resourceStorePo.setOperationType(PurchaseApplyDto.WEIGHTED_MEAN_TRUE);
-            resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
-            if (resourceStoreDtos != null && resourceStoreDtos.size() == 1) {
-                //生成调拨记录
-                AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto();
-                allocationStorehouseDto.setAsId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_allocationStorehouseId));
-                allocationStorehouseDto.setbId("-1");
-                allocationStorehouseDto.setShIda(resourceStore.getString("shId"));
-                allocationStorehouseDto.setShIdz(resourceStore.getString("shzId"));//小区仓库
-                allocationStorehouseDto.setResId(resourceStoreDtos.get(0).getResId());
-                allocationStorehouseDto.setResName(resourceStoreDtos.get(0).getResName());
-                allocationStorehouseDto.setStoreId(storeId);
-                allocationStorehouseDto.setStock(purchaseApplyDetailPo.getQuantity());
-                allocationStorehouseDto.setStartUserId(userId);
-                allocationStorehouseDto.setStartUserName(userName);
-                allocationStorehouseDto.setCreateTime(new Date());
-                allocationStorehouseDto.setRemark("紧急采购入库并调拨");
-                allocationStorehouseDto.setApplyId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyId));
-                allocationStorehouseDto.setOriginalStock(resourceStoreDtos.get(0).getStock());
-                allocationStorehouseInnerServiceSMOImpl.saveAllocationStorehouses(allocationStorehouseDto);
-                //生成调拨申请记录
-                AllocationStorehouseApplyDto allocationStorehouseApplyDto = new AllocationStorehouseApplyDto();
-                allocationStorehouseApplyDto.setApplyId(allocationStorehouseDto.getApplyId());
-                allocationStorehouseApplyDto.setbId("-1");
-                allocationStorehouseApplyDto.setStartUserId(allocationStorehouseDto.getStartUserId());
-                allocationStorehouseApplyDto.setStartUserName(allocationStorehouseDto.getStartUserName());
-                allocationStorehouseApplyDto.setRemark("紧急采购入库并调拨");
-                allocationStorehouseApplyDto.setApplyCount(purchaseApplyDetailPo.getQuantity());
-                allocationStorehouseApplyDto.setStoreId(storeId);
-                allocationStorehouseApplyDto.setCreateTime(new Date());
-                allocationStorehouseApplyDto.setState(AllocationStorehouseDto.STATE_SUCCESS);
-                allocationStorehouseApplyDto.setCommunityId(reqJson.getString("communityId"));
-                //调拨
-                allocationStorehouseApplyDto.setApplyType("30000");
-                allocationStorehouseApplyInnerServiceSMOImpl.saveAllocationStorehouseApplys(allocationStorehouseApplyDto);
-
-                //调整小区仓库物品均价、数量
-
-                //集团仓库商品信息
-                ResourceStoreDto resourceStoreDto2 = new ResourceStoreDto();
-                resourceStoreDto2.setResCode(resourceStore.getString("resCode"));
-                resourceStoreDto2.setResId(purchaseApplyDetailPo.getResId());
-                List<ResourceStoreDto> resourceStoreDtoList = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto2);
-
-                ResourceStorePo resourceStorePo1 = new ResourceStorePo();
-                resourceStorePo1.setPurchasePrice(resourceStore.getString("urgentPrice"));
-                resourceStorePo1.setResId(resourceStoreDtos.get(0).getResId());
-                resourceStorePo1.setStock(purchaseApplyDetailPo.getQuantity());
-                resourceStorePo1.setAveragePrice(resourceStoreDtoList.get(0).getAveragePrice());
-                resourceStorePo1.setPrice(resourceStoreDtoList.get(0).getPrice());
-                resourceStorePo1.setResOrderType(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
-                resourceStorePo1.setOperationType(PurchaseApplyDto.WEIGHTED_MEAN_FALSE);
-                //获取紧急采购数量
-                BigDecimal purchaseQuantity = new BigDecimal(purchaseApplyDetailPo.getQuantity());
-                //获取原有最小计量总数
-                if (StringUtil.isEmpty(resourceStoreDtos.get(0).getMiniStock())) {
-                    throw new IllegalArgumentException("最小计量总数不能为空!");
-                }
-                BigDecimal miniStock = new BigDecimal(resourceStoreDtos.get(0).getMiniStock());
-                //获取最小计量单位数量
-                if (StringUtil.isEmpty(resourceStoreDtos.get(0).getMiniUnitStock())) {
-                    throw new IllegalArgumentException("最小计量单位数量不能为空!");
-                }
-                BigDecimal miniUnitStock = new BigDecimal(resourceStoreDtos.get(0).getMiniUnitStock());
-                //计算最小计量总数
-                BigDecimal newMiniStock = purchaseQuantity.multiply(miniUnitStock).add(miniStock);
-                resourceStorePo1.setMiniStock(String.valueOf(newMiniStock));
-                resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo1);
-            } else if (resourceStoreDtos != null && resourceStoreDtos.size() > 1) {
-                throw new IllegalArgumentException("查询商品错误!");
-            } else {
-                //生成调拨记录
-                AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto();
-                allocationStorehouseDto.setAsId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_allocationStorehouseId));
-                allocationStorehouseDto.setbId("-1");
-                allocationStorehouseDto.setShIda(resourceStore.getString("shId"));
-                allocationStorehouseDto.setShIdz(resourceStore.getString("shzId"));//小区目标仓库
-                allocationStorehouseDto.setResId(resourceStore.getString("resId"));
-                allocationStorehouseDto.setResName(resourceStore.getString("resName"));
-                allocationStorehouseDto.setStoreId(storeId);
-                allocationStorehouseDto.setStock(purchaseApplyDetailPo.getQuantity());
-                allocationStorehouseDto.setStartUserId(userId);
-                allocationStorehouseDto.setStartUserName(userName);
-                allocationStorehouseDto.setCreateTime(new Date());
-                allocationStorehouseDto.setRemark("紧急采购入库并调拨");
-                allocationStorehouseDto.setApplyId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyId));
-                allocationStorehouseDto.setOriginalStock("0");
-                allocationStorehouseInnerServiceSMOImpl.saveAllocationStorehouses(allocationStorehouseDto);
-                //生成调拨申请记录
-                AllocationStorehouseApplyDto allocationStorehouseApplyDto = new AllocationStorehouseApplyDto();
-                allocationStorehouseApplyDto.setApplyId(allocationStorehouseDto.getApplyId());
-                allocationStorehouseApplyDto.setbId("-1");
-                allocationStorehouseApplyDto.setStartUserId(allocationStorehouseDto.getStartUserId());
-                allocationStorehouseApplyDto.setStartUserName(allocationStorehouseDto.getStartUserName());
-                allocationStorehouseApplyDto.setRemark("紧急采购入库并调拨");
-                allocationStorehouseApplyDto.setApplyCount(purchaseApplyDetailPo.getQuantity());
-                allocationStorehouseApplyDto.setStoreId(storeId);
-                allocationStorehouseApplyDto.setCreateTime(new Date());
-                allocationStorehouseApplyDto.setState(AllocationStorehouseDto.STATE_SUCCESS);
-                allocationStorehouseApplyDto.setCommunityId(reqJson.getString("communityId"));
-                //调拨
-                allocationStorehouseApplyDto.setApplyType("30000");
-                allocationStorehouseApplyInnerServiceSMOImpl.saveAllocationStorehouseApplys(allocationStorehouseApplyDto);
-                //小区仓库进行入库插入
-                //集团仓库商品信息
-                ResourceStoreDto resourceStoreDto2 = new ResourceStoreDto();
-                resourceStoreDto2.setResCode(resourceStore.getString("resCode"));
-                resourceStoreDto2.setResId(purchaseApplyDetailPo.getResId());
-                List<ResourceStoreDto> resourceStoreDtoList = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto2);
-                ResourceStoreDto resourceStoreDto1 = BeanConvertUtil.covertBean(resourceStoreDtoList.get(0), ResourceStoreDto.class);
-                resourceStoreDto1.setResId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_resId));
-                resourceStoreDto1.setShId(resourceStore.getString("shzId"));
-                resourceStoreDto1.setbId("-1");
-                resourceStoreDto1.setStock(purchaseApplyDetailPo.getQuantity());
-                resourceStoreDto1.setCreateTime(new Date());
-                //获取紧急采购数量
-                BigDecimal purchaseQuantity = new BigDecimal(purchaseApplyDetailPo.getQuantity());
-                //获取最小计量单位数量
-                if (StringUtil.isEmpty(resourceStore.getString("miniUnitStock"))) {
-                    throw new IllegalArgumentException("最小计量单位数量不能为空!");
-                }
-                BigDecimal miniUnitStock = new BigDecimal(resourceStore.getString("miniUnitStock"));
-                //计算最小计量总数
-                BigDecimal miniStock = purchaseQuantity.multiply(miniUnitStock);
-                resourceStoreDto1.setMiniStock(String.valueOf(miniStock));
-                resourceStoreInnerServiceSMOImpl.saveResourceStore(resourceStoreDto1);
-            }
-        }
-        purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos);
-        return purchaseApplyBMOImpl.apply(purchaseApplyPo,reqJson);
-    }
 }

+ 267 - 0
service-store/src/main/java/com/java110/store/cmd/purchase/UrgentPurchaseApplyCmd.java

@@ -0,0 +1,267 @@
+package com.java110.store.cmd.purchase;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.allocationStorehouse.AllocationStorehouseDto;
+import com.java110.dto.allocationStorehouseApply.AllocationStorehouseApplyDto;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
+import com.java110.dto.resourceStore.ResourceStoreDto;
+import com.java110.intf.store.*;
+import com.java110.po.purchase.PurchaseApplyDetailPo;
+import com.java110.po.purchase.PurchaseApplyPo;
+import com.java110.po.purchase.ResourceStorePo;
+import com.java110.store.bmo.purchase.IPurchaseApplyBMO;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "/purchase/urgentPurchaseApply")
+public class UrgentPurchaseApplyCmd extends Cmd {
+
+    //域
+    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
+
+    //键
+    public static final String URGRNT_NUMBER = "URGRNT_NUMBER";
+
+    @Autowired
+    private IAllocationStorehouseInnerServiceSMO allocationStorehouseInnerServiceSMOImpl;
+
+    @Autowired
+    private IAllocationStorehouseApplyInnerServiceSMO allocationStorehouseApplyInnerServiceSMOImpl;
+
+    @Autowired
+    private IPurchaseApplyInnerServiceSMO purchaseApplyInnerServiceSMOImpl;
+
+    @Autowired
+    private IResourceStoreInnerServiceSMO resourceStoreInnerServiceSMOImpl;
+
+    @Autowired
+    private IStorehouseInnerServiceSMO storehouseInnerServiceSMOImpl;
+
+    @Autowired
+    private IPurchaseApplyBMO purchaseApplyBMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.hasKeyAndValue(reqJson, "resourceStores", "必填,请填写申请采购的物资");
+        Assert.hasKeyAndValue(reqJson, "description", "必填,请填写采购申请说明");
+        Assert.hasKeyAndValue(reqJson, "resOrderType", "必填,请填写申请类型");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        String userId = context.getReqHeaders().get("user-id");
+        String userName = context.getReqHeaders().get("user-name");
+        String storeId = context.getReqHeaders().get("store-id");
+        PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
+        purchaseApplyDto.setResOrderType(reqJson.getString("resOrderType"));
+        //紧急采购入库
+        purchaseApplyDto.setWarehousingWay(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
+        purchaseApplyDto.setCommunityId(reqJson.getString("communityId"));
+        purchaseApplyDto.setUserId(userId);
+        //查询当月数据标识,当值为1时查询当月数据
+        purchaseApplyDto.setUrgentFlag("1");
+        //查询当月紧急采购的次数
+        int count = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplysCount(purchaseApplyDto);
+        //取出开关映射的值
+        String value = MappingCache.getValue(DOMAIN_COMMON, URGRNT_NUMBER);
+        if (StringUtil.isEmpty(value)) {
+            throw new IllegalArgumentException("映射值为空!");
+        }
+        int number = Integer.parseInt(value);
+        if (count >= number) {
+            throw new IllegalArgumentException("本月紧急采购次数已超过" + number + "次,请下月再使用!");
+        }
+        PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
+        purchaseApplyPo.setApplyOrderId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
+        purchaseApplyPo.setDescription(reqJson.getString("description"));
+        purchaseApplyPo.setUserId(userId);
+        purchaseApplyPo.setUserName(userName);
+        purchaseApplyPo.setEndUserName(reqJson.getString("endUserName"));
+        purchaseApplyPo.setEndUserTel(reqJson.getString("endUserTel"));
+        purchaseApplyPo.setStoreId(storeId);
+        purchaseApplyPo.setResOrderType(PurchaseApplyDto.RES_ORDER_TYPE_ENTER);
+        purchaseApplyPo.setState(PurchaseApplyDto.STATE_END);
+        purchaseApplyPo.setCreateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        purchaseApplyPo.setDescription(reqJson.getString("description"));
+        purchaseApplyPo.setCreateUserId(userId);
+        purchaseApplyPo.setCreateUserName(userName);
+        purchaseApplyPo.setWarehousingWay(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
+        purchaseApplyPo.setCommunityId(reqJson.getString("communityId"));
+        //获取采购物品信息
+        JSONArray resourceStores = reqJson.getJSONArray("resourceStores");
+        List<PurchaseApplyDetailPo> purchaseApplyDetailPos = new ArrayList<>();
+        for (int resourceStoreIndex = 0; resourceStoreIndex < resourceStores.size(); resourceStoreIndex++) {
+            JSONObject resourceStore = resourceStores.getJSONObject(resourceStoreIndex);
+            PurchaseApplyDetailPo purchaseApplyDetailPo = BeanConvertUtil.covertBean(resourceStore, PurchaseApplyDetailPo.class);
+            purchaseApplyDetailPo.setId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
+            purchaseApplyDetailPo.setPurchaseQuantity(resourceStore.get("quantity").toString());
+            purchaseApplyDetailPo.setPurchaseRemark(resourceStore.get("remark").toString());
+            purchaseApplyDetailPo.setOriginalStock(resourceStore.getString("stock"));
+            purchaseApplyDetailPo.setPrice(resourceStore.getString("urgentPrice"));
+            purchaseApplyDetailPos.add(purchaseApplyDetailPo);
+            //查询当前小区仓库下该物品信息
+            ResourceStoreDto resourceStoreDto = new ResourceStoreDto();
+            resourceStoreDto.setResCode(resourceStore.getString("resCode"));
+
+            if (StringUtil.isEmpty(resourceStore.getString("shzId"))) {
+                resourceStore.put("shzId", resourceStore.getString("shId"));
+            }
+            resourceStoreDto.setShId(resourceStore.getString("shzId")); //小区目标仓库
+
+            List<ResourceStoreDto> resourceStoreDtos = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto);
+            //调整集团仓库物品信息
+            ResourceStorePo resourceStorePo = new ResourceStorePo();
+            resourceStorePo.setResId(purchaseApplyDetailPo.getResId());
+            resourceStorePo.setPurchasePrice(resourceStore.getString("urgentPrice"));
+            resourceStorePo.setStock(purchaseApplyDetailPo.getQuantity());
+            resourceStorePo.setResOrderType(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
+            resourceStorePo.setOperationType(PurchaseApplyDto.WEIGHTED_MEAN_TRUE);
+            resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo);
+            if (resourceStoreDtos != null && resourceStoreDtos.size() == 1) {
+                //生成调拨记录
+                AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto();
+                allocationStorehouseDto.setAsId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_allocationStorehouseId));
+                allocationStorehouseDto.setbId("-1");
+                allocationStorehouseDto.setShIda(resourceStore.getString("shId"));
+                allocationStorehouseDto.setShIdz(resourceStore.getString("shzId"));//小区仓库
+                allocationStorehouseDto.setResId(resourceStoreDtos.get(0).getResId());
+                allocationStorehouseDto.setResName(resourceStoreDtos.get(0).getResName());
+                allocationStorehouseDto.setStoreId(storeId);
+                allocationStorehouseDto.setStock(purchaseApplyDetailPo.getQuantity());
+                allocationStorehouseDto.setStartUserId(userId);
+                allocationStorehouseDto.setStartUserName(userName);
+                allocationStorehouseDto.setCreateTime(new Date());
+                allocationStorehouseDto.setRemark("紧急采购入库并调拨");
+                allocationStorehouseDto.setApplyId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyId));
+                allocationStorehouseDto.setOriginalStock(resourceStoreDtos.get(0).getStock());
+                allocationStorehouseInnerServiceSMOImpl.saveAllocationStorehouses(allocationStorehouseDto);
+                //生成调拨申请记录
+                AllocationStorehouseApplyDto allocationStorehouseApplyDto = new AllocationStorehouseApplyDto();
+                allocationStorehouseApplyDto.setApplyId(allocationStorehouseDto.getApplyId());
+                allocationStorehouseApplyDto.setbId("-1");
+                allocationStorehouseApplyDto.setStartUserId(allocationStorehouseDto.getStartUserId());
+                allocationStorehouseApplyDto.setStartUserName(allocationStorehouseDto.getStartUserName());
+                allocationStorehouseApplyDto.setRemark("紧急采购入库并调拨");
+                allocationStorehouseApplyDto.setApplyCount(purchaseApplyDetailPo.getQuantity());
+                allocationStorehouseApplyDto.setStoreId(storeId);
+                allocationStorehouseApplyDto.setCreateTime(new Date());
+                allocationStorehouseApplyDto.setState(AllocationStorehouseDto.STATE_SUCCESS);
+                allocationStorehouseApplyDto.setCommunityId(reqJson.getString("communityId"));
+                //调拨
+                allocationStorehouseApplyDto.setApplyType("30000");
+                allocationStorehouseApplyInnerServiceSMOImpl.saveAllocationStorehouseApplys(allocationStorehouseApplyDto);
+
+                //调整小区仓库物品均价、数量
+
+                //集团仓库商品信息
+                ResourceStoreDto resourceStoreDto2 = new ResourceStoreDto();
+                resourceStoreDto2.setResCode(resourceStore.getString("resCode"));
+                resourceStoreDto2.setResId(purchaseApplyDetailPo.getResId());
+                List<ResourceStoreDto> resourceStoreDtoList = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto2);
+
+                ResourceStorePo resourceStorePo1 = new ResourceStorePo();
+                resourceStorePo1.setPurchasePrice(resourceStore.getString("urgentPrice"));
+                resourceStorePo1.setResId(resourceStoreDtos.get(0).getResId());
+                resourceStorePo1.setStock(purchaseApplyDetailPo.getQuantity());
+                resourceStorePo1.setAveragePrice(resourceStoreDtoList.get(0).getAveragePrice());
+                resourceStorePo1.setPrice(resourceStoreDtoList.get(0).getPrice());
+                resourceStorePo1.setResOrderType(PurchaseApplyDto.WAREHOUSING_TYPE_URGENT);
+                resourceStorePo1.setOperationType(PurchaseApplyDto.WEIGHTED_MEAN_FALSE);
+                //获取紧急采购数量
+                BigDecimal purchaseQuantity = new BigDecimal(purchaseApplyDetailPo.getQuantity());
+                //获取原有最小计量总数
+                if (StringUtil.isEmpty(resourceStoreDtos.get(0).getMiniStock())) {
+                    throw new IllegalArgumentException("最小计量总数不能为空!");
+                }
+                BigDecimal miniStock = new BigDecimal(resourceStoreDtos.get(0).getMiniStock());
+                //获取最小计量单位数量
+                if (StringUtil.isEmpty(resourceStoreDtos.get(0).getMiniUnitStock())) {
+                    throw new IllegalArgumentException("最小计量单位数量不能为空!");
+                }
+                BigDecimal miniUnitStock = new BigDecimal(resourceStoreDtos.get(0).getMiniUnitStock());
+                //计算最小计量总数
+                BigDecimal newMiniStock = purchaseQuantity.multiply(miniUnitStock).add(miniStock);
+                resourceStorePo1.setMiniStock(String.valueOf(newMiniStock));
+                resourceStoreInnerServiceSMOImpl.updateResourceStore(resourceStorePo1);
+            } else if (resourceStoreDtos != null && resourceStoreDtos.size() > 1) {
+                throw new IllegalArgumentException("查询商品错误!");
+            } else {
+                //生成调拨记录
+                AllocationStorehouseDto allocationStorehouseDto = new AllocationStorehouseDto();
+                allocationStorehouseDto.setAsId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_allocationStorehouseId));
+                allocationStorehouseDto.setbId("-1");
+                allocationStorehouseDto.setShIda(resourceStore.getString("shId"));
+                allocationStorehouseDto.setShIdz(resourceStore.getString("shzId"));//小区目标仓库
+                allocationStorehouseDto.setResId(resourceStore.getString("resId"));
+                allocationStorehouseDto.setResName(resourceStore.getString("resName"));
+                allocationStorehouseDto.setStoreId(storeId);
+                allocationStorehouseDto.setStock(purchaseApplyDetailPo.getQuantity());
+                allocationStorehouseDto.setStartUserId(userId);
+                allocationStorehouseDto.setStartUserName(userName);
+                allocationStorehouseDto.setCreateTime(new Date());
+                allocationStorehouseDto.setRemark("紧急采购入库并调拨");
+                allocationStorehouseDto.setApplyId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyId));
+                allocationStorehouseDto.setOriginalStock("0");
+                allocationStorehouseInnerServiceSMOImpl.saveAllocationStorehouses(allocationStorehouseDto);
+                //生成调拨申请记录
+                AllocationStorehouseApplyDto allocationStorehouseApplyDto = new AllocationStorehouseApplyDto();
+                allocationStorehouseApplyDto.setApplyId(allocationStorehouseDto.getApplyId());
+                allocationStorehouseApplyDto.setbId("-1");
+                allocationStorehouseApplyDto.setStartUserId(allocationStorehouseDto.getStartUserId());
+                allocationStorehouseApplyDto.setStartUserName(allocationStorehouseDto.getStartUserName());
+                allocationStorehouseApplyDto.setRemark("紧急采购入库并调拨");
+                allocationStorehouseApplyDto.setApplyCount(purchaseApplyDetailPo.getQuantity());
+                allocationStorehouseApplyDto.setStoreId(storeId);
+                allocationStorehouseApplyDto.setCreateTime(new Date());
+                allocationStorehouseApplyDto.setState(AllocationStorehouseDto.STATE_SUCCESS);
+                allocationStorehouseApplyDto.setCommunityId(reqJson.getString("communityId"));
+                //调拨
+                allocationStorehouseApplyDto.setApplyType("30000");
+                allocationStorehouseApplyInnerServiceSMOImpl.saveAllocationStorehouseApplys(allocationStorehouseApplyDto);
+                //小区仓库进行入库插入
+                //集团仓库商品信息
+                ResourceStoreDto resourceStoreDto2 = new ResourceStoreDto();
+                resourceStoreDto2.setResCode(resourceStore.getString("resCode"));
+                resourceStoreDto2.setResId(purchaseApplyDetailPo.getResId());
+                List<ResourceStoreDto> resourceStoreDtoList = resourceStoreInnerServiceSMOImpl.queryResourceStores(resourceStoreDto2);
+                ResourceStoreDto resourceStoreDto1 = BeanConvertUtil.covertBean(resourceStoreDtoList.get(0), ResourceStoreDto.class);
+                resourceStoreDto1.setResId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_resId));
+                resourceStoreDto1.setShId(resourceStore.getString("shzId"));
+                resourceStoreDto1.setbId("-1");
+                resourceStoreDto1.setStock(purchaseApplyDetailPo.getQuantity());
+                resourceStoreDto1.setCreateTime(new Date());
+                //获取紧急采购数量
+                BigDecimal purchaseQuantity = new BigDecimal(purchaseApplyDetailPo.getQuantity());
+                //获取最小计量单位数量
+                if (StringUtil.isEmpty(resourceStore.getString("miniUnitStock"))) {
+                    throw new IllegalArgumentException("最小计量单位数量不能为空!");
+                }
+                BigDecimal miniUnitStock = new BigDecimal(resourceStore.getString("miniUnitStock"));
+                //计算最小计量总数
+                BigDecimal miniStock = purchaseQuantity.multiply(miniUnitStock);
+                resourceStoreDto1.setMiniStock(String.valueOf(miniStock));
+                resourceStoreInnerServiceSMOImpl.saveResourceStore(resourceStoreDto1);
+            }
+        }
+        purchaseApplyPo.setPurchaseApplyDetailPos(purchaseApplyDetailPos);
+        ResponseEntity responseEntity = purchaseApplyBMOImpl.apply(purchaseApplyPo, reqJson);
+        context.setResponseEntity(responseEntity);
+    }
+}