Browse Source

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

anderx 2 years ago
parent
commit
ff4c8993ca

+ 0 - 3
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -651,9 +651,6 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 			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());

+ 1 - 0
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -206,4 +206,5 @@ public interface AdminMapper {
     BigDecimal selectFinanceReceivablesCount(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
 
+
 }

+ 1 - 0
src/main/java/com/goafanti/common/dao/DepartmentMapper.java

@@ -116,4 +116,5 @@ public interface DepartmentMapper {
 
     Department selectByDepNo(String superId);
 
+    void updateDepFinance(@Param("aid") String aid, @Param("transferId") String transferId);
 }

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

@@ -32,4 +32,6 @@ public interface FinanceCountMapper {
     List<OutFinanceCount> financeLists(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
     void updateByFinance(@Param("useFinanceId") String useFinanceId,  @Param("financeId")String financeId);
+
+    void deleteByAid(String financeId);
 }

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

@@ -870,6 +870,7 @@
     update admin set status = '1' where id in (${lockIds})
   </update>
 
+
   <!--  用户是为正常的 -->
   <select id="getCountById" parameterType="java.lang.String" resultType="java.lang.Integer">
     select count(a.id)  from admin a

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

@@ -407,7 +407,8 @@
     where
     id=#{id,jdbcType=VARCHAR}
   </update>
-  <select id="selectCountBySuperId" parameterType="String" resultType="java.lang.Integer">
+
+    <select id="selectCountBySuperId" parameterType="String" resultType="java.lang.Integer">
     select
       count(0)
     from department
@@ -550,6 +551,10 @@
     from department where super_id=  #{superId}
     order by dep_no desc limit 1
   </select>
-
+  <update id="updateDepFinance">
+    update department
+    set finance_id= #{transferId}
+    where finance_id= #{aid}
+  </update>
 
 </mapper>

+ 7 - 1
src/main/java/com/goafanti/common/mapper/FinanceCountMapper.xml

@@ -32,7 +32,8 @@
     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 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,
@@ -283,4 +284,9 @@
     set aid= #{financeId}
     where aid=#{useFinanceId}
   </update>
+
+  <delete id="deleteByAid">
+    delete from finance_count
+    where aid = #{financeId}
+  </delete>
 </mapper>

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

@@ -56,9 +56,18 @@ public class AsyncUtils {
 	private TOrderMidMapper tOrderMidMapper;
 	@Autowired
 	private RoleMapper roleMapper;
-
+	@Autowired
+	private ExpenseAccountMapper expenseAccountMapper;
+	@Autowired
+	private TOrderInvoiceMapper tOrderInvoiceMapper;
+	@Autowired
+	private TTaskMemberMapper tTaskMemberMapper;
+	@Autowired
+	private TOrderPaymentMapper tOrderPaymentMapper;
 	@Autowired
 	private AdminUserCountMapper adminUserCountMapper;
+	@Autowired
+	private FinanceCountMapper financeCountMapper;
 
 
 
@@ -669,10 +678,100 @@ public class AsyncUtils {
 		newOrderChangeMapper.updateExamineById(id,OrderChangeProcess.CWZY.getCode());
 	}
 
-	public  void updateFinanceExamineAndDep(String id, String financeId){
+	public  void updateFinanceExamineAndDep(String id, String financeId, String depFinanceId){
 		updateFinanceExamine( id);
 		tOrderMidMapper.updateFinanceId(id,financeId);
+		//如果切换财务,俩个财务都需要重新计算
+		financeCoutSwitch(financeId,depFinanceId);
+	}
+
+	public void financeCoutSwitch(String financeId, String depFinanceId) {
+		List<FinanceCount> list=new ArrayList<>();
+		financeCountRestart(financeId,list);
+		financeCountRestart(depFinanceId,list);
+		financeCountMapper.deleteByAid(financeId);
+		financeCountMapper.deleteByAid(depFinanceId);
+		listBatches(list);
+	}
+
+	public void financeCoutSwitch(String financeId) {
+		List<FinanceCount> list=new ArrayList<>();
+		financeCountRestart(financeId,list);
+		financeCountMapper.deleteByAid(financeId);
+		listBatches(list);
+	}
+
+	private void listBatches(List<FinanceCount> list) {
+		List<FinanceCount> addList=new ArrayList<>();
+		for (int i = 0; i <list.size(); i++) {
+			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 {
+					Thread.sleep(500);
+				} catch (InterruptedException exception) {
+					exception.printStackTrace();
+				}
+			}
+		}
+	}
 
+	private void financeCountRestart(String financeId, List<FinanceCount> list) {
+		List<FinanceCount> aList=new ArrayList<>();
+		List<FinanceCount> orderList = tOrderNewMapper.selectCountByFinance(financeId);
+		if (!orderList.isEmpty()){
+			aList.addAll(orderList);
+		}
+		List<FinanceCount> expenseList = expenseAccountMapper.selectCountByFinance(financeId);
+		pushFinanceList(aList, expenseList,0);
+		List<FinanceCount> invoiceList =tOrderInvoiceMapper.selectCountByFinance(financeId);
+		pushFinanceList(aList, invoiceList,1);
+		List<FinanceCount> memberList =tTaskMemberMapper.selectCountByFinance(financeId);
+		pushFinanceList(aList, memberList,2);
+		List<FinanceCount> paymentList =tOrderPaymentMapper.selectCountByFinance(financeId);
+		pushFinanceList(aList, paymentList,3);
+		if (!aList.isEmpty()){
+			list.addAll(aList);
+		}
+	}
+
+
+	/**
+	 *
+	 * @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);
+				}
+			}
+		}
 	}
 
 	public void updateAdminUserOrderCount(List<AdminUserCount> tramsferList) {

+ 4 - 5
src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java

@@ -199,14 +199,13 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 
 	/**
 	 * 如果更换了负责人刷新中间表
-	 * @param id
-	 * @param financeId
+	 * @param id 部门编号
+	 * @param financeId  财务编号
 	 */
 	private void checkFinaceUpdate(String id, String financeId) {
 		Department dep = departmentMapper.selectByPrimaryKey(id);
-		if (financeId!=null&&financeId.equals(dep.getFinanceId())){
-			asyncUtils.updateFinanceExamineAndDep(id,financeId);
-			financeCountMapper.updateByFinance(dep.getFinanceId(),financeId);
+		if (financeId!=null&&!financeId.equals(dep.getFinanceId())){
+			asyncUtils.updateFinanceExamineAndDep(id,financeId,dep.getFinanceId());
 		}
 	}
 

+ 27 - 0
src/main/java/com/goafanti/permission/service/impl/NewRoleServiceImpl.java

@@ -1,6 +1,7 @@
 package com.goafanti.permission.service.impl;
 
 import com.goafanti.common.bo.Error;
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.*;
 import com.goafanti.common.enums.roleResources;
 import com.goafanti.common.error.BusinessException;
@@ -52,6 +53,8 @@ public class NewRoleServiceImpl extends BaseMybatisDao<RoleMapper> implements Ne
 	private TOrderLogMapper	tOrderLogMapper;
 	@Autowired
 	private AsyncUtils asyncUtils;
+	@Autowired
+	private DepartmentMapper departmentMapper;
 
 
 	@Override
@@ -196,10 +199,34 @@ public class NewRoleServiceImpl extends BaseMybatisDao<RoleMapper> implements Ne
 				roleResourcesMapper.updateDimissionTransfer(s,aid,transferId);
 			}
 		}
+		//判定是否要转交财务统计信息
+		transferFinanceCount(aid,transferId);
 		return 1;
 	}
 
+	private void transferFinanceCount(String aid, String transferId) {
+		List<Integer> integerList = adminMapper.selectRoleTypeByid(aid);
+		List<Integer> integerList1 = adminMapper.selectRoleTypeByid(transferId);
+		boolean flag=asyncFinanceCount(integerList);
+		boolean flag2=asyncFinanceCount(integerList1);
+		if (flag&&flag2) {
+			departmentMapper.updateDepFinance(aid,transferId);
+		}
+		if (flag){
+			asyncUtils.financeCoutSwitch(aid);
+		}
+		if (flag2){
+			asyncUtils.financeCoutSwitch(transferId);
+		}
+	}
 
+	private boolean asyncFinanceCount(List<Integer> integerList) {
+		boolean contains = integerList.contains(Integer.parseInt(AFTConstants.FINANCE));
+		if (!contains){
+			contains = integerList.contains(Integer.parseInt(AFTConstants.FINANCE_MANAGER));
+		}
+		return contains;
+	}
 
 
 	/**

+ 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.91
+static.host=//static.jishutao.com/1.2.92
 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.91
+static.host=//static.jishutao.com/1.2.92
 rd.static.host=//static.jishutao.com/RD/1.0.01
 avatar.upload.host=//static.jishutao.com/upload