浏览代码

[CODE]: 入库判断 毛重是否大于库容量

maxianghua 4 年之前
父节点
当前提交
1531e9446c

+ 9 - 7
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/domain/TWarehouse.java

@@ -4,6 +4,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 
+import java.math.BigDecimal;
+
 /**
  * 仓库对象 t_warehouse
  *
@@ -31,7 +33,7 @@ public class TWarehouse extends BaseEntity
 
     /** 库容 */
     @Excel(name = "库容")
-    private Long fTotalgross;
+    private BigDecimal fTotalgross;
 
     /** 状态,默认 T ,正常T 停用F 下拉选择 */
     @Excel(name = "状态,默认 T ,正常T 停用F 下拉选择")
@@ -76,15 +78,15 @@ public class TWarehouse extends BaseEntity
     {
         return fAddr;
     }
-    public void setfTotalgross(Long fTotalgross)
-    {
-        this.fTotalgross = fTotalgross;
-    }
 
-    public Long getfTotalgross()
-    {
+    public BigDecimal getfTotalgross() {
         return fTotalgross;
     }
+
+    public void setfTotalgross(BigDecimal fTotalgross) {
+        this.fTotalgross = fTotalgross;
+    }
+
     public void setfStatus(String fStatus)
     {
         this.fStatus = fStatus;

+ 57 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -485,6 +485,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
         for (TWarehousebillsitems item : warehousebillsitemsList) {
+            // 查询库容量  是否可入库
+            int m=calculation(tWarehouseBills.getfWarehouseid(),item.getfGrossweight());
+            if(m == 0){
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
+            }
             item.setfBillingway(tWarehouseBills.getfBillingway());
             item.setfChargedate(tWarehouseBills.getfChargedate());
             TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
@@ -1048,4 +1054,55 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         );
     }
 
+    /**
+     *   库容-结余毛重
+     * @param fTotalgross
+     * @param fGrossweightblc
+     * @return
+     */
+    public static BigDecimal  calculation1(String  fTotalgross, String fGrossweightblc){
+        BigDecimal num1 = new BigDecimal(fTotalgross);
+        BigDecimal num2 = new BigDecimal(fGrossweightblc);
+        BigDecimal result = num1.subtract(num2);
+        return result.setScale(2,BigDecimal.ROUND_HALF_UP);
+    }
+
+    /**
+     *   判断  是否允许 入库
+     * @param fId
+     */
+    public  int  calculation (Long fId,BigDecimal fGrossweight){
+        // 仓库库容
+        TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(fId);
+        // 总账使用
+        List<Map<String, Object>> whouseList= tWhgenlegMapper.selectWareHouseListWhouse(fId);
+        if(whouseList!=null && whouseList.size()>0){
+            String  fTotalgross = null;
+            String fGrossweightblc = null;
+            for (Map<String, Object> m : whouseList){
+                for (String k : m.keySet()){
+                    // 获取毛重库容
+                    if(k.equals("fTotalgross")){
+                        fTotalgross= m.get(k).toString();
+                    }
+                    if(k.equals("fGrossweightD")){
+                        fGrossweightblc=  m.get(k).toString();
+                    }
+                }
+            }
+            BigDecimal result = calculation1(fTotalgross,fGrossweightblc);
+            if(result.compareTo(fGrossweight) == -1){
+                return 0;// 结余库容小于入库数
+            }else{
+                return 1;
+            }
+        }else{
+            if(tWarehouse.getfTotalgross().compareTo(fGrossweight) == -1){
+                return 0;// 库容小于入库数
+            }else{
+                return 1;
+            }
+        }
+    }
+
 }