he2802 2 年之前
父節點
當前提交
9b75a22d3f

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/TopDivideLogQueryBo.java

@@ -81,4 +81,13 @@ public class TopDivideLogQueryBo extends BaseEntity {
 	private String createNo;
 	@ApiModelProperty("账单类型 (1月份 2季度 3半年 4年度)")
 	private Integer billType;
+
+	@ApiModelProperty("预付超期 1:7天 2:30 3:半年 4:1年")
+	private Integer overPayDay;
+
+	@ApiModelProperty("预付超期时间戳")
+	private Long overPayDayTime;
+
+	@ApiModelProperty("非支付状态")
+	private Integer notPayStatus;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/domain/TopDivideLog.java

@@ -73,4 +73,7 @@ private static final long serialVersionUID=1L;
 
     private BigDecimal unDeductMoney;
 
+
+    private Long predictPayTime;
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/service/ITopDivideLogService.java

@@ -55,6 +55,8 @@ public interface ITopDivideLogService extends IService<TopDivideLog> {
 
 	List<TopDivideLogVo> getCompanyList(TopDivideLogQueryBo bo);
 
+	void updateCompanyPredictPayTime(TopDivideLogQueryBo bo);
+
 	boolean updateRemark(TopDivideLogEditBo bo);
 
 	TopDivideLogVo getSumMoney(TopDivideLogQueryBo bo);

+ 67 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/service/impl/TopDivideLogServiceImpl.java

@@ -125,21 +125,81 @@ public class TopDivideLogServiceImpl extends ServiceImpl<TopDivideLogMapper, Top
 
     @Override
     public List<TopDivideLogVo> getCompanyList(TopDivideLogQueryBo bo) {
+        if(Validator.isNotEmpty(bo.getOverPayDay())){
+            bo.setNotPayStatus(1);
+        }
+        if(bo.getOverPayDay()==1){
+            bo.setOverPayDayTime(DateUtils.getNowTime()-(7*24*3600));
+        }
+        else if(bo.getOverPayDay()==2){
+            bo.setOverPayDayTime(DateUtils.getNowTime()-(30*24*3600));
+        }
+        else if(bo.getOverPayDay()==3){
+            bo.setOverPayDayTime(DateUtils.getNowTime()-(182*24*3600));
+        }
+        else if(bo.getOverPayDay()==4){
+            bo.setOverPayDayTime(DateUtils.getNowTime()-(365*24*3600));
+        }
         List<TopDivideLogVo> list = baseMapper.getCompanyList(bo);
         for(TopDivideLogVo logVos : list){
             if (Validator.isNotEmpty(logVos.getBillDay())) {
-                Calendar cal1 = new GregorianCalendar();
-                cal1.setTimeInMillis(logVos.getMonthTime()* 1000);
-                cal1.add(Calendar.MONTH, 1);
-                cal1.set(Calendar.DAY_OF_MONTH, logVos.getBillDay());
-                logVos.setPredictPayTime(cal1.getTimeInMillis()/1000);
-                Integer predictDay = DateUtils.dayBetween(logVos.getPredictPayTime(), DateUtils.getNowTime());
-                logVos.setPredictPayDay(predictDay);
+                if(logVos.getPayStatus()!=1){
+                    Integer predictDay = DateUtils.dayBetween(logVos.getPredictPayTime(), DateUtils.getNowTime());
+                    logVos.setPredictPayDay(predictDay);
+                }
             }
         }
         return list;
     }
 
+    @Override
+    public void updateCompanyPredictPayTime(TopDivideLogQueryBo bo) {
+        bo.setNotPayStatus(1);
+        List<TopDivideLogVo> list = baseMapper.getCompanyList(bo);
+        for(TopDivideLogVo logVos : list){
+            if (Validator.isNotEmpty(logVos.getBillDay())) {
+                if(Validator.isNotEmpty(logVos.getBillType())){
+                    Calendar cal1 = new GregorianCalendar();
+                    cal1.setTimeInMillis(logVos.getMonthTime()* 1000);
+                    int month = cal1.get(Calendar.MONTH) + 1;
+                    cal1.set(Calendar.DAY_OF_MONTH, logVos.getBillDay());
+                    if(logVos.getBillType()==1){
+                        cal1.add(Calendar.MONTH, 1);
+                    }
+                    else if(logVos.getBillType()==2){
+                        if(month<4){
+                            cal1.set(Calendar.MONTH, 2);
+                        }
+                        if(month<7){
+                            cal1.set(Calendar.MONTH, 5);
+                        }
+                        if(month<10){
+                            cal1.set(Calendar.MONTH, 8);
+                        }
+                        if(month<13){
+                            cal1.set(Calendar.MONTH, 11);
+                        }
+                    }
+                    else if(logVos.getBillType()==3){
+                        if(month<7){
+                            cal1.set(Calendar.MONTH, 5);
+                        }else{
+                            cal1.set(Calendar.MONTH, 11);
+                        }
+                    }
+                    else if(logVos.getBillType()==4){
+                        cal1.set(Calendar.MONTH, 11);
+                    }
+                    TopDivideLog update = new TopDivideLog();
+                    update.setId(logVos.getId());
+                    update.setPredictPayTime(cal1.getTimeInMillis()/1000);
+                    update.setUpdateTime(DateUtils.getNowTime());
+                    this.updateById(update);
+                }
+            }
+        }
+    }
+
     @Override
     public boolean updateRemark(TopDivideLogEditBo bo) {
         if (Validator.isEmpty(bo.getRemark()) || Validator.isEmpty(bo.getId())) {

+ 6 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideLogMapper.xml

@@ -49,6 +49,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 #{item}
             </foreach>
         </if>
+        <if test="overPayDay != null ">
+            AND dl.predict_pay_time <![CDATA[ <= ]]> #{overPayDayTime}
+        </if>
+        <if test="notPayStatus != null ">
+            AND dl.pay_status != #{notPayStatus}
+        </if>
     </select>