zxz 2 years ago
parent
commit
7a972ebe12

+ 100 - 84
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/WarehousingOrderServiceImpl.java

@@ -1862,99 +1862,115 @@ public class WarehousingOrderServiceImpl extends ServiceImpl<WarehousingOrderMap
      * @return
      * @return
      */
      */
     @Override
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public String dryOut(WarehousingOrder warehousingOrder) {
     public String dryOut(WarehousingOrder warehousingOrder) {
-        List<WarehousingOrder> warehousingOrderList=warehousingOrder.getWarehousingOrderList();
-        Double afterCost=0d;
-        String goodsName=warehousingOrderList.get(0).getGoodsName().replace("(潮粮)", "");
-        for (WarehousingOrder warehousingOrder1:warehousingOrderList){
-            afterCost=warehousingOrder1.getSurplusWeight()*warehousingOrder1.getAvgCost()/warehousingOrder1.getAfterWeight();
-            warehousingOrder1.setSurplusWeight(0d);
-            warehousingOrder1.setOutWarehouseWeight(warehousingOrder1.getInWarehouseWeight());
-            this.updateById(warehousingOrder1);
-            WarehousingOrder warehousingOrder2 = new WarehousingOrder();
-            warehousingOrder2.setId(IdGenerator.generateUUID());
-            warehousingOrder2.setCompId(warehousingOrder1.getCompId());
-            warehousingOrder2.setBaseId(warehousingOrder1.getBaseId());
-            warehousingOrder2.setIdentifyId(warehousingOrder1.getIdentifyId());
-            warehousingOrder2.setContractNo(warehousingOrder1.getContractNo());
-            warehousingOrder2.setMoveTaskNo(warehousingOrder1.getMoveTaskNo());
-            warehousingOrder2.setWarehouseName(warehousingOrder1.getWarehouseName());
-            warehousingOrder2.setInType("折干");
-            warehousingOrder2.setGoodsName(goodsName);
-            warehousingOrder2.setGoodsSource(warehousingOrder1.getGoodsSource());
-            warehousingOrder2.setInWarehouseWeight(warehousingOrder1.getAfterWeight());
-            warehousingOrder2.setSurplusWeight(warehousingOrder1.getAfterWeight());
-            warehousingOrder2.setIssuingTime(new Date());
-            warehousingOrder2.setAvgCost(afterCost);
-            this.insert(warehousingOrder2);
-        }
+        List<WarehousingOrder> warehousingOrderList = warehousingOrder.getWarehousingOrderList();
         CommonSysParameter commonSysParameter = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", warehousingOrderList.get(0).getGoodsName()));
         CommonSysParameter commonSysParameter = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", warehousingOrderList.get(0).getGoodsName()));
         //减去被折转的潮粮库存
         //减去被折转的潮粮库存
         WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
         WarehousePositionStorageInfo warehousePositionStorageInfo = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
                 .eq("position_id", warehousingOrder.getBeforePositionId())
                 .eq("position_id", warehousingOrder.getBeforePositionId())
                 .eq("goods_name_key", commonSysParameter.getConstKey()));
                 .eq("goods_name_key", commonSysParameter.getConstKey()));
         if (warehousePositionStorageInfo != null) {
         if (warehousePositionStorageInfo != null) {
-            warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() - warehousingOrder.getBeforeWeight());
-            warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
+            if (warehousingOrder.getBeforeWeight() <= warehousePositionStorageInfo.getStorage()) {
+                // 更新库存量
+                warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() - warehousingOrder.getBeforeWeight());
+                warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
+
+                Double afterCost = 0d;
+                String goodsName = warehousingOrderList.get(0).getGoodsName().replace("(潮粮)", "");
+                for (WarehousingOrder warehousingOrder1 : warehousingOrderList) {
+                    afterCost = warehousingOrder1.getSurplusWeight() * warehousingOrder1.getAvgCost() / warehousingOrder1.getAfterWeight();
+                    warehousingOrder1.setSurplusWeight(0d);
+                    warehousingOrder1.setOutWarehouseWeight(warehousingOrder1.getInWarehouseWeight());
+                    this.updateById(warehousingOrder1);
+                    WarehousingOrder warehousingOrder2 = new WarehousingOrder();
+                    warehousingOrder2.setId(IdGenerator.generateUUID());
+                    warehousingOrder2.setCompId(warehousingOrder1.getCompId());
+                    warehousingOrder2.setBaseId(warehousingOrder1.getBaseId());
+                    warehousingOrder2.setIdentifyId(warehousingOrder1.getIdentifyId());
+                    warehousingOrder2.setContractNo(warehousingOrder1.getContractNo());
+                    warehousingOrder2.setMoveTaskNo(warehousingOrder1.getMoveTaskNo());
+                    warehousingOrder2.setWarehouseName(warehousingOrder1.getWarehouseName());
+                    warehousingOrder2.setInType("折干");
+                    warehousingOrder2.setGoodsName(goodsName);
+                    warehousingOrder2.setGoodsSource(warehousingOrder1.getGoodsSource());
+                    warehousingOrder2.setInWarehouseWeight(warehousingOrder1.getAfterWeight());
+                    warehousingOrder2.setSurplusWeight(warehousingOrder1.getAfterWeight());
+                    warehousingOrder2.setIssuingTime(new Date());
+                    warehousingOrder2.setAvgCost(afterCost);
+                    this.insert(warehousingOrder2);
+                }
+
+                WarehouseInOutInfo warehouseInOutInfo = new WarehouseInOutInfo();
+                warehouseInOutInfo.setId(IdGenerator.generateUUID());
+                warehouseInOutInfo.setBaseId(warehousingOrderList.get(0).getBaseId());
+                warehouseInOutInfo.setWarehouseName(warehousingOrderList.get(0).getWarehouseName());
+                warehouseInOutInfo.setPositionId(warehousingOrder.getBeforePositionId());
+                warehouseInOutInfo.setBinNumber(warehousingOrder.getBeforeBinNo());
+                warehouseInOutInfo.setInOutFlag("1");
+                warehouseInOutInfo.setGoodsName(warehousingOrderList.get(0).getGoodsName());
+                warehouseInOutInfo.setGoodsNameKey(commonSysParameter.getConstKey());
+                warehouseInOutInfo.setNetWeight(warehousingOrder.getBeforeWeight());
+                warehouseInOutInfo.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
+                warehouseInOutInfo.setStatusFlag(StatusEnum.SUBMITTED.getFlag());
+                warehouseInOutInfo.setStatus(StatusEnum.SUBMITTED.getName());
+                warehouseInOutInfo.setInOutDate(new Date());
+                warehouseInOutInfo.setInOutType("折干出库");
+                warehouseInOutInfoService.insert(warehouseInOutInfo);
+                WarehouseInOutDetail warehouseInOutDetail = new WarehouseInOutDetail();
+                warehouseInOutDetail.setInfoId(warehouseInOutInfo.getId());
+                warehouseInOutDetail.setId(IdGenerator.generateUUID());
+                warehouseInOutDetailService.insert(warehouseInOutDetail);
+                CommonSysParameter commonSysParameter2 = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", goodsName));
+                WarehousePositionStorageInfo warehousePositionStorageInfo1 = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
+                        .eq("position_id", warehousingOrder.getAfterPositionId())
+                        .eq("goods_name_key", commonSysParameter2.getConstKey()));
+                if (warehousePositionStorageInfo1 != null) {
+                    warehousePositionStorageInfo1.setStorage(warehousePositionStorageInfo1.getStorage() + warehousingOrder.getAfterWeight());
+                    warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo1);
+                } else {
+                    WarehousePositionStorageInfo warehousePositionStorageInfo2 = new WarehousePositionStorageInfo();
+                    warehousePositionStorageInfo2.setId(IdGenerator.generateUUID());
+                    warehousePositionStorageInfo2.setPositionId(warehousingOrder.getAfterPositionId());
+                    warehousePositionStorageInfo2.setBinNumber(warehousingOrder.getAfterBinNo());
+                    warehousePositionStorageInfo2.setGoodsNameKey(commonSysParameter2.getConstKey());
+                    warehousePositionStorageInfo2.setGoodsName(goodsName);
+                    warehousePositionStorageInfo2.setStorage(warehousingOrder.getAfterWeight());
+                    warehousePositionStorageInfoService.insert(warehousePositionStorageInfo2);
+                }
+                WarehouseInOutInfo warehouseInOutInfo1 = new WarehouseInOutInfo();
+                warehouseInOutInfo1.setId(IdGenerator.generateUUID());
+                warehouseInOutInfo1.setBaseId(warehouseInOutInfo.getBaseId());
+                warehouseInOutInfo1.setWarehouseName(warehouseInOutInfo.getWarehouseName());
+                warehouseInOutInfo1.setPositionId(warehousingOrder.getAfterPositionId());
+                warehouseInOutInfo1.setBinNumber(warehousingOrder.getAfterBinNo());
+                warehouseInOutInfo1.setInOutFlag("2");
+                warehouseInOutInfo1.setGoodsName(goodsName);
+                warehouseInOutInfo1.setGoodsNameKey(commonSysParameter2.getConstKey());
+                warehouseInOutInfo1.setNetWeight(warehousingOrder.getAfterWeight());
+                warehouseInOutInfo1.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
+                warehouseInOutInfo1.setStatusFlag(StatusEnum.SUBMITTED.getFlag());
+                warehouseInOutInfo1.setStatus(StatusEnum.SUBMITTED.getName());
+                warehouseInOutInfo1.setInOutDate(new Date());
+                warehouseInOutInfo1.setInOutType("折转入库");
+                warehouseInOutInfoService.insert(warehouseInOutInfo1);
+                WarehouseInOutDetail warehouseInOutDetail1 = new WarehouseInOutDetail();
+                warehouseInOutDetail1.setInfoId(warehouseInOutInfo1.getId());
+                warehouseInOutDetail1.setId(IdGenerator.generateUUID());
+                warehouseInOutDetailService.insert(warehouseInOutDetail1);
+                return "ok";
+            }
+            //所选仓位库存不足
+            else {
+                throw new YException(YExceptionEnum.CONVERSION_NO_ERROR);
+            }
         }
         }
