纪新园 пре 1 година
родитељ
комит
ac8b85c87e

+ 30 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehouseBills.java

@@ -1166,6 +1166,36 @@ public class TWarehouseBills extends BaseEntity {
     private Long fFeeid;
 
 
+    private String isKp;
+
+    private String remarkInquire;
+
+    private BigDecimal kpMoney;
+
+    public BigDecimal getKpMoney() {
+        return kpMoney;
+    }
+
+    public void setKpMoney(BigDecimal kpMoney) {
+        this.kpMoney = kpMoney;
+    }
+
+    public String getRemarkInquire() {
+        return remarkInquire;
+    }
+
+    public void setRemarkInquire(String remarkInquire) {
+        this.remarkInquire = remarkInquire;
+    }
+
+    public String getIsKp() {
+        return isKp;
+    }
+
+    public void setIsKp(String isKp) {
+        this.isKp = isKp;
+    }
+
     public Long getfFeeid() {
         return fFeeid;
     }

+ 101 - 16
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -1788,7 +1788,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             warehouseBills.setfDateChanged(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()) + Math.random() * 100);
             warehouseBills.setfBillstatus(fBillstatus);
             warehouseBills.setfReviewDate(reviewDate);
-            i = tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
             if (CollectionUtils.isNotEmpty(warehousebillsfeesList)) {
                 for (TWarehousebillsfees warehousebillsfees : warehousebillsfeesList) {
                     AjaxResult ajaxResult = this.goodsAttribute(warehousebillsfees, billsType);
@@ -1817,7 +1816,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         if (tWhgenleg == null) {
                             saveOrUpdate = this.anPinInstalTWhgenleg(warehouseBills, warehousebillsfees, loginUser.getUser());
                         } else {
-                            saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
+                            tWhgenleg.setfGrossweightblc(tWhgenleg.getfGrossweightblc().add(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfVolumnd(tWhgenleg.getfVolumnd().add(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfGrossweightd(tWhgenleg.getfVolumnd().add(warehousebillsfees.getfAmount()));
+                            saveOrUpdate = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
+//                            saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
                         }
                     }
                     if ("CK".equals(billsType)) {
@@ -1829,11 +1832,41 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         } else if (tWhgenleg.getfId() != null && tWhgenleg.getfGrossweightblc().compareTo(warehousebillsfees.getfQty()) < 0) {
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                             return AjaxResult.error(tFees.getfName() + "出库数量大于库存数,现有库存数量为" + tWhgenleg.getfGrossweightblc() + ",库存不足");
+                            /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                            List<String> date = new ArrayList<>();
+                            date.add(sdf.format(warehouseBills.getfBsdate()));
+                            date.add(sdf.format(warehouseBills.getfBsdate()));
+                            TWarehouseBills tWarehouseBills = new TWarehouseBills();
+                            tWarehouseBills.settimeInterval(date);
+                            tWarehouseBills.setfCorpid(warehouseBills.getfCorpid());
+                            tWarehouseBills.setfWarehouseid(warehouseBills.getfWarehouseid());
+                            tWarehouseBills.setFeeName(warehousebillsfees.getfFeeid() + "");
+                            tWarehouseBills.setfFeeType(warehousebillsfees.getfFeeType());
+                            List<InventoryLedgerExcel> list = this.selectInventoryLedger(tWarehouseBills);
+                            if (list.size() > 0) {
+                                if (list.get(0).getfAfterQty().compareTo(warehousebillsfees.getfQty()) <= 0){
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return AjaxResult.error(tFees.getfName() + "出库数量大于库存数,现有库存数量为" + tWhgenleg.getfGrossweightblc() + ",库存不足");
+                                }else{
+                                    BigDecimal fAfterQty = tWhgenleg.getfVolumnd().subtract(list.get(0).getfAfterQty()).subtract(warehousebillsfees.getfQty());
+                                    tWhgenleg.setfNetweightc(fAfterQty);
+                                    tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
+                                }
+                            }else{
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error(tFees.getfName() + "出库数量大于库存数,现有库存数量为" + tWhgenleg.getfGrossweightblc() + ",库存不足");
+                            }*/
+                        } else {
+                            tWhgenleg.setfGrossweightblc(tWhgenleg.getfGrossweightblc().subtract(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfNetweightc(tWhgenleg.getfNetweightc().add(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfGrossweightc(tWhgenleg.getfGrossweightc().add(warehousebillsfees.getfAmount()));
+                            saveOrUpdate = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
+//                            saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
                         }
-                        saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
                     }
                 }
             }
+            i = tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
             fPid = warehouseBills.getfId();
         } else {
             fPid = warehouseBills.getfId();
@@ -1854,7 +1887,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             warehouseBills.setUpdateTime(DateUtils.getNowDate());
             warehouseBills.setUpdateBy(SecurityUtils.getUsername());
             warehouseBills.setfDateChanged(new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()) + Math.random() * 100);
-            i = tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
             //i = tWarehousebillsfeesMapper.deleteByFPid(warehouseBills.getfId());
             if (CollectionUtils.isNotEmpty(warehousebillsfeesList)) {
                 for (TWarehousebillsfees warehousebillsfees : warehousebillsfeesList) {
@@ -1895,7 +1927,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         if (tWhgenleg == null) {
                             saveOrUpdate = this.anPinInstalTWhgenleg(warehouseBills, warehousebillsfees, loginUser.getUser());
                         } else {
-                            saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
+                            tWhgenleg.setfGrossweightblc(tWhgenleg.getfGrossweightblc().add(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfVolumnd(tWhgenleg.getfVolumnd().add(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfGrossweightd(tWhgenleg.getfVolumnd().add(warehousebillsfees.getfAmount()));
+                            saveOrUpdate = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
+//                            saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
                         }
                     }
                     if ("CK".equals(billsType)) {
@@ -1907,11 +1943,43 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         } else if (tWhgenleg.getfId() != null && tWhgenleg.getfGrossweightblc().compareTo(warehousebillsfees.getfQty()) < 0) {
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                             return AjaxResult.error(tFees.getfName() + "出库数量大于库存数,现有库存数量为" + tWhgenleg.getfGrossweightblc() + ",库存不足");
+                            /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                            List<String> date = new ArrayList<>();
+                            date.add(sdf.format(warehouseBills.getfBsdate()));
+                            date.add(sdf.format(warehouseBills.getfBsdate()));
+                            TWarehouseBills tWarehouseBills1 = new TWarehouseBills();
+                            tWarehouseBills1.settimeInterval(date);
+                            tWarehouseBills1.setfCorpid(warehouseBills.getfCorpid());
+                            tWarehouseBills1.setfWarehouseid(warehouseBills.getfWarehouseid());
+                            tWarehouseBills1.setFeeName(warehousebillsfees.getfFeeid() + "");
+                            tWarehouseBills1.setfBillstatus(fBillstatus);
+                            List<InventoryLedgerExcel> list = this.selectInventoryLedger(tWarehouseBills1);
+                            if (list.size() > 0) {
+                                if (list.get(0).getfAfterQty().compareTo(warehousebillsfees.getfQty()) <= 0){
+                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                    return AjaxResult.error(tFees.getfName() + "出库数量大于库存数,现有库存数量为" + tWhgenleg.getfGrossweightblc() + ",库存不足");
+                                }else{
+                                    BigDecimal fAfterQty = tWhgenleg.getfVolumnd().subtract(list.get(0).getfAfterQty()).subtract(warehousebillsfees.getfQty());
+                                    tWhgenleg.setfNetweightc(fAfterQty);
+                                    tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
+                                }
+                            }else{
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error(tFees.getfName() + "出库数量大于库存数,现有库存数量为" + tWhgenleg.getfGrossweightblc() + ",库存不足");
+                            }
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error(tFees.getfName() + "出库数量大于库存数,现有库存数量为" + tWhgenleg.getfGrossweightblc() + ",库存不足");*/
+                        } else {
+                            tWhgenleg.setfGrossweightblc(tWhgenleg.getfGrossweightblc().subtract(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfNetweightc(tWhgenleg.getfNetweightc().add(warehousebillsfees.getfQty()));
+                            tWhgenleg.setfGrossweightc(tWhgenleg.getfGrossweightc().add(warehousebillsfees.getfAmount()));
+                            saveOrUpdate = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
+//                            saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
                         }
-                        saveOrUpdate = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
                     }
                 }
             }
+            i = tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
         }
         if ("RK".equals(billsType) || "CK".equals(billsType)) {
             if (saveOrUpdate == null || saveOrUpdate < 1) {
@@ -2185,7 +2253,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult cannibalize(TWarehouseBills tWarehouseBills, LoginUser loginUser) {
         String billType = null;//业务类型
         Long billStatus = null;//状态
@@ -4327,21 +4395,36 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             if (CollectionUtils.isNotEmpty(tWarehousebillsfeesList)) {
                 for (TWarehousebillsfees warehousebillsfees : tWarehousebillsfeesList) {
                     TWhgenleg tWhgenleg = this.anPinQueryTWhgenleg(tWarehousebills, warehousebillsfees);
+                    TWhgenleg tWhgenleg1 = new TWhgenleg();
                     if (tWhgenleg == null) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return AjaxResult.error("库存不足");
                     }
-                    if (billsType.equals("RKRevoke") && tWhgenleg.getfGrossweightblc().compareTo(warehousebillsfees.getfQty()) < 0) {
-                        TFees tFees = tFeesMapper.selectTFeesById(warehousebillsfees.getfFeeid());
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("库存不足,当前" + tFees.getfName() + "可撤销库存为:" + tWhgenleg.getfGrossweightblc());
+                    if (billsType.equals("RKRevoke")) {
+                        if (tWhgenleg.getfGrossweightblc().compareTo(warehousebillsfees.getfQty()) < 0){
+                            TFees tFees = tFeesMapper.selectTFeesById(warehousebillsfees.getfFeeid());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("库存不足,当前" + tFees.getfName() + "可撤销库存为:" + tWhgenleg.getfGrossweightblc());
+                        }else{
+                            tWhgenleg1.setfGrossweightblc(tWhgenleg.getfGrossweightblc().subtract(warehousebillsfees.getfQty()));
+                            tWhgenleg1.setfVolumnd(tWhgenleg.getfVolumnd().subtract(warehousebillsfees.getfQty()));
+                            tWhgenleg1.setfGrossweightd(tWhgenleg.getfGrossweightd().subtract(warehousebillsfees.getfAmount()));
+                        }
                     }
-                    if (billsType.equals("CKRevoke") && tWhgenleg.getfNetweightc().compareTo(warehousebillsfees.getfQty()) < 0) {
-                        TFees tFees = tFeesMapper.selectTFeesById(warehousebillsfees.getfFeeid());
-                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("库存不足,当前" + tFees.getfName() + "可撤销库存为:" + tWhgenleg.getfNetweightc());
+                    if (billsType.equals("CKRevoke")) {
+                        if (tWhgenleg.getfNetweightc().compareTo(warehousebillsfees.getfQty()) < 0){
+                            TFees tFees = tFeesMapper.selectTFeesById(warehousebillsfees.getfFeeid());
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("库存不足,当前" + tFees.getfName() + "可撤销库存为:" + tWhgenleg.getfNetweightc());
+                        }else{
+                            tWhgenleg1.setfGrossweightblc(tWhgenleg.getfGrossweightblc().add(warehousebillsfees.getfQty()));
+                            tWhgenleg1.setfNetweightc(tWhgenleg.getfNetweightc().subtract(warehousebillsfees.getfQty()));
+                            tWhgenleg1.setfGrossweightc(tWhgenleg.getfGrossweightc().subtract(warehousebillsfees.getfAmount()));
+                        }
                     }
-                    int updateTWhgenlegData = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
+                    tWhgenleg1.setfId(tWhgenleg.getfId());
+                    int updateTWhgenlegData = tWhgenlegMapper.updateTWhgenleg(tWhgenleg1);
+//                    int updateTWhgenlegData = this.anPinUpdateTWhgenlegData(warehousebillsfees, tWhgenleg.getfId(), billsType);
                     if (updateTWhgenlegData < 1) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return AjaxResult.error("撤销失败,撤销库存总账失败!");
@@ -4774,6 +4857,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         tWhgenleg.setfVolumnd(warehousebillsitems.getfQty());
         // 入库金额
         tWhgenleg.setfGrossweightd(warehousebillsitems.getfAmount());
+        // 结余
+        tWhgenleg.setfGrossweightblc(warehousebillsitems.getfQty());
         //出库数
         tWhgenleg.setfNetweightc(new BigDecimal(0.00));
         //出库金额