Browse Source

财务统计成本模块修改

anderx 2 years ago
parent
commit
0e34051159

+ 62 - 53
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,18 @@ 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.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 +66,8 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 	private DepartmentService	departmentService;
 	@Autowired
 	private AsyncUtils	asyncUtils;
+	@Autowired
+	private FinanceCountMapper	financeCountMapper;
 
 
 
@@ -355,9 +320,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 +400,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 +409,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 +432,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 +439,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) {
 		//如果确定支付