Browse Source

新流程出纳审核异常修改

anderx 2 years ago
parent
commit
8db39383f5

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

@@ -21,7 +21,7 @@ public interface ExpenseAccountExamineMapper {
 
     void insertBatch(List<ExpenseAccountExamine> list);
 
-    void updateStatusByEaidAndAid(@Param("id") Integer id, @Param("aid") String aid,@Param("status") Integer status);
+    void updateStatusByEaidAndAid(@Param("id") Integer id, @Param("aid") String aid,@Param("status") Integer status,@Param("type") Integer type);
 
     /**
      * 获取当前审核信息

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

@@ -122,11 +122,17 @@
   </insert>
   <update id="updateStatusByEaidAndAid">
     update expense_account_examine
-    set status= #{status} and process_status &lt; 8
+    set status= #{status}
     where eaid =#{id}
       <if test="aid != null">
         and auditor= #{aid}
       </if>
+    <if test="type==0">
+      and process_status &lt; 8
+    </if>
+    <if test="type==1">
+      and process_status = 8
+    </if>
   </update>
 
   <select id="selectByEaidAndProcessStatus" parameterType="java.lang.Integer" resultMap="BaseResultMap">

+ 9 - 10
src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml

@@ -706,22 +706,21 @@
 
 
   <select id="selectByMainId" resultMap="MainMap">
-    select b.id,b.check_no,b.total_amount,b.amount,b.order_no,o.contract_no,b.aname,b.apply_dep,b.pay_dep,b.real_amount,b.type_other ,b.aid,
+    select b.id,b.check_no,b.total_amount,b.amount,b.aname,b.apply_dep,b.pay_dep,b.real_amount,b.type_other ,b.aid,
            date_format(b.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,b.examine_name, dep.name applyDepName,dep2.name payDepName,
            b.remarks,b.eaaid ,eap.name ,eap.bank ,eap.accounts ,b.status,b.process_status,
            c.id sonId,c.total_amount sonTotalAmount,c.settlement_amount sonSettlementAmount,c.amount sonAmount, c.`type` sonType,c.type_other sonTypeOther,
            c.user_names ,c.release_start ,c.release_end , c.district_name districtName,c.user_names userNames,c.secondary_type ,c.secondary_type_other,c.attachment_url,
-           c.duration,pr.plan,pro.contract_no sonContractNo,c.real_amount sonRealAmount,
+           c.duration,pr.plan,c.real_amount sonRealAmount,o.order_no,o.contract_no,pr.type publicReleaseType,
            c.debit_id debitId, debit.real_amount DebitRealAmount ,debit.settlement_amount DebitSettlementAmount,debit.liquidation_status DebitliquidationStatus,
            d.id detId,d.`type` detType,d.amount detAmount,d.real_amount detRealAmount ,d.start_district ,d.end_district,d.vehicle,d.vehicle_other,
            d.pay_type ,d.invoice_type ,d.invoice_no,d.payer_name ,d.open_bank ,d.bank_accounts ,d.open_bank_address,d.type_other detTypeOther,
            date_format(d.start_time,'%Y-%m-%d %H:%i:%S')startTime,date_format(d.end_time,'%Y-%m-%d %H:%i:%S')endTime,
            date_format(d.agree_time,'%Y-%m-%d')agreeTime
-    from expense_relationship a left join expense_account b on a.id =b.id
+    from expense_relationship a left join expense_account b on a.id =b.id left join expense_account c on a.ea_id =c.id
     left join department dep on b.apply_dep =dep.id left join department dep2 on b.pay_dep =dep2.id
-    left join t_order_new o on b.order_no =o.order_no left join expense_account_private eap on b.eaaid =eap.id
-    left join expense_account c on a.ea_id =c.id left join expense_account_details d on c.id =d.eaid
-    left join public_release pr on c.prid=pr.id left join t_order_new pro on pr.order_no=pro.order_no
+     left join expense_account_private eap on b.eaaid =eap.id left join expense_account_details d on c.id =d.eaid
+    left join t_order_new o on c.order_no =o.order_no left join public_release pr on c.prid=pr.id left join t_order_new pro on pr.order_no=pro.order_no
     left join expense_account debit on c.debit_id=debit.id
     where a.id= #{id}
   </select>
@@ -742,8 +741,6 @@
     <result column="total_amount" jdbcType="DECIMAL" property="totalAmount" />
     <result column="real_amount" jdbcType="DECIMAL" property="realAmount" />
     <result column="amount" jdbcType="DECIMAL" property="amount" />
-    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
-    <result column="contract_no" jdbcType="VARCHAR" property="contractNo" />
     <result column="aname" jdbcType="VARCHAR" property="aname" />
     <result column="apply_dep" jdbcType="VARCHAR" property="applyDep" />
     <result column="pay_dep" jdbcType="VARCHAR" property="payDep" />
@@ -778,11 +775,13 @@
     <result column="districtName" jdbcType="VARCHAR" property="districtName" />
     <result column="duration" jdbcType="VARCHAR" property="duration" />
     <result column="plan" jdbcType="VARCHAR" property="plan" />
-    <result column="sonContractNo" jdbcType="VARCHAR" property="contractNo" />
     <result column="debitId" jdbcType="INTEGER" property="debitId" />
     <result column="debitRealAmount" jdbcType="DECIMAL" property="debitRealAmount" />
     <result column="debitSettlementAmount" jdbcType="DECIMAL" property="debitSettlementAmount" />
     <result column="debitLiquidationStatus" jdbcType="INTEGER" property="debitLiquidationStatus" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="contract_no" jdbcType="VARCHAR" property="contractNo" />
+    <result column="publicReleaseType" jdbcType="INTEGER" property="publicReleaseType" />
     <association property="detList" resultMap="ExpenseAccountDetailsMap"></association>
   </resultMap>
 
@@ -909,7 +908,7 @@
           </if>
           <if test="listStatus ==1">
             and b.process_status &gt; 3
-            and ((b.process_status &lt; eae.type ) or (b.process_status =8 and b.status=2))
+            and ((b.process_status &gt; eae.type ) or (b.process_status =8 and b.status=2))
           </if>
         </if>
     </if>

+ 2 - 2
src/main/java/com/goafanti/common/model/ExpenseConfigDetails.java

@@ -2,8 +2,8 @@ package com.goafanti.common.model;
 
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.utils.Param;
+import org.hibernate.validator.constraints.NotEmpty;
 
-import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -22,7 +22,7 @@ public class ExpenseConfigDetails implements Serializable {
     /**
      * 管理员编号
      */
-    @NotNull(message = "{"+ ErrorConstants.PARAM_EMPTY_ERROR+"}")
+    @NotEmpty(message = "{"+ ErrorConstants.PARAM_EMPTY_ERROR+"}")
     @Param(name = "管理员编号")
     private String aid;
 

+ 18 - 0
src/main/java/com/goafanti/expenseAccount/bo/SonExpenseAccount.java

@@ -21,12 +21,30 @@ public class SonExpenseAccount {
     private String duration;
     private String plan;
     private String contractNo;
+    private String orderNo;
     private Integer debitId;
+    private Integer publicReleaseType;
     private BigDecimal debitRealAmount;
     private BigDecimal debitSettlementAmount;
     private Integer debitLiquidationStatus;
     private List<SonExpenseAccountDetails> detList;
 
+    public Integer getPublicReleaseType() {
+        return publicReleaseType;
+    }
+
+    public void setPublicReleaseType(Integer publicReleaseType) {
+        this.publicReleaseType = publicReleaseType;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
     public Integer getDebitId() {
         return debitId;
     }

+ 4 - 0
src/main/java/com/goafanti/expenseAccount/controller/ExpenseAccountController.java

@@ -393,6 +393,10 @@ public class ExpenseAccountController extends CertifyApiController {
             res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"编号"));
             return  res;
         }
+        if (in.getStatus()==1&&in.getEaaid()==null){
+            res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"报销账号"));
+            return  res;
+        }
         return res.data(expenseAccountService.updateMain(in));
     }
 

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