-        WarehouseInOutInfo warehouseInOutInfo = new WarehouseInOutInfo();
-        warehouseInOutInfo.setId(IdGenerator.generateUUID());
-        warehouseInOutInfo.setBaseId(warehousingOrderList.get(0).getBaseId());
-        warehouseInOutInfo.setWarehouseName(warehousingOrderList.get(0).getWarehouseName());
-        warehouseInOutInfo.setPositionId(warehousingOrder.getBeforePositionId());
-        warehouseInOutInfo.setBinNumber(warehousingOrder.getBeforeBinNo());
-        warehouseInOutInfo.setInOutFlag("1");
-        warehouseInOutInfo.setGoodsName(warehousingOrderList.get(0).getGoodsName());
-        warehouseInOutInfo.setGoodsNameKey(commonSysParameter.getConstKey());
-        warehouseInOutInfo.setNetWeight(warehousingOrder.getBeforeWeight());
-        warehouseInOutInfo.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
-        warehouseInOutInfo.setStatusFlag(StatusEnum.SUBMITTED.getFlag());
-        warehouseInOutInfo.setStatus(StatusEnum.SUBMITTED.getName());
-        warehouseInOutInfo.setInOutDate(new Date());
-        warehouseInOutInfo.setInOutType("折干出库");
-        warehouseInOutInfoService.insert(warehouseInOutInfo);
-        WarehouseInOutDetail warehouseInOutDetail = new WarehouseInOutDetail();
-        warehouseInOutDetail.setInfoId(warehouseInOutInfo.getId());
-        warehouseInOutDetail.setId(IdGenerator.generateUUID());
-        warehouseInOutDetailService.insert(warehouseInOutDetail);
-        CommonSysParameter commonSysParameter2 = commonSysParameterService.selectOne(new EntityWrapper<CommonSysParameter>().eq("const_id", "CON2").eq("const_value", goodsName));
-        WarehousePositionStorageInfo warehousePositionStorageInfo1 = warehousePositionStorageInfoService.selectOne(new EntityWrapper<WarehousePositionStorageInfo>()
-                .eq("position_id", warehousingOrder.getAfterPositionId())
-                .eq("goods_name_key", commonSysParameter2.getConstKey()));
-        if (warehousePositionStorageInfo1 != null) {
-            warehousePositionStorageInfo1.setStorage(warehousePositionStorageInfo1.getStorage() + warehousingOrder.getAfterWeight());
-            warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo1);
-        } else {
-            WarehousePositionStorageInfo warehousePositionStorageInfo2 = new WarehousePositionStorageInfo();
-            warehousePositionStorageInfo2.setId(IdGenerator.generateUUID());
-            warehousePositionStorageInfo2.setPositionId(warehousingOrder.getAfterPositionId());
-            warehousePositionStorageInfo2.setBinNumber(warehousingOrder.getAfterBinNo());
-            warehousePositionStorageInfo2.setGoodsNameKey(commonSysParameter2.getConstKey());
-            warehousePositionStorageInfo2.setGoodsName(goodsName);
-            warehousePositionStorageInfo2.setStorage(warehousingOrder.getAfterWeight());
-            warehousePositionStorageInfoService.insert(warehousePositionStorageInfo2);
+        //所选仓位暂无储存量
+        else {
+            throw new YException(YExceptionEnum.POSITIONSTORAGE_NO_ERROR);
         }
         }
