Browse Source

解决仓储费计算日期错误问题

阿伏兔 4 năm trước cách đây
mục cha
commit
1b318b1d20

+ 13 - 0
ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java

@@ -5,7 +5,9 @@ import org.apache.commons.lang3.time.DateFormatUtils;
 import java.lang.management.ManagementFactory;
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Date;
+import java.util.GregorianCalendar;
 
 
 /**
 /**
  * 时间工具类
  * 时间工具类
@@ -169,4 +171,15 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         // long sec = diff % nd % nh % nm / ns;
         // long sec = diff % nd % nh % nm / ns;
         return day + "天" + hour + "小时" + min + "分钟";
         return day + "天" + hour + "小时" + min + "分钟";
     }
     }
+
+    /**
+     * 当前日期往前往后推x天
+     */
+    public static Date dateAdd(Date date, int num)
+    {
+        Calendar calendar = new GregorianCalendar();
+        calendar.setTime(date);
+        calendar.add(Calendar.DATE,num);
+        return calendar.getTime();
+    }
 }
 }

+ 61 - 3
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -16,9 +16,13 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.finance.domain.TFee;
 import com.ruoyi.finance.domain.TFee;
 import com.ruoyi.finance.mapper.TFeeMapper;
 import com.ruoyi.finance.mapper.TFeeMapper;
 import com.ruoyi.finance.service.impl.TFeeServiceImpl;
 import com.ruoyi.finance.service.impl.TFeeServiceImpl;
+import com.ruoyi.reportManagement.domain.TWhgenleg;
+import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseAgreement;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseAgreement;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsfees;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseAgreementMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseAgreementMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsfeesMapper;
 import com.ruoyi.warehouseBusiness.mapper.TWarehousebillsfeesMapper;
@@ -48,6 +52,9 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     private AuditItemsMapper auditItemsMapper;
     private AuditItemsMapper auditItemsMapper;
 
 
     @Autowired
     @Autowired
+    private TWhgenlegMapper tWhgenlegMapper;
+
+    @Autowired
     private AuditItemsUsersMapper auditItemsUsersMapper;
     private AuditItemsUsersMapper auditItemsUsersMapper;
 
 
     @Autowired
     @Autowired
@@ -214,7 +221,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     public AjaxResult deleteAuditPathsByIds(Long[] ids) {
     public AjaxResult deleteAuditPathsByIds(Long[] ids) {
         int line = 0;
         int line = 0;
         for (Long lo : ids) {
         for (Long lo : ids) {
-            line ++;
+            line++;
             AuditPathsActs auditPathsActs = new AuditPathsActs();
             AuditPathsActs auditPathsActs = new AuditPathsActs();
             auditPathsActs.setPathId(lo);
             auditPathsActs.setPathId(lo);
             int sum = auditPathsActsMapper.selectCountAuditPathsActs(auditPathsActs);
             int sum = auditPathsActsMapper.selectCountAuditPathsActs(auditPathsActs);
@@ -331,6 +338,28 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                         // 仓库模块
                         // 仓库模块
                         tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
                         tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
                         tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
                         tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
+                        if (Objects.equals(auditItems.getActId(), 150)) {
+                            List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
+                            if (StringUtils.isNull(feesList) || Objects.equals(feesList.size(), 0)) {
+                                for (TWarehousebillsfees f : feesList) {
+                                    if ("KCZZ".equals(f.getfBilltype())) {
+                                        TWhgenleg whgenleg = new TWhgenleg();
+                                        whgenleg.setfId(f.getSrcId());
+                                        whgenleg.setfChargedate(f.getfBillingDeadline());
+                                        tWhgenlegMapper.updateTWhgenleg(whgenleg);
+                                    } else {
+                                        TWarehousebillsitems billsItem = new TWarehousebillsitems();
+                                        billsItem.setfId(f.getSrcId());
+                                        if ("SJCK".equals(f.getfBilltype())) {
+                                            billsItem.setfStorageFeeDeadline(f.getfBillingDeadline());
+                                        } else {
+                                            billsItem.setfChargedate(f.getfBillingDeadline());
+                                        }
+                                        tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem);
+                                    }
+                                }
+                            }
+                        }
                     } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
                     } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
                         // 财务模块
                         // 财务模块
                         if ("T".equals(at.getIffinalItem())) {
                         if ("T".equals(at.getIffinalItem())) {
@@ -398,8 +427,37 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         long fettle = 0L;
         long fettle = 0L;
         if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
         if (auditItems.getActId() >= 110 && auditItems.getActId() <= 150) {
             fettle = 3L;
             fettle = 3L;
-            tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle , auditItems.getAuditItem());
+            tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+            if (Objects.equals(auditItems.getActId(), 150)) {
+                List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
+                for (TWarehousebillsfees wareItem : feesList) {
+                    if (StringUtils.isNull(wareItem.getSrcId())) {
+                        continue;
+                    }
+                    if ("KCZZ".equals(wareItem.getfBilltype())) {
+                        TWhgenleg whgenleg = new TWhgenleg();
+                        whgenleg.setfId(wareItem.getSrcId());
+                        whgenleg.setfChargedate(wareItem.getfChargedate());
+                        int i = tWhgenlegMapper.updateTWhgenleg(whgenleg);
+                        if (i <= 0) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("更新库存费用状态失败,请联系管理员");
+                        }
+                    } else {
+                        TWarehousebillsitems billsItem = new TWarehousebillsitems();
+                        billsItem.setfId(wareItem.getSrcId());
+                        billsItem.setfBilltype(wareItem.getfBilltype());
+                        if (!"SJCK".equals(wareItem.getfBilltype())) {
+                            billsItem.setfChargedate(wareItem.getfBillingDeadline());
+                            tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem);
+                        } else {
+                            billsItem.setfChargedate(wareItem.getfChargedate());
+                        }
+                        tWarehousebillsitemsMapper.agreementApprovalRejected(billsItem);
+                    }
+                }
+            }
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
             fettle = 3L;
             fettle = 3L;
             // 财务模块
             // 财务模块
@@ -488,7 +546,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("审批撤销失败: 已经过审批");
                 return AjaxResult.error("审批撤销失败: 已经过审批");
             }
             }