@@ -524,7 +524,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             }else if (newEa.getProcessStatus()>EAProcessStatus.CWSH.getCode()){
                 pushFinanceCount(admin.getDepFinance(),useEa.getCreateTime(),3);
             }
-            expenseAccountExamineMapper.updateStatusByEaidAndAid(in.getId(),null,0);
+            expenseAccountExamineMapper.updateStatusByEaidAndAid(in.getId(),null,0,0);
         }
 
         expenseAccountMapper.updateByPrimaryKeySelective(newEa);
@@ -562,20 +562,24 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
         Integer status=in.getStatus();
         if (status==1){
             //审核处理审核表
-            expenseAccountExamineMapper.updateStatusByEaidAndAid(in.getId(),TokenManager.getAdminId(),1);
+            expenseAccountExamineMapper.updateStatusByEaidAndAid(in.getId(),TokenManager.getAdminId(),1,0);
             str=str.append("编号[").append(in.getCheckNo()).append("]需要审核").append(",请查看并审核。");
             newEa.setAid(useEa.getAid());
             newEa.setCreateTime(useEa.getCreateTime());
             newEa.setApplyDep(useEa.getApplyDep());
             if(useEa.getProcessStatus()==EAProcessStatus.CNSH.getCode()){
-                //完成后的流程
                 status =2;
+                expenseAccountExamineMapper.updateStatusByEaidAndAid(in.getId(),TokenManager.getAdminId(),1,1);
+                addExpenseAccountLog(in.getId(),status,useEa.getProcessStatus(),TokenManager.getAdminId(),in.getReason());
+                //完成后的流程
                 aids.add(adminMapper.selectByPrimaryKey(admin.getId()));
                 newEa.setStatus(status);
                 newEa.setExamineName("");
             }else {
+                addExpenseAccountLog(in.getId(),status,useEa.getProcessStatus(),TokenManager.getAdminId(),in.getReason());
                 //新的流程是当前流程+1
                 newEa.setProcessStatus(useEa.getProcessStatus()+1);
+                newEa.setStatus(1);
                 if (newEa.getApproval()==null)newEa.setApproval(useEa.getApproval());
                 List<ExpenseAccountExamine> list=examineByprocess(newEa,admin);
                 //未设置推送到完成
@@ -605,7 +609,6 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             str=str.append("您的报销审核已驳回,报销编号[").append(in.getCheckNo()).append("],请注意查看。");
         }
         if (newEa.getStatus()==null)newEa.setStatus(1);
-        addExpenseAccountLog(in.getId(),status,useEa.getProcessStatus(),TokenManager.getAdminId(),in.getReason());
         addNoticeAndEmail(in,  status,str.toString(),admin.getName(),aids);
     }
 
