Просмотр исходного кода

1、修改银行缴费设置
2、修改缴费模板导入及删除逻辑
3、修改管理端缴费条件查询金额异常问题

Bingo 4 лет назад
Родитель
Сommit
ebcbc378df
14 измененных файлов с 264 добавлено и 366 удалено
  1. 13 63
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/BankDetailController.java
  2. 0 48
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/BankItemDetailController.java
  3. 19 14
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayOrderController.java
  4. 87 72
      src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoController.java
  5. 25 8
      src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoImportListener.java
  6. 24 3
      src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoWaterImportListener.java
  7. 2 2
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayOrderService.java
  8. 2 6
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayableInfoService.java
  9. 7 7
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayableInfoWaterService.java
  10. 27 34
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderServiceImpl.java
  11. 12 90
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoServiceImpl.java
  12. 35 16
      src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoWaterServiceImpl.java
  13. 1 3
      src/main/java/com/chuanghai/smartschool/tuitionpayment/to/PayOrderQueryTO.java
  14. 10 0
      src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/StudentNoVO.java

+ 13 - 63
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/BankDetailController.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
 import com.chuanghai.smartschool.tuitionpayment.entity.BankDetail;
 import com.chuanghai.smartschool.tuitionpayment.service.BankDetailService;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -67,72 +66,23 @@ public class BankDetailController {
 
 
 //    /**
-//     * 根据cardNumber 查询用户所交的项目及时间
-//     *
-//     * @param itemName
+//     * 通过银行的门店+卡号查询缴费明细
+//     * @param bankStoreCard
 //     * @return
 //     */
-//    @GetMapping("queryBankDetail")
-//    public CommonResult<List<BankDetailListVo>> queryBankDetail(String itemName) {
-//
-//        List<BankDetailListVo> BankDetailListVoList = new ArrayList<>();
+//    @GetMapping("queryBankDetailInSql")
+//    public CommonResult<T> queryBankDetailInSql(String bankStoreCard, String itemName) {
+//        String bankDetailStr = "";
 //        QueryWrapper<BankDetail> wrapper = new QueryWrapper<>();
-//        wrapper.eq(StringUtils.hasText(itemName), "item_name", itemName);
-//        List<BankDetail> bankDetailList = bankDetailService.list(wrapper);
-//        bankDetailList.forEach(bankDetail -> {
-//            BankDetailListVo bankDetailListVo = new BankDetailListVo();
-//            bankDetailListVo.setId(bankDetail.getId());
-//            bankDetailListVo.setLabel(bankDetail.getBankName());
-//            List<BankVO> bankVOS = queryBankCard(itemName, bankDetail.getBankName(), bankDetail.getId());
-//            bankDetailListVo.setChildren(bankVOS);
-//            BankDetailListVoList.add(bankDetailListVo);
-//
-//        });
-//        List uniqueStr = BankDetailListVoList.stream().distinct().collect(Collectors.toList());
-//        return CommonResult.ok().setResult(uniqueStr);
-//    }
-//
-//
-//    /**
-//     * 通过缴费项目查询银行下面的门店
-//     *
-//     * @param itemName
-//     * @return
-//     */
-//    @GetMapping("queryBankCard")
-//    public List<BankVO> queryBankCard(@RequestParam("itemName") String itemName, String bankName, String id) {
-//        QueryWrapper<BankDetail> wrapper = new QueryWrapper<>();
-//        List<BankVO> bankVOList = new ArrayList<>();
-//        wrapper.eq(StringUtils.hasText(itemName), "item_name", itemName)
-//                .eq("bank_name", bankName);
-//        List<BankDetail> bankDetailList = bankDetailService.list(wrapper);
-//        for (int i = 0; i < bankDetailList.size(); i++) {
-//            BankVO bankVO = new BankVO();
-//            bankVO.setId(id + i);
-//            bankVO.setLabel(bankDetailList.get(i).getBankStoreName() + "(" + bankDetailList.get(i).getBankCardNumber() + ")");
-//            bankVOList.add(bankVO);
+//        wrapper.eq("item_name", itemName);
+//        List<BankDetail> list = bankDetailService.list(wrapper);
+//        for (int i = 0; i < list.size(); i++) {
+//            String storeCard = list.get(i).getBankStoreName() + "(" + list.get(i).getBankCardNumber() + ")";
+//            if (storeCard.equals(bankStoreCard)) {
+//                bankDetailStr = list.get(i).getBankDetailStr();
+//            }
 //        }
-//        return bankVOList;
+//        return CommonResult.ok().setResult(bankDetailStr);
 //    }
 
-    /**
-     * 通过银行的门店+卡号查询缴费明细
-     * @param bankStoreCard
-     * @return
-     */
-    @GetMapping("queryBankDetailInSql")
-    public CommonResult<T> queryBankDetailInSql(String bankStoreCard, String itemName) {
-        String bankDetailStr = "";
-        QueryWrapper<BankDetail> wrapper = new QueryWrapper<>();
-        wrapper.eq("item_name", itemName);
-        List<BankDetail> list = bankDetailService.list(wrapper);
-        for (int i = 0; i < list.size(); i++) {
-            String storeCard = list.get(i).getBankStoreName() + "(" + list.get(i).getBankCardNumber() + ")";
-            if (storeCard.equals(bankStoreCard)) {
-                bankDetailStr = list.get(i).getBankDetailStr();
-            }
-        }
-        return CommonResult.ok().setResult(bankDetailStr);
-    }
-
 }

+ 0 - 48
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/BankItemDetailController.java