-        WarehouseInOutInfo warehouseInOutInfo1 = new WarehouseInOutInfo();
-        warehouseInOutInfo1.setId(IdGenerator.generateUUID());
-        warehouseInOutInfo1.setBaseId(warehouseInOutInfo.getBaseId());
-        warehouseInOutInfo1.setWarehouseName(warehouseInOutInfo.getWarehouseName());
-        warehouseInOutInfo1.setPositionId(warehousingOrder.getAfterPositionId());
-        warehouseInOutInfo1.setBinNumber(warehousingOrder.getAfterBinNo());
-        warehouseInOutInfo1.setInOutFlag("2");
-        warehouseInOutInfo1.setGoodsName(goodsName);
-        warehouseInOutInfo1.setGoodsNameKey(commonSysParameter2.getConstKey());
-        warehouseInOutInfo1.setNetWeight(warehousingOrder.getAfterWeight());
-        warehouseInOutInfo1.setAgent(AuthSecurityUtils.getStaffById(AuthSecurityUtils.getCurrentUserId()).getStaffName());
-        warehouseInOutInfo1.setStatusFlag(StatusEnum.SUBMITTED.getFlag());
-        warehouseInOutInfo1.setStatus(StatusEnum.SUBMITTED.getName());
-        warehouseInOutInfo1.setInOutDate(new Date());
-        warehouseInOutInfo1.setInOutType("折转入库");
-        warehouseInOutInfoService.insert(warehouseInOutInfo1);
-        WarehouseInOutDetail warehouseInOutDetail1 = new WarehouseInOutDetail();
-        warehouseInOutDetail1.setInfoId(warehouseInOutInfo1.getId());
-        warehouseInOutDetail1.setId(IdGenerator.generateUUID());
-        warehouseInOutDetailService.insert(warehouseInOutDetail1);
-        return "ok";
+//            warehousePositionStorageInfo.setStorage(warehousePositionStorageInfo.getStorage() - warehousingOrder.getBeforeWeight());
+//            warehousePositionStorageInfoService.updateById(warehousePositionStorageInfo);
     }
     }
 
 
     private List<String> getResourceIdList() {
     private List<String> getResourceIdList() {