Parcourir la source

报销撤销与重新发起日志修改处理。

anderx il y a 2 ans
Parent
commit
261708ffee

+ 3 - 0
src/main/java/com/goafanti/common/dao/ExpenseAccountLogMapper.java

@@ -1,6 +1,7 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.common.model.ExpenseAccountLog;
+import com.goafanti.common.model.ExpenseRelationship;
 import com.goafanti.expenseAccount.bo.OutExpenseAccountLog;
 import org.apache.ibatis.annotations.Param;
 
@@ -25,4 +26,6 @@ public interface ExpenseAccountLogMapper {
     void updateUseLogByUseId(@Param("id") Integer id, @Param("useId") Integer useId);
 
     void deleteByeaid(Integer id);
+
+    void insertBatch(List<ExpenseRelationship> list);
 }

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

@@ -2,6 +2,8 @@ package com.goafanti.common.dao;
 
 import com.goafanti.common.model.ExpenseRelationship;
 
+import java.util.List;
+
 public interface ExpenseRelationshipMapper {
     int deleteByPrimaryKey(Integer id);
 
@@ -14,4 +16,6 @@ public interface ExpenseRelationshipMapper {
     int updateByPrimaryKeySelective(ExpenseRelationship record);
 
     int updateByPrimaryKey(ExpenseRelationship record);
-}
+
+    List<ExpenseRelationship> selectById(Integer id);
+}

+ 14 - 0
src/main/java/com/goafanti/common/mapper/ExpenseAccountLogMapper.xml

@@ -75,6 +75,7 @@
       </if>
     </trim>
   </insert>
+
   <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.ExpenseAccountLog">
     update expense_account_log
     <set>
@@ -127,4 +128,17 @@
     delete from expense_account_log
     where eaid = #{id,jdbcType=INTEGER}
   </delete>
+
+
+  <insert id="insertBatch" >
+    insert into expense_account_log (eaid, process_status, `status`,
+                                     remarks, auditor, create_time
+    )
+    values
+        <foreach collection="list" item="item" index="index" separator=",">
+        (#{item.eaid,jdbcType=INTEGER}, #{item.processStatus,jdbcType=INTEGER}, #{item.status,jdbcType=INTEGER},
+            #{item.remarks,jdbcType=VARCHAR}, #{item.auditor,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}
+           )
+        </foreach>
+  </insert>
 </mapper>

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

@@ -423,12 +423,12 @@
         a.user_names userNames,a.create_time, a.release_start,a.release_end, a.duration,b.name applyDepName,a.amount,
         c.name payDepName,d.name ,d.bank ,d.accounts ,a.settlement_amount settlementAmount,a.secondary_type secondaryType,
         a.liquidation_status liquidationStatus, a.remarks,a.check_no checkNo,a.secondary_type_other secondaryTypeOther,