-            tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle,auditItems.getAuditItem() );
+            tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
             fettle = 2L;
             fettle = 2L;

+ 10 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsfeesMapper.java

@@ -77,4 +77,14 @@ public interface TWarehousebillsfeesMapper extends BaseMapper<TWarehousebillsfee
 
 
 
 
     public int updateTWarehousebillsfee(@Param("map") Map<String, Object> map);
     public int updateTWarehousebillsfee(@Param("map") Map<String, Object> map);
+
+    /**
+     *  根据主表id 查询库存费用表数据
+     *
+     * @param fPid 主表id
+     * @return  结果
+     */
+    List<TWarehousebillsfees> selectTWarehousebillsfeesByPId(Long fPid);
+
+    List<TWarehousebillsfees> selectWarehousebillsfeesByPId(Long fId);
 }
 }

+ 7 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsMapper.java

@@ -84,4 +84,11 @@ public interface TWarehousebillsitemsMapper extends BaseMapper<TWarehousebillsit
     int warehouseItemFollowUpdate(@Param("fPid") Long fPid, @Param("fettle") Long fettle);
     int warehouseItemFollowUpdate(@Param("fPid") Long fPid, @Param("fettle") Long fettle);
 
 
     int warehousebillsitemsWarehouselocidSize(@Param("fWarehouselocid") Long fPid);
     int warehousebillsitemsWarehouselocidSize(@Param("fWarehouselocid") Long fPid);
+
+    /**
+     *  计算仓储费撤回根据状态判断修改对应字段
+     * @param billsItem
+     * @return
+     */
+    int agreementApprovalRejected(TWarehousebillsitems billsItem);
 }
 }

+ 56 - 25
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -501,7 +501,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbDr.setfChargedate(warehouseBills.getfChargedate());
                 wbDr.setfChargedate(warehouseBills.getfChargedate());
                 wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
                 wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