@@ -29,52 +29,6 @@ public class BankItemDetailController {
     @Autowired
     private BankService bankService;
 
-//    /**
-//     * 更新银行缴费明细
-//     *
-//     * @param jsonObject
-//     * @return
-//     */
-//    @PostMapping("saveOrUpdateBankDetail")
-//    public CommonResult<T> saveBankDetail(@RequestBody JSONObject jsonObject) {
-//        boolean flag = Boolean.FALSE;
-//        String itemName = jsonObject.get("itemName").toString();
-//        JSONArray jsonArr = jsonObject.getJSONArray("list");
-//
-//        for (int i = 0; i < jsonArr.size(); i++) {
-//            String bankId = "";
-//            String detail = "";
-//            String vo = jsonArr.get(i).toString().substring(1, jsonArr.get(i).toString().length() - 1);
-//            String[] split = vo.split(",");
-//            for (int m = 0; m < split.length; m++) {
-//                if (split[m].split("=")[0].contains("bankId")) {
-//                    bankId = String.valueOf(split[m].split("=")[1]);
-//                }
-//                if (split[m].split("=")[0].contains("detail")) {
-//                    detail = String.valueOf(split[m].split("=")[1]);
-//                }
-//            }
-//            QueryWrapper<BankItemDetail> bankWrapper = new QueryWrapper<>();
-//            bankWrapper.eq("item_name", itemName)
-//                    .eq("bank_id", bankId);
-//            BankItemDetail one = bankItemDetailService.getOne(bankWrapper);
-//            if (one == null) {
-//                BankItemDetail bankItemDetail = new BankItemDetail();
-//                bankItemDetail.setItemName(itemName);
-//                bankItemDetail.setBankDetailStr(detail);
-//                bankItemDetail.setBankId(Integer.parseInt(bankId));
-//                flag = bankItemDetailService.save(bankItemDetail);
-//            }else {
-//                one.setBankDetailStr(detail);
-//                flag = bankItemDetailService.updateById(one);
-//            }
-//
-//
-//        }
-//        return CommonResult.ok().setResult(flag);
-//    }
-
-
 
     /**
      * 更新银行缴费明细
@@ -148,10 +102,8 @@ public class BankItemDetailController {
         List<BankItemDetail> itemDetails = bankItemDetailService.list(wrapper);
         List<BankDetailListVO> bankDetailListVOS = new ArrayList<>();
         for (BankItemDetail itemDetail : itemDetails) {
-            System.out.println(itemDetail);
             BankDetailListVO bankDetailListVO = new BankDetailListVO();
             Bank bank = bankService.getById(itemDetail.getBankId());
-            System.out.println(bank);
 
             String bankName = bank.getBankName();
             String detailStr = itemDetail.getBankDetailStr();

+ 19 - 14
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayOrderController.java

@@ -143,18 +143,6 @@ public class PayOrderController {
         }
         PageUtils page = payOrderService.queryPage(queryTO, pageParam);
 
-//        page.getList().forEach(payOrder -> {
-//            PayOrderEntity payOrderEntity = (PayOrderEntity) payOrder;
-//            String payItem = payOrderEntity.getPayItem();
-//            if (payOrderEntity.getPayMethod().equals("1")){
-//                payOrderEntity.setPayBank("建设银行");
-//            }else {
-//                payOrderEntity.setPayBank("农商银行");
-//            }
-//            this.payOrderService.updateById(payOrderEntity);
-//
-//        });
-
         String amountCount = payOrderService.queryPayOrderAmount(queryTO);
 
         PayOrderListVO payOrderListVO = new PayOrderListVO();
@@ -223,6 +211,15 @@ public class PayOrderController {
     @RequestMapping("downloadResult")
     public void downloadResult(PayOrderQueryTO queryTO,
                                HttpServletResponse response) throws IOException {
+        List<String> downIDs = new ArrayList<>();
+        String downIds = queryTO.getDownIds();
+        if (downIds != null && !downIds.equals("")) {
+            String[] split = downIds.split("/");
+            for (int m = 0; m < split.length; m++) {
+                downIDs.add(split[m]);
+            }
+        }
+
         try {
             String flag = queryTO.getFlag();
             String createDateStr = queryTO.getCreateDateStr();
@@ -235,7 +232,7 @@ public class PayOrderController {
                     throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询时间不能为空");
                 }
             }
-            payOrderService.downloadResult(response, queryTO);
+            payOrderService.downloadResult(response, queryTO, downIDs);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -253,6 +250,14 @@ public class PayOrderController {
     public void exportTxt(PayOrderQueryTO queryTO,
                           HttpServletResponse response) throws IOException {
         try {
+            List<String> downIDs = new ArrayList<>();
+            String downIds = queryTO.getDownIds();
+            if (downIds != null && !downIds.equals("")) {
+                String[] split = downIds.split("/");
+                for (int m = 0; m < split.length; m++) {
+                    downIDs.add(split[m]);
+                }
+            }
             if (!queryTO.getItemName().equals("学杂费")) {
                 throw new RRException(BizCodeEnume.PAY_ITEM_NOT_SUPPORT, "该项目不支持导出TXT文件");
             }
@@ -267,7 +272,7 @@ public class PayOrderController {
                     throw new RRException(BizCodeEnume.PARAMETER_ERROR, "查询时间不能为空");
                 }
             }
-            payOrderService.exportOrderTxt(response, queryTO);
+            payOrderService.exportOrderTxt(response, queryTO, downIDs);
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 87 - 72
src/main/java/com/chuanghai/smartschool/tuitionpayment/controller/PayableInfoController.java

@@ -11,10 +11,12 @@ import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.PageParam;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
+import com.chuanghai.smartschool.tuitionpayment.entity.BankItemDetail;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderEntity;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
 import com.chuanghai.smartschool.tuitionpayment.listener.aliexcel.MyStudentNoImportListener;
+import com.chuanghai.smartschool.tuitionpayment.service.BankItemDetailService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayOrderService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
@@ -72,8 +74,7 @@ public class PayableInfoController {
     @Autowired
     private PayItemDetailController payItemDetailController;
     @Autowired
-    private WechatController wechatController;
-
+    private BankItemDetailService bankItemDetailService;
 
 
     /**
@@ -152,33 +153,11 @@ public class PayableInfoController {
         }
         return CommonResult.fail();
     }
-//
-//    /**
-//     * 根据学号和学生姓名获取缴费信息
-//     *
-//     * @param cardNumber  当前登录用户cardNumber
-//     * @param studentNo   学号,新生可用身份证号码代替学号
-//     * @param studentName 学生姓名
-//     * @return
-//     */
-//    @GetMapping("payableInfo/{studentNo}/{studentName}")
-//    public CommonResult< List<PayableInfoEntity>> getPayableInfoByCardNumberAndName(@RequestHeader("card_number") String cardNumber,
-//                                                                                @PathVariable("studentNo") String studentNo,
-//                                                                                @PathVariable("studentName") String studentName) {
-//        List<PayableInfoEntity> info = payableInfoService.getPayableInfoByStudentNoAndName(studentNo, studentName);
-//        return CommonResult.ok().setResult(info);
-//    }
+
 
     /**
-     * 学生应缴列表
+     * 缴费列表【管理端】
      *
-     * @param adminToken //     * @param keyword     搜索关键字
-     *                   //     * @param payStatus   订单状态
-     *                   //     * @param createTime  创建时间
-     *                   //     * @param payTime     支付时间
-     *                   //     * @param pageParam   分页参数
-     *                   //     * @param payItemType 缴费项目支付状态
-     *                   //     * @param itemName    缴费项目名
      * @return
      */
     @AdminLoginCheck
@@ -191,33 +170,24 @@ public class PayableInfoController {
         if (queryTO.getItemName().equals("水费缴纳")) {
             page = payableInfoWaterService.queryPage(queryTO, pageParam);
             totalCount = page.getTotalCount();
-
-            List list = page.getList();
-            for (int i = 0; i < list.size(); i++) {
-                PayableInfoWaterEntity payableInfoWaterEntity = (PayableInfoWaterEntity) list.get(i);
-                totalAmount = totalAmount.add(payableInfoWaterEntity.getRealPayAmount());
-            }
+            String queryAmount = payableInfoWaterService.queryAmountWater(queryTO);
+            totalAmount = new BigDecimal(queryAmount.split("-")[0]);
 
         } else {
             page = payableInfoService.queryPage(queryTO, pageParam);
+            String queryAmount = payableInfoService.queryAmount(queryTO);
+
+            totalAmount = new BigDecimal(queryAmount.split("-")[0]);
             totalCount = page.getTotalCount();
-            List list = page.getList();
-            for (int i = 0; i < list.size(); i++) {
-                PayableInfoEntity payableInfoEntity = (PayableInfoEntity) list.get(i);
-                totalAmount = totalAmount.add(payableInfoEntity.getRealPayAmount());
-            }
+
+
         }
 
         PayableInfoListVO payableInfoListVO = new PayableInfoListVO();
         payableInfoListVO.setPage(page);
         payableInfoListVO.setTotalCount(totalCount);
         payableInfoListVO.setTotalAmount(totalAmount);
-        //如果选择支付状态查询对应状态的金额
-        if (StringUtils.hasText(queryTO.getPayStatus())) {
-            String amount = payableInfoService.queryAmount(queryTO);
-            payableInfoListVO.setTotalCount(Integer.parseInt(amount.split("-")[1]));
-            payableInfoListVO.setTotalAmount(new BigDecimal(amount.split("-")[0]).setScale(2, RoundingMode.HALF_UP));
-        }
+
         return CommonResult.ok().setResult(payableInfoListVO);
     }
 
@@ -232,10 +202,19 @@ public class PayableInfoController {
     //@AdminLoginCheck
     public void exportTxt(PayOrderQueryTO queryTO,
                           HttpServletResponse response) throws IOException {
+        List<String> downIDs = new ArrayList<>();
+        String downIds = queryTO.getDownIds();
+        if (downIds != null && !downIds.equals("")) {
+            String[] split = downIds.split("/");
+            for (int m = 0; m < split.length; m++) {
+                downIDs.add(split[m]);
+            }
+        }
+
         if (queryTO.getItemName().equals("水费缴纳")) {
-            payableInfoWaterService.exportTxt(response, queryTO);
+            payableInfoWaterService.exportTxt(response, queryTO, downIDs);
         } else {
-            payableInfoService.exportTxt(response, queryTO);
+            payableInfoService.exportTxt(response, queryTO, downIDs);
         }
     }
 
@@ -250,10 +229,19 @@ public class PayableInfoController {
     public void downloadResult(PayOrderQueryTO queryTO,
                                HttpServletResponse response) throws IOException {
 
+        List<String> downIDs = new ArrayList<>();
+        String downIds = queryTO.getDownIds();
+        if (downIds != null && !downIds.equals("")) {
+            String[] split = downIds.split("/");
+            for (int m = 0; m < split.length; m++) {
+                downIDs.add(split[m]);
+            }
+        }
+
         if (queryTO.getItemName().equals("水费缴纳")) {
-            payableInfoWaterService.downloadResult(response, queryTO);
+            payableInfoWaterService.downloadResult(response, queryTO, downIDs);
         } else {
-            payableInfoService.downloadResult(response, queryTO);
+            payableInfoService.downloadResult(response, queryTO, downIDs);
         }
 
     }
@@ -328,7 +316,7 @@ public class PayableInfoController {
             String[] split = payableInfoEntity.getNotPayDetail().split("/");
             payableInfoEntity.setNotPaySize(split.length);
 
-          //  payableInfoEntity.setPayableAccount(payableInfoService.queryPayItemByName(payableInfoEntity.getPaymentItem()));
+            //  payableInfoEntity.setPayableAccount(payableInfoService.queryPayItemByName(payableInfoEntity.getPaymentItem()));
             objectList.add(payableInfoEntity);
         });
         payableInfoService.updateBatchById(objectList);
@@ -396,9 +384,9 @@ public class PayableInfoController {
         }
 
         MyStudentNoImportListener studentNoImportListener = new MyStudentNoImportListener();
-        EasyExcel.read(file.getInputStream(), StudentNoVO.class, studentNoImportListener).sheet().doRead();
+        EasyExcel.read(file.getInputStream(), StudentNoVO.class, studentNoImportListener).sheet().headRowNumber(4).doRead();
         List<StudentNoVO> studentNos = studentNoImportListener.getStudentNoList();
-
+        studentNos.remove(studentNos.size() - 1);
         List<DeletePayableInfoTO> alreadyPayList = new ArrayList<>();
         studentNos.forEach(studentNo -> {
             StudentNoVO student = studentNo;
@@ -406,33 +394,35 @@ public class PayableInfoController {
                 QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
                 wrapper.eq(student.getStudentNo() != null, "student_no", student.getStudentNo());
                 wrapper.eq(student.getPaymentItem() != null, "payment_item", student.getPaymentItem());
+                wrapper.eq(student.getStudentName() != null, "student_name", student.getStudentName());
+                wrapper.eq(student.getPayMonth() != null, "pay_month", student.getPayMonth());
 
                 PayableInfoWaterEntity one = payableInfoWaterService.getOne(wrapper);
                 if (one != null) {
                     boolean alreadyPay = payOrderService.isAlreadyPay(one.getStudentNo(), one.getPaymentItem(), one.getPayMonth(), null, null, null);
                     if (alreadyPay) {
-                        DeletePayableInfoTO to = new DeletePayableInfoTO();
-                        BeanUtils.copyProperties(one, to);
-                        to.setMsg("学生已缴费,删除失败!");
-                        alreadyPayList.add(to);
+                        throw new RRException(BizCodeEnume.DATA_IS_EXIST, "删除失败," + student.getStudentName() + " "
+                                + student.getStudentNo() + " 已完成 " + student.getPayMonth() + " 时间段的 " + student.getPaymentItem() + " 的缴费,请核对完毕之后重新导入删除");
+                    } else {
+                        payableInfoService.removeById(one);
                     }
-                    payableInfoWaterService.removeById(one);
                 }
             } else {
                 QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
                 wrapper.eq(student.getStudentNo() != null, "student_no", student.getStudentNo());
                 wrapper.eq(student.getPaymentItem() != null, "payment_item", student.getPaymentItem());
+                wrapper.eq(student.getStudentName() != null, "student_name", student.getStudentName());
+                wrapper.eq(student.getPayMonth() != null, "years", student.getPayMonth());
 
                 PayableInfoEntity one = payableInfoService.getOne(wrapper);
                 if (one != null) {
-                    boolean alreadyPay = payOrderService.isAlreadyPay(one.getStudentNo(), one.getPaymentItem(), one.getYears(), one.getNotPaySize(), null, null);
+                    boolean alreadyPay = payOrderService.isAlreadyPay(one.getStudentNo(), one.getPaymentItem(), one.getYears(), null, null, null);
                     if (alreadyPay) {
-                        DeletePayableInfoTO to = new DeletePayableInfoTO();
-                        BeanUtils.copyProperties(one, to);
-                        to.setMsg("学生已缴费,删除失败!");
-                        alreadyPayList.add(to);
+                        throw new RRException(BizCodeEnume.DATA_IS_EXIST, "删除失败," + student.getStudentName() + " "
+                                + student.getStudentNo() + " 已完成 " + student.getPayMonth() + " 时间段的 " + student.getPaymentItem() + " 的缴费,请核对完毕之后重新导入删除");
+                    } else {
+                        payableInfoService.removeById(one);
                     }
-                    payableInfoService.removeById(one);
                 }
             }
 
@@ -557,7 +547,6 @@ public class PayableInfoController {
     }
 
 
-
     /**
      * 查询用户的基本信息
      *
@@ -768,19 +757,22 @@ public class PayableInfoController {
 
     /**
      * 通过缴费项目查询项目的所有缴费明细
+     *
      * @param itemName
      * @return
      */
     @GetMapping("queryInfoAllDetailByItem")
-    public CommonResult<T> queryInfoAllDetailByItem( @RequestParam("itemName") String itemName){
+    public CommonResult<T> queryInfoAllDetailByItem(@RequestParam("itemName") String itemName) {
+        String realDetailStr = "";
         String detailStr = "";
-        if (itemName.equals("水费缴纳")){
+        if (itemName.equals("水费缴纳")) {
             detailStr = itemName;
-        }else {
+        } else {
             QueryWrapper<PayableInfoEntity> info = new QueryWrapper<>();
 
             info.eq("payment_item", itemName)
-                .last("limit 1");
+                    .orderByDesc("pay_create_time")
+                    .last("limit 1");
             PayableInfoEntity one = payableInfoService.getOne(info);
             if (one == null) {
                 return CommonResult.ok().setResult("该项目暂无缴费明细");
@@ -790,25 +782,48 @@ public class PayableInfoController {
             if (one.getNotMustMoney() != null && !one.getNotMustMoney().equals("")) {
                 String[] split = one.getNotMustMoney().split("/");
                 for (int i = 0; i < split.length; i++) {
-                    notMustMoney += split[i].split(":")[0] +"/";
+                    notMustMoney += split[i].split(":")[0] + "/";
                 }
             }
             if (one.getMustMoney() != null) {
                 String[] split = one.getMustMoney().split("/");
                 for (int i = 0; i < split.length; i++) {
-                    mustMoney += split[i].split(":")[0] +"/";
+                    mustMoney += split[i].split(":")[0] + "/";
                 }
             }
             if (notMustMoney.equals("")) {
-                mustMoney = mustMoney.endsWith("/") == true ? mustMoney.substring(0,mustMoney.length()-1) :mustMoney;
+                mustMoney = mustMoney.endsWith("/") == true ? mustMoney.substring(0, mustMoney.length() - 1) : mustMoney;
                 detailStr = mustMoney;
-            }else {
-                notMustMoney = notMustMoney.endsWith("/") == true ? notMustMoney.substring(0,notMustMoney.length()-1) :notMustMoney;
+            } else {
+                notMustMoney = notMustMoney.endsWith("/") == true ? notMustMoney.substring(0, notMustMoney.length() - 1) : notMustMoney;
                 detailStr = mustMoney + notMustMoney;
             }
 
+            QueryWrapper<BankItemDetail> bankWrapper = new QueryWrapper<>();
+            bankWrapper.eq("item_name", itemName);
+            List<BankItemDetail> bankList = bankItemDetailService.list(bankWrapper);
+            String bankDetailStr = "";
+            if (bankList.size() > 0) {
+                for (int m = 0; m < bankList.size(); m++) {
+                    bankDetailStr += bankList.get(m).getBankDetailStr() + "/";
+                }
+            }
+            bankDetailStr = bankDetailStr.endsWith("/") == true ? bankDetailStr.substring(0, bankDetailStr.length() - 1) : bankDetailStr;
+            //已经关联的明细
+            String[] split = bankDetailStr.split("/");
+            List<String> payDetailList = new ArrayList<>(Arrays.asList(split));
+            //全部明细
+            String[] detailStrArr = detailStr.split("/");
+            List<String> allDetailList = new ArrayList<>(Arrays.asList(detailStrArr));
+            allDetailList.removeAll(payDetailList);
+            if (allDetailList.size() > 0) {
+                for (int a = 0; a < allDetailList.size(); a++) {
+                    realDetailStr += allDetailList.get(a) + "/";
+                }
+            }
+            realDetailStr = realDetailStr.endsWith("/") == true ? realDetailStr.substring(0, realDetailStr.length() - 1) : realDetailStr;
         }
 
-        return CommonResult.ok().setResult(detailStr);
+        return CommonResult.ok().setResult(realDetailStr);
     }
 }

+ 25 - 8
src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoImportListener.java

@@ -3,6 +3,8 @@ package com.chuanghai.smartschool.tuitionpayment.listener.aliexcel;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.chuanghai.smartschool.tuitionpayment.common.exception.BizCodeEnume;
+import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
 import org.springframework.transaction.annotation.Transactional;
@@ -45,7 +47,13 @@ public class MyPayableInfoImportListener extends AnalysisEventListener<PayableIn
 
     private void inertData() {
         if (list.size() > 0) {
-            drop(list.get(0).getPaymentItem());
+            list.forEach(info->{
+                PayableInfoEntity infoEntity = query(info.getPaymentItem(), info.getStudentNo(), info.getYears(), info.getStudentName());
+                if (infoEntity != null){
+                    throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败,"+info.getStudentName()+" "
+                            +info.getStudentNo()+" 已存在 "+info.getYears()+" 时间段的 "+info.getPaymentItem()+" 缴费信息,请核对完毕之后重新导入");
+                }
+            });
         }
         payableInfoService.saveBatch(list);
 
@@ -58,24 +66,33 @@ public class MyPayableInfoImportListener extends AnalysisEventListener<PayableIn
      * @param itemName 缴费项目
      */
     public void drop(String itemName) {
-        System.out.println(itemName);
         QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
         wrapper.eq("payment_item", itemName);
         List<PayableInfoEntity> infoEntityList = payableInfoService.list(wrapper);
-        infoEntityList.forEach(ss->{
-            System.out.println(ss);
-        });
         if (infoEntityList.size() > 0){
             List<Long> idList = infoEntityList.stream().map(PayableInfoEntity::getId).collect(Collectors.toList());
-            idList.forEach(dd->{
-                System.out.println(dd);
-            });
             boolean b = payableInfoService.removeByIds(idList);
             System.out.println(b);
         }
 
     }
 
+    /**
+     *  查询之前的表数据是否与导入的数据相同
+     *
+     * @param itemName 缴费项目
+     */
+    public PayableInfoEntity query(String itemName, String studentNo, String years ,String studentName) {
+        QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("payment_item", itemName)
+                .eq("student_no", studentNo)
+                .eq("years", years)
+                .eq("student_name", studentName);
+        PayableInfoEntity one = payableInfoService.getOne(wrapper);
+        return one;
+
+    }
+
 
 
 }

+ 24 - 3
src/main/java/com/chuanghai/smartschool/tuitionpayment/listener/aliexcel/MyPayableInfoWaterImportListener.java

@@ -3,9 +3,9 @@ package com.chuanghai.smartschool.tuitionpayment.listener.aliexcel;
 import com.alibaba.excel.context.AnalysisContext;
 import com.alibaba.excel.event.AnalysisEventListener;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
+import com.chuanghai.smartschool.tuitionpayment.common.exception.BizCodeEnume;
+import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
-import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -48,7 +48,13 @@ public class MyPayableInfoWaterImportListener extends AnalysisEventListener<Paya
 
     private void inertData() {
         if (list.size() > 0) {
-            drop(list.get(0).getPaymentItem());
+            list.forEach(info->{
+                PayableInfoWaterEntity waterEntity = query(info.getPaymentItem(), info.getStudentNo(), info.getPayMonth(), info.getStudentName());
+                if (waterEntity != null){
+                    throw new RRException(BizCodeEnume.DATA_IS_EXIST, "导入失败,"+info.getStudentName()+" "
+                            +info.getStudentNo()+" 已存在 "+info.getPayMonth()+" 时间段的 "+info.getPaymentItem()+" 缴费信息,请核对完毕之后重新导入");
+                }
+            });
         }
         payableInfoWaterService.saveBatch(list);
         list.clear();
@@ -69,4 +75,19 @@ public class MyPayableInfoWaterImportListener extends AnalysisEventListener<Paya
         }
 
     }
+    /**
+     *  查询之前的表数据是否与导入的数据相同
+     *
+     * @param itemName 缴费项目
+     */
+    public PayableInfoWaterEntity query(String itemName, String studentNo, String years , String studentName) {
+        QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq("payment_item", itemName)
+                .eq("student_no", studentNo)
+                .eq("pay_month", years)
+                .eq("student_name", studentName);
+        PayableInfoWaterEntity one = payableInfoWaterService.getOne(wrapper);
+        return one;
+
+    }
 }

+ 2 - 2
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayOrderService.java

@@ -54,9 +54,9 @@ public interface PayOrderService extends IService<PayOrderEntity> {
 
     BigDecimal queryCurrentPayedAmount(PayOrderQueryTO queryTO);
 
-    void downloadResult(HttpServletResponse response,PayOrderQueryTO queryTO) throws IOException;
+    void downloadResult(HttpServletResponse response,PayOrderQueryTO queryTO, List<String> downIDs) throws IOException;
 
-    void exportOrderTxt(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException;
+    void exportOrderTxt(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException;
 
     Integer queryCurrentPayedRecordNum(PayOrderQueryTO queryTO);
 

+ 2 - 6
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayableInfoService.java

@@ -22,21 +22,17 @@ public interface PayableInfoService extends IService<PayableInfoEntity> {
 
     PageUtils queryPage(PayOrderQueryTO queryTO, PageParam pageParam);
     String queryAmount( PayOrderQueryTO queryTO);
-   // PageUtils queryPage(PayOrderQueryTO queryTO, PageParam pageParam);
-
- //   String queryPayItemByName(String itemName);
 
     List<PayableInfoEntity> getPayableInfoByCardNumber(String cardNumber, String studentName);
 
-  //  List<PayableInfoEntity> getPayableInfoByStudentNoAndName(String studentNo, String studentName);
 
     PayableInfoEntity getByStudentNo(String studentNo ,String itemName, String payYears);
 
     void importByExcel(MultipartFile file) throws IOException;
 
-    void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException;
+    void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException;
     void truncateTable();
-    void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException;
+    void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO , List<String> downIDs) throws IOException;
 
 }
 

+ 7 - 7
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/PayableInfoWaterService.java

@@ -3,10 +3,8 @@ package com.chuanghai.smartschool.tuitionpayment.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.PageParam;
 import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
-import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
 import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
-import com.chuanghai.smartschool.tuitionpayment.vo.StudentPayableInfoVO;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
@@ -24,17 +22,19 @@ public interface PayableInfoWaterService extends IService<PayableInfoWaterEntity
 
     void importByExcel(MultipartFile file) throws IOException;
 
-    PageUtils queryPage(PayOrderQueryTO queryTO,PageParam pageParam);
+    PageUtils queryPage(PayOrderQueryTO queryTO, PageParam pageParam);
 
-    String queryAmount(String itemName, String payItemType, String keyword,  String payStatus, String createTime, String payTime);
+    String queryAmount(String itemName, String payItemType, String keyword, String payStatus, String createTime, String payTime);
 
-    void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException;
+    String queryAmountWater(PayOrderQueryTO queryTO);
 
-    void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException;
+    void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException;
+
+    void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException;
 
     List<PayableInfoWaterEntity> getPayableInfoWaterByCardNumber(String cardNumber, String studentName);
 
-    PayableInfoWaterEntity getByStudentNo(String studentNo,String itemName,String payYear);
+    PayableInfoWaterEntity getByStudentNo(String studentNo, String itemName, String payYear);
 
 }
 

+ 27 - 34
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayOrderServiceImpl.java

@@ -165,9 +165,15 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
         wrapper.eq("pay_for_identify", studentNo);
         wrapper.eq("pay_item", itemName);
         wrapper.eq(StringUtils.hasText(payYears), "pay_year", payYears);
-        wrapper.eq("not_pay_size", notPaySize);
-        wrapper.eq("pay_detail", payDetail);
-        wrapper.eq("pay_method", payMethod);
+        if (notPaySize != null ) {
+            wrapper.eq("not_pay_size", notPaySize);
+        }
+        if (payDetail != null) {
+            wrapper.eq("pay_detail", payDetail);
+        }
+        if (payMethod != null) {
+            wrapper.eq("pay_method", payMethod);
+        }
         wrapper.eq("status", PayStatus.ALREADY_PAY.getCode());
 
         List<PayOrderEntity> payList = this.list(wrapper);
@@ -445,8 +451,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
             if (!(gradeStr.contains(String.valueOf(currentGrade)))) {
                 throw new RRException(BizCodeEnume.PAYABLE_INFO_IS_NOT_EXIT, "当前学生所在年级不允许线上缴费");
             }
-            // 获取当前支付方式
-            String currentPayMethod = payMethodSettingService.getCurrentPayMethod();
+
 
 
             PayOrderEntity payOrderEntity = new PayOrderEntity();
@@ -504,34 +509,32 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 payOrderEntity.setPayerIdentify(cardNumber1);
                 payOrderEntity.setPayForIdentify(studentNo);
                 payOrderEntity.setStatus(PayStatus.NON_PAY.getCode());
-                payOrderEntity.setPayMethod(currentPayMethod);
                 payOrderEntity.setCreateTime(LocalDateTime.now());
                 payOrderEntity.setNotPaySize(payOrderReceiveVO1.getNotPaySize());
                 payOrderEntity.setPayItem(itemName);
                 payOrderEntity.setPayYear(payYear);
                 payOrderEntity.setPayDetail(payDetial);
-
+                payOrderEntity.setPayMethod(payMethod);
                 payOrderEntity.setExceptType("1");
 
-              //  String bankCard = bankDetailController.queryBankByDeatilItem(itemName, payOrderEntity.getPayDetail());
+                String bankCard = "";
 
                 List<BankDetailListVO> bankDetailListVOS = bankItemDetailController.queryByItem(itemName);
 
                 for (int a = 0; a < bankDetailListVOS.size(); a++) {
                     Integer bankId = bankDetailListVOS.get(a).getBankId();
                     Bank bank = bankService.getById(bankId);
-                    if (payOrderEntity.getPayMethod().equals("1")) {
-                        payOrderEntity.setPayBank(bank.getBankStoreName() + " (" + bank.getBankCardNumber() + ")");
-                    }
-                    if (payOrderEntity.getPayMethod().equals("2")) {
-                        payOrderEntity.setPayBank(bank.getBankStoreName() + " (" + bank.getBankCardNumber() + ")");
+                    if (payOrderEntity.getPayMethod().equals("1") && bank.getBankName().equals("建设银行")) {
+                        bankCard = bank.getBankName() + " (" + bank.getBankCardNumber() + ")";
+                    }else if(payOrderEntity.getPayMethod().equals("2") && bank.getBankName().equals("农商银行")){
+                        bankCard = bank.getBankName() + " (" + bank.getBankCardNumber() + ")";
                     }
+
                 }
-              //  payOrderEntity.setPayBank(bankCard);
+                payOrderEntity.setPayBank(bankCard);
 
 
                 payOrderEntity.setPayOrderLoan(orderLoan);
-                payOrderEntity.setPayMethod(payOrderReceiveVO1.getPayMethod());
 
 
                 // 支付金额、被支付用户信息
@@ -612,6 +615,7 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
               检测该订单是否异常,订单异常自动发送 订单异常微校通知
               wechatController.sendException(itemName);
           */
+                System.out.println(payOrderEntity);
                 this.save(payOrderEntity);
 
 
@@ -753,22 +757,13 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
      *                 //     * @param dateStr
      */
     @Override
-    public void exportOrderTxt(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException {
-
-//        QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
-//
-//        commonWrapper(wrapper, queryTO);
-//        if (queryTO.getDownIds() != null && queryTO.getDownIds().size() > 0) {
-//            wrapper.in("order_no", queryTO.getDownIds());
-//        }
-//        wrapper.orderByDesc("finish_time").orderByDesc("create_time").orderByAsc("pay_for_identify");
-//        List<PayOrderEntity> parOrder = this.list(wrapper);
+    public void exportOrderTxt(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
         QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
 
         commonWrapper(wrapper, queryTO);
-        if (queryTO.getDownIds() != null && queryTO.getDownIds().size() > 0) {
-            wrapper.in("order_no", queryTO.getDownIds());
+        if (downIDs.size() > 0) {
+            wrapper.in("id", downIDs);
         }
         if (StringUtils.hasText(queryTO.getPayStatus())) {
             if (!(queryTO.getPayStatus().isEmpty()) && !(queryTO.getPayStatus().equals("1"))) {
@@ -809,13 +804,13 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
      * @param queryTO  查询条件
      */
     @Override
-    public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException {
+    public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
         QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
 
         commonWrapper(wrapper, queryTO);
-        if (queryTO.getDownIds() != null && queryTO.getDownIds().size() > 0) {
-            wrapper.in("order_no", queryTO.getDownIds());
+        if (downIDs.size() > 0) {
+            wrapper.in("id", downIDs);
         }
         if (StringUtils.hasText(queryTO.getPayStatus())) {
             if (!(queryTO.getPayStatus().isEmpty()) && !(queryTO.getPayStatus().equals("1"))) {
@@ -918,16 +913,14 @@ public class PayOrderServiceImpl extends ServiceImpl<PayOrderDao, PayOrderEntity
                 wrapper.eq(StringUtils.hasText(queryTO.getPayYear()), "pay_year", queryTO.getPayYear())
                         .eq(StringUtils.hasText(queryTO.getItemName()), "pay_item", queryTO.getItemName())
                         .eq(StringUtils.hasText(queryTO.getPayStatus()), "status", queryTO.getPayStatus())
-                        .select("ifnull(sum(real_pay_amount), 0) as total, ifnull(sum(pay_order_loan),0) as loan,count(id) as count");
+                        .select("ifnull(sum(now_pay_amount), 0) as total,count(id) as count");
                 List<PayOrderEntity> list = this.payOrderService.list(wrapper);
 
                 if (list.size() > 0) {
                     Map<String, Object> resultMap = this.getMap(wrapper);
                     String count = String.valueOf(resultMap.get("count"));
                     BigDecimal realPayAmount = new BigDecimal(String.valueOf(resultMap.get("total"))).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    BigDecimal orderLoan = new BigDecimal(String.valueOf(resultMap.get("loan"))).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    BigDecimal nowAmount = realPayAmount.subtract(orderLoan).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    return nowAmount + "-" + count;
+                    return realPayAmount + "-" + count;
                 }
             }
         }

+ 12 - 90
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoServiceImpl.java

@@ -13,9 +13,6 @@ import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
 import com.chuanghai.smartschool.tuitionpayment.dao.PayableInfoDao;
 import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
 import com.chuanghai.smartschool.tuitionpayment.listener.aliexcel.MyPayableInfoImportListener;
-import com.chuanghai.smartschool.tuitionpayment.service.EnablePayLimitByGradeService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayItemService;
-import com.chuanghai.smartschool.tuitionpayment.service.PayOrderService;
 import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
 import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
 import com.chuanghai.smartschool.tuitionpayment.utils.OutputTxt;
@@ -37,17 +34,10 @@ import java.util.Map;
 @Service("payableInfoService")
 public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableInfoEntity> implements PayableInfoService {
 
-    @Autowired
-    private PayOrderService payOrderService;
-
-    @Autowired
-    private PayItemService payItemService;
 
     @Autowired
     private PayableInfoService payableInfoService;
 
-    @Autowired
-    private EnablePayLimitByGradeService enablePayLimitByGradeService;
 
 
     @Override
@@ -72,25 +62,11 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
         return new PageUtils(page);
     }
 
-//    public void payableInfoWapper(){
-//        QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
-//
-//        if (StringUtils.hasText(keyword)) {
-//            wrapper.and(w -> w.like("student_no", keyword)
-//                    .or()
-//                    .like("student_name", keyword));
-//        }
-//        if (StringUtils.hasText(payStatus)) {
-//            wrapper.eq("pay_item_type", payStatus);
-//        }
-//        wrapper.apply(StringUtils.hasText(createTime), "date_format(pay_create_time, '%Y-%m-%d') = {0}", createTime);
-//        wrapper.apply(StringUtils.hasText(payTime), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", payTime);
-//
-//    }
 
     public String queryAmount(PayOrderQueryTO queryTO) {
 
         QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.hasText(queryTO.getItemName()), "payment_item", queryTO.getItemName());
         if (StringUtils.hasText(queryTO.getKeyword())) {
             wrapper.and(w -> w.like("student_no", queryTO.getKeyword())
                     .or()
@@ -99,14 +75,10 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
         if (StringUtils.hasText(queryTO.getPayStatus())) {
             wrapper.eq("pay_item_type", queryTO.getPayStatus());
         }
+        wrapper.select("ifnull(sum(real_pay_amount), 0) as total,count(id) as count");
         wrapper.apply(StringUtils.hasText(queryTO.getCreateDateStr()), "date_format(pay_create_time, '%Y-%m-%d') = {0}", queryTO.getCreateDateStr());
         wrapper.apply(StringUtils.hasText(queryTO.getPayDateStr()), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", queryTO.getPayDateStr());
 
-        if (StringUtils.hasText(queryTO.getItemName())) {
-            wrapper.eq("pay_item_type", queryTO.getPayStatus())
-                    .eq("payment_item", queryTO.getItemName())
-                    .select("ifnull(sum(real_pay_amount), 0) as total,count(id) as count");
-        }
 
         List<PayableInfoEntity> list = this.payableInfoService.list(wrapper);
         if (list.size() > 0) {
@@ -118,20 +90,6 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
         }
     }
 
-//    public String queryPayItemByName(String name) {
-//        QueryWrapper<PayItem> wapper = new QueryWrapper<>();
-//        wapper.eq("item_name", name);
-//        List<PayItem> list = payItemService.list(wapper);
-//        String itemAccount = "";
-//        if (list.size() > 0) {
-//            PayItem payItem = list.get(0);
-//            itemAccount = payItem.getItemAccount();
-//            String start = itemAccount.substring(0, 3);
-//            String end = itemAccount.substring(itemAccount.length() - 4);
-//            itemAccount = payItem.getItemBank() + " (" + start + "****" + end + ")";
-//        }
-//        return itemAccount;
-//    }
 
     /**
      * 根据学号查询用户缴费信息
@@ -151,22 +109,7 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
         return getPayableInfo(wrapper);
     }
 
-//    /**
-//     * 根据学号和学生姓名获取缴费信息
-//     *
-//     * @param studentNo   学号
-//     * @param studentName 学生姓名
-//     * @return
-//     */
-//    @Override
-//    public List<PayableInfoEntity> getPayableInfoByStudentNoAndName(String studentNo, String studentName) {
-//        // 查询用户基本的缴费信息
-//        QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper();
-//        wrapper.eq("student_no", studentNo);
-//        wrapper.eq("student_name", studentName);
-//
-//        return getPayableInfo(wrapper);
-//    }
+
 
     /**
      * 根据学号查询缴费信息
@@ -214,29 +157,18 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
      *                 //     * @param dateStr
      */
     @Override
-    public void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException {
+    public void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
         QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
         wrapper.eq(StringUtils.hasText(queryTO.getItemName()), "payment_item", queryTO.getItemName());
         wrapper.eq(StringUtils.hasText(queryTO.getPayStatus()), "pay_item_type", queryTO.getPayStatus());
         wrapper.eq(StringUtils.hasText(queryTO.getPayMethod()), "pay_method", queryTO.getPayMethod());
-        if (queryTO.getDownIds() != null && queryTO.getDownIds().size() > 0) {
-            wrapper.in("student_no", queryTO.getDownIds());
+        if (downIDs.size() > 0) {
+            wrapper.in("id", downIDs);
         }
         wrapper.apply(StringUtils.hasText(queryTO.getCreateDateStr()), "date_format(pay_create_time, '%Y-%m-%d') = {0}", queryTO.getCreateDateStr());
         wrapper.apply(StringUtils.hasText(queryTO.getPayDateStr()), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", queryTO.getPayDateStr());
-//        String flag = queryTO.getFlag();
-//        String createDateStr = queryTO.getCreateDateStr();
-//        if ((StringUtils.hasText(createDateStr))) {
-//            wrapper.apply("2".equals(flag), "date_format(pay_create_time, '%Y-%m') = {0}", createDateStr);
-//            wrapper.apply("3".equals(flag), "date_format(pay_create_time, '%Y-%m-%d') = {0}", createDateStr);
-//        }
-//
-//        String payDateStr = queryTO.getPayDateStr();
-//        if ((StringUtils.hasText(payDateStr))) {
-//            wrapper.apply("2".equals(flag), "date_format(pay_finish_time, '%Y-%m') = {0}", payDateStr);
-//            wrapper.apply("3".equals(flag), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", payDateStr);
-//        }
+
 
         wrapper.orderByDesc("pay_finish_time");
         List<PayableInfoEntity> parOrder = this.payableInfoService.list(wrapper);
@@ -263,15 +195,13 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
      *                 // * @param downIds  勾选的id
      */
     @Override
-    public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException {
+    public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
-      //  QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
 
-       // commonWrapper(wrapper, queryTO);
-//        if (queryTO.getDownIds().size() > 0) {
-//            wrapper.in("student_no", queryTO.getDownIds());
-//        }
         QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
+        if (downIDs.size() > 0) {
+            wrapper.in("id", downIDs);
+        }
         wrapper.eq(StringUtils.hasText(queryTO.getItemName()), "payment_item", queryTO.getItemName());
         if (StringUtils.hasText(queryTO.getKeyword())) {
             wrapper.and(w -> w.like("student_no", queryTO.getKeyword())
@@ -342,15 +272,7 @@ public class PayableInfoServiceImpl extends ServiceImpl<PayableInfoDao, PayableI
         if (list.size() < 0) {
             throw new RRException(BizCodeEnume.PAYABLE_INFO_IS_NOT_EXIT);
         }
-        // List<StudentPayableInfoVO> studentPayableInfoList = new ArrayList<>();
-        // StudentPayableInfoVO studentPayableInfoVO = new StudentPayableInfoVO();
-        // 查询用户是否已经缴费
-//        boolean alreadyPay = payOrderService.isAlreadyPay(studentNo);
-//        payableInfoEntityList.forEach(payableInfoEntity -> {
-//            BeanUtils.copyProperties(payableInfoEntity, studentPayableInfoVO);
-//            studentPayableInfoVO.setPay(alreadyPay);
-//            studentPayableInfoList.add(studentPayableInfoVO);
-//        });
+
 
         return list;
     }

+ 35 - 16
src/main/java/com/chuanghai/smartschool/tuitionpayment/service/impl/PayableInfoWaterServiceImpl.java

@@ -161,6 +161,33 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
         }
     }
 
+    @Override
+    public String queryAmountWater(PayOrderQueryTO queryTO) {
+        QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.hasText(queryTO.getItemName()), "payment_item", queryTO.getItemName());
+        if (StringUtils.hasText(queryTO.getKeyword())) {
+            wrapper.and(w -> w.like("student_no", queryTO.getKeyword())
+                    .or()
+                    .like("student_name", queryTO.getKeyword()));
+        }
+        if (StringUtils.hasText(queryTO.getPayStatus())) {
+            wrapper.eq("pay_item_type", queryTO.getPayStatus());
+        }
+        wrapper.select("ifnull(sum(real_pay_amount), 0) as total,count(id) as count");
+        wrapper.apply(StringUtils.hasText(queryTO.getCreateDateStr()), "date_format(pay_create_time, '%Y-%m-%d') = {0}", queryTO.getCreateDateStr());
+        wrapper.apply(StringUtils.hasText(queryTO.getPayDateStr()), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", queryTO.getPayDateStr());
+
+        List<PayableInfoWaterEntity> list = this.payableInfoWaterService.list(wrapper);
+
+        if (list.size() > 0) {
+            Map<String, Object> resultMap = this.getMap(wrapper);
+            String count = String.valueOf(resultMap.get("count"));
+            return new BigDecimal(String.valueOf(resultMap.get("total"))).setScale(2, BigDecimal.ROUND_HALF_UP) + "-" + count;
+        } else {
+            return "0-0";
+        }
+    }
+
     /**
      * 下载缴费的名单的txt文件
      *
@@ -168,30 +195,19 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
      *                 //     * @param dateStr
      */
     @Override
-    public void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException {
+    public void exportTxt(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
         QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
         wrapper.eq(StringUtils.hasText(queryTO.getItemName()), "payment_item", queryTO.getItemName());
 
         wrapper.eq(StringUtils.hasText(queryTO.getPayStatus()), "pay_item_type", queryTO.getPayStatus());
         wrapper.eq(StringUtils.hasText(queryTO.getPayMethod()), "pay_method", queryTO.getPayMethod());
-        if (queryTO.getDownIds() != null && queryTO.getDownIds().size() > 0) {
-            wrapper.in("student_no", queryTO.getDownIds());
+        if (downIDs.size() > 0) {
+            wrapper.in("id", downIDs);
         }
         wrapper.apply(StringUtils.hasText(queryTO.getCreateDateStr()), "date_format(pay_create_time, '%Y-%m-%d') = {0}", queryTO.getCreateDateStr());
         wrapper.apply(StringUtils.hasText(queryTO.getPayDateStr()), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", queryTO.getPayDateStr());
-//        String flag = queryTO.getFlag();
-//        String createDateStr = queryTO.getCreateDateStr();
-//        if ((StringUtils.hasText(createDateStr))) {
-//            wrapper.apply("2".equals(flag), "date_format(pay_create_time, '%Y-%m') = {0}", createDateStr);
-//            wrapper.apply("3".equals(flag), "date_format(pay_create_time, '%Y-%m-%d') = {0}", createDateStr);
-//        }
-//
-//        String payDateStr = queryTO.getPayDateStr();
-//        if ((StringUtils.hasText(payDateStr))) {
-//            wrapper.apply("2".equals(flag), "date_format(pay_finish_time, '%Y-%m') = {0}", payDateStr);
-//            wrapper.apply("3".equals(flag), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", payDateStr);
-//        }
+
 
         wrapper.orderByDesc("pay_finish_time");
         List<PayableInfoWaterEntity> parOrder = this.list(wrapper);
@@ -240,7 +256,7 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
      *                 // * @param downIds  勾选的id
      */
     @Override
-    public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO) throws IOException {
+    public void downloadResult(HttpServletResponse response, PayOrderQueryTO queryTO, List<String> downIDs) throws IOException {
 
 //        QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
 //
@@ -255,6 +271,9 @@ public class PayableInfoWaterServiceImpl extends ServiceImpl<PayableInfoWaterDao
         if (StringUtils.hasText(queryTO.getPayStatus())) {
             wrapper.eq("pay_item_type", queryTO.getPayStatus());
         }
+        if (downIDs.size() > 0) {
+            wrapper.in("id", downIDs);
+        }
         wrapper.apply(StringUtils.hasText(queryTO.getCreateDateStr()), "date_format(pay_create_time, '%Y-%m-%d') = {0}", queryTO.getCreateDateStr());
         wrapper.apply(StringUtils.hasText(queryTO.getPayDateStr()), "date_format(pay_finish_time, '%Y-%m-%d') = {0}", queryTO.getPayDateStr());
 

+ 1 - 3
src/main/java/com/chuanghai/smartschool/tuitionpayment/to/PayOrderQueryTO.java

@@ -2,8 +2,6 @@ package com.chuanghai.smartschool.tuitionpayment.to;
 
 import lombok.Data;
 
-import java.util.List;
-
 /**
  * @Author: codingliang
  * @Description: 支付订单查询to
@@ -53,7 +51,7 @@ public class PayOrderQueryTO {
     /**
      * 勾选的学号
      */
-    private List<String> downIds;
+    private String downIds;
     /**
      * 学生宿舍信息
      */

+ 10 - 0
src/main/java/com/chuanghai/smartschool/tuitionpayment/vo/StudentNoVO.java

@@ -13,6 +13,11 @@ import lombok.Data;
 public class StudentNoVO {
 
     /**
+     * 姓名
+     */
+    @ExcelProperty("姓名")
+    private String studentName;
+    /**
      * 身份证号
      */
     @ExcelProperty("身份证号")
@@ -22,5 +27,10 @@ public class StudentNoVO {
      */
     @ExcelProperty("缴费项目")
     private String paymentItem;
+    /**
+     * 缴费月度
+     */
+    @ExcelProperty("缴费时间")
+    private String payMonth;
 
 }