Sfoglia il codice sorgente

人员报销页面展示代码优化

user5 3 anni fa
parent
commit
14f8f868d0

+ 1 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/domain/dto/ReimbursementBusinessReturnDTO.java

@@ -16,6 +16,7 @@ public class ReimbursementBusinessReturnDTO{
 
     private static final long serialVersionUID = 1L;
 
+    private String reimbursementQuotaDay;  //日报销额度
     private String reimbursementDay;  //报销天数
     private String alreadyReimbursementDay;  //已报销天数
     private String surplusReimbursementDay;  //剩余报销天数

+ 7 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/mapper/xml/ReimbursementUserMapper.xml

@@ -24,8 +24,14 @@
     <select id="findList" resultType="com.jeeplus.test.reimbursementsys.domain.dto.ReimbursementUserDTO">
         SELECT
             <include refid="reimbursementUserColumns"/>
+            ,
+        ifnull(sum(zrbi.reimbursement_day),0) as "alreadyReimbursementDay",
+        ifnull(sum(zrbi.reimbursement_amount),0) as "alreadyReimbursementAmount",
+        ifnull((a.reimbursement_quota - ifnull(sum(zrbi.reimbursement_amount),0)),0) as "remainReimbursementAmount",
+        ifnull((convert(a.reimbursement_quota/a.reimbursement_quota_day,decimal(15,2)) - sum(zrbi.reimbursement_day)),0) as "surplusReimbursementDay"
         FROM zs_reimbursement_user_info a
         <include refid="reimbursementUserJoinColumns"/>
+        LEFT JOIN zs_reimbursement_business_info zrbi ON zrbi.user_id = a.user_id and zrbi.year = a.year
         <where>
             a.del_flag = 0
             <if test="reimbursementUser.year != null and reimbursementUser.year != ''">
@@ -35,6 +41,7 @@
                 and a.user_id = #{reimbursementUser.userId}
             </if>
         </where>
+        group by a.user_id,a.year
         order by a.update_date desc,a.year desc, a.user_id asc
     </select>
 

+ 13 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementSysServiceImpl.java

@@ -273,6 +273,19 @@ public class ReimbursementSysServiceImpl implements ReimbursementSysService {
             //删除该业务编码信息
             mapper.deleteBusinessById(reimbursement.getId());
         }else{
+            //根据id查询对应发票信息
+            List<String> parentIdList = Lists.newArrayList();
+            parentIdList.add(reimbursement.getId());
+            List<ReimbursementDTO> invoiceByParentIdList = mapper.getInvoiceByParentIdList(parentIdList);
+            if(invoiceByParentIdList.size()>0){
+                List<ReimbursementDTO> updateInvoiceData = Lists.newArrayList();
+                for (ReimbursementDTO invoiceInfo: invoiceByParentIdList) {
+                    invoiceInfo.setBusinessCode(reimbursement.getBusinessCode());
+                    invoiceInfo.preUpdate();
+                    updateInvoiceData.add(invoiceInfo);
+                }
+                mapper.updateInvoiceList(updateInvoiceData);
+            }
             reimbursement.preUpdate();
             mapper.saveBusiness(reimbursement);
         }

+ 3 - 20
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/reimbursementsys/service/impl/ReimbursementUserServiceImpl.java

@@ -52,25 +52,6 @@ public class ReimbursementUserServiceImpl implements ReimbursementUserService {
     public IPage<ReimbursementUserDTO> findList(Page<ReimbursementUserDTO> page, ReimbursementUserDTO reimbursementUser) {
         IPage<ReimbursementUserDTO> pageList = mapper.findList(page, reimbursementUser);
         List<ReimbursementUserDTO> list = pageList.getRecords();
-
-        if(null != list && list.size()>0){
-            for (ReimbursementUserDTO userDTO: list) {
-                ReimbursementUserDTO reimbursementUserDTO = new ReimbursementUserDTO();
-                reimbursementUserDTO.setUserId(userDTO.getUserId());
-                reimbursementUserDTO.setYear(userDTO.getYear());
-                ReimbursementBusinessReturnDTO businessReturnDTO = this.findListByUserId(reimbursementUserDTO);
-
-                //剩余报销额度
-                userDTO.setSurplusReimbursementAmount(businessReturnDTO.getSurplusReimbursementAmount());
-                //剩余报销天数
-                userDTO.setSurplusReimbursementDay(businessReturnDTO.getSurplusReimbursementDay());
-                //已报销天数
-                userDTO.setAlreadyReimbursementDay(businessReturnDTO.getAlreadyReimbursementDay());
-                //已报销额度
-                userDTO.setAlreadyReimbursementAmount(businessReturnDTO.getAlreadyReimbursementAmount());
-            }
-
-        }
         pageList.setRecords(list);
         return pageList;
     }
@@ -187,7 +168,7 @@ public class ReimbursementUserServiceImpl implements ReimbursementUserService {
             //剩余报销额度
             reimbursementBusinessReturnDTO.setSurplusReimbursementAmount(new BigDecimal(reimbursementBusinessReturnDTO.getReimbursementQuota()).subtract(alreadyReimbursementAmount).toString());
             //计算出可报销总天数
-            BigDecimal reimbursementDay = new BigDecimal(reimbursementBusinessReturnDTO.getReimbursementQuota()).divide(new BigDecimal(reimbursementUserInfo.getReimbursementQuotaDay()));
+            BigDecimal reimbursementDay = new BigDecimal(reimbursementBusinessReturnDTO.getReimbursementQuota()).divide(new BigDecimal(reimbursementUserInfo.getReimbursementQuotaDay()),2, BigDecimal.ROUND_HALF_UP);
             //剩余报销天数
             reimbursementBusinessReturnDTO.setSurplusReimbursementDay(reimbursementDay.subtract(alreadyReimbursementDay).toString());
             //报销天数
@@ -196,6 +177,8 @@ public class ReimbursementUserServiceImpl implements ReimbursementUserService {
             reimbursementBusinessReturnDTO.setAlreadyReimbursementDay(alreadyReimbursementDay.toString());
             //已报销额度
             reimbursementBusinessReturnDTO.setAlreadyReimbursementAmount(alreadyReimbursementAmount.toString());
+            //日报销额度
+            reimbursementBusinessReturnDTO.setReimbursementQuotaDay(reimbursementUserInfo.getReimbursementQuotaDay());
 
         return reimbursementBusinessReturnDTO;
     }