|
|
@@ -77,7 +77,6 @@ public class PayableInfoController {
|
|
|
private BankItemDetailService bankItemDetailService;
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 根据card_number获取缴费信息 整合各缴费项目的集合
|
|
|
*
|
|
|
@@ -87,18 +86,21 @@ public class PayableInfoController {
|
|
|
* @pageSize pageSize 每页记录数
|
|
|
*/
|
|
|
@GetMapping("payableInfo")
|
|
|
- public CommonResult<PayableInfoWaterListVO> getPayableInfoByCardNumber(@RequestHeader("card_number") String cardNumber, String studentName,
|
|
|
+ public CommonResult<PayableInfoWaterListVO> getPayableInfoByCardNumber(@RequestHeader("card_number") String cardNumber,
|
|
|
+ String studentName,
|
|
|
Integer currPage, Integer pageSize) {
|
|
|
currPage = currPage == null ? 1 : currPage;
|
|
|
pageSize = pageSize == null ? 10 : pageSize;
|
|
|
try {
|
|
|
List<PayableInfoEntity> payableInfo = payableInfoService.getPayableInfoByCardNumber(cardNumber, studentName);
|
|
|
List<PayableInfoWaterListVO> objectList = new ArrayList<>();
|
|
|
- payableInfo.forEach(payable -> {
|
|
|
- PayableInfoWaterListVO payableInfoWaterListVO = new PayableInfoWaterListVO();
|
|
|
- BeanUtils.copyProperties(payable, payableInfoWaterListVO);
|
|
|
- objectList.add(payableInfoWaterListVO);
|
|
|
- });
|
|
|
+ if (payableInfo.size() > 0) {
|
|
|
+ payableInfo.forEach(payable -> {
|
|
|
+ PayableInfoWaterListVO payableInfoWaterListVO = new PayableInfoWaterListVO();
|
|
|
+ BeanUtils.copyProperties(payable, payableInfoWaterListVO);
|
|
|
+ objectList.add(payableInfoWaterListVO);
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
List<PayableInfoWaterEntity> payableWater = payableInfoWaterService.getPayableInfoWaterByCardNumber(cardNumber, studentName);
|
|
|
payableWater.forEach(payableInfoWater -> {
|
|
|
@@ -132,27 +134,29 @@ public class PayableInfoController {
|
|
|
objectList.add(payableInfoWaterListVO);
|
|
|
});
|
|
|
|
|
|
- //将得到的payableInfoWaterListVOs集合数据按照payCreateTime进行
|
|
|
- List<PayableInfoWaterListVO> payableInfoWaterListVOs = objectList.stream().sorted(Comparator.comparing(PayableInfoWaterListVO::getPayCreateTime).reversed()).collect(Collectors.toList());
|
|
|
- payableInfoWaterListVOs.forEach(payableInfoWaterListVO -> {
|
|
|
- payableInfoWaterListVO.setPayerIdentify(payableInfoWaterListVO.getStudentNo());
|
|
|
- payableInfoWaterListVO.setPayForIdentify(payableInfoWaterListVO.getCardNumber());
|
|
|
- payableInfoWaterListVO.setPayYear(payableInfoWaterListVO.getYears());
|
|
|
- });
|
|
|
- //判断是否传入分页信息
|
|
|
- if (currPage != null && pageSize != null) {
|
|
|
- ListPageUtil<PayableInfoWaterListVO> listPageUtil = new ListPageUtil<PayableInfoWaterListVO>(payableInfoWaterListVOs, currPage, pageSize);
|
|
|
- payableInfoWaterListVOs = listPageUtil.getPagedList();
|
|
|
- int totalCount = listPageUtil.getTotalCount();
|
|
|
- int pageSize1 = listPageUtil.getPageSize();
|
|
|
- int nowPage1 = listPageUtil.getNowPage();
|
|
|
- PageUtils<PayableInfoWaterListVO> page = new PageUtils<PayableInfoWaterListVO>(payableInfoWaterListVOs, totalCount, pageSize1, nowPage1);
|
|
|
- return CommonResult.ok().setResult(page);
|
|
|
+ if (objectList.size() > 0) {
|
|
|
+ //将得到的payableInfoWaterListVOs集合数据按照payCreateTime进行
|
|
|
+ List<PayableInfoWaterListVO> payableInfoWaterListVOs = objectList.stream().sorted(Comparator.comparing(PayableInfoWaterListVO::getPayCreateTime).reversed()).collect(Collectors.toList());
|
|
|
+ payableInfoWaterListVOs.forEach(payableInfoWaterListVO -> {
|
|
|
+ payableInfoWaterListVO.setPayerIdentify(payableInfoWaterListVO.getStudentNo());
|
|
|
+ payableInfoWaterListVO.setPayForIdentify(payableInfoWaterListVO.getCardNumber());
|
|
|
+ payableInfoWaterListVO.setPayYear(payableInfoWaterListVO.getYears());
|
|
|
+ });
|
|
|
+ //判断是否传入分页信息
|
|
|
+ if (currPage != null && pageSize != null && payableInfoWaterListVOs.size() > 0) {
|
|
|
+ ListPageUtil<PayableInfoWaterListVO> listPageUtil = new ListPageUtil<PayableInfoWaterListVO>(payableInfoWaterListVOs, currPage, pageSize);
|
|
|
+ payableInfoWaterListVOs = listPageUtil.getPagedList();
|
|
|
+ int totalCount = listPageUtil.getTotalCount();
|
|
|
+ int pageSize1 = listPageUtil.getPageSize();
|
|
|
+ int nowPage1 = listPageUtil.getNowPage();
|
|
|
+ PageUtils<PayableInfoWaterListVO> page = new PageUtils<PayableInfoWaterListVO>(payableInfoWaterListVOs, totalCount, pageSize1, nowPage1);
|
|
|
+ return CommonResult.ok().setResult(page);
|
|
|
+ }
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
return CommonResult.fail("0000", "该用户暂无缴费信息!");
|
|
|
}
|
|
|
- return CommonResult.fail();
|
|
|
+ return CommonResult.ok();
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -292,33 +296,27 @@ public class PayableInfoController {
|
|
|
@PutMapping("updatePayInfo")
|
|
|
public CommonResult<T> updatePayInfo(String itemName) {
|
|
|
QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
|
|
|
- wrapper.eq("payment_item", itemName)
|
|
|
- .isNull("pay_create_time");
|
|
|
+ wrapper.isNull("card_number");
|
|
|
//更新时间等参数
|
|
|
List<PayableInfoEntity> infoEntityList = payableInfoService.list(wrapper);
|
|
|
List<PayableInfoEntity> objectList = new ArrayList<>();
|
|
|
- if (infoEntityList.size() == 0) {
|
|
|
- throw new RRException(BizCodeEnume.PARAMETER_ERROR, "当前项目为"+itemName+",无法查询到项目数据,请核对");
|
|
|
- }
|
|
|
+// if (infoEntityList.size() == 0) {
|
|
|
+// throw new RRException(BizCodeEnume.PARAMETER_ERROR, "当前项目为" + itemName + ",无法查询到项目数据,请核对");
|
|
|
+// }
|
|
|
infoEntityList.forEach(payableInfoEntity -> {
|
|
|
String cardNumber = wechatController.getCardNumber(payableInfoEntity.getStudentName(), payableInfoEntity.getStudentNo());
|
|
|
- payableInfoEntity.setCardNumber(cardNumber);
|
|
|
- payableInfoEntity.setPayCreateTime(LocalDateTime.now());
|
|
|
- payableInfoEntity.setPayItemType("1");
|
|
|
- payableInfoEntity.setPayNoticeType("1");
|
|
|
- //判断导入时标准名单中的非必缴项目是否为空
|
|
|
- if (payableInfoEntity.getNotMustMoney().equals("无")) {
|
|
|
- payableInfoEntity.setNotMustMoney("");
|
|
|
- }
|
|
|
-
|
|
|
- if (StringUtils.hasText(payableInfoEntity.getNotMustMoney())) {
|
|
|
- payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney());
|
|
|
+ String serial_number = "";
|
|
|
+ if (!cardNumber.endsWith("-")) {
|
|
|
+ String[] split = cardNumber.split("-");
|
|
|
+ cardNumber = split[0];
|
|
|
+ serial_number = split[1];
|
|
|
} else {
|
|
|
- payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney());
|
|
|
+ cardNumber = cardNumber.substring(0, cardNumber.length() - 1);
|
|
|
+ serial_number = cardNumber;
|
|
|
}
|
|
|
- String[] split = payableInfoEntity.getNotPayDetail().split("/");
|
|
|
- payableInfoEntity.setNotPaySize(split.length);
|
|
|
- payableInfoEntity.setPayOrderLoan(new BigDecimal("0.00"));
|
|
|
+ payableInfoEntity.setCardNumber(cardNumber);
|
|
|
+ payableInfoEntity.setSerialNumber(serial_number);
|
|
|
+
|
|
|
objectList.add(payableInfoEntity);
|
|
|
});
|
|
|
payableInfoService.updateBatchById(objectList);
|
|
|
@@ -334,7 +332,7 @@ public class PayableInfoController {
|
|
|
*/
|
|
|
public String getCardNumberByIdCard(String idCard, String inputType, String inputStr, String outPutType, String grade) {
|
|
|
// 2020级以前学生的cardNumber不为身份证号,需要其他平台查询其card Number信息
|
|
|
- if (Integer.parseInt(grade) < 2021 ) {
|
|
|
+ if (Integer.parseInt(grade) < 2021) {
|
|
|
//表示输入的参数为身份证
|
|
|
inputType = inputType == null ? "1" : inputType;
|
|
|
//输入的参数
|
|
|
@@ -458,6 +456,18 @@ public class PayableInfoController {
|
|
|
wrapper.eq("id", id)
|
|
|
.eq("payment_item", itemName);
|
|
|
PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
|
|
|
+ //查找已经缴费的订单详情
|
|
|
+ QueryWrapper<PayOrderEntity> orderWapper = new QueryWrapper<>();
|
|
|
+ orderWapper.eq("payinfo_id", payableInfoEntity.getId());
|
|
|
+ List<PayOrderEntity> list = payOrderService.list(orderWapper);
|
|
|
+ String orderPayDetail = "";
|
|
|
+ if (list.size() > 0) {
|
|
|
+ for (int m = 0; m< list.size(); m++) {
|
|
|
+ orderPayDetail += list.get(m).getPayDetail() +"/";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ orderPayDetail = orderPayDetail.endsWith("/") == true ? orderPayDetail.substring(0,orderPayDetail.length()-1) :orderPayDetail;
|
|
|
+
|
|
|
if (payableInfoEntity == null) {
|
|
|
throw new RRException(BizCodeEnume.DATA_IS_EXIST, "该缴费订单不存在。");
|
|
|
}
|
|
|
@@ -497,20 +507,56 @@ public class PayableInfoController {
|
|
|
notPayDetail = payableInfoEntity.getMustMoney();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
int notPayDetailCount = 0;
|
|
|
String notPayDetailStr = "";
|
|
|
- String[] realPayDetailArray;
|
|
|
String[] notPayDetailArray;
|
|
|
- ArrayList<String> listA;
|
|
|
- ArrayList<String> listB;
|
|
|
+ ArrayList<String> listReal;
|
|
|
+ ArrayList<String> listNot;
|
|
|
+ ArrayList<String> listBOrder;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String[] orderPayDetailArray = orderPayDetail.split("/");
|
|
|
+ String[] realPayDetailArray = realPayDetail1.split("/");
|
|
|
+// System.out.println(realPayDetail1);
|
|
|
+// System.out.println(orderPayDetail);
|
|
|
+ listReal = new ArrayList<>(Arrays.asList(realPayDetailArray));
|
|
|
+ listBOrder = new ArrayList<>(Arrays.asList(orderPayDetailArray));
|
|
|
+
|
|
|
+// listReal.forEach(s->{
|
|
|
+// System.out.println(s);
|
|
|
+// });
|
|
|
+// System.out.println("------------------------------------------");
|
|
|
+// listBOrder.forEach(s->{
|
|
|
+// System.out.println(s);
|
|
|
+// });
|
|
|
+// System.out.println("------------------------------------------");
|
|
|
+ //从realPayDetail1中删除已经缴费的明细,剩下代缴明细
|
|
|
+ listReal.removeAll(listBOrder);
|
|
|
+// listReal.forEach(s->{
|
|
|
+// System.out.println(s);
|
|
|
+// });
|
|
|
+ String newRealPayDetail = "";
|
|
|
+ if (listReal.size() == 1) {
|
|
|
+ payInfoDetailVO.setNotPayDetail(listReal.get(0));
|
|
|
+ } else if (listReal.size() > 1) {
|
|
|
+ for (int i = 0; i < listReal.size(); i++) {
|
|
|
+ newRealPayDetail += listReal.get(i) + "/";
|
|
|
+ }
|
|
|
+ payInfoDetailVO.setRealPayDetail(newRealPayDetail.substring(0, newRealPayDetail.length() - 1));
|
|
|
+ } else {
|
|
|
+ payInfoDetailVO.setRealPayDetail(newRealPayDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- payInfoDetailVO.setRealPayDetail(realPayDetail1);
|
|
|
- realPayDetailArray = payInfoDetailVO.getRealPayDetail().split("/");
|
|
|
notPayDetailArray = notPayDetail.split("/");
|
|
|
- listA = new ArrayList<>(Arrays.asList(realPayDetailArray));
|
|
|
- String[] splitRealPayDetail = new String[listA.size()];
|
|
|
- for (int j = 0; j < listA.size(); j++) {
|
|
|
- splitRealPayDetail = listA.get(j).split("/");
|
|
|
+
|
|
|
+
|
|
|
+ String[] splitRealPayDetail = new String[listReal.size()];
|
|
|
+ for (int j = 0; j < listReal.size(); j++) {
|
|
|
+ splitRealPayDetail = listReal.get(j).split("/");
|
|
|
String detail = splitRealPayDetail[0];
|
|
|
if (StringUtils.hasText(detail)) {
|
|
|
String[] detailAMount = detail.split(":");
|
|
|
@@ -518,15 +564,15 @@ public class PayableInfoController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- listB = new ArrayList<>(Arrays.asList(notPayDetailArray));
|
|
|
- listB.removeAll(listA);
|
|
|
+ listNot = new ArrayList<>(Arrays.asList(notPayDetailArray));
|
|
|
+ listNot.removeAll(listReal);
|
|
|
|
|
|
- if (listB.size() == 1) {
|
|
|
- payInfoDetailVO.setNotPayDetail(listB.get(0));
|
|
|
+ if (listNot.size() == 1) {
|
|
|
+ payInfoDetailVO.setNotPayDetail(listNot.get(0));
|
|
|
notPayDetailCount = 1;
|
|
|
- } else if (listB.size() > 1) {
|
|
|
- for (int i = 0; i < listB.size(); i++) {
|
|
|
- notPayDetailStr += listB.get(i) + "/";
|
|
|
+ } else if (listNot.size() > 1) {
|
|
|
+ for (int i = 0; i < listNot.size(); i++) {
|
|
|
+ notPayDetailStr += listNot.get(i) + "/";
|
|
|
notPayDetailCount++;
|
|
|
}
|
|
|
payInfoDetailVO.setNotPayDetail(notPayDetailStr.substring(0, notPayDetailStr.length() - 1));
|
|
|
@@ -561,14 +607,19 @@ public class PayableInfoController {
|
|
|
PayableInfoStudentResultVO payableInfoStudentResultVO = new PayableInfoStudentResultVO();
|
|
|
QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
|
|
|
QueryWrapper<PayableInfoWaterEntity> wrapper1 = new QueryWrapper<>();
|
|
|
- wrapper.eq("student_no", cardNumber)
|
|
|
+ wrapper.eq("card_number", cardNumber)
|
|
|
.eq("student_name", name);
|
|
|
- wrapper1.eq("student_no", cardNumber)
|
|
|
+ wrapper1.eq("card_number", cardNumber)
|
|
|
.eq("student_name", name);
|
|
|
List<PayableInfoWaterEntity> waterList = payableInfoWaterService.list(wrapper1);
|
|
|
if (waterList.size() > 0) {
|
|
|
waterList.forEach(water -> {
|
|
|
- payableInfoStudentResultVO.setMajor(water.getCollegeName() + water.getClassName());
|
|
|
+ if (water.getCollegeName() != null || water.getClassName() != null) {
|
|
|
+ payableInfoStudentResultVO.setMajor(water.getCollegeName() + water.getClassName());
|
|
|
+ }
|
|
|
+ payableInfoStudentResultVO.setIdCard(water.getStudentNo());
|
|
|
+ payableInfoStudentResultVO.setStudentName(water.getStudentName());
|
|
|
+
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -577,12 +628,13 @@ public class PayableInfoController {
|
|
|
infoList.forEach(info -> {
|
|
|
|
|
|
if (info.getCollegeName() != null || info.getClassName() != null) {
|
|
|
+ payableInfoStudentResultVO.setMajor(info.getCollegeName() + info.getClassName());
|
|
|
}
|
|
|
- payableInfoStudentResultVO.setMajor(info.getCollegeName() + info.getClassName());
|
|
|
+ payableInfoStudentResultVO.setIdCard(info.getStudentNo());
|
|
|
+ payableInfoStudentResultVO.setStudentName(info.getStudentName());
|
|
|
});
|
|
|
}
|
|
|
- payableInfoStudentResultVO.setIdCard(cardNumber);
|
|
|
- payableInfoStudentResultVO.setStudentName(name);
|
|
|
+
|
|
|
|
|
|
return CommonResult.ok().setResult(payableInfoStudentResultVO);
|
|
|
|
|
|
@@ -825,7 +877,38 @@ public class PayableInfoController {
|
|
|
}
|
|
|
realDetailStr = realDetailStr.endsWith("/") == true ? realDetailStr.substring(0, realDetailStr.length() - 1) : realDetailStr;
|
|
|
}
|
|
|
-
|
|
|
return CommonResult.ok().setResult(realDetailStr);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 帮人代缴: 通过姓名 身份证 获取用户的cardNumber
|
|
|
+ *
|
|
|
+ * @param studentName
|
|
|
+ * @param idCard
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @GetMapping("getUserInfo")
|
|
|
+ public CommonResult<StudentInfoVO> getUserInfo(@RequestParam("studentName") String studentName, @RequestParam("idCard") String idCard) {
|
|
|
+ StudentInfoVO studentInfoVO = new StudentInfoVO();
|
|
|
+ QueryWrapper<PayableInfoEntity> info = new QueryWrapper<>();
|
|
|
+ QueryWrapper<PayableInfoWaterEntity> water = new QueryWrapper<>();
|
|
|
+ info.eq("student_name", studentName)
|
|
|
+ .eq("student_no", idCard)
|
|
|
+ .last("limit 1");
|
|
|
+ water.eq("student_name", studentName)
|
|
|
+ .eq("student_no", idCard)
|
|
|
+ .last("limit 1");
|
|
|
+ PayableInfoEntity infoOne = payableInfoService.getOne(info);
|
|
|
+ PayableInfoWaterEntity waterOne = payableInfoWaterService.getOne(water);
|
|
|
+ if (waterOne != null) {
|
|
|
+ studentInfoVO.setCardNumber(waterOne.getCardNumber());
|
|
|
+ studentInfoVO.setStudentName(waterOne.getStudentName());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (infoOne != null) {
|
|
|
+ studentInfoVO.setCardNumber(infoOne.getCardNumber());
|
|
|
+ studentInfoVO.setStudentName(infoOne.getStudentName());
|
|
|
+ }
|
|
|
+ return CommonResult.ok().setResult(studentInfoVO);
|
|
|
+ }
|
|
|
}
|