Переглянути джерело

Merge branch 'test' of jishutao/kede-server into prod

anderx 2 роки тому
батько
коміт
8228d3517d
40 змінених файлів з 1498 додано та 205 видалено
  1. 74 0
      src/main/java/com/goafanti/admin/bo/OutFinanceCount.java
  2. 27 0
      src/main/java/com/goafanti/admin/controller/AdminStatisticsController.java
  3. 4 0
      src/main/java/com/goafanti/admin/service/AdminStatisticsService.java
  4. 132 42
      src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java
  5. 75 0
      src/main/java/com/goafanti/admin/service/impl/AdminStatisticsServiceImpl.java
  6. 9 0
      src/main/java/com/goafanti/common/controller/BaseApiController.java
  7. 1 1
      src/main/java/com/goafanti/common/controller/PublicController.java
  8. 13 4
      src/main/java/com/goafanti/common/dao/AdminMapper.java
  9. 2 0
      src/main/java/com/goafanti/common/dao/ExpenseAccountMapper.java
  10. 33 0
      src/main/java/com/goafanti/common/dao/FinanceCountMapper.java
  11. 3 1
      src/main/java/com/goafanti/common/dao/PublicReleaseMapper.java
  12. 4 2
      src/main/java/com/goafanti/common/dao/TOrderInvoiceMapper.java
  13. 5 0
      src/main/java/com/goafanti/common/dao/TOrderNewMapper.java
  14. 4 2
      src/main/java/com/goafanti/common/dao/TOrderPaymentMapper.java
  15. 5 0
      src/main/java/com/goafanti/common/dao/TTaskMemberMapper.java
  16. 56 0
      src/main/java/com/goafanti/common/mapper/AdminMapper.xml
  17. 7 0
      src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml
  18. 279 0
      src/main/java/com/goafanti/common/mapper/FinanceCountMapper.xml
  19. 16 10
      src/main/java/com/goafanti/common/mapper/NewOrderChangeMapper.xml
  20. 9 1
      src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml
  21. 13 0
      src/main/java/com/goafanti/common/mapper/TOrderInvoiceMapper.xml
  22. 9 0
      src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml
  23. 11 1
      src/main/java/com/goafanti/common/mapper/TOrderPaymentMapper.xml
  24. 11 1
      src/main/java/com/goafanti/common/mapper/TTaskMemberMapper.xml
  25. 2 2
      src/main/java/com/goafanti/common/mapper/ThirdPartyCompanyMapper.xml
  26. 253 0
      src/main/java/com/goafanti/common/model/FinanceCount.java
  27. 18 21
      src/main/java/com/goafanti/common/task/OrderDunTask.java
  28. 5 5
      src/main/java/com/goafanti/common/utils/AsyncUtils.java
  29. 131 10
      src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java
  30. 24 25
      src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java
  31. 3 0
      src/main/java/com/goafanti/order/service/OrderNewService.java
  32. 16 6
      src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java
  33. 68 6
      src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java
  34. 45 3
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  35. 61 1
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  36. 67 55
      src/main/java/com/goafanti/organization/service/impl/ThirdPartyCompanyServiceImpl.java
  37. 0 3
      src/main/java/com/goafanti/user/service/impl/UserFollowServiceImpl.java
  38. 1 1
      src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java
  39. 1 1
      src/main/resources/props/config_local.properties
  40. 1 1
      src/main/resources/props/config_test.properties

+ 74 - 0
src/main/java/com/goafanti/admin/bo/OutFinanceCount.java

@@ -0,0 +1,74 @@
+package com.goafanti.admin.bo;
+
+import com.goafanti.common.model.FinanceCount;
+
+import java.math.BigDecimal;
+
+public class OutFinanceCount extends FinanceCount {
+
+    private Integer publicCount;
+    private Integer rangePublicCount;
+
+    private BigDecimal receivables;
+    private BigDecimal rangeReceivables;
+    private Integer changeCount;
+    private Integer changeInvoiceCount;
+    private String dates;
+
+    public String getDates() {
+        return dates;
+    }
+
+    public void setDates(String dates) {
+        this.dates = dates;
+    }
+
+    public Integer getPublicCount() {
+        return publicCount;
+    }
+
+    public void setPublicCount(Integer publicCount) {
+        this.publicCount = publicCount;
+    }
+
+    public Integer getChangeCount() {
+        return changeCount;
+    }
+
+    public void setChangeCount(Integer changeCount) {
+        this.changeCount = changeCount;
+    }
+
+    public Integer getChangeInvoiceCount() {
+        return changeInvoiceCount;
+    }
+
+    public void setChangeInvoiceCount(Integer changeInvoiceCount) {
+        this.changeInvoiceCount = changeInvoiceCount;
+    }
+
+    public BigDecimal getReceivables() {
+        return receivables;
+    }
+
+    public void setReceivables(BigDecimal receivables) {
+        this.receivables = receivables;
+    }
+
+    public Integer getRangePublicCount() {
+        return rangePublicCount;
+    }
+
+    public void setRangePublicCount(Integer rangePublicCount) {
+        this.rangePublicCount = rangePublicCount;
+    }
+
+    public BigDecimal getRangeReceivables() {
+        return rangeReceivables;
+    }
+
+    public void setRangeReceivables(BigDecimal rangeReceivables) {
+        this.rangeReceivables = rangeReceivables;
+    }
+
+}

+ 27 - 0
src/main/java/com/goafanti/admin/controller/AdminStatisticsController.java

@@ -26,6 +26,7 @@ public class AdminStatisticsController extends CertifyApiController {
     public Result info(String startTime,String endTime) {
         Result res =new Result();
         res.data(adminStatisticsService.info(startTime, endTime));
+
         return res;
 
     }
@@ -67,4 +68,30 @@ public class AdminStatisticsController extends CertifyApiController {
         return res;
     }
 
+
+    /**
+     * 财务首页信息
+     * @param startTime  开始时间
+     * @param endTime  结束时间
+     * @return
+     */
+    @RequestMapping(value = "/finance/info", method = RequestMethod.GET)
+    public Result financeInfo(String startTime,String endTime) {
+        Result res =new Result();
+        res.data(adminStatisticsService.financeInfo(startTime, endTime));
+        return res;
+
+    }
+
+    /**
+     * 咨询首页折线图
+     * @return
+     */
+    @RequestMapping(value = "/finance/lists", method = RequestMethod.GET)
+    public Result financeLists() {
+        Result res =new Result();
+        res.data(adminStatisticsService.financeLists(TokenManager.getAdminId()));
+        return res;
+    }
+
 }

+ 4 - 0
src/main/java/com/goafanti/admin/service/AdminStatisticsService.java

@@ -8,4 +8,8 @@ public interface AdminStatisticsService {
     Object consultantInfo(String startTime, String endTime);
 
     Object consultantLists(String adminId);
+
+    Object financeInfo(String startTime, String endTime);
+
+    Object financeLists(String adminId);
 }

+ 132 - 42
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -1,7 +1,5 @@
 package com.goafanti.admin.service.impl;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.goafanti.admin.bo.*;
 import com.goafanti.admin.service.AdminService;
 import com.goafanti.admin.service.DepartmentService;
@@ -10,7 +8,6 @@ import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.*;
 import com.goafanti.common.error.BusinessException;
 import com.goafanti.common.model.*;
-import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.common.utils.PasswordUtil;
 import com.goafanti.common.utils.StringUtils;
@@ -51,7 +48,18 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 	@Autowired
 	private AdminUserCountMapper adminUserCountMapper;
 	@Autowired
-	private TaskTimeMapper taskTimeMapper;
+	private TOrderNewMapper TOrderNewMapper;
+	@Autowired
+	private ExpenseAccountMapper expenseAccountMapper;
+	@Autowired
+	private TOrderInvoiceMapper tOrderInvoiceMapper;
+	@Autowired
+	private TTaskMemberMapper tTaskMemberMapper;
+	@Autowired
+	private TOrderPaymentMapper tOrderPaymentMapper;
+	@Autowired
+	private FinanceCountMapper financeCountMapper;
+
 
 
 
@@ -581,50 +589,97 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 //		publiAdminUserCount(list);
 //		System.out.println("list="+list.size());
 //		}
