Browse Source

报销审核修改

anderx 2 years ago
parent
commit
276c51dccc

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

@@ -197,4 +197,6 @@ public interface AdminMapper {
 
     List<ConsultantUserCount> consultantthisMonthUser(@Param("firstDay")String firstDay, @Param("endDay")String endDay,
                                                       @Param("aid")String aid);
+
+    Admin selectOrderByFinanacial(String orderNo);
 }

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

@@ -1,14 +1,13 @@
 package com.goafanti.common.dao;
 
 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 +33,5 @@ public interface TOrderInvoiceMapper {
     TOrderInvoiceDetails getInvoiceDetails(String orderNo);
 
     List<OutInvoiceLog>  selectInvoiceLog(Integer id);
+
 }

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

@@ -1385,4 +1385,10 @@
     and a.release_start  BETWEEN #{firstDay} and #{endDay})x
     group by x.dates
   </select>
+  <select id="selectOrderByFinanacial" 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>
 </mapper>

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

@@ -626,4 +626,5 @@ where a.status=2 and a.order_no=  #{orderNo,jdbcType=VARCHAR}
     where a.invoice_id =#{id} order by a.create_time
   </select>
 
+
 </mapper>

+ 17 - 22
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -218,6 +218,9 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             Admin finaceAdmin = adminMapper.selectByPrimaryKey(admin.getDepFinance());
             aids.add(finaceAdmin);
             in.setExamineName(finaceAdmin.getName());
+            String startTime=DateUtils.formatDate(new Date(),AFTConstants.YYYYMMDD);
+            FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getDepFinance(), startTime);
+            addFinanceCount(startTime, admin.getDepFinance(), financeCount);
         }else if (in.getProcessStatus()== EAProcessStatus.ZJLSH.getCode()){
             //获取部门负责人
             List<Admin> list = adminMapper.listAdminBydepIdAndRoleType(admin.getDepartmentId(), AFTConstants.SALESMAN_ADMIN);
@@ -410,18 +413,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()||
                     useEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
                 if (newEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
-                    if (financeCount==null){
-                        financeCount=FinanceCount.initialization(admin.getDepFinance(), 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);
-                    }
+                    addFinanceCount(startTime, admin.getDepFinance(), financeCount);
                     //如果当前是财务审核通过就要减去未审核
                 }else if (useEa.getProcessStatus()== EAProcessStatus.CWSH.getCode()){
                     FinanceCount newFinanceCount =new FinanceCount();
@@ -449,16 +441,19 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
 
     }
 
-
-
-    private void subtractionExpenseFinanceCount(String depFinance, String startTime) {
-
-
-    }
-
-    private void addExpenseFinanceCount(String depFinance, String startTime) {
-        FinanceCount financeCount = financeCountMapper.selectByAidAndDates(depFinance, startTime);
-
+    private void addFinanceCount(String startTime, String aid, FinanceCount financeCount) {
+        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) {

+ 62 - 5
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){
+			String startTime = DateUtils.formatDate(o.getCreateTime(),AFTConstants.YYYYMMDD);
+			Admin admin = adminMapper.selectOrderByFinanacial(o.getOrderNo());
+			FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+			addFinanceCount(startTime, admin, financeCount);
+		}
 		return i;
 	}
 
@@ -113,6 +120,12 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		if (o.getApproval()==2)o.setApproval(1);
 		int i=tOrderInvoiceMapper.updateByPrimaryKeySelective(o);
 		pushOrderInvoiceExamine(o);
+		if (o.getApproval()==0){
+			String startTime = DateUtils.formatDate(o.getCreateTime(),AFTConstants.YYYYMMDD);
+			Admin admin = adminMapper.selectOrderByFinanacial(o.getOrderNo());
+			FinanceCount financeCount = financeCountMapper.selectByAidAndDates(admin.getId(), startTime);
+			addFinanceCount(startTime, admin, financeCount);
+		}
 		return i;
 	}
 	/**
@@ -268,6 +281,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 +289,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.selectOrderByFinanacial(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")