-                if(warehouseBills.getfBsdate()!=null&& !warehouseBills.getfBsdate().equals("")){
+                if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
                     wbDr.setfBsdate(warehouseBills.getfBsdate());
                     wbDr.setfBsdate(warehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
@@ -520,7 +520,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setfChargedate(warehouseBills.getfChargedate());
                 wbCr.setfChargedate(warehouseBills.getfChargedate());
                 wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
                 wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
-                if(warehouseBills.getfBsdate()!=null&& !warehouseBills.getfBsdate().equals("")){
+                if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
                     wbCr.setfBsdate(warehouseBills.getfBsdate());
                     wbCr.setfBsdate(warehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
@@ -664,7 +664,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setfChargedate(warehouseBills.getfChargedate());
                 wbCr.setfChargedate(warehouseBills.getfChargedate());
                 wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
                 wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
-                if(warehouseBills.getfBsdate()!=null&& !warehouseBills.getfBsdate().equals("")){
+                if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
                     wbCr.setfBsdate(warehouseBills.getfBsdate());
                     wbCr.setfBsdate(warehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
@@ -683,7 +683,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setfChargedate(warehouseBills.getfChargedate());
                 wbDr.setfChargedate(warehouseBills.getfChargedate());
                 wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
                 wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
-                if(warehouseBills.getfBsdate()!=null&& !warehouseBills.getfBsdate().equals("")){
+                if (warehouseBills.getfBsdate() != null && !warehouseBills.getfBsdate().equals("")) {
                     wbDr.setfBsdate(warehouseBills.getfBsdate());
                     wbDr.setfBsdate(warehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
@@ -803,9 +803,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             }
             }
             if ("KCZZ".equals(wareItem.getfBilltype())) {
             if ("KCZZ".equals(wareItem.getfBilltype())) {
                 TWhgenleg tWhgenleg = tWhgenlegMapper.selectTWhgenlegById(wareItem.getSrcId());
                 TWhgenleg tWhgenleg = tWhgenlegMapper.selectTWhgenlegById(wareItem.getSrcId());
-                System.out.println(tWhgenleg.getfChargedate());
                 tWhgenleg.setfChargedate(wareItem.getfBillingDeadline());
                 tWhgenleg.setfChargedate(wareItem.getfBillingDeadline());
-                System.out.println(tWhgenleg.getfChargedate());
                 int i = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
                 int i = tWhgenlegMapper.updateTWhgenleg(tWhgenleg);
                 if (i <= 0) {
                 if (i <= 0) {
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -813,12 +811,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 }
                 }
             } else {
             } else {
                 TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wareItem.getSrcId());
                 TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wareItem.getSrcId());
-                tWarehousebillsitems.setfAmt(wareItem.getfAmt());
-                tWarehousebillsitems.setfBillingQty(wareItem.getfBillingQty());
-                tWarehousebillsitems.setfBillingDays(wareItem.getfBillingDays());
                 tWarehousebillsitems.setfChargedate(wareItem.getfBillingDeadline());
                 tWarehousebillsitems.setfChargedate(wareItem.getfBillingDeadline());
-                tWarehousebillsitems.setfInventoryDays(wareItem.getfInventoryDays());
-                tWarehousebillsitems.setfBillingDeadline(wareItem.getfBillingDeadline());
+                if ("SJCK".equals(wareItem.getfBilltype())) {
+                    tWarehousebillsitems.setfStorageFeeDeadline(wareItem.getfBillingDeadline());
+                }
                 tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
                 tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
             }
             }
         }
         }
@@ -925,7 +921,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbDr.setfDc("D");
                 wbDr.setfDc("D");
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateTime(new Date());
                 wbDr.setCreateTime(new Date());
-                if(tWarehouseBills.getfBsdate()!=null&& !tWarehouseBills.getfBsdate().equals("")){
+                if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
                     wbDr.setfBsdate(tWarehouseBills.getfBsdate());
                     wbDr.setfBsdate(tWarehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
@@ -940,7 +936,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbCr.setfDc("C");
                 wbCr.setfDc("C");
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateTime(new Date());
                 wbCr.setCreateTime(new Date());
-                if(tWarehouseBills.getfBsdate()!=null&& !tWarehouseBills.getfBsdate().equals("")){
+                if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
                     wbCr.setfBsdate(tWarehouseBills.getfBsdate());
                     wbCr.setfBsdate(tWarehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
@@ -1258,7 +1254,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbDr.setfDc("D");
                 wbDr.setfDc("D");
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateTime(new Date());
                 wbDr.setCreateTime(new Date());
-                if(tWarehouseBills.getfBsdate()!=null&& !tWarehouseBills.getfBsdate().equals("")){
+                if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
                     wbDr.setfBsdate(tWarehouseBills.getfBsdate());
                     wbDr.setfBsdate(tWarehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
@@ -1273,7 +1269,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbCr.setfDc("C");
                 wbCr.setfDc("C");
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateTime(new Date());
                 wbCr.setCreateTime(new Date());
-                if(tWarehouseBills.getfBsdate()!=null&& !tWarehouseBills.getfBsdate().equals("")){
+                if (tWarehouseBills.getfBsdate() != null && !tWarehouseBills.getfBsdate().equals("")) {
                     wbCr.setfBsdate(tWarehouseBills.getfBsdate());
                     wbCr.setfBsdate(tWarehouseBills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
@@ -1288,7 +1284,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
     }
 
 
     /**
     /**
-     *  生成计算仓储费信息
+     * 生成计算仓储费信息
+     *
      * @param warehouseBills
      * @param warehouseBills
      * @param mapItem
      * @param mapItem
      * @param loginUser
      * @param loginUser
@@ -1305,6 +1302,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到库存总账的计费单位,请确认");
                 map.put("error", "单号:" + item.get("fBillno") + ",业务日期:" + item.get("fBsdate") + "未找到库存总账的计费单位,请确认");
                 return map;
                 return map;
             }
             }
+            Date fBsdate = (Date) item.get("fBsdate");
             long fCorpid = warehouseBills.getfCorpid();
             long fCorpid = warehouseBills.getfCorpid();
             String fBilltype = (String) item.get("fBilltype");
             String fBilltype = (String) item.get("fBilltype");
             long fGoodsid = Long.parseLong((String) item.get("fTypeid"));
             long fGoodsid = Long.parseLong((String) item.get("fTypeid"));
@@ -1316,10 +1314,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             // 要计费天数
             // 要计费天数
             long fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
             long fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
             if ("SJCK".equals(fBilltype)) {
             if ("SJCK".equals(fBilltype)) {
-                fInventoryDays = DateUtils.getDateDay((Date) item.get("fBsdate"), (Date) item.get("fOriginalbilldate"));
-                fBillingDays = DateUtils.getDateDay((Date) item.get("fChargedate"), (Date) item.get("fChargedate"));
+                fInventoryDays = DateUtils.getDateDay(fBsdate, (Date) item.get("fOriginalbilldate"));
+                fBillingDays = fInventoryDays;
             } else if ("HQZY".equals(fBilltype)) {
             } else if ("HQZY".equals(fBilltype)) {
-                fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fBsdate"));
+                fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), fBsdate);
             } else {
             } else {
                 fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
                 fBillingDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fChargedate"));
                 fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
                 fInventoryDays = DateUtils.getDateDay(warehouseBills.getfBillingDeadline(), (Date) item.get("fOriginalbilldate"));
@@ -1361,6 +1359,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             fees.setfAmount(sumAmt);
             fees.setfAmount(sumAmt);
             fees.setfBillstatus(2L);
             fees.setfBillstatus(2L);
             fees.setfCurrency("RMB");
             fees.setfCurrency("RMB");
+            fees.setfBsdate(fBsdate);
             fees.setfBillingQty(fQty);
             fees.setfBillingQty(fQty);
             fees.setfUnitprice(sumAmt);
             fees.setfUnitprice(sumAmt);
             fees.setfBilltype(fBilltype);
             fees.setfBilltype(fBilltype);
@@ -1370,14 +1369,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             fees.setfPid(warehouseBills.getfId());
             fees.setfPid(warehouseBills.getfId());
             fees.setfInventoryDays(fInventoryDays);
             fees.setfInventoryDays(fInventoryDays);
             fees.setfExrate(new BigDecimal(1));
             fees.setfExrate(new BigDecimal(1));
-            fees.setfBsdate((Date) item.get("fBsdate"));
             fees.setfCorpid(warehouseBills.getfCorpid());
             fees.setfCorpid(warehouseBills.getfCorpid());
             fees.setfMarks(item.get("fMarks").toString());
             fees.setfMarks(item.get("fMarks").toString());
             fees.setSrcBillNo((String) item.get("fBillno"));
             fees.setSrcBillNo((String) item.get("fBillno"));
             fees.setfChargedate((Date) item.get("fChargedate"));
             fees.setfChargedate((Date) item.get("fChargedate"));
             fees.setCreateBy(loginUser.getUser().getUserName());
             fees.setCreateBy(loginUser.getUser().getUserName());
             fees.setfProductName(item.get("fGoodsids").toString());
             fees.setfProductName(item.get("fGoodsids").toString());
-            fees.setfBillingDeadline(warehouseBills.getfBillingDeadline());
+            if ("SJCK".equals(fBilltype)) {
+                fees.setfBillingDeadline(DateUtils.dateAdd(fBsdate, 1));
+            } else {
+                fees.setfBillingDeadline(DateUtils.dateAdd(warehouseBills.getfBillingDeadline(), 1));
+            }
             fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
             fees.setfTaxrate(new BigDecimal(taxRate.get(0).getDictValue()));
             fees.setfOriginalbilldate((Date) item.get("fOriginalbilldate"));
             fees.setfOriginalbilldate((Date) item.get("fOriginalbilldate"));
             fees.setfBillingway(Long.valueOf(String.valueOf(item.get("fBillingway"))).longValue());
             fees.setfBillingway(Long.valueOf(String.valueOf(item.get("fBillingway"))).longValue());
@@ -1667,7 +1669,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         //return fQty.setScale(2, BigDecimal.ROUND_HALF_UP);
         //return fQty.setScale(2, BigDecimal.ROUND_HALF_UP);
         // 结果值除以1000 保留两位
         // 结果值除以1000 保留两位
         BigDecimal divisor = new BigDecimal("1000");
         BigDecimal divisor = new BigDecimal("1000");
-        BigDecimal result = fQty.divide(divisor,2,BigDecimal.ROUND_HALF_UP);
+        BigDecimal result = fQty.divide(divisor, 2, BigDecimal.ROUND_HALF_UP);
         return result;
         return result;
     }
     }
 
 
@@ -1787,7 +1789,36 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         tWarehousebills.setfBillstatus(2L); //撤销状态
         tWarehousebills.setfBillstatus(2L); //撤销状态
         tWarehousebills.setfReviewDate(null);// 审核通过时间清空
         tWarehousebills.setfReviewDate(null);// 审核通过时间清空
         tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
         tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
-        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(tWarehousebills.getfId(), 2L,new Date());
+        tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(tWarehousebills.getfId(), 2L, new Date());
+        if ("JSCCF".equals(tWarehousebills.getfBilltype())) {
+            List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(fId);
+            for (TWarehousebillsfees wareItem : feesList) {
+                if (StringUtils.isNull(wareItem.getSrcId())) {
+                    continue;
+                }
+                if ("KCZZ".equals(wareItem.getfBilltype())) {
+                    TWhgenleg whgenleg = new TWhgenleg();
+                    whgenleg.setfId(wareItem.getSrcId());
+                    whgenleg.setfChargedate(wareItem.getfChargedate());
+                    int i = tWhgenlegMapper.updateTWhgenleg(whgenleg);
+                    if (i <= 0) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("更新库存费用状态失败,请联系管理员");
+                    }
+                } else {
+                    TWarehousebillsitems billsItem = new TWarehousebillsitems();
+                    billsItem.setfId(wareItem.getSrcId());
+                    billsItem.setfBilltype(wareItem.getfBilltype());
+                    if (!"SJCK".equals(wareItem.getfBilltype())) {
+                        billsItem.setfChargedate(wareItem.getfBillingDeadline());
+                        tWarehousebillsitemsMapper.updateTWarehousebillsitems(billsItem);
+                    } else {
+                        billsItem.setfChargedate(wareItem.getfChargedate());
+                    }
+                    tWarehousebillsitemsMapper.agreementApprovalRejected(billsItem);
+                }
+            }
+        }
         return AjaxResult.success();
         return AjaxResult.success();
     }
     }
 
 
@@ -1909,7 +1940,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbDr.setfDc("D");
                 wbDr.setfDc("D");
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateBy(loginUser.getUser().getUserName());
                 wbDr.setCreateTime(new Date());
                 wbDr.setCreateTime(new Date());
-                if(tWarehousebills.getfBsdate()!=null&& !tWarehousebills.getfBsdate().equals("")){
+                if (tWarehousebills.getfBsdate() != null && !tWarehousebills.getfBsdate().equals("")) {
                     wbDr.setfBsdate(tWarehousebills.getfBsdate());
                     wbDr.setfBsdate(tWarehousebills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
@@ -1924,7 +1955,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 wbCr.setfDc("C");
                 wbCr.setfDc("C");
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateBy(loginUser.getUser().getUserName());
                 wbCr.setCreateTime(new Date());
                 wbCr.setCreateTime(new Date());
-                if(tWarehousebills.getfBsdate()!=null&& !tWarehousebills.getfBsdate().equals("")){
+                if (tWarehousebills.getfBsdate() != null && !tWarehousebills.getfBsdate().equals("")) {
                     wbCr.setfBsdate(tWarehousebills.getfBsdate());
                     wbCr.setfBsdate(tWarehousebills.getfBsdate());
                 }
                 }
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);

+ 1 - 1
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -522,7 +522,7 @@
         <where>
         <where>
             wh.f_corpid = #{warehouse.fCorpid}
             wh.f_corpid = #{warehouse.fCorpid}
             and ware.f_charg = 1
             and ware.f_charg = 1
-            and wh.f_chargedate &lt;= #{warehouse.fBillingDeadline}
+            and wh.f_chargedate &lt; #{warehouse.fBillingDeadline}
             <if test="warehouse.fGoodsid != null">and wh.f_goodsid = #{warehouse.fGoodsid}</if>
             <if test="warehouse.fGoodsid != null">and wh.f_goodsid = #{warehouse.fGoodsid}</if>
             <if test="warehouse.fMblno != null">and wh.f_mblno = #{warehouse.fMblno}</if>
             <if test="warehouse.fMblno != null">and wh.f_mblno = #{warehouse.fMblno}</if>
         </where>
         </where>

+ 10 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsfeesMapper.xml

@@ -109,6 +109,16 @@
         where f_id = #{fId}
         where f_id = #{fId}
     </select>
     </select>
 
 
+    <select id="selectTWarehousebillsfeesByPId" parameterType="Long" resultMap="TWarehousebillsfeesResult">
+        select f_id, f_pid, f_billing_deadline
+        where f_pid = #{fId} and f_billtype = 'SJCK'
+    </select>
+
+    <select id="selectWarehousebillsfeesByPId" parameterType="Long" resultMap="TWarehousebillsfeesResult">
+        <include refid="selectTWarehousebillsfeesVo"/>
+        where f_pid = #{fId}
+    </select>
+
     <insert id="insertTWarehousebillsfees" parameterType="TWarehousebillsfees" useGeneratedKeys="true"
     <insert id="insertTWarehousebillsfees" parameterType="TWarehousebillsfees" useGeneratedKeys="true"
             keyProperty="fId">
             keyProperty="fId">
         insert into t_warehousebillsfees
         insert into t_warehousebillsfees

+ 10 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

@@ -348,6 +348,14 @@
         where f_id = #{fId}
         where f_id = #{fId}
     </update>
     </update>
 
 
+    <update id="agreementApprovalRejected" parameterType="TWarehousebillsitems">
+        UPDATE
+            t_warehousebillsitems
+            SET f_storage_fee_deadline = null, f_chargedate = #{fChargedate}
+        WHERE
+            f_id = #{fId}
+    </update>
+
     <delete id="deleteTWarehousebillsitemsById" parameterType="Long">
     <delete id="deleteTWarehousebillsitemsById" parameterType="Long">
         delete from t_warehousebillsitems where f_id = #{fId}
         delete from t_warehousebillsitems where f_id = #{fId}
     </delete>
     </delete>
@@ -395,7 +403,8 @@
             and ware.f_billtype in ("HQZY", "SJCK")
             and ware.f_billtype in ("HQZY", "SJCK")
             and wa.f_charg = 1
             and wa.f_charg = 1
             and item.f_billstatus = 40
             and item.f_billstatus = 40
-            and item.f_chargedate &lt;= #{warehouse.fBillingDeadline}
+            and item.f_storage_fee_deadline IS NULL
+            and item.f_chargedate &lt; #{warehouse.fBillingDeadline}
             <if test="warehouse.fGoodsid != null">and item.f_goodsid = #{warehouse.fGoodsid}</if>
             <if test="warehouse.fGoodsid != null">and item.f_goodsid = #{warehouse.fGoodsid}</if>
             <if test="warehouse.fMblno != null">and ware.f_mblno = #{warehouse.fMblno}</if>
             <if test="warehouse.fMblno != null">and ware.f_mblno = #{warehouse.fMblno}</if>
         </where>
         </where>