-		List<TOrderTask> allTimeRecord = taskTimeMapper.getAllTimeRecord();
-		List<TaskTime> list=new ArrayList<>();
-		for (TOrderTask e : allTimeRecord) {
-			String timeRecord = e.getTimeRecord();
-			System.out.println(e.getTimeRecord());
-			if (StringUtils.isNotBlank(e.getTimeRecord())){
-				Map<String,Object> map = JSON.parseObject(timeRecord, Map.class);
-				for (String s : map.keySet()) {
-					if (s.equals("2")||s.equals("3")||s.equals("29")||s.equals("19")||(s.equals("27"))){
-						JSONObject js = JSON.parseObject(map.get(s).toString());
-						Object date = js.get("date");
-						Object suspendImg  = js.get("suspendImg") ;
-						Object title = js.get("title") ;
-						Object certificateNumber = js.get("certificateNumber") ;
-						Object setUpAmount = js.get("setUpAmount") ;
-						Object appropriation = js.get("appropriation") ;
-						TaskTime tt=new TaskTime();
-						tt.setTid(e.getId());
-						tt.setProjectStatus(Integer.parseInt(s));
-						if (!Objects.isNull(date)){
-							String dates=date.toString();
-							if (StringUtils.isNotBlank(dates)){
-								Date date1 = DateUtils.StringToDate(dates, AFTConstants.YYYYMMDD);
-								tt.setDateTime(date1);
-							}
-						}
-						if (!Objects.isNull(setUpAmount))tt.setSetUpAmount(setUpAmount.toString());
-						if (!Objects.isNull(suspendImg))tt.setSuspendImg(suspendImg.toString());
-						if (!Objects.isNull(title))tt.setTitle(title.toString());
-						if (!Objects.isNull(certificateNumber))tt.setCertificateNumber(certificateNumber.toString());
-						if (!Objects.isNull(appropriation))tt.setAppropriation(appropriation.toString());
-						list.add(tt);
-//					taskTimeMapper.insertSelective(tt);
+//咨询师统计处理
+//		List<TOrderTask> allTimeRecord = taskTimeMapper.getAllTimeRecord();
+//		List<TaskTime> list=new ArrayList<>();
+//		for (TOrderTask e : allTimeRecord) {
+//			String timeRecord = e.getTimeRecord();
+//			System.out.println(e.getTimeRecord());
+//			if (StringUtils.isNotBlank(e.getTimeRecord())){
+//				Map<String,Object> map = JSON.parseObject(timeRecord, Map.class);
+//				for (String s : map.keySet()) {
+//					if (s.equals("2")||s.equals("3")||s.equals("29")||s.equals("19")||(s.equals("27"))){
+//						JSONObject js = JSON.parseObject(map.get(s).toString());
+//						Object date = js.get("date");
+//						Object suspendImg  = js.get("suspendImg") ;
+//						Object title = js.get("title") ;
+//						Object certificateNumber = js.get("certificateNumber") ;
+//						Object setUpAmount = js.get("setUpAmount") ;
+//						Object appropriation = js.get("appropriation") ;
+//						TaskTime tt=new TaskTime();
+//						tt.setTid(e.getId());
+//						tt.setProjectStatus(Integer.parseInt(s));
+//						if (!Objects.isNull(date)){
+//							String dates=date.toString();
+//							if (StringUtils.isNotBlank(dates)){
+//								Date date1 = DateUtils.StringToDate(dates, AFTConstants.YYYYMMDD);
+//								tt.setDateTime(date1);
+//							}
+//						}
+//						if (!Objects.isNull(setUpAmount))tt.setSetUpAmount(setUpAmount.toString());
+//						if (!Objects.isNull(suspendImg))tt.setSuspendImg(suspendImg.toString());
+//						if (!Objects.isNull(title))tt.setTitle(title.toString());
+//						if (!Objects.isNull(certificateNumber))tt.setCertificateNumber(certificateNumber.toString());
+//						if (!Objects.isNull(appropriation))tt.setAppropriation(appropriation.toString());
+//						list.add(tt);
+////					taskTimeMapper.insertSelective(tt);
+//					}
+//				}
+//			}
+//		}
+//		List<TaskTime> addList = new ArrayList<>();
+//		for (int i = 0; i <list.size(); i++) {
+//			addList.add(list.get(i));
+//			if (addList.size()==50|| i==list.size() -1){
+//				taskTimeMapper.insertBatch(addList);
+//				try {
+//					addList.clear();
+//					Thread.sleep(500);
+//				} catch (InterruptedException exception) {
+//					exception.printStackTrace();
+//				}
+//			}
+//		}
+		List<String> roles=new ArrayList<>();
+		roles.add(AFTConstants.FINANCE);
+		roles.add(AFTConstants.FINANCE_MANAGER);
+		List<Admin> admins = adminMapper.selectAdminByRoleTypes(roles);
+		List<FinanceCount> list=new ArrayList<>();
+		for (Admin admin : admins){
+			List<FinanceCount> aList=new ArrayList<>();
+			List<FinanceCount> orderList = TOrderNewMapper.selectCountByFinance(admin.getId());
+			if (!orderList.isEmpty()){
+				aList.addAll(orderList);
+			}
+			if (admin.getId().equals("060583e4-82a2-4f72-8141-ae44806844e7")){
+				System.out.println("???");
+			}
+			List<FinanceCount> expenseList = expenseAccountMapper.selectCountByFinance(admin.getId());
+			pushFinanceList(aList, expenseList,0);
+			List<FinanceCount> invoiceList =tOrderInvoiceMapper.selectCountByFinance(admin.getId());
+			pushFinanceList(aList, invoiceList,1);
+			List<FinanceCount> memberList =tTaskMemberMapper.selectCountByFinance(admin.getId());
+			pushFinanceList(aList, memberList,2);
+			List<FinanceCount> paymentList =tOrderPaymentMapper.selectCountByFinance(admin.getId());
+			pushFinanceList(aList, paymentList,3);
+			if (!aList.isEmpty()){
+				for (FinanceCount financeCount : aList) {
+					if (financeCount.getExpenseCount()!=null&&financeCount.getExpenseCount()>0){
+						financeCount.toString();
 					}
 				}
 			}
+			list.addAll(aList);
 		}
-		List<TaskTime> addList = new ArrayList<>();
+		List<FinanceCount> addList=new ArrayList<>();
 		for (int i = 0; i <list.size(); i++) {
-			addList.add(list.get(i));
-			if (addList.size()==50|| i==list.size() -1){
-				taskTimeMapper.insertBatch(addList);
+			FinanceCount financeCount = list.get(i);
+			FinanceCount newFc=FinanceCount.initialization(financeCount);
+			addList.add(newFc);
+			if (addList.size()==50||i==list.size()-1){
+				financeCountMapper.insetBatch(addList);
+				addList.clear();
 				try {
-					addList.clear();
 					Thread.sleep(500);
 				} catch (InterruptedException exception) {
 					exception.printStackTrace();
@@ -634,6 +689,41 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 		return 1;
 	}
 
+	/**
+	 *
+	 * @param list
+	 * @param minList
+	 * @param type
+	 */
+	private void pushFinanceList(List<FinanceCount> list, List<FinanceCount> minList,Integer type) {
+		if (!minList.isEmpty()){
+			for (FinanceCount expense : minList) {
+				boolean flag=true;
+				for (FinanceCount e : list) {
+					if (e.getDateTime().getTime()==expense.getDateTime().getTime()){
+						if (type==0){
+							e.setExpenseCount(expense.getExpenseCount());
+							e.setExpenseUnauditedCount(expense.getExpenseUnauditedCount());
+						}else if (type==1){
+							e.setInvoiceCount(expense.getInvoiceCount());
+							e.setInvoiceUnauditedCount(expense.getInvoiceUnauditedCount());
+						}else if (type==2){
+							e.setMemberCount(expense.getMemberCount());
+							e.setMemberUnauditedCount(expense.getMemberUnauditedCount());
+						}else if (type==3){
+							e.setPaymentCount(expense.getPaymentCount());
+							e.setPaymentUnauditedCount(expense.getPaymentUnauditedCount());
+						}
+						flag=false;
+					}
+				}
+				if (flag){
+					list.add(expense);
+				}
+			}
+		}
+	}
+
 	private void publiAdminUserCount(List<AdminUserCount> list) {
 		for (AdminUserCount e : list) {
 

+ 75 - 0
src/main/java/com/goafanti/admin/service/impl/AdminStatisticsServiceImpl.java

@@ -3,9 +3,12 @@ package com.goafanti.admin.service.impl;
 import com.goafanti.admin.bo.AdminStatisticsBo;
 import com.goafanti.admin.bo.ConsultantStatisticsBo;
 import com.goafanti.admin.bo.ConsultantUserCount;
+import com.goafanti.admin.bo.OutFinanceCount;
 import com.goafanti.admin.service.AdminStatisticsService;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.AdminMapper;
+import com.goafanti.common.dao.FinanceCountMapper;
+import com.goafanti.common.dao.PublicReleaseMapper;
 import com.goafanti.common.model.AdminUserCount;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.core.shiro.token.TokenManager;
@@ -22,6 +25,10 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
 
     @Autowired
     private AdminMapper adminMapper;
+    @Autowired
+    private PublicReleaseMapper publicReleaseMapper;
+    @Autowired
+    private FinanceCountMapper financeCountMapper;
 
 
     @Override
@@ -190,6 +197,74 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
         return map;
     }
 
+    @Override
+    public Object financeInfo(String startTime, String endTime) {
+        String aid = TokenManager.getAdminId();
+        OutFinanceCount financeCount=adminMapper.financeInfo(aid, startTime, endTime);
+        if (financeCount==null)financeCount= new OutFinanceCount();
+        String endDate =endTime+" 23:59:59";
+        Integer rangePublicCount = publicReleaseMapper.selectCountByaidAndDate(aid, startTime, endDate);
+        if (rangePublicCount==null) rangePublicCount=0;
+        financeCount.setRangePublicCount(rangePublicCount);
+        BigDecimal rangeReceivables=adminMapper.selectFinanceReceivablesCount(aid,startTime,endDate);
+        if (rangeReceivables==null)rangeReceivables=new BigDecimal(0);
+        financeCount.setRangeReceivables(rangeReceivables);
+        OutFinanceCount outFinanceCount = adminMapper.selectFinanceChangeCount(aid);
+        if (outFinanceCount==null) outFinanceCount= new OutFinanceCount();
+        if (outFinanceCount.getChangeCount()==null)outFinanceCount.setChangeCount(0);
+        if (outFinanceCount.getChangeInvoiceCount()==null)outFinanceCount.setChangeInvoiceCount(0);
+        financeCount.setChangeCount(outFinanceCount.getChangeCount());
+        financeCount.setChangeInvoiceCount(outFinanceCount.getChangeInvoiceCount());
+        return financeCount;
+    }
+
+    @Override
+    public Object financeLists(String aid) {
+        //获取当月的列表
+        Map<String,Object> map=new LinkedHashMap<>();
+        Days days = new Days();
+        List<String> thisMonth = getThisMonth(days);
+        List<Integer> orderList=new ArrayList<>();
+        List<Integer> expenseList=new ArrayList<>();
+        List<Integer> invoiceList=new ArrayList<>();
+        List<Integer> memberList=new ArrayList<>();
+        List<Integer> paymentList=new ArrayList<>();
+        List<Integer> publicList=new ArrayList<>();
+        List<OutFinanceCount> financeCounts = financeCountMapper.financeLists(aid, days.firstDay, days.endDay+" 23:59:59");
+        List<OutFinanceCount> pList = publicReleaseMapper.selectByaidAndDate(aid, days.firstDay, days.endDay + " 23:59:59");
+        int orderCount=0,expenseCount=0, invoiceCount=0,memberCount=0,paymentCount=0,publicCount=0;
+        for (String e : thisMonth) {
+            for (OutFinanceCount f : financeCounts) {
+                if (e.equals(f.getDates())){
+                    orderCount+=f.getOrderCount();
+                    expenseCount+=f.getExpenseCount();
+                    invoiceCount+=f.getInvoiceCount();
+                    memberCount+=f.getMemberCount();
+                    paymentCount+=f.getPaymentCount();
+                }
+            }
+            for (OutFinanceCount p : pList) {
+                if (e.equals(p.getDates())){
+                    publicCount+=p.getPublicCount();
+                }
+            }
+            orderList.add(orderCount);
+            expenseList.add(expenseCount);
+            invoiceList.add(invoiceCount);
+            memberList.add(memberCount);
+            paymentList.add(paymentCount);
+            publicList.add(publicCount);
+        }
+        map.put("dates",thisMonth);
+        map.put("orderList",orderList);
+        map.put("expenseList",expenseList);
+        map.put("invoiceList",invoiceList);
+        map.put("memberList",memberList);
+        map.put("paymentList",paymentList);
+        map.put("publicList",publicList);
+        return map;
+    }
+
 
     public  List<String> getThisMonth(Days days) {
         //获取三十天前的日期

+ 9 - 0
src/main/java/com/goafanti/common/controller/BaseApiController.java

@@ -77,6 +77,15 @@ public class BaseApiController extends BaseController {
 	}
 
 
+	/**
+	 *  上传图片并压缩
+	 * @param res
+	 * @param path
+	 * @param req
+	 * @param id
+	 * @param sign
+	 * @return
+	 */
 	protected String uploadFile(Result res, String path,  HttpServletRequest req,String id, String sign) {
 		List<MultipartFile> files = getFiles(req);
 		String fileName = "";

+ 1 - 1
src/main/java/com/goafanti/common/controller/PublicController.java

@@ -941,7 +941,7 @@ public class PublicController extends CertifyApiController {
 	}
 
 
-	@RequestMapping("/pushStatistics2")
+	@RequestMapping("/pushStatistics3")
 	public Result pushStatistics (){
 		Result res =new Result();
 		res.data(adminService.pushStatistics());

+ 13 - 4
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -2,10 +2,7 @@ package com.goafanti.common.dao;
 
 import com.goafanti.admin.bo.*;
 import com.goafanti.common.bo.AdminNoticeBo;
-import com.goafanti.common.model.Admin;
-import com.goafanti.common.model.AdminUserCount;
-import com.goafanti.common.model.Department;
-import com.goafanti.common.model.Role;
+import com.goafanti.common.model.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -197,4 +194,16 @@ public interface AdminMapper {
 
     List<ConsultantUserCount> consultantthisMonthUser(@Param("firstDay")String firstDay, @Param("endDay")String endDay,
                                                       @Param("aid")String aid);
+
+    Admin selectOrderByFinanace(String orderNo);
+
+    List<Admin> selectAdminByRoleTypes(List<String> roles);
+
+    OutFinanceCount financeInfo(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    OutFinanceCount selectFinanceChangeCount(String aid);
+
+    BigDecimal selectFinanceReceivablesCount(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/ExpenseAccountMapper.java

@@ -1,6 +1,7 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.common.model.ExpenseAccount;
+import com.goafanti.common.model.FinanceCount;
 import com.goafanti.expenseAccount.bo.InputExpenseAccount;
 import com.goafanti.expenseAccount.bo.OutExpenseAccount;
 import com.goafanti.expenseAccount.bo.OutMyEAStatistics;
@@ -39,4 +40,5 @@ public interface ExpenseAccountMapper {
     List<ExpenseAccount> selectByCheckNoNot();
 
 
+    List<FinanceCount> selectCountByFinance(String id);
 }

+ 33 - 0
src/main/java/com/goafanti/common/dao/FinanceCountMapper.java

@@ -0,0 +1,33 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.admin.bo.OutFinanceCount;
+import com.goafanti.common.model.FinanceCount;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface FinanceCountMapper {
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(FinanceCount record);
+
+    int insertSelective(FinanceCount record);
+
+    FinanceCount selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(FinanceCount record);
+
+    int updateByPrimaryKey(FinanceCount record);
+
+    int selectByAidAndDatesGetCount(@Param("aid") String aid, @Param("startTime") String startTime);
+
+    void updateOrderCountAdd(@Param("aid") String aid, @Param("startTime") String startTime);
+
+
+
+    FinanceCount selectByAidAndDates(@Param("aid") String aid, @Param("startTime") String startTime);
+
+    void insetBatch(List<FinanceCount> addList);
+
+    List<OutFinanceCount> financeLists(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+}

+ 3 - 1
src/main/java/com/goafanti/common/dao/PublicReleaseMapper.java

@@ -1,5 +1,6 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.admin.bo.OutFinanceCount;
 import com.goafanti.common.model.OutPublicReleaseCount;
 import com.goafanti.common.model.PublicRelease;
 import com.goafanti.weChat.bo.OutPublicRelease;
@@ -50,5 +51,6 @@ public interface PublicReleaseMapper {
 
     OutPublicReleaseAndDetails selectDtailsByFid(@Param("ufid")String ufid);
 
-    Integer selectByaidAndDate(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+    Integer selectCountByaidAndDate(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+    List<OutFinanceCount> selectByaidAndDate(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
 }

+ 4 - 2
src/main/java/com/goafanti/common/dao/TOrderInvoiceMapper.java

@@ -1,14 +1,14 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.common.model.FinanceCount;
 import com.goafanti.common.model.TOrderInvoice;
-import com.goafanti.common.model.TOrderInvoiceExample;
 import com.goafanti.order.bo.InvoiceBo;
 import com.goafanti.order.bo.OutInvoiceLog;
 import com.goafanti.order.bo.TOrderInvoiceDetails;
+import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
 import java.util.List;
-import org.apache.ibatis.annotations.Param;
 
 public interface TOrderInvoiceMapper {
     int deleteByPrimaryKey(Integer id);
@@ -34,4 +34,6 @@ public interface TOrderInvoiceMapper {
     TOrderInvoiceDetails getInvoiceDetails(String orderNo);
 
     List<OutInvoiceLog>  selectInvoiceLog(Integer id);
+
+    List<FinanceCount> selectCountByFinance(String id);
 }

+ 5 - 0
src/main/java/com/goafanti/common/dao/TOrderNewMapper.java

@@ -1,5 +1,6 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.common.model.FinanceCount;
 import com.goafanti.common.model.TOrderBillNew;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.order.bo.*;
@@ -86,4 +87,8 @@ public interface TOrderNewMapper {
 
     int selectAidAndDate(@Param("aid") String aid, @Param("startTime") String startTime,
                          @Param("endTime")String endTime);
+
+
+
+    List<FinanceCount> selectCountByFinance(String id);
 }

+ 4 - 2
src/main/java/com/goafanti/common/dao/TOrderPaymentMapper.java

@@ -1,10 +1,11 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.common.model.FinanceCount;
 import com.goafanti.common.model.TOrderPayment;
 import com.goafanti.organization.bo.outOrderPayment;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-import org.apache.ibatis.annotations.Param;
 
 public interface TOrderPaymentMapper {
 
@@ -67,4 +68,5 @@ public interface TOrderPaymentMapper {
 
 	void deleteByParam(@Param("tid")Integer tid, @Param("chooseType")Integer chooseType);
 
-}
+    List<FinanceCount> selectCountByFinance(String id);
+}

+ 5 - 0
src/main/java/com/goafanti/common/dao/TTaskMemberMapper.java

@@ -1,8 +1,11 @@
 package com.goafanti.common.dao;
 
+import com.goafanti.common.model.FinanceCount;
 import com.goafanti.common.model.TTaskMember;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 
 public interface TTaskMemberMapper {
     int deleteByPrimaryKey(Integer id);
@@ -26,4 +29,6 @@ public interface TTaskMemberMapper {
                           @Param("contractTerm") String contractTerm);
 
     void updateServiceYearBySplitSuper(Integer tid);
+
+    List<FinanceCount> selectCountByFinance(String id);
 }

+ 56 - 0
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -1385,4 +1385,60 @@
     and a.release_start  BETWEEN #{firstDay} and #{endDay})x
     group by x.dates
   </select>
+  <select id="selectOrderByFinanace" resultType="com.goafanti.common.model.Admin">
+    select c.id,c.name
+    from t_order_new a left join department b on a.order_dep=b.id
+    left join admin c on b.finance_id=c.id
+    where a.order_no =#{orderNo};
+  </select>
+  <select id="selectAdminByRoleTypes" resultType="com.goafanti.common.model.Admin">
+    SELECT a.id,a.name ,a.mobile ,a.email,a.department_id departmentId,a.open_id openId,a.expense_open_id expenseOpenId
+    FROM admin a left join user_role b on a.id=b.uid
+    left join `role` c on b.rid =c.id
+    where a.status='0'
+    and c.role_type  in
+    <foreach collection="list" item="e" open="(" close=")" separator=",">
+      #{e}
+    </foreach>
+  </select>
+    <select id="financeInfo" resultType="com.goafanti.admin.bo.OutFinanceCount">
+      select x.aid,x.orderCount,x.expenseCount,x.invoiceCount,x.memberCount,x.paymentCount,b.counts publicCount,y.orderUnauditedCount,
+             c.counts receivables,y.expenseUnauditedCount,y.invoiceUnauditedCount,y.memberUnauditedCount,y.paymentUnauditedCount
+      from ( select a.aid,sum(a.order_count)orderCount ,sum(a.expense_count)expenseCount ,SUM(a.invoice_count) invoiceCount,
+            sum(a.member_count) memberCount ,sum(a.payment_count)paymentCount from finance_count a where a.aid= #{aid} )x
+      left join(select aid,sum(if(a.`type` in (0,1,2),1,0)) counts from public_release a left join public_release_details b on a.id=b.prid
+          where a.status=2 and  a.aid= #{aid} )b  on x.aid=b.aid
+      left join (SELECT c.finance_id aid,sum(a.money) counts from new_order_dun a left join t_order_new b on a.order_no =b.order_no
+            left join department c on b.order_dep =c.id where a.status =1   and b.delete_sign in (0,2,3) and c.finance_id = #{aid} )c on x.aid=c.aid
+      left join (select a.aid,sum(a.order_unaudited_count)orderUnauditedCount , sum(a.expense_unaudited_count)expenseUnauditedCount ,
+            SUM(a.invoice_unaudited_count) invoiceUnauditedCount, sum(a.member_unaudited_count) memberUnauditedCount ,
+            sum(a.payment_unaudited_count)paymentUnauditedCount from finance_count a where a.aid= #{aid}
+            and a.date_time BETWEEN #{startTime}  and #{endTime} group by a.aid)y on x.aid=y.aid
+    </select>
+  <select id="financeCountRangeReceivables" resultType="java.math.BigDecimal">
+    SELECT  ifnull(sum(a.money),0)  receivables
+    from new_order_dun a left join t_order_new b on a.order_no =b.order_no
+        left join department c on b.order_dep =c.id
+    where a.status =1   and b.delete_sign in (0,2,3)
+      and c.finance_id = #{aid}
+      and a.start_time  between #{startTime} and #{endTime}
+  </select>
+  <select id="selectFinanceChangeCount" resultType="com.goafanti.admin.bo.OutFinanceCount">
+    select c.finance_id aid,sum(if(a.process_state=6,1,0))changeCount,
+           sum(if(a.process_state>6 and a.status=2,1,0)) changeInvoiceCount
+    from new_order_change a left join t_order_new b on a.order_no =b.order_no
+                            left join department c on b.order_dep =c.id
+    where a.process_state in (6,8,9) and a.status in(1,2) and b.delete_sign in (0,2,3)
+    and  c.finance_id = #{aid}
+
+  </select>
+  <select id="selectFinanceReceivablesCount" resultType="java.math.BigDecimal">
+    SELECT  sum(a.money)  receivables
+    from new_order_dun a left join t_order_new b on a.order_no =b.order_no
+                         left join department c on b.order_dep =c.id
+    where a.status =1   and b.delete_sign in (0,2,3)
+      and  c.finance_id = #{aid}
+      and a.start_time  between #{startTime} and #{endTime}
+  </select>
+
 </mapper>

+ 7 - 0
src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml

@@ -616,5 +616,12 @@
   from expense_account
     where check_no =''
   </select>
+    <select id="selectCountByFinance" resultType="com.goafanti.common.model.FinanceCount">
+      select x.aid, x.dates dateTime, count(*)expenseCount, sum(if(x.process_status = 1, 1, 0))expenseUnauditedCount
+      from (select c.finance_id aid , a.process_status, DATE_FORMAT(a.create_time , '%Y-%m-%d') dates
+            from expense_account a left join admin b on a.aid=b.id left join department c on b.department_id =c.id
+            where a.status in (1, 2) and a.process_status >0 and c.finance_id = #{aid})x
+      group by x.aid, x.dates;
+    </select>
 
 </mapper>

+ 279 - 0
src/main/java/com/goafanti/common/mapper/FinanceCountMapper.xml

@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.goafanti.common.dao.FinanceCountMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.FinanceCount">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="aid" jdbcType="VARCHAR" property="aid" />
+    <result column="order_count" jdbcType="INTEGER" property="orderCount" />
+    <result column="order_unaudited_count" jdbcType="INTEGER" property="orderUnauditedCount" />
+    <result column="expense_count" jdbcType="INTEGER" property="expenseCount" />
+    <result column="expense_unaudited_count" jdbcType="INTEGER" property="expenseUnauditedCount" />
+    <result column="invoice_count" jdbcType="INTEGER" property="invoiceCount" />
+    <result column="invoice_unaudited_count" jdbcType="INTEGER" property="invoiceUnauditedCount" />
+    <result column="member_count" jdbcType="INTEGER" property="memberCount" />
+    <result column="member_unaudited_count" jdbcType="INTEGER" property="memberUnauditedCount" />
+    <result column="payment_count" jdbcType="INTEGER" property="paymentCount" />
+    <result column="payment_unaudited_count" jdbcType="INTEGER" property="paymentUnauditedCount" />
+    <result column="date_time" jdbcType="DATE" property="dateTime" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, aid, order_count, order_unaudited_count, expense_count, expense_unaudited_count,
+    invoice_count, invoice_unaudited_count, member_count, member_unaudited_count, payment_count,
+    payment_unaudited_count, date_time, create_time
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from finance_count
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from finance_count
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.FinanceCount" useGeneratedKeys="true">
+    insert into finance_count (aid, order_count, order_unaudited_count,
+      expense_count, expense_unaudited_count, invoice_count,
+      invoice_unaudited_count, member_count, member_unaudited_count,
+      payment_count, payment_unaudited_count, date_time,
+      create_time)
+    values (#{aid,jdbcType=VARCHAR}, #{orderCount,jdbcType=INTEGER}, #{orderUnauditedCount,jdbcType=INTEGER},
+      #{expenseCount,jdbcType=INTEGER}, #{expenseUnauditedCount,jdbcType=INTEGER}, #{invoiceCount,jdbcType=INTEGER},
+      #{invoiceUnauditedCount,jdbcType=INTEGER}, #{memberCount,jdbcType=INTEGER}, #{memberUnauditedCount,jdbcType=INTEGER},
+      #{paymentCount,jdbcType=INTEGER}, #{paymentUnauditedCount,jdbcType=INTEGER}, #{dateTime,jdbcType=DATE},
+      #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.FinanceCount" useGeneratedKeys="true">
+    insert into finance_count
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="aid != null">
+        aid,
+      </if>
+      <if test="orderCount != null">
+        order_count,
+      </if>
+      <if test="orderUnauditedCount != null">
+        order_unaudited_count,
+      </if>
+      <if test="expenseCount != null">
+        expense_count,
+      </if>
+      <if test="expenseUnauditedCount != null">
+        expense_unaudited_count,
+      </if>
+      <if test="invoiceCount != null">
+        invoice_count,
+      </if>
+      <if test="invoiceUnauditedCount != null">
+        invoice_unaudited_count,
+      </if>
+      <if test="memberCount != null">
+        member_count,
+      </if>
+      <if test="memberUnauditedCount != null">
+        member_unaudited_count,
+      </if>
+      <if test="paymentCount != null">
+        payment_count,
+      </if>
+      <if test="paymentUnauditedCount != null">
+        payment_unaudited_count,
+      </if>
+      <if test="dateTime != null">
+        date_time,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="aid != null">
+        #{aid,jdbcType=VARCHAR},
+      </if>
+      <if test="orderCount != null">
+        #{orderCount,jdbcType=INTEGER},
+      </if>
+      <if test="orderUnauditedCount != null">
+        #{orderUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="expenseCount != null">
+        #{expenseCount,jdbcType=INTEGER},
+      </if>
+      <if test="expenseUnauditedCount != null">
+        #{expenseUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="invoiceCount != null">
+        #{invoiceCount,jdbcType=INTEGER},
+      </if>
+      <if test="invoiceUnauditedCount != null">
+        #{invoiceUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="memberCount != null">
+        #{memberCount,jdbcType=INTEGER},
+      </if>
+      <if test="memberUnauditedCount != null">
+        #{memberUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="paymentCount != null">
+        #{paymentCount,jdbcType=INTEGER},
+      </if>
+      <if test="paymentUnauditedCount != null">
+        #{paymentUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="dateTime != null">
+        #{dateTime,jdbcType=DATE},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.FinanceCount">
+    update finance_count
+    <set>
+      <if test="aid != null">
+        aid = #{aid,jdbcType=VARCHAR},
+      </if>
+      <if test="orderCount != null">
+        order_count = #{orderCount,jdbcType=INTEGER},
+      </if>
+      <if test="orderUnauditedCount != null">
+        order_unaudited_count = #{orderUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="expenseCount != null">
+        expense_count = #{expenseCount,jdbcType=INTEGER},
+      </if>
+      <if test="expenseUnauditedCount != null">
+        expense_unaudited_count = #{expenseUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="invoiceCount != null">
+        invoice_count = #{invoiceCount,jdbcType=INTEGER},
+      </if>
+      <if test="invoiceUnauditedCount != null">
+        invoice_unaudited_count = #{invoiceUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="memberCount != null">
+        member_count = #{memberCount,jdbcType=INTEGER},
+      </if>
+      <if test="memberUnauditedCount != null">
+        member_unaudited_count = #{memberUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="paymentCount != null">
+        payment_count = #{paymentCount,jdbcType=INTEGER},
+      </if>
+      <if test="paymentUnauditedCount != null">
+        payment_unaudited_count = #{paymentUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="dateTime != null">
+        date_time = #{dateTime,jdbcType=DATE},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.FinanceCount">
+    update finance_count
+    set aid = #{aid,jdbcType=VARCHAR},
+      order_count = #{orderCount,jdbcType=INTEGER},
+      order_unaudited_count = #{orderUnauditedCount,jdbcType=INTEGER},
+      expense_count = #{expenseCount,jdbcType=INTEGER},
+      expense_unaudited_count = #{expenseUnauditedCount,jdbcType=INTEGER},
+      invoice_count = #{invoiceCount,jdbcType=INTEGER},
+      invoice_unaudited_count = #{invoiceUnauditedCount,jdbcType=INTEGER},
+      member_count = #{memberCount,jdbcType=INTEGER},
+      member_unaudited_count = #{memberUnauditedCount,jdbcType=INTEGER},
+      payment_count = #{paymentCount,jdbcType=INTEGER},
+      payment_unaudited_count = #{paymentUnauditedCount,jdbcType=INTEGER},
+      date_time = #{dateTime,jdbcType=DATE},
+      create_time = #{createTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByAidAndDates">
+    update finance_count
+    <set>
+
+      <if test="orderCount != null">
+        order_count = #{orderCount,jdbcType=INTEGER},
+      </if>
+      <if test="orderUnauditedCount != null">
+        order_unaudited_count = #{orderUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="expenseCount != null">
+        expense_count = #{expenseCount,jdbcType=INTEGER},
+      </if>
+      <if test="expenseUnauditedCount != null">
+        expense_unaudited_count = #{expenseUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="invoiceCount != null">
+        invoice_count = #{invoiceCount,jdbcType=INTEGER},
+      </if>
+      <if test="invoiceUnauditedCount != null">
+        invoice_unaudited_count = #{invoiceUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="memberCount != null">
+        member_count = #{memberCount,jdbcType=INTEGER},
+      </if>
+      <if test="memberUnauditedCount != null">
+        member_unaudited_count = #{memberUnauditedCount,jdbcType=INTEGER},
+      </if>
+      <if test="paymentCount != null">
+        payment_count = #{paymentCount,jdbcType=INTEGER},
+      </if>
+      <if test="paymentUnauditedCount != null">
+        payment_unaudited_count = #{paymentUnauditedCount,jdbcType=INTEGER},
+      </if>
+
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where aid = #{aid,jdbcType=VARCHAR} and date_time = #{dateTime}
+
+  </update>
+
+  <update id="updateOrderCountAdd">
+    update finance_count
+      set order_unaudited_count=order_unaudited_count+1,
+      order_count=order_count+1
+    where aid = #{aid} and date_time = #{startTime}
+  </update>
+
+  <select id="selectByAidAndDatesGetCount" resultType="java.lang.Integer">
+    select count(*)
+    from finance_count
+    where aid = #{aid} and date_time = #{startTime}
+  </select>
+  <select id="selectByAidAndDates"   resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from finance_count
+    where aid = #{aid} and date_time = #{startTime}
+  </select>
+    <select id="financeLists" resultType="com.goafanti.admin.bo.OutFinanceCount">
+  select order_count orderCount, expense_count expenseCount, invoice_count invoiceCount,
+         member_count memberCount, payment_count paymentCount ,
+         DATE_FORMAT(date_time , '%Y-%m-%d') dates
+  from finance_count
+  where aid = #{aid} and date_time BETWEEN #{startTime} and #{endTime}
+   </select>
+
+
+    <insert id="insetBatch">
+    insert into finance_count (aid, order_count, order_unaudited_count,
+    expense_count, expense_unaudited_count, invoice_count,
+    invoice_unaudited_count, member_count, member_unaudited_count,
+    payment_count, payment_unaudited_count,
+    date_time, create_time)
+    values
+    <foreach item="e" index="index" collection="list" separator=",">
+      (#{e.aid,jdbcType=VARCHAR}, #{e.orderCount,jdbcType=INTEGER}, #{e.orderUnauditedCount,jdbcType=INTEGER},
+      #{e.expenseCount,jdbcType=INTEGER}, #{e.expenseUnauditedCount,jdbcType=INTEGER}, #{e.invoiceCount,jdbcType=INTEGER},
+      #{e.invoiceUnauditedCount,jdbcType=INTEGER}, #{e.memberCount,jdbcType=INTEGER}, #{e.memberUnauditedCount,jdbcType=INTEGER},
+      #{e.paymentCount,jdbcType=INTEGER}, #{e.paymentUnauditedCount,jdbcType=INTEGER},
+      #{e.dateTime,jdbcType=DATE}, now())
+    </foreach>
+  </insert>
+</mapper>

+ 16 - 10
src/main/java/com/goafanti/common/mapper/NewOrderChangeMapper.xml

@@ -576,12 +576,15 @@ select
 	<if test="salesmanName !=null">
 	and d.name like concat('%',#{salesmanName},'%')
 	</if>
-	<if test="complete ==0 and processState != 9">
+	<if test="complete ==0 and processState != 9 and  processState != 5 and processState != 7">
 	 and (a.process_state &gt;= #{processState} or a.back_status &gt;= #{processState})
 	</if>
-	<if test="complete ==0 and processState == 9">
-	 and (a.process_state &gt;= #{processState} and  a.process_state &lt; 10)or a.back_status &gt;= #{processState}
-	</if>
+    <if test="complete ==0 and processState == 9">
+      and (a.process_state &gt;= #{processState} and  a.process_state &lt; 10)or a.back_status &gt;= #{processState}
+    </if>
+    <if test="complete ==0 and (processState == 5 or processState == 7)">
+      and (a.process_state &gt;= 1 and  a.process_state &lt; 10)or a.back_status &gt;= #{processState}
+    </if>
 	<if test="complete ==1 and processState != 6 and processState != 8 and processState != 9">
 	 and a.process_state = #{processState} and a.status in (0,1,2,3)
 	</if>
@@ -704,12 +707,15 @@ select
 	<if test="salesmanName !=null">
 	and d.name like concat('%',#{salesmanName},'%')
 	</if>
-	<if test="complete ==0 and processState != 9">
-	 and (a.process_state &gt;= #{processState} or a.back_status &gt;= #{processState})
-	</if>
-	<if test="complete ==0 and processState == 9">
-	 and (a.process_state &gt;= #{processState} and  a.process_state &lt; 10)or a.back_status &gt;= #{processState}
-	</if>
+    <if test="complete ==0 and processState != 9 and  processState != 5 and processState != 7">
+      and (a.process_state &gt;= #{processState} or a.back_status &gt;= #{processState})
+    </if>
+    <if test="complete ==0 and processState == 9">
+      and (a.process_state &gt;= #{processState} and  a.process_state &lt; 10)or a.back_status &gt;= #{processState}
+    </if>
+    <if test="complete ==0 and (processState == 5 or processState == 7)">
+      and (a.process_state &gt;= 1 and  a.process_state &lt; 10)or a.back_status &gt;= #{processState}
+    </if>
 	<if test="complete ==1 and processState != 6 and processState != 8 and processState != 9">
       and a.process_state = #{processState} and a.status in (0,1,2,3)
 	</if>

+ 9 - 1
src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml

@@ -863,7 +863,7 @@
     </if>
   </update>
 
-  <select id="selectByaidAndDate" resultType="java.lang.Integer">
+  <select id="selectCountByaidAndDate" resultType="java.lang.Integer">
     select ifnull(count(*),0)publicReleaseCount
     from (select aid
           from public_release a left join public_release_details b on a.id=b.prid
@@ -871,4 +871,12 @@
             and a.release_start BETWEEN #{startTime} and #{endTime} )x
     group by aid
   </select>
+  <select id="selectByaidAndDate" resultType="com.goafanti.admin.bo.OutFinanceCount">
+    select aid,dates,sum(publicCount)publicCount
+    from (select aid,if(a.`type` in (0,1,2),1,0) publicCount,DATE_FORMAT(a.release_start , '%Y-%m-%d') dates
+          from public_release a left join public_release_details b on a.id=b.prid
+          where a.status=2 and a.aid= #{aid}
+            and a.release_start between #{startTime} and #{endTime})x
+    group by x.aid,x.dates
+  </select>
 </mapper>

+ 13 - 0
src/main/java/com/goafanti/common/mapper/TOrderInvoiceMapper.xml

@@ -625,5 +625,18 @@ where a.status=2 and a.order_no=  #{orderNo,jdbcType=VARCHAR}
     from invoice_log a left join admin b on a.aid =b.id
     where a.invoice_id =#{id} order by a.create_time
   </select>
+    <select id="selectCountByFinance" resultType="com.goafanti.common.model.FinanceCount">
+      select x.aid,x.dates dateTime,count(*)invoiceCount,sum(if(x.status=1,1,0))invoiceUnauditedCount
+      from (select c.finance_id aid,a.status ,DATE_FORMAT(a.create_time , '%Y-%m-%d') dates
+            from t_order_invoice a
+                   left join t_order_new b on
+              a.order_no = b.order_no
+                   left join department c on
+              b.order_dep = c.id
+            where a.status in (1, 2) and a.approval in (0,2) and a.type=0 and b.delete_sign in (0,2)
+              and c.finance_id = #{aid})x
+      group by x.aid,x.dates
+    </select>
+
 
 </mapper>

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

@@ -2135,4 +2135,13 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     and salesman_id = #{aid}
     and create_time  BETWEEN #{startTime} and  #{endTime}
   </select>
+    <select id="selectCountByFinance" resultType="com.goafanti.common.model.FinanceCount">
+      select x.aid, x.dates dateTime, count(*)orderCount, sum(if(x.process_status = 3, 1, 0))orderUnauditedCount
+      from (SELECT b.finance_id aid, a.process_status, DATE_FORMAT(a.create_time , '%Y-%m-%d') dates
+            from t_order_new a left join department b on a.order_dep = b.id
+            where a.delete_sign in (0, 2, 3) and process_status >2  and a.outsource =0
+              and b.finance_id = #{aid})x
+      group by x.aid, x.dates;
+    </select>
+
 </mapper>

+ 11 - 1
src/main/java/com/goafanti/common/mapper/TOrderPaymentMapper.xml

@@ -437,8 +437,18 @@ select a.id,a.tid,a.node_id nodeId,a.payment_type paymentType,a.company_name com
   <select id="selectByCid" resultType="java.lang.Integer">
   select count(*) from t_order_payment where tpc_id = #{tpcId}
   </select>
+    <select id="selectCountByFinance" resultType="com.goafanti.common.model.FinanceCount">
+      select x.aid,x.dates dateTime,count(*) paymentCount,sum(if(x.status=0,1,0))paymentUnauditedCount
+      from (select d.finance_id aid,a.status ,DATE_FORMAT(a.create_time , '%Y-%m-%d') dates
+            from t_order_payment a left join t_order_task b on a.tid =b.id
+                                   left join t_order_new c on b.order_no =c.order_no
+                                   left join department d on c.order_dep =d.id
+            where c.delete_sign in (0,2,3) and a.status in (0,2,3)
+              and d.finance_id = #{aid})x
+      group by x.aid,x.dates
+    </select>
 
-  <delete id="deleteByParam">
+    <delete id="deleteByParam">
   delete from t_order_payment
     where 1=1
     and tid= #{tid}

+ 11 - 1
src/main/java/com/goafanti/common/mapper/TTaskMemberMapper.xml

@@ -162,8 +162,18 @@
     from t_task_member
     where tid = #{id,jdbcType=INTEGER}
   </select>
+    <select id="selectCountByFinance" resultType="com.goafanti.common.model.FinanceCount">
+      SELECT x.aid,x.dates dateTime,count(*) memberCount,sum(if(x.process_status=1,1,0))memberUnauditedCount
+      from (select d.finance_id aid ,b.process_status ,DATE_FORMAT(a.create_time , '%Y-%m-%d') dates
+            from t_task_member a left join t_order_task b on a.tid =b.id
+                                 left join t_order_new c on b.order_no =c.order_no
+                                 left join department d on c.order_dep =d.id
+            where c.delete_sign in (0,2,3) and b.process_status in (1,2,3)
+              and d.finance_id = #{aid})x
+      group by x.aid,x.dates
+    </select>
 
-  <update id="updateServiceYearBySplitSuper">
+    <update id="updateServiceYearBySplitSuper">
     update t_task_member a,(select a.split_super,GROUP_CONCAT(b.service_year) counts
         from t_order_task a left join t_task_member b on a.id=b.tid
         where a.split_status =2 and a.split_super= #{tid}

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

@@ -552,7 +552,7 @@ where x.id=  #{tid}
 		from t_order_payment a left join t_order_task b on a.tid=b.id left join t_order_new c on b.order_no=c.order_no
 		left join business_project bp on b.commodity_id=bp.id
 		left join t_order_mid d on b.order_no=d.order_no left join t_task_mid f on a.tid=f.tid
-		where 1=1
+		where 1=1 and c.delete_sign in (0,2,3)
 		<if test="lvl==0">
 		and d.finance_id= #{aid}
 		</if>
@@ -611,7 +611,7 @@ where x.id=  #{tid}
 		select count(*)
 		from t_order_payment a left join t_order_task b on a.tid=b.id left join t_order_new c on b.order_no=c.order_no
 		left join t_order_mid d on b.order_no=d.order_no
-		where 1=1
+        where 1=1 and c.delete_sign in (0,2,3)
 		<if test="lvl==0">
 		and d.finance_id= #{aid}
 		</if>

+ 253 - 0
src/main/java/com/goafanti/common/model/FinanceCount.java

@@ -0,0 +1,253 @@
+package com.goafanti.common.model;
+
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.utils.DateUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * finance_count
+ * @author
+ */
+public class FinanceCount implements Serializable {
+    private Integer id;
+
+    /**
+     * 管理员编号
+     */
+    private String aid;
+
+    /**
+     * 订单数
+     */
+    private Integer orderCount;
+
+    /**
+     * 订单未审核数
+     */
+    private Integer orderUnauditedCount;
+
+    /**
+     * 报销数
+     */
+    private Integer expenseCount;
+
+    /**
+     * 报销未审核数
+     */
+    private Integer expenseUnauditedCount;
+
+    /**
+     * 开票数
+     */
+    private Integer invoiceCount;
+
+    /**
+     * 开票未审核数
+     */
+    private Integer invoiceUnauditedCount;
+
+    /**
+     * 会员审核数
+     */
+    private Integer memberCount;
+
+    /**
+     * 会员未审核数
+     */
+    private Integer memberUnauditedCount;
+
+    /**
+     * 成本审核数
+     */
+    private Integer paymentCount;
+
+    /**
+     * 成本未审核数
+     */
+    private Integer paymentUnauditedCount;
+
+    /**
+     * 日期
+     */
+    private Date dateTime;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    private static final long serialVersionUID = 1L;
+
+    public FinanceCount(){
+
+    }
+    public static FinanceCount  initialization(String aid,Date date){
+        FinanceCount financeCount=new FinanceCount();
+        financeCount.aid=aid;
+        financeCount.orderCount=0;
+        financeCount.orderUnauditedCount=0;
+        financeCount.expenseCount=0;
+        financeCount.expenseUnauditedCount=0;
+        financeCount.invoiceCount=0;
+        financeCount.invoiceUnauditedCount=0;
+        financeCount.memberCount=0;
+        financeCount.memberUnauditedCount=0;
+        financeCount.paymentCount=0;
+        financeCount.paymentUnauditedCount=0;
+        if (date!=null)financeCount.dateTime= date;
+        return financeCount;
+    }
+
+    public static FinanceCount initialization(String aid, String date) {
+        Date toDate = DateUtils.StringToDate(date, AFTConstants.YYYYMMDD);
+        return initialization(aid, toDate);
+    }
+
+    public static FinanceCount initialization(FinanceCount in) {
+        if (in.getOrderCount()==null)in.setOrderCount(0);
+        if (in.getOrderUnauditedCount()==null)in.setOrderUnauditedCount(0);
+        if (in.getExpenseCount()==null)in.setExpenseCount(0);
+        if (in.getExpenseUnauditedCount()==null)in.setExpenseUnauditedCount(0);
+        if (in.getInvoiceCount()==null)in.setInvoiceCount(0);
+        if (in.getInvoiceUnauditedCount()==null)in.setInvoiceUnauditedCount(0);
+        if (in.getMemberCount()==null)in.setMemberCount(0);
+        if (in.getMemberUnauditedCount()==null)in.setMemberUnauditedCount(0);
+        if (in.getPaymentCount()==null)in.setPaymentCount(0);
+        if (in.getPaymentUnauditedCount()==null)in.setPaymentUnauditedCount(0);
+        return in;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public Integer getOrderCount() {
+        return orderCount;
+    }
+
+    public void setOrderCount(Integer orderCount) {
+        this.orderCount = orderCount;
+    }
+
+    public Integer getOrderUnauditedCount() {
+        return orderUnauditedCount;
+    }
+
+    public void setOrderUnauditedCount(Integer orderUnauditedCount) {
+        this.orderUnauditedCount = orderUnauditedCount;
+    }
+
+    public Integer getExpenseCount() {
+        return expenseCount;
+    }
+
+    public void setExpenseCount(Integer expenseCount) {
+        this.expenseCount = expenseCount;
+    }
+
+    public Integer getExpenseUnauditedCount() {
+        return expenseUnauditedCount;
+    }
+
+    public void setExpenseUnauditedCount(Integer expenseUnauditedCount) {
+        this.expenseUnauditedCount = expenseUnauditedCount;
+    }
+
+    public Integer getInvoiceCount() {
+        return invoiceCount;
+    }
+
+    public void setInvoiceCount(Integer invoiceCount) {
+        this.invoiceCount = invoiceCount;
+    }
+
+    public Integer getInvoiceUnauditedCount() {
+        return invoiceUnauditedCount;
+    }
+
+    public void setInvoiceUnauditedCount(Integer invoiceUnauditedCount) {
+        this.invoiceUnauditedCount = invoiceUnauditedCount;
+    }
+
+    public Integer getMemberCount() {
+        return memberCount;
+    }
+
+    public void setMemberCount(Integer memberCount) {
+        this.memberCount = memberCount;
+    }
+
+    public Integer getMemberUnauditedCount() {
+        return memberUnauditedCount;
+    }
+
+    public void setMemberUnauditedCount(Integer memberUnauditedCount) {
+        this.memberUnauditedCount = memberUnauditedCount;
+    }
+
+    public Integer getPaymentCount() {
+        return paymentCount;
+    }
+
+    public void setPaymentCount(Integer paymentCount) {
+        this.paymentCount = paymentCount;
+    }
+
+    public Integer getPaymentUnauditedCount() {
+        return paymentUnauditedCount;
+    }
+
+    public void setPaymentUnauditedCount(Integer paymentUnauditedCount) {
+        this.paymentUnauditedCount = paymentUnauditedCount;
+    }
+
+    public Date getDateTime() {
+        return dateTime;
+    }
+
+    public void setDateTime(Date dateTime) {
+        this.dateTime = dateTime;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    @Override
+    public String toString() {
+        return "FinanceCount{" +
+                "id=" + id +
+                ", aid='" + aid + '\'' +
+                ", orderCount=" + orderCount +
+                ", orderUnauditedCount=" + orderUnauditedCount +
+                ", expenseCount=" + expenseCount +
+                ", expenseUnauditedCount=" + expenseUnauditedCount +
+                ", invoiceCount=" + invoiceCount +
+                ", invoiceUnauditedCount=" + invoiceUnauditedCount +
+                ", memberCount=" + memberCount +
+                ", memberUnauditedCount=" + memberUnauditedCount +
+                ", paymentCount=" + paymentCount +
+                ", paymentUnauditedCount=" + paymentUnauditedCount +
+                ", dateTime=" + dateTime +
+                ", createTime=" + createTime +
+                '}';
+    }
+}

+ 18 - 21
src/main/java/com/goafanti/common/task/OrderDunTask.java

@@ -1,42 +1,39 @@
 package com.goafanti.common.task;
 
 
-import java.math.BigDecimal;
-import java.util.*;
-
-
 import com.goafanti.admin.bo.AdminListBo;
-import com.goafanti.common.bo.ErrorDunListBo;
-import com.goafanti.common.dao.*;
-import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.order.bo.*;
-import com.goafanti.order.service.LegalAffairsService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.goafanti.common.bo.EmailBo;
+import com.goafanti.common.bo.ErrorDunListBo;
 import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.dao.*;
 import com.goafanti.common.enums.NoticeStatus;
-import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.PaymentNode;
 import com.goafanti.common.model.TArrearsDun;
 import com.goafanti.common.model.TOrderMid;
 import com.goafanti.common.model.TOrderNew;
 import com.goafanti.common.utils.AsyncUtils;
 import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.order.bo.*;
 import com.goafanti.order.enums.OrderDunProjectType;
+import com.goafanti.order.service.LegalAffairsService;
 import com.goafanti.order.service.NewOrderDunService;
 import com.goafanti.order.service.OrderNewService;
 import com.goafanti.order.service.OrderProjectService;
 import com.goafanti.organization.bo.OutPaymentNode;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
 
 
 @Component

+ 5 - 5
src/main/java/com/goafanti/common/utils/AsyncUtils.java

@@ -56,11 +56,12 @@ public class AsyncUtils {
 	private TOrderMidMapper tOrderMidMapper;
 	@Autowired
 	private RoleMapper roleMapper;
-@Autowired
-	private UserMapper userMapper;
-@Autowired
+
+	@Autowired
 	private AdminUserCountMapper adminUserCountMapper;
 
+
+
 	/**
 	 * 处理离职意见转交客户
 	 * 	转出去则全部为0,转入则判定当天有没有,有则修改没有新增
@@ -118,10 +119,9 @@ public class AsyncUtils {
 
 	public void send(EmailBo bo){
 		try {
-
 			SendEmailUtil.getInstance().send(bo);
 		} catch (UnsupportedEncodingException | MessagingException e) {
-			e.printStackTrace();
+			LoggerUtils.error(getClass(),"邮件发送错误");
 		}
 	}
 

+ 131 - 10
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -51,6 +51,8 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     private ExpenseAccountExamineMapper expenseAccountExamineMapper;
     @Autowired
     private JDBCIdGenerator idGenerator;
+    @Autowired
+    private FinanceCountMapper financeCountMapper;
 
 
 
@@ -203,9 +205,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
      */
     private void createExamineByProcess(InputExpenseAccount in) {
         //审核流程推送到最新
-        examineByprocess(in);
-        List<Admin> aids=new ArrayList<>();
         AdminListBo admin = adminMapper.getDeptNameByAid(in.getAid());
+        examineByprocess(in,admin);
+        List<Admin> aids=new ArrayList<>();
         if(in.getProcessStatus()== EAProcessStatus.SJSH.getCode()){
             //获取上级
             Admin superAdmin = adminMapper.selectByPrimaryKey(admin.getSuperiorId());
@@ -216,6 +218,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             Admin finaceAdmin = adminMapper.selectByPrimaryKey(admin.getDepFinance());
             aids.add(finaceAdmin);
             in.setExamineName(finaceAdmin.getName());
+            addFinanceCount( admin.getDepFinance(), new Date());
         }else if (in.getProcessStatus()== EAProcessStatus.ZJLSH.getCode()){
             //获取部门负责人
             List<Admin> list = adminMapper.listAdminBydepIdAndRoleType(admin.getDepartmentId(), AFTConstants.SALESMAN_ADMIN);
@@ -362,7 +365,8 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         ExpenseAccount newEa=new ExpenseAccount();
         newEa.setId(useEa.getId());
         //审核通知 获取发送人
-        addExamineExpenseAccountLog(in, useEa, newEa);
+        AdminListBo admin = adminMapper.getDeptNameByAid(useEa.getAid());
+        addExamineExpenseAccountLog(admin,in, useEa, newEa);
         //完成申请
         if (newEa.getStatus()==2){
             //如果是借支则订单新增
@@ -389,13 +393,86 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                     }
                 }
             }
+
+        }
+        if (newEa.getStatus()==1){
+            if (newEa.getProcessStatus()==EAProcessStatus.CWSH.getCode()){
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),0);
+            }else if (newEa.getProcessStatus()==EAProcessStatus.ZJLSH.getCode()){
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),1);
+            }
+        }else if (newEa.getStatus()==3){
+            if (useEa.getProcessStatus()==EAProcessStatus.CWSH.getCode()){
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),2);
+            }else if (newEa.getProcessStatus()>EAProcessStatus.ZJLSH.getCode()){
+                pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),3);
+            }
         }
+
             //审核处理审核表
             pushExpenseAccountExamine(in);
         expenseAccountMapper.updateByPrimaryKeySelective(newEa);
         return 1;
     }
 
+    private void pushExpenseFinaceCount(ExpenseAccount useEa, ExpenseAccount newEa) {
+        String startTime=DateUtils.formatDate(useEa.getCreateTime(),AFTConstants.YYYYMMDD);
+        AdminListBo admin = adminMapper.getDeptNameByAid(useEa.getAid());
+        FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getDepFinance(), startTime);
+        //通过
+        if (newEa.getStatus()==1){
+            //下一步是财务审核就要加财务统计
+            if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()||
+                    useEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
+                if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
+                    addFinanceCount(admin.getDepFinance(), startTime);
+                    //如果当前是财务审核通过就要减去未审核
+                }else if (useEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
+                    FinanceCount newFinanceCount =new FinanceCount();
+                    newFinanceCount.setId(financeCount.getId());
+                    newFinanceCount.setExpenseUnauditedCount(financeCount.getExpenseUnauditedCount()-1);
+                    financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+                }
+            }
+         //驳回
+        }else if (newEa.getStatus()==3){
+            if (financeCount!=null) {
+                FinanceCount newFinanceCount = new FinanceCount();
+                newFinanceCount.setId(financeCount.getId());
+                //财务审核时减去未审核与
+                if (useEa.getProcessStatus() == EAProcessStatus.CWSH.getCode()) {
+                    newFinanceCount.setExpenseCount(financeCount.getExpenseCount() - 1);
+                    newFinanceCount.setExpenseUnauditedCount(financeCount.getExpenseUnauditedCount() - 1);
+
+                } else if (useEa.getProcessStatus() > EAProcessStatus.CWSH.getCode()) {
+                    newFinanceCount.setExpenseCount(financeCount.getExpenseCount() - 1);
+                }
+                financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+            }
+        }
+
+    }
+    private void addFinanceCount(String aid,Date startTime ) {
+        String forDate=DateUtils.formatDate(startTime,AFTConstants.YYYYMMDD);
+        addFinanceCount(aid,forDate);
+    }
+
+    private void addFinanceCount(String aid,String startTime ) {
+        FinanceCount financeCount = financeCountMapper.selectByAidAndDates(aid, startTime);
+        if (financeCount ==null){
+            financeCount =FinanceCount.initialization(aid, startTime);
+            financeCount.setExpenseCount(1);
+            financeCount.setExpenseUnauditedCount(1);
+            financeCountMapper.insertSelective(financeCount);
+        }else {
+            FinanceCount newFinanceCount =new FinanceCount();
+            newFinanceCount.setId(financeCount.getId());
+            newFinanceCount.setExpenseCount(financeCount.getExpenseCount()+1);
+            newFinanceCount.setExpenseUnauditedCount(financeCount.getExpenseUnauditedCount()+1);
+            financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+        }
+    }
+
     private void pushExpenseAccountExamine(InputExpenseAccount in) {
         if (in.getStatus()==1){
             expenseAccountExamineMapper.updateStatusByEaidAndAid(in.getId(),TokenManager.getAdminId(),1);
@@ -404,16 +481,18 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         }
     }
 
-    private void addExamineExpenseAccountLog(InputExpenseAccount in, ExpenseAccount useEa, ExpenseAccount newEa) {
+    private void addExamineExpenseAccountLog(AdminListBo admin,InputExpenseAccount in, ExpenseAccount useEa, ExpenseAccount newEa) {
         List<Admin> aids=new ArrayList<>();
         StringBuffer str=new StringBuffer();
         Integer status=in.getStatus();
-        AdminListBo admin = adminMapper.getDeptNameByAid(useEa.getAid());
+
         if (status==1){
             str=str.append("您有报销需要审核,").append("报销编号[").append(in.getId()).append("]").append(",请查看并审核。");
             //新的流程是当前流程+1
             newEa.setProcessStatus(useEa.getProcessStatus()+1);
-            pushExamineProcess(newEa);
+            newEa.setAid(useEa.getAid());
+            newEa.setCreateTime(useEa.getCreateTime());
+            pushExamineProcess(newEa,admin);
             if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
                 //获取财务负责人
                 Admin finaceAdmin = adminMapper.selectByPrimaryKey(admin.getDepFinance());
@@ -455,11 +534,45 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         addNoticeAndEmail(in,  status,str.toString(),admin.getName(),aids);
     }
 
-    private void pushExamineProcess( ExpenseAccount newEa) {
+    /**
+     *
+     * @param aid
+     * @param createTime
+     * @param type 0 双新增 1 未审核减一 2双减 3总数减一
+     */
+    private void pushFinanceCount(String aid, Date createTime, Integer type) {
+        String startTime= DateUtils.formatDate(createTime,AFTConstants.YYYYMMDD);
+        FinanceCount financeCount = financeCountMapper.selectByAidAndDates(aid, startTime);
+        FinanceCount newFinance=new FinanceCount();
+        if (financeCount==null){
+            newFinance=FinanceCount.initialization(aid,createTime);
+            newFinance.setExpenseCount(1);
+            newFinance.setExpenseUnauditedCount(1);
+            financeCountMapper.insertSelective(newFinance);
+        }else {
+            newFinance.setId(financeCount.getId());
+            if(type==0){
+                newFinance.setExpenseCount(financeCount.getExpenseCount()+1);
+                newFinance.setExpenseUnauditedCount(financeCount.getExpenseUnauditedCount()+1);
+            }else if(type==1){
+                newFinance.setExpenseUnauditedCount(financeCount.getExpenseUnauditedCount()-1);
+            }else if(type==2){
+                newFinance.setExpenseCount(financeCount.getExpenseCount()-1);
+                newFinance.setExpenseUnauditedCount(financeCount.getExpenseUnauditedCount()-1);
+            }else if(type==3){
+                newFinance.setExpenseCount(financeCount.getExpenseCount()-1);
+            }
+            financeCountMapper.updateByPrimaryKeySelective(newFinance);
+        }
+
+
+    }
+
+    private void pushExamineProcess( ExpenseAccount newEa,AdminListBo admin) {
         //如果到了董事长审核,无需判断了
         if (newEa.getProcessStatus()<EAProcessStatus.WCSH.getCode()){
             //判断没一个流程是否可以跳过
-             examineByprocess(newEa);
+             examineByprocess(newEa,admin);
         }
     }
 
@@ -467,7 +580,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
      * 审核流程推送,只要不是完成状态就继续判断是否跳过
      * @param newEa
      */
-    private void examineByprocess( ExpenseAccount newEa) {
+    private void examineByprocess( ExpenseAccount newEa,AdminListBo admin) {
         //获取当前流程审核人,如果有已审核则跳过当前审核
         List<ExpenseAccountExamine> list = expenseAccountExamineMapper.selectByEaidAndProcessStatus(newEa.getId(), newEa.getProcessStatus());
         boolean flag=false;
@@ -478,14 +591,22 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                 aid=e.getAuditor();
                 break;
             }
+            if(e.getAuditor().equals(newEa.getAid())){
+                flag=true;
+                break;
+            }
         }
+
         if (flag){
             String str=String.format("重复审核人跳过[%s]。",EAProcessStatus.getDesc(newEa.getProcessStatus()));
             Date date=new Date();
             date.setTime(date.getTime()+1000l);
             addExpenseAccountLog(newEa.getId(),1,newEa.getProcessStatus(),aid,str,date);
+            if (newEa.getProcessStatus()==EAProcessStatus.CWSH.getCode()){
+                addFinanceCount(admin.getDepFinance(),newEa.getCreateTime());
+            }
             newEa.setProcessStatus(newEa.getProcessStatus()+1);
-            if (newEa.getProcessStatus()<EAProcessStatus.WCSH.getCode())examineByprocess(newEa);
+            if (newEa.getProcessStatus()<EAProcessStatus.WCSH.getCode())examineByprocess(newEa,admin);
         }
 
     }

+ 24 - 25
src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java

@@ -1,13 +1,5 @@
 package com.goafanti.order.controller;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-
-import javax.annotation.Resource;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.TOrderBack;
@@ -21,6 +13,13 @@ import com.goafanti.order.bo.OrderRefundBo;
 import com.goafanti.order.service.FundManageOrderService;
 import com.goafanti.order.service.OrderBillService;
 import com.goafanti.order.service.OrderRefundService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 
 @RestController
 @RequestMapping(value = "/api/admin/financial")
@@ -31,7 +30,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 	private OrderBillService orderBillServiceImpl;
 	@Resource
 	private OrderRefundService orderRefundServiceImpl;
-	
+
 	/**
 	 * 财务管理员查看所有待分配的订单
 	 * @param order	>> outsource 0否 1外包
@@ -46,7 +45,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		res.setData(fundManageOrderServiceImpl.allUnassignedOrder(order, pageNo, pageSize));
 		return res;
 	}
-	
+
 	/**
 	 * 财务管理员分派订单
 	 * @param financeId
@@ -67,7 +66,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 	/**
 	 * 财务专员查看分配给自己的订单
 	 * @param order >> outsource 0否 1外包
@@ -82,7 +81,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		res.setData(fundManageOrderServiceImpl.financeList(order, pageNo, pageSize));
 		return res;
 	}
-	
+
 	/**
 	 * 财务专员驳回
 	 * @param orderBack
@@ -103,7 +102,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 	/**
 	 * 	财务收款
 	 * 	财务专员新增流水记录并流转订单状态
@@ -117,7 +116,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 			res.getError().add(buildError("", "备注长度不能大于255"));
 			return res;
 		}
-		
+
 		if (StringUtils.isBlank(contractNo)) {
 			res.getError().add(buildError("", "合同编号不能为空!"));
 			return res;
@@ -148,7 +147,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		return res;
 	}
 	/**
-	 * 财务审核
+	 * 财务审核通过
 	 */
 	@RequestMapping(value="/financeApproval", method = RequestMethod.POST)
 	public Result financeApproval(String orderNo,String remarks) {
@@ -159,7 +158,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		res.data(fundManageOrderServiceImpl.updateFinanceApproval(orderNo,remarks));
 		return res;
 	}
-	
+
 	/**
 	 * 财务专员查看自己要处理的退单数据
 	 * @param refund
@@ -177,7 +176,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		res.setData(orderRefundServiceImpl.getRefundList(refund, pageNo, pageSize));
 		return res;
 	}
-	
+
 	/**
 	 * 财务专员审核退款
 	 * @param refund
@@ -198,7 +197,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 	/**
 	 * 财务专员新增退款流水
 	 * @param orderRefund
@@ -228,7 +227,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		}
 		return res;
 	}
-	
+
 	/**
 	 * 根据id查看订单流水数据
 	 * @return
@@ -239,7 +238,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		res.setData(fundManageOrderServiceImpl.selectOneRefundFlow(billNo));
 		return res;
 	}
-	
+
 	/**
 	 * 根据订单编号查看该订单相关的所有流水
 	 * @param orderNo
@@ -251,7 +250,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		res.setData(fundManageOrderServiceImpl.selectOneOrderAllRefundFlow(orderNo));
 		return res;
 	}
-	
+
 	/**
 	 * 财务专员查看自己的流水
 	 * @param billNew
@@ -268,7 +267,7 @@ public class FundManagerOrderApiController extends CertifyApiController {
 
 	/**
 	 * 删除流水
-	 * 
+	 *
 	 */
 	@RequestMapping(value="/deleteMyBill", method = RequestMethod.GET)
 	public Result deleteMyBill(String billNo){
@@ -289,9 +288,9 @@ public class FundManagerOrderApiController extends CertifyApiController {
 		res.setData(orderBillServiceImpl.myBillList(billNew,pageNo, pageSize));
 		return res;
 	}
-	
-	
-	 
+
+
+
 	 /**
 	  * 修改合同编号
 	  * @param orderNew

+ 3 - 0
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -223,4 +223,7 @@ public interface OrderNewService {
 	int updateTag(String orderNo, Integer tag);
 
 	void updateAdminUserCountOrder(String aid,Date transferTime);
+
+
+	void financeCountOrderUnauditedSubtraction(TOrderNew use, Integer i);
 }

+ 16 - 6
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -13,6 +13,7 @@ import java.util.UUID;
 import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.dao.*;
 import com.goafanti.common.model.*;
+import com.goafanti.common.utils.DateUtils;
 import com.goafanti.order.bo.TOrderTaskBo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -73,6 +74,8 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	@Autowired
 	private TOrderExamineMapper tOrderExamineMapper;
 	@Autowired
+	private FinanceCountMapper financeCountMapper;
+	@Autowired
 	private AsyncUtils	asyncUtils;
 
 
@@ -222,6 +225,8 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
 		}
 		orderNewService.updateAdminUserCountOrder(t.getSalesmanId(),t.getCreateTime());
+		Admin admin=adminMapper.selectFinanceAdminByOrderDep(t.getOrderDep());
+		orderNewService.financeCountOrderUnauditedSubtraction(t,1);
 		return c;
 	}
 	public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
@@ -488,13 +493,13 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	@Override
 	public int updateFinanceApproval(String orderNo,String remarks) {
 		TOrderNew t=new TOrderNew();
-		TOrderNew new1 =checkDeleteSign(orderNo);
-		if (new1.getProcessStatus()!=3) {
+		TOrderNew use =checkDeleteSign(orderNo);
+		if (use.getProcessStatus()!=3) {
 			throw new BusinessException("订单流程不正确。");
 		}
 		t.setOrderNo(orderNo);
-		t.setApproval(new1.getApproval());
-		if (new1.getBackStatus()==3) {
+		t.setApproval(use.getApproval());
+		if (use.getBackStatus()==3) {
 			t.setBackStatus(0);
 		}
 		//判断是否走入下一个流程
@@ -504,6 +509,8 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		tl.setOrderNo(t.getOrderNo());
 		if (TokenManager.hasRole(AFTConstants.FINANCE)){
 			tl.setProcess(OrderLogProcess.CWSH.getCode());
+			//财务审核当天未审核数量减一
+			orderNewService.financeCountOrderUnauditedSubtraction(use,0);
 		}else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
 			tl.setProcess(OrderLogProcess.XMZJSH.getCode());
 		}
@@ -512,7 +519,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		orderNewService.pushExamineName(t);
 		//如果全部派单完成才需要通知和走下个流程
 		if (flag){
-			pushNoticeAndEmail(t, new1);
+			pushNoticeAndEmail(t, use);
 		}else {
 			List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
 			StringBuffer str=new StringBuffer();
@@ -524,9 +531,12 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			t.setExamineName(str.substring(0,str.length()-1));
 		}
 
-		return tOrderNewMapper.updateByPrimaryKeySelective(t);
+		tOrderNewMapper.updateByPrimaryKeySelective(t);
+		return 1;
 	}
 
+
+
 	private void pushNoticeAndEmail(TOrderNew t, TOrderNew new1) {
 		List<String> aids = new ArrayList<>();
 		StringBuffer str= new StringBuffer();

+ 68 - 6
src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java

@@ -5,10 +5,8 @@ import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.*;
 import com.goafanti.common.enums.NoticeStatus;
-import com.goafanti.common.model.Admin;
-import com.goafanti.common.model.InvoiceLog;
-import com.goafanti.common.model.TOrderInvoice;
-import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.model.*;
+import com.goafanti.common.utils.DateUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
@@ -42,6 +40,8 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 	private InvoiceLogMapper invoiceLogMapper;
 	@Autowired
 	private DepartmentService departmentService;
+	@Autowired
+	private FinanceCountMapper financeCountMapper;
 
 	@Override
 	public int createServiceOrder(TOrderInvoice o) {
@@ -53,6 +53,13 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		pushOrderInvoiceExamine(o);
 		 Integer i=tOrderInvoiceMapper.insertSelective(o);
 		addInvoiceLog(o.getId(),0);
+		//非特批直接发到财务
+		if (o.getApproval()==0&&o.getType()==0){
+			String startTime = DateUtils.formatDate(o.getCreateTime(),AFTConstants.YYYYMMDD);
+			Admin admin = adminMapper.selectOrderByFinanace(o.getOrderNo());
+			FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+			addFinanceCount(startTime, admin, financeCount);
+		}
 		return i;
 	}
 
@@ -113,6 +120,13 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		if (o.getApproval()==2)o.setApproval(1);
 		int i=tOrderInvoiceMapper.updateByPrimaryKeySelective(o);
 		pushOrderInvoiceExamine(o);
+		if (o.getApproval()==0){
+			TOrderInvoice use = tOrderInvoiceMapper.selectByPrimaryKey(o.getId());
+			String startTime = DateUtils.formatDate(use.getCreateTime(),AFTConstants.YYYYMMDD);
+			Admin admin = adminMapper.selectOrderByFinanace(o.getOrderNo());
+			FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+			addFinanceCount(startTime, admin, financeCount);
+		}
 		return i;
 	}
 	/**
@@ -268,6 +282,7 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			//重新计算开票金额
 			addInvoiceLog(id,1);
 		}
+		pushInvoiceFinancialCount(t2,examine);
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t2.getOrderNo());
 		pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),0);
 		tOrderInvoiceMapper.updateByPrimaryKeySelective(t);
@@ -275,9 +290,52 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		return 1;
 	}
 
+	/**
+	 *
+	 * @param t2 开票信息
+	 * @param examine  2通过 3拒绝
+	 */
+	private void pushInvoiceFinancialCount(TOrderInvoice t2, Integer examine) {
+		String startTime = DateUtils.formatDate(t2.getCreateTime(),AFTConstants.YYYYMMDD);
+		Admin admin = adminMapper.selectOrderByFinanace(t2.getOrderNo());
+		FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+		if (examine==2){
+			//特批通过和特批是财务审核
+			if (t2.getApproval()==2||t2.getApproval()==0){
+				FinanceCount newFinanceCount=new FinanceCount();
+				newFinanceCount.setId(financeCount.getId());
+				newFinanceCount.setInvoiceUnauditedCount(financeCount.getInvoiceUnauditedCount()-1);
+				financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+				//特批审核是审核完到财务
+			}else if (t2.getApproval()==1){
+				addFinanceCount(startTime, admin, financeCount);
+			}
 
+		}else if (examine==3){
+			if (t2.getApproval()==2||t2.getApproval()==0){
+				FinanceCount newFinanceCount=new FinanceCount();
+				newFinanceCount.setId(financeCount.getId());
+				newFinanceCount.setInvoiceCount(financeCount.getInvoiceCount()-1);
+				newFinanceCount.setInvoiceUnauditedCount(financeCount.getInvoiceUnauditedCount()-1);
+				financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+			}
+		}
+	}
 
-
+	private void addFinanceCount(String startTime, Admin admin, FinanceCount financeCount) {
+		if (financeCount ==null){
+			financeCount =FinanceCount.initialization(admin.getId(), startTime);
+			financeCount.setInvoiceCount(1);
+			financeCount.setInvoiceUnauditedCount(1);
+			financeCountMapper.insertSelective(financeCount);
+		}else {
+			FinanceCount newFinanceCount=new FinanceCount();
+			newFinanceCount.setId(financeCount.getId());
+			newFinanceCount.setInvoiceCount(financeCount.getInvoiceCount()+1);
+			newFinanceCount.setInvoiceUnauditedCount(financeCount.getInvoiceUnauditedCount()+1);
+			financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+		}
+	}
 
 
 	@SuppressWarnings("unchecked")
@@ -335,8 +393,12 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			}else if(o.getType()==1) {
 				aids.addAll(adminMapper.listNameByDepAndName(ts.getOrderDep(), AFTConstants.SALESMAN_ADMIN));
 			}
-
+			String startTime = DateUtils.formatDate(o.getCreateTime(),AFTConstants.YYYYMMDD);
+			Admin admin = adminMapper.selectOrderByFinanace(o.getOrderNo());
+			FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+			addFinanceCount(startTime,admin,financeCount);
 		}
+
 		pushOrderInvoiceExamine(t);
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
 		pushGeneralSendNoticeAndEmail(aids,type,order, TokenManager.getAdminId(),0);

+ 45 - 3
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -131,6 +131,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	private TOrderHighTechMapper tOrderHighTechMapper;
 	@Autowired
 	private AdminUserCountMapper adminUserCountMapper;
+	@Autowired
+	private FinanceCountMapper financeCountMapper;
 
 
 	@Value(value = "${upload.path}")
@@ -553,9 +555,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				contractNoReplace(t.getOrderNo(), t2.getContractNo(),t2.getOrderDep());
 				createContractNo(t);
 			}
-
-			// 修改订单中间表信息
 			t.setBuyerId(t2.getBuyerId());
+			// 修改订单中间表信息
 			updateOrderMid(t);
 			List<String> aids = new ArrayList<>();
 			Integer type=NoticeStatus.OTHER.getCode();
@@ -650,12 +651,25 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				newAUC.setSignCount(selectAUC.getSignCount());
 				newAUC.setOrderCount(orderCount);
 			}
-
 			adminUserCountMapper.updateByPrimaryKeySelective(newAUC);
 		}
 
 	}
 
+	public void updateFinanceCount(String aid, Date createTime){
+		String startTime= DateUtils.formatDate(createTime,AFTConstants.YYYYMMDD);
+		String endTime=startTime+" 23:59:59";
+		int i = financeCountMapper.selectByAidAndDatesGetCount(aid, startTime);
+		if (i==0){
+			FinanceCount financeCount= FinanceCount.initialization(aid,startTime);
+			financeCount.setOrderCount(1);
+			financeCount.setOrderUnauditedCount(1);
+			financeCountMapper.insertSelective(financeCount);
+		}else {
+			financeCountMapper.updateOrderCountAdd(aid,startTime);
+		}
+	}
+
 	private void updateOrderMid(TOrderNew t) {
 		TOrderMid tm=tOrderMidMapper.selectByOrderNo(t.getOrderNo());
 		Admin admin=adminMapper.selectFinanceAdminByOrderDep(t.getOrderDep());
@@ -669,6 +683,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			tm.setBuyerName(u.getNickname());
 		}
 		if (admin!=null&&admin.getName()!=null) {
+			t.setFinanceId(admin.getId());
 			tm.setFinanceId(admin.getId());
 			tm.setFinanceName(admin.getName());
 		}
@@ -1097,6 +1112,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 						aids.add(e.getAid());
 					}
 				}
+				Admin admin=adminMapper.selectFinanceAdminByOrderDep(t2.getOrderDep());
+				updateFinanceCount(admin.getId(),t2.getCreateTime());
 			}
 
 			type=NoticeStatus.ORDER_YES.getCode();
@@ -1188,6 +1205,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 						t.setId(i);
 						tArrearsDunMapper.updateByPrimaryKeySelective(t);
 					}
+
 					addNewDunNoticAndSendEmail(b.getOrderNo(),o);
 				}
 			}
@@ -1720,9 +1738,33 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
 		tOrderNewMapper.updateByPrimaryKeySelective(t);
 		updateAdminUserCountOrder(t.getSalesmanId(),t.getCreateTime());
+		financeCountOrderUnauditedSubtraction(t,2);
 		return 1;
 	}
 
+	/**
+	 *
+	 * @param use
+	 * @param type 0 未审核减一 1未审核与派单数都减一  2 派单减一
+	 */
+	@Override
+	public void financeCountOrderUnauditedSubtraction(TOrderNew use,Integer type) {
+		Admin admin = adminMapper.selectFinanceAdminByOrderDep(use.getOrderDep());
+		String startTime= DateUtils.formatDate(use.getCreateTime(),AFTConstants.YYYYMMDD);
+		FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+		FinanceCount newFinance=new FinanceCount();
+		newFinance.setId(financeCount.getId());
+		if(type==0){
+			newFinance.setOrderUnauditedCount(financeCount.getOrderUnauditedCount()-1);
+		}else if(type==1){
+			newFinance.setOrderCount(financeCount.getOrderCount()-1);
+			newFinance.setOrderUnauditedCount(financeCount.getOrderUnauditedCount()-1);
+		}else if(type==2){
+			newFinance.setOrderCount(financeCount.getOrderCount()-1);
+		}
+		financeCountMapper.updateByPrimaryKeySelective(newFinance);
+	}
+
 	private TOrderNew checkDeleteSign(String orderNo) {
 		TOrderNew t=tOrderNewMapper.selectByPrimaryKey(orderNo);
 		//if(t.getDeleteSign()==2) throw new BusinessException(new Error(ErrorConstants.ORDER_ALREADY_REVOKE, t.getOrderNo(),""));

+ 61 - 1
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -126,7 +126,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private CustomerService customerService;
 	@Autowired
 	private TaskTimeMapper taskTimeMapper;
-
+	@Autowired
+	private FinanceCountMapper financeCountMapper;
 
 
 
@@ -1278,6 +1279,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		Integer result=0;
 		Integer notice=NoticeStatus.MENBER_YES.getCode();
 		TOrderNewBo ono = tOrderNewMapper.getSaleIdByOno(task.getOrderNo());
+		TTaskMember tTaskMember = tTaskMemberMapper.selectByTid(in.getId());
 		// 1=通过 0=驳回
 		if (in.getResult()==1){
 			//0=财务 1=特批
@@ -1291,25 +1293,60 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 					status=3;
 					result=1;
 				}
+				subtractionFinanceCountMember(task.getOrderNo(),tTaskMember.getCreateTime(),1);
 			}else if(in.getType()==1){
 				if(task.getProcessStatus()!=2)throw  new BusinessException("审核状态错误");
 				nt.setProcessStatus(3);
 				status=3;
 				result=1;
 			}
+
 		}else if (in.getResult()==0){
 			status=2;
 			nt.setProcessStatus(4);
 			notice=NoticeStatus.MENBER_NO.getCode();
+			if(in.getType()==0){
+				subtractionFinanceCountMember(task.getOrderNo(),tTaskMember.getCreateTime(),0);
+			}else {
+				subtractionFinanceCountMember(task.getOrderNo(),tTaskMember.getCreateTime(),2);
+			}
+
 		}
 		addNoticMember(notice, ono, in.getType(),result);
 		addMemberLog(in.getId(),status,in.getRemarks());
 		if (nt.getProcessStatus()==3){
 			tTaskMemberMapper.updateServiceYearBySplitSuper(task.getSplitSuper());
 		}
+
 		return tOrderTaskMapper.updateByPrimaryKeySelective(nt);
 	}
 
+	/**
+	 *
+	 * @param orderNo
+	 * @param date
+	 * @param type 0双减  1未审核减 2 总数减
+	 */
+	private void subtractionFinanceCountMember(String orderNo, Date date,Integer type) {
+		Admin admin = adminMapper.selectOrderByFinanace(orderNo);
+		String startTime = DateUtils.formatDate(date, AFTConstants.YYYYMMDD);
+		FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+		if (financeCount != null) {
+			FinanceCount newFinanceCount =new FinanceCount();
+			newFinanceCount.setId(financeCount.getId());
+			if(type==0){
+				newFinanceCount.setMemberCount(financeCount.getMemberCount()-1);
+				newFinanceCount.setMemberUnauditedCount(financeCount.getMemberUnauditedCount()-1);
+			}else if(type==1){
+				newFinanceCount.setMemberUnauditedCount(financeCount.getMemberUnauditedCount()-1);
+			}else if(type==2){
+				newFinanceCount.setMemberCount(financeCount.getMemberCount()-1);
+			}else {
+				return;
+			}
+			financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+		}
+	}
 
 
 	@Override
@@ -1320,6 +1357,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		t.setProcessStatus(1);
 		TOrderNewBo ono = tOrderNewMapper.getSaleIdByOno(task.getOrderNo());
 		addNoticMember(NoticeStatus.MENBER_START.getCode(), ono, null,0);
+		TTaskMember tTaskMember = tTaskMemberMapper.selectByTid(t.getId());
+		addFinanceCountMember(task.getOrderNo(), tTaskMember.getCreateTime());
 		return orderNewService.updateOrderTask(t);
 	}
 	@Override
@@ -1381,9 +1420,30 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		addMemberLog(tOrderTask.getId(),0,"新增会员项目");
 		if(memberType!=null){
 			addNoticMember(NoticeStatus.MENBER_START.getCode(),tOrderTask.getOrderNo(),null,0);
+
+			addFinanceCountMember(tOrderTask.getOrderNo(),date);
 		}
 		return tb;
 	}
+
+	private void addFinanceCountMember(String orderNo, Date date) {
+		Admin admin = adminMapper.selectOrderByFinanace(orderNo);
+		String startTime = DateUtils.formatDate(date, AFTConstants.YYYYMMDD);
+		FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+		if (financeCount == null) {
+			financeCount = FinanceCount.initialization(admin.getId(), startTime);
+			financeCount.setMemberCount(1);
+			financeCount.setMemberUnauditedCount(1);
+			financeCountMapper.insertSelective(financeCount);
+		}else {
+			FinanceCount newFinanceCount =new FinanceCount();
+			newFinanceCount.setId(financeCount.getId());
+			newFinanceCount.setMemberCount(financeCount.getMemberCount()+1);
+			newFinanceCount.setMemberUnauditedCount(financeCount.getMemberUnauditedCount()+1);
+			financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+		}
+	}
+
 	public void addNoticMember(Integer type,  String orderNo,Integer shiroType,Integer result) {
 		TOrderNewBo tn = tOrderNewMapper.getSaleIdByOno(orderNo);
 		addNoticMember(NoticeStatus.MENBER_START.getCode(),tn,null,0);

+ 67 - 55
src/main/java/com/goafanti/organization/service/impl/ThirdPartyCompanyServiceImpl.java

@@ -1,46 +1,14 @@
 package com.goafanti.organization.service.impl;
 
-import java.lang.reflect.InvocationTargetException;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.servlet.http.HttpServletResponse;
-
-import com.goafanti.admin.service.DepartmentService;
-import com.goafanti.common.error.BusinessException;
-import com.goafanti.common.model.*;
-import com.goafanti.order.enums.ProjectType;
-import org.apache.commons.beanutils.BeanUtils;
-import org.apache.commons.collections4.map.HashedMap;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.goafanti.admin.bo.AdminListBo;
+import com.goafanti.admin.service.DepartmentService;
 import com.goafanti.common.bo.EmailBo;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
-import com.goafanti.common.dao.AdminMapper;
-import com.goafanti.common.dao.CompanyLibraryMapper;
-import com.goafanti.common.dao.FinancialPaymentMapper;
-import com.goafanti.common.dao.OfficialFeePriceMapper;
-import com.goafanti.common.dao.PatentPriceMapper;
-import com.goafanti.common.dao.PaymentLogMapper;
-import com.goafanti.common.dao.PaymentNodeMapper;
-import com.goafanti.common.dao.SoftWritingPriceMapper;
-import com.goafanti.common.dao.TOrderMidMapper;
-import com.goafanti.common.dao.TOrderOutsourceMapper;
-import com.goafanti.common.dao.TOrderPaymentMapper;
-import com.goafanti.common.dao.TOrderTaskMapper;
-import com.goafanti.common.dao.TTaskMidMapper;
-import com.goafanti.common.dao.ThirdPartyCompanyMapper;
+import com.goafanti.common.dao.*;
 import com.goafanti.common.enums.NoticeStatus;
+import com.goafanti.common.error.BusinessException;
+import com.goafanti.common.model.*;
 import com.goafanti.common.utils.AsyncUtils;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.excel.NewExcelUtil;
@@ -50,23 +18,19 @@ import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.TOrderTaskDetailBo;
 import com.goafanti.order.enums.NewOrderDunType;
 import com.goafanti.order.enums.NewProjectStatus;
-import com.goafanti.organization.bo.InputNodeList;
-import com.goafanti.organization.bo.InputPaymentList;
-import com.goafanti.organization.bo.InputPaymentNode;
-import com.goafanti.organization.bo.InuptFinancialPayment;
-import com.goafanti.organization.bo.NoticeInformationBo;
-import com.goafanti.organization.bo.OutPaymentLog;
-import com.goafanti.organization.bo.OutPaymentNode;
-import com.goafanti.organization.bo.OutThirdPartyCompany;
-import com.goafanti.organization.bo.ProjectTypePuls;
-import com.goafanti.organization.bo.outFinancialPayment;
-import com.goafanti.organization.bo.outNodeList;
-import com.goafanti.organization.bo.outPaymentList;
-import com.goafanti.organization.bo.outPaymentListFinance;
-import com.goafanti.organization.bo.outPaymentListPatent;
-import com.goafanti.organization.bo.outProjectBo;
-import com.goafanti.organization.bo.outOrderPayment;
+import com.goafanti.organization.bo.*;
 import com.goafanti.organization.service.ThirdPartyCompanyService;
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.collections4.map.HashedMap;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.InvocationTargetException;
+import java.math.BigDecimal;
+import java.util.*;
 
 @Service
 public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyCompanyMapper> implements ThirdPartyCompanyService {
@@ -103,6 +67,10 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 	private DepartmentService	departmentService;
 	@Autowired
 	private AsyncUtils	asyncUtils;
+	@Autowired
+	private FinanceCountMapper	financeCountMapper;
+	@Value(value = "${upload.path}")
+	private final String	uploadPath			= null;
 
 
 
@@ -355,9 +323,27 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 		addNoticAndSendEmail(ni,a,NoticeStatus.PAYMENT_NODE.getCode());
 		PaymentLog pl=new PaymentLog(p.getId(),0,"发起付款:"+p.getRemarks(),a.getId(),a.getName());
 		paymentLogMapper.insertSelective(pl);
+		AddFinanceCount(ni.getFinanceId(),new Date());
 		return 1;
 	}
 
+	private void AddFinanceCount(String aid, Date date) {
+		String startTime= DateUtils.formatDate(date,AFTConstants.YYYYMMDD);
+		FinanceCount financeCount = financeCountMapper.selectByAidAndDates(aid, startTime);
+		if (financeCount==null){
+			financeCount=FinanceCount.initialization(aid,startTime);
+			financeCount.setPaymentCount(1);
+			financeCount.setPaymentUnauditedCount(1);
+			financeCountMapper.insertSelective(financeCount);
+		}else {
+			FinanceCount newFinanceCount=new FinanceCount();
+			newFinanceCount.setId(financeCount.getId());
+			newFinanceCount.setPaymentCount(financeCount.getPaymentCount()+1);
+			newFinanceCount.setPaymentUnauditedCount(financeCount.getPaymentUnauditedCount()+1);
+			financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+		}
+	}
+
 
 	@Override
 	public outOrderPayment OrderPaymentDetails(Integer id) {
@@ -417,6 +403,8 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 		tp.setQuantity(p.getQuantity());
 		Integer type=NoticeStatus.PAYMENT_NODE.getCode();
 		String auditStr="重新发起付款:";
+		TOrderPayment useTP=tOrderPaymentMapper.selectByPrimaryKey(p.getId());
+		NoticeInformationBo ni=financialPaymentMapper.selectBypidGetNotice(p.getId());
 		//状态 0审核 1待支付 2驳回 3已支付 4取消
 		if (p.getStatus()==0) {
 			tp.setApplicationAmount(p.getApplicationAmount());
@@ -424,14 +412,17 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 			tp.setPaymentType(p.getPaymentType());
 			tp.setPaymentAmount(p.getPaymentAmount());
 			tp.setPaymentStatus(p.getPaymentStatus());
+			AddFinanceCount(ni.getFinanceId(),useTP.getCreateTime());
 		}else if (p.getStatus()==1) {
 			type= NoticeStatus.PAYMENT_YES.getCode();
 			tp.setApplicationAmount(p.getApplicationAmount());
 			auditStr="审核通过:";
+			subtractionFinanceCount(ni.getFinanceId(),useTP.getCreateTime(),0);
 		}else if(p.getStatus()==2) {
 			type= NoticeStatus.PAYMENT_NO.getCode();
 			tp.setApplicationAmount(p.getApplicationAmount());
 			auditStr="审核驳回:";
+			subtractionFinanceCount(ni.getFinanceId(),useTP.getCreateTime(),1);
 		}else if (p.getStatus()==3) {
 			type=NoticeStatus.PAYMENT_COMPLETE.getCode();
 			if (p.getPaymentAmount()==null||p.getPaymentAmount().compareTo(new BigDecimal(0))==0) {
@@ -444,7 +435,6 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 		}else if(p.getStatus()==4) {
 			auditStr="付款取消";
 		}
-		NoticeInformationBo ni=financialPaymentMapper.selectBypidGetNotice(p.getId());
 		AdminListBo a =adminMapper.getDeptNameByAid(TokenManager.getAdminId());
 		addNoticAndSendEmail(ni,a,type);
 		PaymentLog pl=new PaymentLog(p.getId(),p.getStatus(),auditStr+p.getAuditNotes()==null?"":p.getAuditNotes(),a.getId(),a.getName());
@@ -452,6 +442,28 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 		return tOrderPaymentMapper.updateByPrimaryKeySelective(tp);
 	}
 
+	/**
+	 *
+	 * @param aid
+	 * @param createTime
+	 * @param type 0未审核减少
+	 */
+	private void subtractionFinanceCount(String aid, Date createTime, Integer type) {
+		String startTime= DateUtils.formatDate(createTime,AFTConstants.YYYYMMDD);
+		FinanceCount financeCount = financeCountMapper.selectByAidAndDates(aid, startTime);
+		FinanceCount newFinanceCount =new FinanceCount();
+		newFinanceCount.setId(financeCount.getId());
+		if (type==0){
+			newFinanceCount.setPaymentUnauditedCount(financeCount.getPaymentUnauditedCount()-1);
+		} else if (type==1){
+			newFinanceCount.setPaymentCount(financeCount.getPaymentCount()-1);
+			newFinanceCount.setPaymentUnauditedCount(financeCount.getPaymentUnauditedCount()-1);
+		}else {
+			return;
+		}
+		financeCountMapper.updateByPrimaryKeySelective(newFinanceCount);
+	}
+
 
 	private void confirmPayment(TOrderPayment p) {
 		//如果确定支付
@@ -1002,7 +1014,7 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 				list2.add(out2);
 			}
 			NewExcelUtil<outPaymentListFinance> excelUtil=new NewExcelUtil<>(outPaymentListFinance.class);
-			return excelUtil.exportExcel(list2, "财务成本列表");
+			return excelUtil.exportExcel(list2, "财务成本列表",uploadPath);
 		}else {
 			List<outPaymentListPatent> list3=new ArrayList<outPaymentListPatent>();
 			for (outPaymentList out : list) {
@@ -1027,7 +1039,7 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 					list3.add(out3);
 			}
 			NewExcelUtil<outPaymentListPatent> p=new NewExcelUtil<>(outPaymentListPatent.class);
-			return p.exportExcel(list3, "专利成本列表");
+			return p.exportExcel(list3, "专利成本列表",uploadPath);
 		}
 	}
 

+ 0 - 3
src/main/java/com/goafanti/user/service/impl/UserFollowServiceImpl.java

@@ -13,11 +13,8 @@ import com.goafanti.user.bo.outFollowStatisticsList;
 import com.goafanti.user.bo.outProvinceFollowStatistic;
 import com.goafanti.user.bo.outUserFollowList;
 import com.goafanti.user.service.UserFollowService;
-import jdk.nashorn.internal.parser.Token;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
-import org.terracotta.offheapstore.HashingMap;
 
 import java.util.ArrayList;
 import java.util.HashMap;

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

@@ -673,7 +673,7 @@ public class PublicReleaseServiceImpl extends BaseMybatisDao<PublicReleaseMapper
 		String startTime= DateUtils.formatDate(transferTime,AFTConstants.YYYYMMDD);
 		String endTime=startTime+" 23:59:59";
 		AdminUserCount adminUserCount = customerService.getAdminUserCount(aid,startTime);
-		Integer count = publicReleaseMapper.selectByaidAndDate(aid, startTime, endTime);
+		Integer count = publicReleaseMapper.selectCountByaidAndDate(aid, startTime, endTime);
 		if (count==null){
             count=0;
         }

+ 1 - 1
src/main/resources/props/config_local.properties

@@ -52,7 +52,7 @@ yxjl_max=100
 amb.maxLvl=6
 
 avatar.host=//static.jishutao.com
-static.host=//static.jishutao.com/1.2.88
+static.host=//static.jishutao.com/1.2.91
 rd.static.host=//static.jishutao.com/RD/1.0.00
 #avatar.host=//172.16.0.255:3000
 #static.host=//172.16.0.255:3000/1.2.62

+ 1 - 1
src/main/resources/props/config_test.properties

@@ -52,7 +52,7 @@ amb.maxLvl=6
 
 portal.host=//static.jishutao.com/portal/2.0.6
 avatar.host=//static.jishutao.com
-static.host=//static.jishutao.com/1.2.88
+static.host=//static.jishutao.com/1.2.91
 rd.static.host=//static.jishutao.com/RD/1.0.01
 avatar.upload.host=//static.jishutao.com/upload