@@ -761,7 +764,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                     boolean expenseExamine = pushExpenseExamine(list, newEa, examineList, EAProcessStatus.CNSH.getCode());
                     if (expenseExamine){
                         flag2=true;
-                        str=String.format("[%s]通过审核,步入下个流程",EAProcessStatus.CNSH.getDesc());
+                        str=String.format("[%s]通过审核,完成报销流程",EAProcessStatus.CNSH.getDesc());
                     }
                 }
             }
@@ -771,6 +774,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                     addExpenseAccountLog(newEa.getId(),1,newEa.getProcessStatus(),"1",str,date2);
                     newEa.setProcessStatus(newEa.getProcessStatus()+1);
                     examineByprocess(newEa,admin,dep,list);
+
                 }else {
                     addExpenseAccountLog(newEa.getId(),2,newEa.getProcessStatus(),"1",str,date2);
                     newEa.setProcessStatus(newEa.getProcessStatus());
@@ -786,10 +790,10 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     private boolean pushExpenseExamine(List<ExpenseConfigDetails> list, ExpenseAccount newEa, List<ExpenseAccountExamine> examineList, Integer status) {
         int configDetails=0;
         if (status==EAProcessStatus.CWFS.getCode())configDetails=1;
-        if (status==EAProcessStatus.DSZSH.getCode())configDetails=2;
-        if (status==EAProcessStatus.CWGGLYSH.getCode())configDetails=3;
-        if (status==EAProcessStatus.GSFSSH.getCode())configDetails=4;
-        if (status==EAProcessStatus.CNSH.getCode())configDetails=5;
+        else if (status==EAProcessStatus.DSZSH.getCode())configDetails=2;
+        else if (status==EAProcessStatus.CWGGLYSH.getCode())configDetails=3;
+        else if (status==EAProcessStatus.GSFSSH.getCode())configDetails=4;
+        else if (status==EAProcessStatus.CNSH.getCode())configDetails=5;
         int finalConfigDetails = configDetails;
         List<ExpenseConfigDetails> collect = list.stream().filter(e -> e.getType() == finalConfigDetails).collect(Collectors.toList());
         int count = 0;
@@ -798,12 +802,13 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             ExpenseAccountExamine eae=new ExpenseAccountExamine(newEa.getId(),status);
             eae.setAuditor(e.getAid());
             eae.setAuditorname(e.getAdminName());
+            eae.setStatus(0);
             Integer i = expenseAccountExamineMapper.selectYesByParam(newEa.getId(), e.getAid());
             if (i>0||e.getAid().equals(TokenManager.getAdminId())) {
                 eae.setStatus(1);
                 count++;
             }
-            examineList.add(eae);
+            expenseAccountExamineMapper.insertSelective(eae);
         }
         if (count==collect.size()){
             return true;

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

@@ -1,12 +1,12 @@
 dev.name=local
 jdbc.driverClassName=com.mysql.jdbc.Driver
 #jdbc.url=jdbc\:mysql://localhost:3306/aft20221026?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
-jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
-jdbc.username=root
-jdbc.password=123456
-#jdbc.url=jdbc:mysql://101.37.32.31:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
+#jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
 #jdbc.username=root
-#jdbc.password=aftdev
+#jdbc.password=123456
+jdbc.url=jdbc:mysql://101.37.32.31:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
+jdbc.username=root
+jdbc.password=aftdev
 jdbc.validationQuery=SELECT 'x'
 jdbc.initialSize=3
 jdbc.maxActive=20