Bläddra i källkod

高龄补贴发放导出

qin 11 månader sedan
förälder
incheckning
978927dd27

+ 27 - 0
src/main/java/com/poteviohealth/cgp/statistics/controller/OrderController.java

@@ -214,6 +214,33 @@ public class OrderController extends BaseWebController {
         }
     }
 
+    @PostMapping(value = "/goldSendBankExport")
+    @ApiOperation(httpMethod = "POST", value = "高龄津贴发放Excel导出")
+    public void goldSendBankExport(HttpServletResponse resp,@RequestBody GoldSendPage page){
+        String key ="goldSendBankExport";
+        String error =  this.checkExcelExport(key);
+        try{
+            if ("".equals(error)) {
+                String templateLocation = "classpath:excel/goldSendBank.xlsx";
+                String filename = "";
+                Map<String, Object> data = Maps.newHashMap();
+                List<GoldSendExcelDTO> list = orderService.excelGoldSendList(page);
+                ExcelUtils2.easyDownload(templateLocation,data , list, filename, resp);
+            }else{
+                throw new BusinessException(error);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new BusinessException(e.getMessage());
+        }finally {
+            if(cacheService.exists(key)){
+                if(cacheService.get(key).equals(TokenContext.cureWebUser().getUserId().toString())){
+                    cacheService.del(key);
+                }
+            }
+        }
+    }
+
     @DistributedLock(fairLock =true)
     private String checkExcelExport(String key){
         String returnVal = "";

+ 8 - 0
src/main/java/com/poteviohealth/cgp/statistics/mapper/OrderMapper.java

@@ -248,4 +248,12 @@ public interface OrderMapper extends BaseMapper<Order>{
     @SqlParser(filter=true)
     LinkedList<GoldSendExcelDTO> goldSendList(@Param(Constants.WRAPPER) Wrapper wrapper,@Param("dbName") String dbName, @Param("start")Integer start);
 
+    /**
+     * excel
+     * @param wrapper
+     * @return
+     */
+    @SqlParser(filter=true)
+    LinkedList<GoldSendBankExcelDTO> goldSendBankList(@Param(Constants.WRAPPER) Wrapper wrapper,@Param("dbName") String dbName, @Param("start")Integer start);
+
 }

+ 47 - 0
src/main/java/com/poteviohealth/cgp/statistics/model/outdto/GoldSendBankExcelDTO.java

@@ -0,0 +1,47 @@
+package com.poteviohealth.cgp.statistics.model.outdto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * excel导出DTO
+ * @author Qin
+ */
+@Data
+@ApiModel(value="excel导出DTO")
+public class GoldSendBankExcelDTO {
+
+    @ApiModelProperty(value = "id")
+    private Integer id;
+
+    @ApiModelProperty("类型")
+    private String idNumberType;
+
+    @ApiModelProperty(value = "身份证号码")
+    private String idNumber;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "参与项目行政区划")
+    private String areaCode;
+
+    @ApiModelProperty(value = "银行卡号")
+    private String bankCard;
+
+    @ApiModelProperty(value = "持卡人姓名")
+    private String bankHolder;
+
+    @ApiModelProperty(value = "住址")
+    private String nowAddress;
+
+    @ApiModelProperty("发放金额")
+    private String moneyStr;
+
+    @ApiModelProperty(value = "联系电话")
+    private String linkMobile;
+
+    @ApiModelProperty(value = "银行类别")
+    private String bankCode;
+}

+ 8 - 5
src/main/java/com/poteviohealth/cgp/statistics/service/IOrderService.java

@@ -7,10 +7,7 @@ import com.poteviohealth.cgp.common.integrated.finance.model.MemberPlanPageDTO;
 import com.poteviohealth.cgp.common.service.IBaseService;
 import com.poteviohealth.cgp.statistics.model.Order;
 import com.poteviohealth.cgp.statistics.model.indto.*;
-import com.poteviohealth.cgp.statistics.model.outdto.DishesOrderWebOutDTO;
-import com.poteviohealth.cgp.statistics.model.outdto.GoldSendExcelDTO;
-import com.poteviohealth.cgp.statistics.model.outdto.OrderCostWebOutDTO;
-import com.poteviohealth.cgp.statistics.model.outdto.OrderExcelDTO;
+import com.poteviohealth.cgp.statistics.model.outdto.*;
 
 import java.util.List;
 
@@ -62,11 +59,17 @@ public interface IOrderService extends IBaseService<Order> {
      */
     List<MemberPlanDTO> pageCardExcel(MemberPlanPageDTO dto);
 
-
     /**
      * excel导出
      * @param page
      * @return
      */
     List<GoldSendExcelDTO> excelGoldSendList(GoldSendPage page);
+
+    /**
+     * excel导出
+     * @param page
+     * @return
+     */
+    List<GoldSendBankExcelDTO> excelGoldSendBankList(GoldSendPage page);
 }

+ 71 - 45
src/main/java/com/poteviohealth/cgp/statistics/service/impl/OrderServiceImpl.java

@@ -319,60 +319,87 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, Order> implem
     @Override
     public List<GoldSendExcelDTO> excelGoldSendList(GoldSendPage vo) {
         try {
-            QueryWrapper queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("d.operator_id", TokenContext.cureOperatorId());
-            if(StringUtils.isNotEmpty(vo.getSendTime())){
-                queryWrapper.eq("d.send_time", vo.getSendTime());
-            }
-            if(StringUtils.isNotEmpty(vo.getExpectTime())){
-                queryWrapper.eq("d.expect_time", vo.getExpectTime());
-            }
-            if(StringUtils.isNotEmpty(vo.getIdNumber())){
-                queryWrapper.eq("d.id_number", vo.getIdNumber());
-            }
-            if(StringUtils.isNotEmpty(vo.getName())){
-                queryWrapper.like("d.name", vo.getName());
-            }
-            if(vo.getGoldType() != null){
-                queryWrapper.eq("d.gold_type", vo.getGoldType());
-            }
-            if(vo.getSendType() != null){
-                queryWrapper.eq("d.send_type", vo.getSendType());
-            }
-            if(vo.getIsDelete() != null){
-                queryWrapper.eq("d.is_delete", vo.getIsDelete());
+            QueryWrapper queryWrapper = getQueryWrapper(vo);
+            int  count = baseMapper.goldSendListSize(queryWrapper,dbName);
+            //每页10000条,计算总页数
+            int maxPage = (int) Math.ceil(count/10000.0);
+            int start = 0;
+            LinkedList<GoldSendExcelDTO> list = Lists.newLinkedList();
+            for (int i = 0; i < maxPage; i++) {
+                LinkedList<GoldSendExcelDTO> findList = baseMapper.goldSendList(queryWrapper,dbName,start);
+                start = findList.getLast().getId();
+                list.addAll(findList);
             }
+            return list;
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new BuilderException("数据导出失败,请重新操作");
+        }
 
-            if(vo.getCityId() != null){
-                queryWrapper.eq("d.city_id", vo.getCityId());
-            }else if(TokenContext.cureWebUser().getAuthorities().contains("11") && TokenContext.cureWebUser().getAreaId() != null){
-                queryWrapper.eq("d.city_id", TokenContext.cureWebUser().getAreaId());
-            }
+    }
 
-            if(vo.getCountryId() != null){
-                queryWrapper.eq("d.country_id", vo.getCountryId());
-            }else if(TokenContext.cureWebUser().getAuthorities().contains("12") && TokenContext.cureWebUser().getAreaId() != null){
-                queryWrapper.eq("d.country_id", TokenContext.cureWebUser().getAreaId());
-            }
+    private QueryWrapper getQueryWrapper(GoldSendPage vo) {
+        QueryWrapper queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("d.operator_id", TokenContext.cureOperatorId());
+        if(StringUtils.isNotEmpty(vo.getSendTime())){
+            queryWrapper.eq("d.send_time", vo.getSendTime());
+        }
+        if(StringUtils.isNotEmpty(vo.getExpectTime())){
+            queryWrapper.eq("d.expect_time", vo.getExpectTime());
+        }
+        if(StringUtils.isNotEmpty(vo.getIdNumber())){
+            queryWrapper.eq("d.id_number", vo.getIdNumber());
+        }
+        if(StringUtils.isNotEmpty(vo.getName())){
+            queryWrapper.like("d.name", vo.getName());
+        }
+        if(vo.getGoldType() != null){
+            queryWrapper.eq("d.gold_type", vo.getGoldType());
+        }
+        if(vo.getSendType() != null){
+            queryWrapper.eq("d.send_type", vo.getSendType());
+        }
+        if(vo.getIsDelete() != null){
+            queryWrapper.eq("d.is_delete", vo.getIsDelete());
+        }
 
-            if(vo.getStreetId() != null){
-                queryWrapper.eq("d.street_id", vo.getStreetId());
-            }else if(TokenContext.cureWebUser().getAuthorities().contains("10") && TokenContext.cureWebUser().getAreaId() != null){
-                queryWrapper.eq("d.street_id", TokenContext.cureWebUser().getAreaId());
-            }
+        if(vo.getCityId() != null){
+            queryWrapper.eq("d.city_id", vo.getCityId());
+        }else if(TokenContext.cureWebUser().getAuthorities().contains("11") && TokenContext.cureWebUser().getAreaId() != null){
+            queryWrapper.eq("d.city_id", TokenContext.cureWebUser().getAreaId());
+        }
 
-            if(vo.getCommunityId() != null){
-                queryWrapper.eq("d.community_id", vo.getCommunityId());
-            }else if(TokenContext.cureWebUser().getAuthorities().contains("9") && TokenContext.cureWebUser().getAreaId() != null){
-                queryWrapper.eq("d.community_id", TokenContext.cureWebUser().getAreaId());
-            }
+        if(vo.getCountryId() != null){
+            queryWrapper.eq("d.country_id", vo.getCountryId());
+        }else if(TokenContext.cureWebUser().getAuthorities().contains("12") && TokenContext.cureWebUser().getAreaId() != null){
+            queryWrapper.eq("d.country_id", TokenContext.cureWebUser().getAreaId());
+        }
+
+        if(vo.getStreetId() != null){
+            queryWrapper.eq("d.street_id", vo.getStreetId());
+        }else if(TokenContext.cureWebUser().getAuthorities().contains("10") && TokenContext.cureWebUser().getAreaId() != null){
+            queryWrapper.eq("d.street_id", TokenContext.cureWebUser().getAreaId());
+        }
+
+        if(vo.getCommunityId() != null){
+            queryWrapper.eq("d.community_id", vo.getCommunityId());
+        }else if(TokenContext.cureWebUser().getAuthorities().contains("9") && TokenContext.cureWebUser().getAreaId() != null){
+            queryWrapper.eq("d.community_id", TokenContext.cureWebUser().getAreaId());
+        }
+        return queryWrapper;
+    }
+
+    @Override
+    public List<GoldSendBankExcelDTO> excelGoldSendBankList(GoldSendPage page) {
+        try {
+            QueryWrapper queryWrapper = getQueryWrapper(page);
             int  count = baseMapper.goldSendListSize(queryWrapper,dbName);
             //每页10000条,计算总页数
             int maxPage = (int) Math.ceil(count/10000.0);
             int start = 0;
-            LinkedList<GoldSendExcelDTO> list = Lists.newLinkedList();
+            LinkedList<GoldSendBankExcelDTO> list = Lists.newLinkedList();
             for (int i = 0; i < maxPage; i++) {
-                LinkedList<GoldSendExcelDTO> findList = baseMapper.goldSendList(queryWrapper,dbName,start);
+                LinkedList<GoldSendBankExcelDTO> findList = baseMapper.goldSendBankList(queryWrapper,dbName,start);
                 start = findList.getLast().getId();
                 list.addAll(findList);
             }
@@ -381,7 +408,6 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, Order> implem
             e.printStackTrace();
             throw new BuilderException("数据导出失败,请重新操作");
         }
-
     }
 
     private QueryWrapper cardQueryWrapper(MemberPlanPageDTO dto){

BIN
src/main/resources/excel/goldSendBank.xlsx


+ 11 - 0
src/main/resources/mapper/statistics/OrderMapper.xml

@@ -535,4 +535,15 @@
         order by d.id
         limit 10000
     </select>
+
+    <select id="goldSendBankList" resultType="com.poteviohealth.cgp.statistics.model.outdto.GoldSendBankExcelDTO">
+        select d.id,d.name,d.id_number,'1' as idNumberType,TRUNCATE(d.money/100,2) as moneyStr,d.area_code,d.link_mobile,
+               d.now_address,d.bank_code,d.bank_card,d.bank_holder
+        from ${dbName}_customer.c_gold_send d
+        where d.yn = 0
+          and d.id > #{start}
+          and  ${ew.sqlSegment}
+        order by d.id
+            limit 10000
+    </select>
 </mapper>