Procházet zdrojové kódy

公出&报销与报销统计修改

anderx před 1 rokem
rodič
revize
3ad3e4b7b3

+ 2 - 2
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -2139,8 +2139,8 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     where  b.aid = #{financeId} and a.process_status = 3 and a.order_dep= #{depId}
   </select>
     <select id="selectExpenseCount" parameterType="com.goafanti.expenseAccount.bo.ExpenseCountsInput" resultType="com.goafanti.expenseAccount.bo.ExpenseCountsBo">
-      select a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,toc.max_duration maxDuration ,toc.actual_duration actualDuration ,
-             toc.exceed_duration exceedDuration, a.total_amount totalAmount,a.settlement_amount settlementAmount,b.bid_type bidType,
+      select a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,toc.actual_duration actualDuration ,
+              a.total_amount totalAmount,a.settlement_amount settlementAmount,b.bid_type bidType,
       c.expenseCount,c.peopleCount,c.notExamine,c.rejectCount,d.paymentAmount,c.days,c.amount expenseAmount
       from t_order_new a left join t_order_mid b on a.order_no =b.order_no
       left join t_order_public_release_count toc on a.order_no =toc.order_no

+ 42 - 3
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseCountsServiceImpl.java

@@ -1,6 +1,9 @@
 package com.goafanti.expenseAccount.service.impl;
 
+import cn.jiguang.common.utils.StringUtils;
+import com.goafanti.common.dao.OrderYearMaxDurationMapper;
 import com.goafanti.common.dao.TOrderNewMapper;
+import com.goafanti.common.model.OrderYearMaxDuration;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.expenseAccount.bo.ExpenseCountsBo;
 import com.goafanti.expenseAccount.bo.ExpenseCountsInput;
@@ -10,6 +13,8 @@ import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 
 @Service
@@ -17,6 +22,8 @@ public class ExpenseCountsServiceImpl implements ExpenseCountsService {
 
     @Autowired
     private TOrderNewMapper tOrderNewMapper;
+    @Autowired
+    private OrderYearMaxDurationMapper orderYearMaxDurationMapper;
     @Override
     @Cacheable(value = "getCounts#300", key = "'getCounts:key='+#in.buyerName+#in.startTime+#in.endTime+#in.depId+#in.contactNo+#in.targetType")
     public Object getCounts(ExpenseCountsInput in) {
@@ -24,9 +31,41 @@ public class ExpenseCountsServiceImpl implements ExpenseCountsService {
         if (in.getTargetType()==1){
             List<ExpenseCountsBo> expenseCountsBos = tOrderNewMapper.selectExpenseCount(in);
             expenseCountsBos.forEach(e->{
-               if (e.getMaxDuration().equals("-1")){
-                   e.setMaxDuration("不限制");
-               }
+                //获取年份
+                if (StringUtils.isNotEmpty(e.getOrderNo())){
+                    List<OrderYearMaxDuration> yearMaxDurationList = orderYearMaxDurationMapper.selectByOrderNo(e.getOrderNo());
+                    int year = LocalDate.now().getYear();
+                    OrderYearMaxDuration useOyd = null;
+                    for (int i = 0; i < yearMaxDurationList.size(); i++) {
+                        OrderYearMaxDuration oyd = yearMaxDurationList.get(i);
+                        //年份为0不是会员直接获取跳出循环,否则获取当前年份,获取不到获取最后一年
+                        if (oyd.getYear()==0){
+                            useOyd=oyd;
+                            break;
+                        }else {
+                            if (oyd.getYear().equals(year)){
+                                useOyd = oyd;
+                                break;
+                            }
+                            if(i==yearMaxDurationList.size()-1&&useOyd==null){
+                                useOyd = yearMaxDurationList.get(i);
+                            }
+                        }
+
+                    }
+                    if(useOyd.getStatus()==1){
+                        e.setMaxDuration("不限制");
+                        e.setExceedDuration("0");
+                    }else {
+                        e.setMaxDuration(useOyd.getMaxDuration().toString());
+                        if (useOyd.getMaxDuration().compareTo(new BigDecimal(e.getActualDuration()))>=0){
+                            e.setExceedDuration("0");
+                        }else {
+                            e.setExceedDuration(new BigDecimal(e.getActualDuration()).subtract(useOyd.getMaxDuration()).toString());
+                        }
+                    }
+                }
+
             });
             return expenseCountsBos;
         }else {

+ 1 - 0
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java

@@ -2083,6 +2083,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 				}
 				if(useOyd.getStatus()==1){
 					e.setMaxDuration("不限制");
+					e.setExceedDuration("0");
 				}else {
 					e.setMaxDuration(useOyd.getMaxDuration().toString());
 					if (useOyd.getMaxDuration().compareTo(new BigDecimal(e.getActualDuration()))>=0){