瀏覽代碼

修改报销详情接口新增项目类别

anderx 1 年之前
父節點
當前提交
06cc69485d

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

@@ -74,4 +74,6 @@ public interface ExpenseAccountMapper {
     void updateSonTypeOther(@Param("id") Integer id, @Param("types") String types);
 
     void updateRemoveOrderNo(ExpenseAccount ea);
+
+    List<ExpenseAccount> selectByOrderNo(String orderNo);
 }

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

@@ -107,4 +107,6 @@ public interface TOrderNewMapper {
     List<ExpenseCountsBo> selectExpenseCount(ExpenseCountsInput in);
 
     List<ExpenseCountsBo> selectExpenseDepCount(ExpenseCountsInput in);
+
+
 }

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

@@ -748,7 +748,7 @@
            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,c.real_amount sonRealAmount,o.order_no,o.contract_no,pr.type publicReleaseType,bp.`type` projectType,
+           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,
@@ -758,8 +758,7 @@
     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 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 t_order_task tot on o.order_no =tot.order_no
-    left join business_project bp on tot.commodity_id =bp.id and bp.`type` =8 left join t_order_mid tm on c.order_no=tm.order_no
+    left join t_order_new o on c.order_no =o.order_no   left join t_order_mid tm on c.order_no=tm.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}
@@ -1107,6 +1106,7 @@
     where a.id= #{id} and c.id is null
   </select>
 
+
   <update id="updateSonTypeOther">
     update expense_account a
     set a.type_other = #{types}
@@ -1117,4 +1117,11 @@
       set a.order_no = null
       where a.id = #{id}
     </update>
+
+  <select id="selectByOrderNo" resultMap="BaseResultMap">
+  select
+  <include refid="Base_Column_List" />
+  from expense_account
+  where expense_main=0 and status=2    and order_no=#{orderNo}
+  </select>
 </mapper>

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

@@ -116,7 +116,7 @@
         update t_order_public_release_count
         set
             actual_duration =  #{actualDuration,jdbcType=DOUBLE},
-            exceed_duration =  max_duration-#{actualDuration,jdbcType=DOUBLE},
+            exceed_duration =  if(#{actualDuration,jdbcType=DOUBLE}-max_duration>0,#{actualDuration,jdbcType=DOUBLE}-max_duration,0),
             people_count =  #{peopleCount,jdbcType=INTEGER},
             frequency =  #{frequency,jdbcType=INTEGER}
         where   order_no =  #{orderNo,jdbcType=VARCHAR}

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

@@ -34,9 +34,18 @@ public class SonExpenseAccount {
     private BigDecimal debitRealAmount;
     private BigDecimal debitSettlementAmount;
     private Integer debitLiquidationStatus;
+    private String  countStr;
     private List<SonExpenseAccountDetails> detList;
 
 
+    public String getCountStr() {
+        return countStr;
+    }
+
+    public void setCountStr(String countStr) {
+        this.countStr = countStr;
+    }
+
     public Integer getProjectType() {
         return projectType;
     }

+ 27 - 0
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -24,6 +24,7 @@ import com.goafanti.expenseAccount.Enums.EATypes;
 import com.goafanti.expenseAccount.Enums.EAsecondaryTypes;
 import com.goafanti.expenseAccount.bo.*;
 import com.goafanti.expenseAccount.service.ExpenseAccountService;
+import com.goafanti.order.bo.TOrderTaskBo;
 import com.goafanti.organization.bo.OrganizationListOut;
 import com.itextpdf.text.Document;
 import com.itextpdf.text.DocumentException;
@@ -80,6 +81,11 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     private DepartmentMapper departmentMapper;
     @Autowired
     private ExpenseConfigDetailsMapper expenseConfigDetailsMapper;
+    @Autowired
+    private TOrderTaskMapper tOrderTaskMapper;
+    @Autowired
+    private TOrderPublicReleaseCountMapper tOrderPublicReleaseCountMapper;
+
 
 
 
@@ -1403,6 +1409,27 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                     districtName=districtName.replace(userNames,"");
                     e.setDistrictName(districtName);
                 }
+                if (e.getOrderNo()!=null){
+                    List<TOrderTaskBo> tOrderTaskBos = tOrderTaskMapper.selectOrderTask(e.getOrderNo(), null);
+                    tOrderTaskBos.forEach(e1->{
+                       if(e1.getType()==8){
+                           e.setType(8);
+                       }
+                    });
+                    TOrderPublicReleaseCount out = tOrderPublicReleaseCountMapper.selectByOrderNo(e.getOrderNo());
+                    List<ExpenseAccount> expenseAccounts = expenseAccountMapper.selectByOrderNo(e.getOrderNo());
+                    BigDecimal reduce = expenseAccounts.stream().map(ExpenseAccount::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    StringBuffer str=new StringBuffer();
+                    str.append(e.getBuyerName()).append(e.getContractNo())
+                            .append(":应公出").append(out.getMaxDuration()).append("小时")
+                            .append(",已").append(out.getPeopleCount()).append("人公出")
+                            .append(out.getFrequency()).append("次")
+                            .append(",").append(out.getActualDuration()).append("小时")
+                            .append(",超过").append(out.getMaxDuration()).append("小时")
+                            .append(",已报销").append(reduce.stripTrailingZeros().stripTrailingZeros()).append("元");
+                    e.setCountStr(str.toString());
+                }
+
             }
 
         });