-        a.create_time createTime, date_format(a.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,
+        a.create_time createTime, date_format(a.create_time,'%Y-%m-%d %H:%i:%S')createTimeStr,pr.type publicReleaseType,
         date_format(a.release_start,'%Y-%m-%d %H:%i:%S')releaseStartStr,
         date_format(a.release_end,'%Y-%m-%d %H:%i:%S')releaseEndStr
         FROM expense_account a left join department b on a.apply_dep =b.id left join department c on a.pay_dep =c.id
     left join expense_account_private d on a.eaaid=d.id left join t_order_new o on a.order_no =o.order_no
-    left join t_order_mid tm on a.order_no =tm.order_no
+    left join t_order_mid tm on a.order_no =tm.order_no left join public_release pr on a.prid=pr.id
   </sql>
   <select id="selectByid" resultType="com.goafanti.expenseAccount.bo.OutExpenseAccount">
     SELECT
@@ -954,7 +954,7 @@
     left join t_order_new o on mea.order_no =o.order_no left join t_order_mid tm on o.order_no =tm.order_no
     left join department dep on mea.apply_dep =dep.id
     left join department dep2 on mea.pay_dep =dep2.id  left join  admin ad on a.aid=ad.id
-    left join department dep3 on ad.department_id =dep3.id left join admin ad2 on dep3.finance_id =ad2.id
+    left join department dep3 on ad.department_id =dep3.id left join admin ad2 on dep.expense_finance_id =ad2.id
     where 1=1
    <include refid="ExpenseDetailsSql"/>
     ${page_sql}
@@ -970,10 +970,10 @@
       </foreach>
     </if>
     <if test="roleType ==1">
-      and dep3.finance_id = #{aid}
+      and dep.expense_finance_id = #{aid}
     </if>
     <if test="roleType ==2">
-      and dep3.finance_id in  (select id from admin where superior_id = #{aid})
+      and dep.expense_finance_id in  (select id from admin where superior_id = #{aid})
     </if>
     <if test=" contractNo != null">
       and o.contract_no like concat('%',#{contractNo},'%')

+ 11 - 3
src/main/java/com/goafanti/common/mapper/ExpenseRelationshipMapper.xml

@@ -10,12 +10,13 @@
     id, ea_id, create_time
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
-    select 
+    select
     <include refid="Base_Column_List" />
     from expense_relationship
     where id = #{id,jdbcType=INTEGER}
   </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
     delete from expense_relationship
     where id = #{id,jdbcType=INTEGER}
   </delete>
@@ -68,4 +69,11 @@
       create_time = #{createTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=INTEGER}
   </update>
-</mapper>
+
+  <select id="selectById"parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from expense_relationship
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+</mapper>

+ 9 - 0
src/main/java/com/goafanti/expenseAccount/bo/OutExpenseAccount.java

@@ -19,6 +19,15 @@ public class OutExpenseAccount extends ExpenseAccount {
     private String bank;
     private String accounts;
     private Integer examine;
+    private Integer publicReleaseType;
+
+    public Integer getPublicReleaseType() {
+        return publicReleaseType;
+    }
+
+    public void setPublicReleaseType(Integer publicReleaseType) {
+        this.publicReleaseType = publicReleaseType;
+    }
 
     public Integer getExamine() {
         return examine;

+ 19 - 11
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -84,6 +84,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             in.setDistrictName(pr.getDistrictName());
             in.setUserNames(pr.getUserNames());
             in.setDuration(pr.getDuration());
+            if (in.getOrderNo()==null)in.setOrderNo(pr.getOrderNo());
         }
         //判断报销类型,0=固定费用,1=报销到订单
         if (in.getOrderNo()==null){
@@ -908,6 +909,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             er.setId(in.getId());
             er.setEaId(e.getId());
             expenseRelationshipMapper.insertSelective(er);
+            expenseAccountLogMapper.updateUseLogByUseId(in.getId(),e.getId());
         });
         expenseAccountMapper.updateByIds(list,1);
         return in.getId();
@@ -951,16 +953,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             if (in.getEaaid()!=null)update.setEaaid(in.getEaaid());
             addExpenseAccountExamine(in.getId(),update);
             if (outExpenseAccount.getStatus()==0){
-                //补旧日志
-                MainExpenseAccount mianEA = expenseAccountMapper.selectByMainId(in.getId());
-                List<Integer> collect = mianEA.getSonList().stream().map(SonExpenseAccount::getId).collect(Collectors.toList());
-                if (!collect.isEmpty()){
-                    Integer i = expenseAccountMapper.selectDeleteIdBySonId(collect.get(0));
-                    if (i !=null)
-                        expenseAccountLogMapper.updateUseLogByUseId(in.getId(),i);
-                        expenseAccountLogMapper.deleteByeaid(i);
-                        expenseRelationshipMapper.deleteByPrimaryKey(i);
-                }
+
                 addExpenseAccountLogAndNoticEmail(outExpenseAccount,outExpenseAccount.getStatus(),"发起报销审核");
             }else if (outExpenseAccount.getStatus()==3){
                 addExpenseAccountLogAndNoticEmail(outExpenseAccount,4,"修改并发起审核");
@@ -972,7 +965,22 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
             expenseAccountMapper.updateByPrimaryKeySelective(update);
         }else if (in.getStatus()==4){
             expenseAccountMapper.updateByMainId(in.getId(),0);
-            expenseAccountMapper.deleteByPrimaryKey(in.getId());
+            List<ExpenseRelationship> list = expenseRelationshipMapper.selectById(in.getId());
+            if (list.size()==1){
+                ExpenseRelationship e =list.get(0);
+                expenseAccountLogMapper.updateUseLogByUseId(e.getEaId(),e.getId());
+            }else {
+                List<OutExpenseAccountLog> outExpenseAccountLogs = expenseAccountLogMapper.selectByEaid(in.getId());
+                for (int i=0;i<list.size();i++){
+                    ExpenseRelationship e =list.get(0);
+                    for (OutExpenseAccountLog eal : outExpenseAccountLogs) {
+                        eal.setEaid(e.getEaId());
+                    }
+                    expenseAccountLogMapper.insertBatch(list);
+                }
+                expenseAccountLogMapper.deleteByeaid(in.getId());
+                expenseRelationshipMapper.deleteByPrimaryKey(in.getId());
+            }
             addExpenseAccountLog(in.getId(),4,0,in.getAid(),"撤销报销审核");
         }
         return 1;