PayableInfoController.java 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017
  1. package com.chuanghai.smartschool.tuitionpayment.controller;
  2. import com.alibaba.excel.EasyExcel;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.chuanghai.smartschool.tuitionpayment.anno.AdminLoginCheck;
  5. import com.chuanghai.smartschool.tuitionpayment.common.exception.BizCodeEnume;
  6. import com.chuanghai.smartschool.tuitionpayment.common.exception.RRException;
  7. import com.chuanghai.smartschool.tuitionpayment.common.utils.CommonResult;
  8. import com.chuanghai.smartschool.tuitionpayment.common.utils.PageParam;
  9. import com.chuanghai.smartschool.tuitionpayment.common.utils.PageUtils;
  10. import com.chuanghai.smartschool.tuitionpayment.entity.PayOrderEntity;
  11. import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoEntity;
  12. import com.chuanghai.smartschool.tuitionpayment.entity.PayableInfoWaterEntity;
  13. import com.chuanghai.smartschool.tuitionpayment.listener.aliexcel.MyStudentNoImportListener;
  14. import com.chuanghai.smartschool.tuitionpayment.service.PayOrderService;
  15. import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoService;
  16. import com.chuanghai.smartschool.tuitionpayment.service.PayableInfoWaterService;
  17. import com.chuanghai.smartschool.tuitionpayment.to.DeletePayableInfoTO;
  18. import com.chuanghai.smartschool.tuitionpayment.to.PayOrderQueryTO;
  19. import com.chuanghai.smartschool.tuitionpayment.utils.ListPageUtil;
  20. import com.chuanghai.smartschool.tuitionpayment.vo.*;
  21. import org.apache.poi.ss.formula.functions.T;
  22. import org.springframework.beans.BeanUtils;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.util.StringUtils;
  25. import org.springframework.web.bind.annotation.*;
  26. import org.springframework.web.multipart.MultipartFile;
  27. import javax.servlet.http.HttpServletResponse;
  28. import java.io.IOException;
  29. import java.math.BigDecimal;
  30. import java.math.RoundingMode;
  31. import java.time.LocalDateTime;
  32. import java.util.ArrayList;
  33. import java.util.Arrays;
  34. import java.util.Comparator;
  35. import java.util.List;
  36. import java.util.stream.Collectors;
  37. //import cn.afterturn.easypoi.excel.ExcelExportUtil;
  38. //import cn.afterturn.easypoi.excel.ExcelImportUtil;
  39. //import cn.afterturn.easypoi.excel.entity.ExportParams;
  40. /**
  41. * 学生应缴数据
  42. *
  43. * @author codingliang
  44. * @email codingliang@gmail.com
  45. * @date 2021-08-12 15:52:41
  46. */
  47. @RestController
  48. @RequestMapping("tuitionpayment/payableinfo")
  49. public class PayableInfoController {
  50. @Autowired
  51. private PayableInfoService payableInfoService;
  52. @Autowired
  53. private PayableInfoWaterService payableInfoWaterService;
  54. @Autowired
  55. private PayOrderService payOrderService;
  56. @Autowired
  57. private PayItemDetailController payItemDetailController;
  58. @Autowired
  59. private WechatController wechatController;
  60. /**
  61. * 根据card_number获取缴费信息 整合各缴费项目的集合
  62. *
  63. * @param cardNumber 当前登录用户cardNumber
  64. * @return
  65. * @Param currPage 当前页
  66. * @pageSize pageSize 每页记录数
  67. */
  68. @GetMapping("payableInfo")
  69. public CommonResult<PayableInfoWaterListVO> getPayableInfoByCardNumber(@RequestHeader("card_number") String cardNumber, String studentName,
  70. Integer currPage, Integer pageSize) {
  71. currPage = currPage == null ? 1 : currPage;
  72. pageSize = pageSize == null ? 10 : pageSize;
  73. try {
  74. List<PayableInfoEntity> payableInfo = payableInfoService.getPayableInfoByCardNumber(cardNumber, studentName);
  75. List<PayableInfoWaterListVO> objectList = new ArrayList<>();
  76. payableInfo.forEach(payable -> {
  77. PayableInfoWaterListVO payableInfoWaterListVO = new PayableInfoWaterListVO();
  78. BeanUtils.copyProperties(payable, payableInfoWaterListVO);
  79. objectList.add(payableInfoWaterListVO);
  80. });
  81. List<PayableInfoWaterEntity> payableWater = payableInfoWaterService.getPayableInfoWaterByCardNumber(cardNumber, studentName);
  82. payableWater.forEach(payableInfoWater -> {
  83. PayableInfoWaterListVO payableInfoWaterListVO = new PayableInfoWaterListVO();
  84. BeanUtils.copyProperties(payableInfoWater, payableInfoWaterListVO);
  85. objectList.add(payableInfoWaterListVO);
  86. });
  87. //将得到的payableInfoWaterListVOs集合数据按照payCreateTime进行
  88. List<PayableInfoWaterListVO> payableInfoWaterListVOs = objectList.stream().sorted(Comparator.comparing(PayableInfoWaterListVO::getPayCreateTime).reversed()).collect(Collectors.toList());
  89. payableInfoWaterListVOs.forEach(payableInfoWaterListVO -> {
  90. payableInfoWaterListVO.setPayerIdentify(payableInfoWaterListVO.getStudentNo());
  91. payableInfoWaterListVO.setPayForIdentify(payableInfoWaterListVO.getCardNumber());
  92. payableInfoWaterListVO.setPayYear(payableInfoWaterListVO.getYears());
  93. });
  94. //判断是否传入分页信息
  95. if (currPage != null && pageSize != null) {
  96. ListPageUtil<PayableInfoWaterListVO> listPageUtil = new ListPageUtil<PayableInfoWaterListVO>(payableInfoWaterListVOs, currPage, pageSize);
  97. payableInfoWaterListVOs = listPageUtil.getPagedList();
  98. int totalCount = listPageUtil.getTotalCount();
  99. int pageSize1 = listPageUtil.getPageSize();
  100. int nowPage1 = listPageUtil.getNowPage();
  101. PageUtils<PayableInfoWaterListVO> page = new PageUtils<PayableInfoWaterListVO>(payableInfoWaterListVOs, totalCount, pageSize1, nowPage1);
  102. return CommonResult.ok().setResult(page);
  103. }
  104. } catch (Exception e) {
  105. return CommonResult.fail("0000", "该用户暂无缴费信息!");
  106. }
  107. return CommonResult.fail();
  108. }
  109. //
  110. // /**
  111. // * 根据学号和学生姓名获取缴费信息
  112. // *
  113. // * @param cardNumber 当前登录用户cardNumber
  114. // * @param studentNo 学号,新生可用身份证号码代替学号
  115. // * @param studentName 学生姓名
  116. // * @return
  117. // */
  118. // @GetMapping("payableInfo/{studentNo}/{studentName}")
  119. // public CommonResult< List<PayableInfoEntity>> getPayableInfoByCardNumberAndName(@RequestHeader("card_number") String cardNumber,
  120. // @PathVariable("studentNo") String studentNo,
  121. // @PathVariable("studentName") String studentName) {
  122. // List<PayableInfoEntity> info = payableInfoService.getPayableInfoByStudentNoAndName(studentNo, studentName);
  123. // return CommonResult.ok().setResult(info);
  124. // }
  125. /**
  126. * 学生应缴列表
  127. *
  128. * @param adminToken // * @param keyword 搜索关键字
  129. * // * @param payStatus 订单状态
  130. * // * @param createTime 创建时间
  131. * // * @param payTime 支付时间
  132. * // * @param pageParam 分页参数
  133. * // * @param payItemType 缴费项目支付状态
  134. * // * @param itemName 缴费项目名
  135. * @return
  136. */
  137. @AdminLoginCheck
  138. @GetMapping("/list")
  139. public CommonResult<PageUtils<PayableInfoEntity>> list(@RequestHeader("admin_token") String adminToken,
  140. // String keyword, String payStatus, String createTime,
  141. // String payTime, PageParam pageParam,
  142. // String payItemType,
  143. // @RequestParam("itemName") String itemName
  144. PayOrderQueryTO queryTO, PageParam pageParam) {
  145. PageUtils page = null;
  146. BigDecimal totalAmount = BigDecimal.ZERO;
  147. int totalCount = 0;
  148. if (queryTO.getItemName().equals("水费缴纳")) {
  149. page = payableInfoWaterService.queryPage(queryTO, pageParam);
  150. totalCount = page.getTotalCount();
  151. List list = page.getList();
  152. for (int i = 0; i < list.size(); i++) {
  153. PayableInfoWaterEntity payableInfoWaterEntity = (PayableInfoWaterEntity) list.get(i);
  154. totalAmount = totalAmount.add(payableInfoWaterEntity.getRealPayAmount());
  155. }
  156. } else {
  157. page = payableInfoService.queryPage(queryTO, pageParam);
  158. totalCount = page.getTotalCount();
  159. List list = page.getList();
  160. for (int i = 0; i < list.size(); i++) {
  161. PayableInfoEntity payableInfoEntity = (PayableInfoEntity) list.get(i);
  162. totalAmount = totalAmount.add(payableInfoEntity.getRealPayAmount());
  163. }
  164. }
  165. PayableInfoListVO payableInfoListVO = new PayableInfoListVO();
  166. payableInfoListVO.setPage(page);
  167. payableInfoListVO.setTotalCount(totalCount);
  168. payableInfoListVO.setTotalAmount(totalAmount);
  169. //如果选择支付状态查询对应状态的金额
  170. if (StringUtils.hasText(queryTO.getPayStatus())) {
  171. String amount = payableInfoService.queryAmount(queryTO);
  172. payableInfoListVO.setTotalCount(Integer.parseInt(amount.split("-")[1]));
  173. payableInfoListVO.setTotalAmount(new BigDecimal(amount.split("-")[0]).setScale(2, RoundingMode.HALF_UP));
  174. }
  175. return CommonResult.ok().setResult(payableInfoListVO);
  176. }
  177. /**
  178. * 下载缴费名单的txt
  179. *
  180. * @param queryTO 查询参数
  181. * @param response
  182. * @throws IOException
  183. */
  184. @RequestMapping("exportTxt")
  185. //@AdminLoginCheck
  186. public void exportTxt(PayOrderQueryTO queryTO,
  187. HttpServletResponse response) throws IOException {
  188. if (queryTO.getItemName().equals("水费缴纳")) {
  189. payableInfoWaterService.exportTxt(response, queryTO);
  190. } else {
  191. payableInfoService.exportTxt(response, queryTO);
  192. }
  193. }
  194. /**
  195. * 下载缴费的学生名单
  196. *
  197. * @param queryTO 封装参数
  198. * @param response
  199. * @throws IOException
  200. */
  201. @RequestMapping("downloadResult")
  202. public void downloadResult(PayOrderQueryTO queryTO,
  203. HttpServletResponse response) throws IOException {
  204. if (queryTO.getItemName().equals("水费缴纳")) {
  205. payableInfoWaterService.downloadResult(response, queryTO);
  206. } else {
  207. payableInfoService.downloadResult(response, queryTO);
  208. }
  209. }
  210. /**
  211. * 学生应缴信息删除
  212. *
  213. * @param adminToken 管理员token
  214. * @param ids 需要删除记录的id集合
  215. * @return
  216. */
  217. @AdminLoginCheck
  218. @DeleteMapping("/delete")
  219. public CommonResult<String> delete(@RequestHeader("admin_token") String adminToken,
  220. @RequestBody Long[] ids) {
  221. payableInfoService.removeByIds(Arrays.asList(ids));
  222. return CommonResult.ok();
  223. }
  224. /**
  225. * excel 导入学生学费相关原始数据
  226. *
  227. * @param adminToken 管理员token
  228. * @param file 文件,文件格式注意需要符合要求
  229. * @return
  230. * @apiNote 导入学生学费相关原始数据
  231. * <strong>注意:</strong>
  232. * 1.需要提示用户上传的excel文件需要符合规定的格式;
  233. * 2.上传新文件将会导致所有的旧数据被删除,学费缴纳开始后不建议再上传新数据。
  234. */
  235. @PostMapping("importByExcel")
  236. @AdminLoginCheck
  237. public CommonResult<String> importByExcel(@RequestHeader("admin_token") String adminToken,
  238. @RequestParam MultipartFile file) throws IOException {
  239. if (file.isEmpty()) {
  240. throw new RRException(BizCodeEnume.PARAMETER_ERROR, "文件不能为空");
  241. }
  242. payableInfoService.importByExcel(file);
  243. return CommonResult.ok();
  244. }
  245. /**
  246. * 更新缴费订单的时间参数
  247. */
  248. @PutMapping("updatePayInfo")
  249. public CommonResult<T> updatePayInfo(String itemName) {
  250. QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
  251. wrapper.eq("payMent_item", itemName);
  252. //更新时间等参数
  253. List<PayableInfoEntity> infoEntityList = payableInfoService.list(wrapper);
  254. List<PayableInfoEntity> objectList = new ArrayList<>();
  255. infoEntityList.forEach(payableInfoEntity -> {
  256. payableInfoEntity.setCardNumber(payableInfoEntity.getStudentNo());
  257. payableInfoEntity.setPayCreateTime(LocalDateTime.now());
  258. payableInfoEntity.setPayItemType("1");
  259. payableInfoEntity.setPayNoticeType("1");
  260. if (StringUtils.hasText(payableInfoEntity.getNotMustMoney())) {
  261. payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney());
  262. } else {
  263. payableInfoEntity.setNotPayDetail(payableInfoEntity.getMustMoney());
  264. }
  265. String[] split = payableInfoEntity.getNotPayDetail().split("/");
  266. payableInfoEntity.setNotPaySize(split.length);
  267. payableInfoEntity.setPayableAccount(payableInfoService.queryPayItemByName(payableInfoEntity.getPaymentItem()));
  268. objectList.add(payableInfoEntity);
  269. });
  270. payableInfoService.updateBatchById(objectList);
  271. return CommonResult.ok();
  272. }
  273. // /**
  274. // * 通过身份证调用活动管理平台数据库换取 微笑的cardNumber信息
  275. // *
  276. // * @param idCard
  277. // * @return
  278. // */
  279. // public String getCardNumberByIdCard(String idCard, String inputType, String inputStr, String outPutType) {
  280. // //表示输入的参数为身份证
  281. // inputType = inputType == null ? "1" : inputType;
  282. // //输入的参数
  283. // inputStr = idCard;
  284. // // 返回微校的cardNumber
  285. // outPutType = outPutType == null ? "2" : outPutType;
  286. //
  287. // String url = "https://chtech.ncjti.edu.cn/lamp/recordApi/consume/getUserInfo";
  288. // MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
  289. // map.add("inputType", inputType);
  290. // map.add("inputStr", inputStr);
  291. // map.add("outPutType", outPutType);
  292. //
  293. //
  294. // RestTemplate restTemplate = new RestTemplate();
  295. // HttpHeaders headers = new HttpHeaders();
  296. // headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
  297. //
  298. // HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(map, headers);
  299. // ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, request, String.class);
  300. // JSONObject jsonObj = JSON.parseObject(responseEntity.getBody());
  301. // String cardNumber = "";
  302. // try {
  303. // cardNumber = jsonObj.get("result").toString();
  304. // } catch (NullPointerException e) {
  305. // throw new NullPointerException("未匹配到该用户!");
  306. // }
  307. // return cardNumber == null ? idCard : cardNumber;
  308. // }
  309. /**
  310. * 删除缴费信息
  311. *
  312. * @param adminToken 管理员token
  313. * @param file 文件
  314. * @return
  315. * @apiNote 删除缴费信息
  316. * <strong>注意:</strong>
  317. * 文件需要符合规定的格式
  318. * 不会删除已经在线缴费的学生。如果有没有删除的学生,会在接口返回没有被删除学生的列表。
  319. * @since 0.1.0
  320. */
  321. @PostMapping("/deletePayableExecl")
  322. @AdminLoginCheck
  323. public CommonResult<DeletePayableInfoTO> deletePayableInfo(@RequestHeader("admin_token") String adminToken,
  324. @RequestParam MultipartFile file) throws IOException {
  325. if (file.isEmpty()) {
  326. throw new RRException(BizCodeEnume.PARAMETER_ERROR, "文件不能为空");
  327. }
  328. MyStudentNoImportListener studentNoImportListener = new MyStudentNoImportListener();
  329. EasyExcel.read(file.getInputStream(), StudentNoVO.class, studentNoImportListener).sheet().doRead();
  330. List<StudentNoVO> studentNos = studentNoImportListener.getStudentNoList();
  331. List<DeletePayableInfoTO> alreadyPayList = new ArrayList<>();
  332. studentNos.forEach(studentNo -> {
  333. StudentNoVO student = studentNo;
  334. if (student.getPaymentItem().equals("水费缴纳")) {
  335. QueryWrapper<PayableInfoWaterEntity> wrapper = new QueryWrapper<>();
  336. wrapper.eq(student.getStudentNo() != null, "student_no", student.getStudentNo());
  337. wrapper.eq(student.getPaymentItem() != null, "payment_item", student.getPaymentItem());
  338. PayableInfoWaterEntity one = payableInfoWaterService.getOne(wrapper);
  339. if (one != null) {
  340. boolean alreadyPay = payOrderService.isAlreadyPay(one.getStudentNo(), one.getPaymentItem(), one.getPayMonth(), null, null, null);
  341. if (alreadyPay) {
  342. DeletePayableInfoTO to = new DeletePayableInfoTO();
  343. BeanUtils.copyProperties(one, to);
  344. to.setMsg("学生已缴费,删除失败!");
  345. alreadyPayList.add(to);
  346. }
  347. payableInfoWaterService.removeById(one);
  348. }
  349. } else {
  350. QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
  351. wrapper.eq(student.getStudentNo() != null, "student_no", student.getStudentNo());
  352. wrapper.eq(student.getPaymentItem() != null, "payment_item", student.getPaymentItem());
  353. PayableInfoEntity one = payableInfoService.getOne(wrapper);
  354. if (one != null) {
  355. boolean alreadyPay = payOrderService.isAlreadyPay(one.getStudentNo(), one.getPaymentItem(), one.getYears(), one.getNotPaySize(), null, null);
  356. if (alreadyPay) {
  357. DeletePayableInfoTO to = new DeletePayableInfoTO();
  358. BeanUtils.copyProperties(one, to);
  359. to.setMsg("学生已缴费,删除失败!");
  360. alreadyPayList.add(to);
  361. }
  362. payableInfoService.removeById(one);
  363. }
  364. }
  365. });
  366. return CommonResult.ok().setResult(alreadyPayList);
  367. }
  368. /**
  369. * 查询缴费名单的缴费详情
  370. *
  371. * @param id
  372. * @return
  373. */
  374. // @GetMapping("/queryPayInfoDetail")
  375. // public CommonResult queryPayInfoDetail(@RequestParam String id, @RequestParam("itemName") String itemName, String realPayDetail) {
  376. // PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
  377. // if (itemName.equals("水费缴纳")) {
  378. // QueryWrapper<PayableInfoWaterEntity> wrapperWater = new QueryWrapper<>();
  379. // wrapperWater.eq("id", id)
  380. // .eq("payment_item", itemName);
  381. // PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapperWater);
  382. //
  383. // if (water.getPayAmountDetail() != null) {
  384. // payInfoDetailVO.setPayAmountDetail(water.getPayAmountDetail());
  385. // }
  386. // payInfoDetailVO.setRealPayAmount(water.getRealPayAmount());
  387. // } else {
  388. // QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
  389. // wrapper.eq("id", id)
  390. // .eq("payment_item", itemName);
  391. // PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
  392. //
  393. // if (payableInfoEntity.getMustMoney() != null) {
  394. // payInfoDetailVO.setMustMoney(payableInfoEntity.getMustMoney());
  395. // }
  396. // if (payableInfoEntity.getNotMustMoney() != null) {
  397. // payInfoDetailVO.setNotMustMoney(payableInfoEntity.getNotMustMoney());
  398. // }
  399. // if (StringUtils.hasText(realPayDetail)){
  400. //
  401. // }
  402. // String[] realPayDetailStr = realPayDetail.split("/");
  403. // BigDecimal realMount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
  404. // for (int i = 0; i < realPayDetailStr.length; i++) {
  405. // String detail = realPayDetailStr[i];
  406. // String[] detailAMount = detail.split(":");
  407. // realMount = realMount.add(new BigDecimal(detailAMount[1]).setScale(2, RoundingMode.HALF_UP));
  408. // }
  409. // String notPayDetail = payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney();
  410. // payInfoDetailVO.setRealPayAmount(realMount);
  411. //
  412. //
  413. // int notPayDetailCount = 0;
  414. // String notPayDetailStr = "";
  415. // String[] realPayDetailArray;
  416. // String[] notPayDetailArray;
  417. // ArrayList<String> listA;
  418. // ArrayList<String> listB;
  419. // if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
  420. // payInfoDetailVO.setRealPayDetail(payableInfoEntity.getPayDetail() + "/" + realPayDetail);
  421. // } else {
  422. // payInfoDetailVO.setRealPayDetail(realPayDetail);
  423. // }
  424. // realPayDetailArray = payInfoDetailVO.getRealPayDetail().split("/");
  425. // notPayDetailArray = notPayDetail.split("/");
  426. // listA = new ArrayList<>(Arrays.asList(realPayDetailArray));
  427. // listB = new ArrayList<>(Arrays.asList(notPayDetailArray));
  428. // listB.removeAll(listA);
  429. //
  430. // if (listB.size() == 1) {
  431. // payInfoDetailVO.setNotPayDetail(listB.get(0));
  432. // notPayDetailCount = 1;
  433. // } else if (listB.size() > 1) {
  434. // for (int i = 0; i < listB.size(); i++) {
  435. // notPayDetailStr += listB.get(i) + "/";
  436. // notPayDetailCount++;
  437. // }
  438. // payInfoDetailVO.setNotPayDetail(notPayDetailStr.substring(0, notPayDetailStr.length() - 1));
  439. // } else {
  440. // payInfoDetailVO.setNotPayDetail(notPayDetailStr);
  441. // }
  442. // payInfoDetailVO.setNotPaySize(notPayDetailCount);
  443. //
  444. // }
  445. //
  446. // return CommonResult.ok().setResult(payInfoDetailVO);
  447. // }
  448. @GetMapping("/queryPayInfoDetail")
  449. public CommonResult queryPayInfoDetail(@RequestParam String id, @RequestParam("itemName") String itemName, String realPayDetail) {
  450. PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
  451. //未缴费明细金额
  452. BigDecimal realMount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
  453. if (itemName.equals("水费缴纳")) {
  454. QueryWrapper<PayableInfoWaterEntity> wrapperWater = new QueryWrapper<>();
  455. wrapperWater.eq("id", id)
  456. .eq("payment_item", itemName);
  457. PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapperWater);
  458. if (water.getPayAmountDetail() != null) {
  459. payInfoDetailVO.setPayAmountDetail(water.getPayAmountDetail());
  460. }
  461. payInfoDetailVO.setRealPayAmount(water.getRealPayAmount());
  462. payInfoDetailVO.setNotPayDetailAmount(water.getRealPayAmount());
  463. payInfoDetailVO.setPayDetailAmount(water.getRealPayAmount());
  464. payInfoDetailVO.setNotPaySize(0);
  465. } else {
  466. QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
  467. wrapper.eq("id", id)
  468. .eq("payment_item", itemName);
  469. PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
  470. if (payableInfoEntity == null) {
  471. throw new RRException(BizCodeEnume.DATA_IS_EXIST, "该缴费订单不存在。");
  472. }
  473. if (payableInfoEntity.getMustMoney() != null) {
  474. payInfoDetailVO.setMustMoney(payableInfoEntity.getMustMoney());
  475. }
  476. if (payableInfoEntity.getNotMustMoney() != null) {
  477. payInfoDetailVO.setNotMustMoney(payableInfoEntity.getNotMustMoney());
  478. }
  479. String[] realPayDetailStr;
  480. String realPayDetail1 = "";
  481. // 缴费订单的已缴费明细不为null
  482. if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
  483. if (StringUtils.hasText(realPayDetail)) {
  484. //缴费订单所有已交的项目明细
  485. realPayDetail1 = payableInfoEntity.getPayDetail() + "/" + realPayDetail;
  486. } else {
  487. realPayDetail1 = payableInfoEntity.getPayDetail();
  488. }
  489. }
  490. // 本次缴费明细不为空
  491. if (StringUtils.hasText(realPayDetail)) {
  492. //缴费订单所有已交的项目明细
  493. if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
  494. realPayDetail1 = payableInfoEntity.getPayDetail() + "/" + realPayDetail;
  495. } else {
  496. realPayDetail1 = realPayDetail;
  497. }
  498. }
  499. // 本次缴费明细为空和缴费订单所有已交的项目明细为空
  500. // if (StringUtils.hasText(realPayDetail) && StringUtils.hasText(payableInfoEntity.getPayDetail())) {
  501. // System.out.println(realPayDetail1);
  502. // realPayDetail1 = realPayDetail1.substring(0,realPayDetail1.length()/2);
  503. // }
  504. String notPayDetail = "";
  505. if (StringUtils.hasText(payableInfoEntity.getNotMustMoney())) {
  506. notPayDetail = payableInfoEntity.getMustMoney() + "/" + payableInfoEntity.getNotMustMoney();
  507. } else {
  508. notPayDetail = payableInfoEntity.getMustMoney();
  509. }
  510. int notPayDetailCount = 0;
  511. String notPayDetailStr = "";
  512. String[] realPayDetailArray;
  513. String[] notPayDetailArray;
  514. ArrayList<String> listA;
  515. ArrayList<String> listB;
  516. // if (StringUtils.hasText(realPayDetail)) {
  517. // if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
  518. // payInfoDetailVO.setRealPayDetail(payableInfoEntity.getPayDetail() + "/" + realPayDetail);
  519. // } else {
  520. // payInfoDetailVO.setRealPayDetail(realPayDetail);
  521. // }
  522. // } else {
  523. // if (StringUtils.hasText(payableInfoEntity.getPayDetail())) {
  524. // payInfoDetailVO.setRealPayDetail(payableInfoEntity.getPayDetail());
  525. // } else {
  526. // payInfoDetailVO.setRealPayDetail(realPayDetail == null ? "" : realPayDetail);
  527. // }
  528. // }
  529. payInfoDetailVO.setRealPayDetail(realPayDetail1);
  530. realPayDetailArray = payInfoDetailVO.getRealPayDetail().split("/");
  531. notPayDetailArray = notPayDetail.split("/");
  532. listA = new ArrayList<>(Arrays.asList(realPayDetailArray));
  533. String[] splitRealPayDetail = new String[listA.size()];
  534. for (int j = 0; j < listA.size(); j++) {
  535. splitRealPayDetail = listA.get(j).split("/");
  536. String detail = splitRealPayDetail[0];
  537. if (StringUtils.hasText(detail)) {
  538. String[] detailAMount = detail.split(":");
  539. realMount = realMount.add(new BigDecimal(detailAMount[1]).setScale(2, RoundingMode.HALF_UP));
  540. }
  541. }
  542. listB = new ArrayList<>(Arrays.asList(notPayDetailArray));
  543. listB.removeAll(listA);
  544. if (listB.size() == 1) {
  545. payInfoDetailVO.setNotPayDetail(listB.get(0));
  546. notPayDetailCount = 1;
  547. } else if (listB.size() > 1) {
  548. for (int i = 0; i < listB.size(); i++) {
  549. notPayDetailStr += listB.get(i) + "/";
  550. notPayDetailCount++;
  551. }
  552. payInfoDetailVO.setNotPayDetail(notPayDetailStr.substring(0, notPayDetailStr.length() - 1));
  553. } else {
  554. payInfoDetailVO.setNotPayDetail(notPayDetailStr);
  555. }
  556. payInfoDetailVO.setNotPaySize(notPayDetailCount);
  557. //已支付明细金额
  558. payInfoDetailVO.setPayDetailAmount(realMount);
  559. //订单总金额
  560. payInfoDetailVO.setRealPayAmount(payableInfoEntity.getRealPayAmount().setScale(2, RoundingMode.HALF_UP));
  561. // 未支付明细金额
  562. payInfoDetailVO.setNotPayDetailAmount((payableInfoEntity.getRealPayAmount().subtract(realMount)).setScale(2, RoundingMode.HALF_UP));
  563. }
  564. return CommonResult.ok().setResult(payInfoDetailVO);
  565. }
  566. // /**
  567. // * 查询缴费名单的缴费详情
  568. // *
  569. // * @param id
  570. // * @return
  571. // */
  572. // @GetMapping("/queryPayDetail")
  573. // public CommonResult<T> queryPayDetail(@RequestParam String id, @RequestParam("itemName") String
  574. // itemName, String realPayDetail) {
  575. // PayInfoDetailVO payInfoDetailVO = new PayInfoDetailVO();
  576. // if (itemName.equals("水费缴纳")) {
  577. // QueryWrapper<PayableInfoWaterEntity> wrapperWater = new QueryWrapper<>();
  578. // wrapperWater.eq("id", id)
  579. // .eq("payment_item", itemName);
  580. // PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapperWater);
  581. //
  582. // if (water.getPayAmountDetail() != null) {
  583. // payInfoDetailVO.setPayAmountDetail(water.getPayAmountDetail());
  584. // }
  585. // payInfoDetailVO.setRealPayAmount(water.getRealPayAmount());
  586. // } else {
  587. // QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
  588. // wrapper.eq("id", id)
  589. // .eq("payment_item", itemName);
  590. // PayableInfoEntity payableInfoEntity = payableInfoService.getOne(wrapper);
  591. //
  592. // payInfoDetailVO.setRealPayDetail(realPayDetail);
  593. //
  594. // if (payableInfoEntity.getNotPayDetail() != null) {
  595. // payInfoDetailVO.setNotPayDetail(payableInfoEntity.getNotPayDetail());
  596. // }
  597. // String detail = "";
  598. // if (StringUtils.hasText(payableInfoEntity.getNotPayDetail())) {
  599. // detail = payableInfoEntity.getNotPayDetail();
  600. // }
  601. //
  602. // String notPayDetail = "";
  603. // if (StringUtils.hasText(realPayDetail)) {
  604. // String[] realPayDetailArray = realPayDetail.split("/");
  605. //
  606. // String[] payDetailArray = detail.split("/");
  607. // ArrayList<String> listA = new ArrayList<>(Arrays.asList(realPayDetailArray));
  608. // ArrayList<String> listB = new ArrayList<>(Arrays.asList(payDetailArray));
  609. // listB.removeAll(listA);
  610. // if (listB.size() == 1) {
  611. // payInfoDetailVO.setNotPayDetail(listB.get(0));
  612. // } else if (listB.size() > 1) {
  613. // for (int i = 0; i < listB.size(); i++) {
  614. // notPayDetail += listB.get(i) + "/";
  615. // }
  616. // payInfoDetailVO.setNotPayDetail(notPayDetail.substring(0, notPayDetail.length() - 1));
  617. // } else {
  618. // payInfoDetailVO.setNotPayDetail(notPayDetail);
  619. // }
  620. //
  621. // } else {
  622. // detail = detail.endsWith("/") == true ? detail.substring(0, detail.length() - 1) : detail;
  623. // payInfoDetailVO.setNotPayDetail(detail);
  624. // }
  625. //
  626. // String[] split = payInfoDetailVO.getNotPayDetail().split("/");
  627. //
  628. // BigDecimal realMount = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP);
  629. // for (int i = 0; i < split.length; i++) {
  630. // String detail1 = split[i];
  631. // String[] detailAMount = detail1.split(":");
  632. // realMount = realMount.add(new BigDecimal(detailAMount[1]).setScale(2, RoundingMode.HALF_UP));
  633. // }
  634. // payInfoDetailVO.setRealPayAmount(realMount);
  635. // }
  636. //
  637. // return CommonResult.ok().setResult(payInfoDetailVO);
  638. // }
  639. /**
  640. * 查询用户的基本信息
  641. *
  642. * @param cardNumber
  643. * @param name
  644. * @return
  645. */
  646. @GetMapping("/queryStudentInfo")
  647. public CommonResult<PayableInfoStudentResultVO> queryStudentInfo(String cardNumber, String name) {
  648. PayableInfoStudentResultVO payableInfoStudentResultVO = new PayableInfoStudentResultVO();
  649. QueryWrapper<PayableInfoEntity> wrapper = new QueryWrapper<>();
  650. QueryWrapper<PayableInfoWaterEntity> wrapper1 = new QueryWrapper<>();
  651. wrapper.eq("student_no", cardNumber)
  652. .eq("student_name", name);
  653. wrapper1.eq("student_no", cardNumber)
  654. .eq("student_name", name);
  655. List<PayableInfoWaterEntity> waterList = payableInfoWaterService.list(wrapper1);
  656. if (waterList.size() > 0) {
  657. waterList.forEach(water -> {
  658. payableInfoStudentResultVO.setMajor(water.getCollegeName() + water.getClassName());
  659. });
  660. }
  661. List<PayableInfoEntity> infoList = payableInfoService.list(wrapper);
  662. if (infoList.size() > 0) {
  663. infoList.forEach(info -> {
  664. if (info.getCollegeName() != null || info.getClassName() != null) {
  665. }
  666. payableInfoStudentResultVO.setMajor(info.getCollegeName() + info.getClassName());
  667. });
  668. }
  669. payableInfoStudentResultVO.setIdCard(cardNumber);
  670. payableInfoStudentResultVO.setStudentName(name);
  671. return CommonResult.ok().setResult(payableInfoStudentResultVO);
  672. }
  673. /**
  674. * 根据订单编号修改相应的缴费订单
  675. *
  676. * @param orderNo
  677. */
  678. @GetMapping("tt")
  679. public void updatePayinfoByOrder(String orderNo) {
  680. QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
  681. wrapper.eq("order_no", orderNo);
  682. PayOrderEntity one = payOrderService.getOne(wrapper);
  683. String parentOrderNo = "";
  684. BigDecimal parentOrderLone = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_HALF_UP);
  685. // if (one.getParentOrder() == null) {
  686. //// if (one.getNotPaySize() == 0) {
  687. //// one.setStatus("2");
  688. //// } else {
  689. //// one.setStatus("3");
  690. //// }
  691. // } else {
  692. // parentOrderNo = one.getParentOrder();
  693. // PayOrderEntity byOrderNo = payOrderService.getByOrderNo(parentOrderNo);
  694. //
  695. // one.setStatus("2");
  696. // }
  697. //payOrderService.updateById(one);
  698. String payDetail = "";
  699. if (StringUtils.hasText(one.getPayDetail())) {
  700. payDetail = one.getPayDetail();
  701. }
  702. String notPayDetail = "";
  703. if (StringUtils.hasText(one.getNotPayDetail())) {
  704. notPayDetail = one.getNotPayDetail();
  705. }
  706. Integer notPaySize = one.getNotPaySize();
  707. String payYear = one.getPayYear();
  708. String studentName = one.getStudentName();
  709. String payForIdentify = one.getPayForIdentify();
  710. String payItem = one.getPayItem();
  711. BigDecimal payOrderLoan = BigDecimal.ZERO;
  712. PayableInfoEntity payableInfoEntity = new PayableInfoEntity();
  713. PayableInfoWaterEntity payableInfoWaterEntity = new PayableInfoWaterEntity();
  714. if (payItem.equals("水费缴纳")) {
  715. QueryWrapper<PayableInfoWaterEntity> wrapper1 = new QueryWrapper<>();
  716. wrapper1.eq("student_no", payForIdentify)
  717. .eq("student_name", studentName)
  718. .eq("payment_item", payItem)
  719. .eq("pay_month", payYear);
  720. PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapper1);
  721. water.setPayItemType("2");
  722. if (water.getPayFinishTime() == null) {
  723. water.setPayFinishTime(LocalDateTime.now());
  724. }
  725. payableInfoWaterService.updateById(water);
  726. } else {
  727. QueryWrapper<PayableInfoEntity> wrapper1 = new QueryWrapper<>();
  728. wrapper1.eq("student_no", payForIdentify)
  729. .eq("student_name", studentName)
  730. .eq("payment_item", payItem)
  731. .eq("years", payYear);
  732. PayableInfoEntity pInfo = payableInfoService.getOne(wrapper1);
  733. String notPayDetail1 = "";
  734. String payDetail1 = "";
  735. // System.out.println(parentOrderNo);
  736. QueryWrapper<PayOrderEntity> orderWapper = new QueryWrapper<>();
  737. orderWapper.eq("pay_for_identify", payForIdentify)
  738. .eq("student_name", studentName)
  739. .eq("pay_item", payItem)
  740. .eq("pay_year", payYear)
  741. .in("status", "2", "3");
  742. List<PayOrderEntity> payOrderList = payOrderService.list(orderWapper);
  743. //List<PayOrderEntity> payOrderList = payOrderService.queryAllOrderByParent(parentOrderNo, new PageParam()).getList();
  744. if (payOrderList.size() > 0) {
  745. for (int i = 0; i < payOrderList.size(); i++) {
  746. if (StringUtils.hasText(payOrderList.get(i).getPayDetail())) {
  747. payDetail1 += payOrderList.get(i).getPayDetail() + "/";
  748. }
  749. // PayInfoDetailVO payInfoDetailVO = (PayInfoDetailVO) queryPayInfoDetail(String.valueOf(pInfo.getId()), pInfo.getPaymentItem(), payDetail1).getData();
  750. payOrderLoan = payOrderLoan.add(payOrderList.get(i).getPayOrderLoan()).setScale(2, BigDecimal.ROUND_HALF_UP);
  751. }
  752. }
  753. pInfo.setPayOrderLoan(payOrderLoan);
  754. payDetail1 = payDetail1.endsWith("/") == true ? payDetail1.substring(0, payDetail1.length() - 1) : payDetail1;
  755. //notPayDetail1 = notPayDetail1.endsWith("/") == true ? notPayDetail1.substring(0,notPayDetail1.length() -1 ) : notPayDetail1;
  756. // notPayDetail1= notPayDetail1.startsWith("/") == true ? notPayDetail1.substring(1) : notPayDetail1;
  757. // payDetail1= payDetail1.startsWith("/") == true ? payDetail1.substring(1) : payDetail1;
  758. PayInfoDetailVO payInfoDetailVO = (PayInfoDetailVO) this.queryPayInfoDetail(String.valueOf(pInfo.getId()), pInfo.getPaymentItem(), one.getPayDetail()).getData();
  759. pInfo.setPayDetail(payDetail1);
  760. String payInfoPayAllDetail = "";
  761. if (StringUtils.hasText(pInfo.getMustMoney())) {
  762. payInfoPayAllDetail += pInfo.getMustMoney() + "/";
  763. }
  764. if (StringUtils.hasText(pInfo.getNotMustMoney())) {
  765. payInfoPayAllDetail += pInfo.getNotMustMoney();
  766. }
  767. String[] payDetail1Split = pInfo.getPayDetail().split("/");
  768. List<String> payDetail1List = new ArrayList<>(Arrays.asList(payDetail1Split));
  769. String[] payInfoPayAllDetailSplit = payInfoPayAllDetail.split("/");
  770. List<String> payInfoPayAllDetailList = new ArrayList<>(Arrays.asList(payInfoPayAllDetailSplit));
  771. payInfoPayAllDetailList.removeAll(payDetail1List);
  772. notPaySize = 0;
  773. if (payInfoPayAllDetailList.size() > 0) {
  774. for (int i = 0; i < payInfoPayAllDetailList.size(); i++) {
  775. notPayDetail1 += payInfoPayAllDetailList.get(i) + "/";
  776. notPaySize++;
  777. }
  778. notPayDetail1 = notPayDetail1.endsWith("/") == true ? notPayDetail1.substring(0, notPayDetail1.length() - 1) : notPayDetail1;
  779. }
  780. // System.out.println(payOrderList.size());
  781. // System.out.println(payDetail1 + "-------------------------payDetail1-------------------------");
  782. // System.out.println(notPayDetail1 + "-------------------notPayDetail1-----------------------");
  783. pInfo.setNotPayDetail(notPayDetail1);
  784. pInfo.setNotPaySize(notPaySize);
  785. if (pInfo.getPayFinishTime() == null) {
  786. pInfo.setPayFinishTime(LocalDateTime.now());
  787. }
  788. //当所有待缴费明细的数量为0 时表示该订单已经完成缴费
  789. if (one != null) {
  790. if (notPaySize == 0) {
  791. pInfo.setPayItemType("2");
  792. } else {
  793. pInfo.setPayItemType("3");
  794. }
  795. }
  796. pInfo.setPayOrderLoan(payOrderLoan);
  797. one.setNotPayDetail(notPayDetail1);
  798. // System.out.println(pInfo);
  799. payOrderService.updateById(one);
  800. payableInfoService.updateById(pInfo);
  801. }
  802. }
  803. // /**
  804. // * 根据订单编号修改相应的缴费订单
  805. // *
  806. // * @param orderNo
  807. // */
  808. // @GetMapping("tt")
  809. // public void updatePayinfoByOrder(String orderNo) {
  810. // QueryWrapper<PayOrderEntity> wrapper = new QueryWrapper<>();
  811. // wrapper.eq("order_no", orderNo);
  812. // PayOrderEntity one = payOrderService.getOne(wrapper);
  813. // String parentOrderNo = "";
  814. // BigDecimal parentOrderLone = BigDecimal.ZERO.setScale(2,BigDecimal.ROUND_HALF_UP);
  815. // if (one.getParentOrder() == null) {
  816. // if (one.getNotPaySize() == 0) {
  817. // one.setStatus("2");
  818. // } else {
  819. // one.setStatus("3");
  820. // }
  821. // //TODO 更新缴费订单的贷款金额
  822. // parentOrderNo = one.getOrderNo();
  823. // parentOrderLone = parentOrderLone.add(one.getPayOrderLoan()).setScale(2,BigDecimal.ROUND_HALF_UP);
  824. // } else {
  825. // parentOrderNo = one.getParentOrder();
  826. // PayOrderEntity byOrderNo = payOrderService.getByOrderNo(parentOrderNo);
  827. // parentOrderLone = parentOrderLone.add(byOrderNo.getPayOrderLoan()).setScale(2,BigDecimal.ROUND_HALF_UP);
  828. //
  829. // one.setStatus("2");
  830. // }
  831. //
  832. //
  833. // payOrderService.updateById(one);
  834. // String payDetail = "";
  835. // if (StringUtils.hasText(one.getPayDetail())) {
  836. // payDetail = one.getPayDetail();
  837. // }
  838. // String notPayDetail = "";
  839. // if (StringUtils.hasText(one.getNotPayDetail())) {
  840. // notPayDetail = one.getNotPayDetail();
  841. // }
  842. //
  843. // Integer notPaySize = one.getNotPaySize();
  844. // String payYear = one.getPayYear();
  845. // String studentName = one.getStudentName();
  846. // String payForIdentify = one.getPayForIdentify();
  847. // String payItem = one.getPayItem();
  848. // BigDecimal payOrderLoan = one.getPayOrderLoan();
  849. // PayableInfoEntity payableInfoEntity = new PayableInfoEntity();
  850. // PayableInfoWaterEntity payableInfoWaterEntity = new PayableInfoWaterEntity();
  851. // if (payItem.equals("水费缴纳")) {
  852. // QueryWrapper<PayableInfoWaterEntity> wrapper1 = new QueryWrapper<>();
  853. // wrapper1.eq("student_no", payForIdentify)
  854. // .eq("student_name", studentName)
  855. // .eq("pay_month", payYear);
  856. // PayableInfoWaterEntity water = payableInfoWaterService.getOne(wrapper1);
  857. // water.setPayItemType("2");
  858. // if (water.getPayFinishTime() == null) {
  859. // water.setPayFinishTime(LocalDateTime.now());
  860. // }
  861. // payableInfoWaterService.updateById(water);
  862. //
  863. // }else {
  864. // QueryWrapper<PayableInfoEntity> wrapper1 = new QueryWrapper<>();
  865. // wrapper1.eq("student_no", payForIdentify)
  866. // .eq("student_name", studentName)
  867. // .eq("years", payYear);
  868. // PayableInfoEntity pInfo = payableInfoService.getOne(wrapper1);
  869. // String notPayDetail1 = "";
  870. // String payDetail1 = "";
  871. // System.out.println(parentOrderNo);
  872. // List<PayOrderEntity> payOrderList = payOrderService.queryAllOrderByParent(parentOrderNo, new PageParam()).getList();
  873. // if (payOrderList.size() > 0) {
  874. //
  875. // for (int i = 0; i < payOrderList.size(); i++) {
  876. // System.out.println(payOrderList.get(i));
  877. //
  878. // // System.out.println(payOrderList.get(i));
  879. // // parentOrderLone = parentOrderLone.add(payOrderList.get(i).getPayOrderLoan()).setScale(2,BigDecimal.ROUND_HALF_UP);
  880. //// if (StringUtils.hasText(payOrderList.get(i).getNotPayDetail() )) {
  881. //// notPayDetail1 = payOrderList.get(i).getNotPayDetail() + "/";
  882. //// }
  883. //
  884. //
  885. // if (StringUtils.hasText(payOrderList.get(i).getPayDetail())) {
  886. // payDetail1 += payOrderList.get(i).getPayDetail() + "/";
  887. // }
  888. // if (StringUtils.hasText(payOrderList.get(payOrderList.size() - 1).getNotPayDetail())) {
  889. // notPayDetail1 = payOrderList.get(payOrderList.size() - 1).getNotPayDetail();
  890. // }
  891. // PayInfoDetailVO payInfoDetailVO = (PayInfoDetailVO) queryPayInfoDetail(String.valueOf(pInfo.getId()), pInfo.getPaymentItem(), payDetail1).getData();
  892. // // System.out.println(payInfoDetailVO);
  893. //// if (StringUtils.hasText(payOrderList.get(i).getPayOrderLoan())) {
  894. ////
  895. //// }
  896. // payOrderLoan = payOrderList.get(i).getPayOrderLoan();
  897. // pInfo.setPayOrderLoan(payOrderLoan);
  898. // }
  899. // }
  900. //// if (StringUtils.hasText(pInfo.getNotPayDetail())) {
  901. //// notPayDetail1 += notPayDetail +"/";
  902. //// }
  903. //// if (StringUtils.hasText(pInfo.getPayDetail())) {
  904. //// payDetail1 += payDetail + "/";
  905. //// }
  906. //
  907. // payDetail1 = payDetail1.endsWith("/") == true ? payDetail1.substring(0, payDetail1.length() - 1) : payDetail1;
  908. // //notPayDetail1 = notPayDetail1.endsWith("/") == true ? notPayDetail1.substring(0,notPayDetail1.length() -1 ) : notPayDetail1;
  909. // // notPayDetail1= notPayDetail1.startsWith("/") == true ? notPayDetail1.substring(1) : notPayDetail1;
  910. // // payDetail1= payDetail1.startsWith("/") == true ? payDetail1.substring(1) : payDetail1;
  911. // PayInfoDetailVO payInfoDetailVO = (PayInfoDetailVO) this.queryPayInfoDetail(String.valueOf(pInfo.getId()), pInfo.getPaymentItem(), one.getPayDetail()).getData();
  912. //
  913. // pInfo.setPayDetail(payDetail1);
  914. // pInfo.setNotPayDetail(notPayDetail1);
  915. // pInfo.setNotPaySize(notPaySize);
  916. // if (pInfo.getPayFinishTime() == null) {
  917. // pInfo.setPayFinishTime(LocalDateTime.now());
  918. // }
  919. // //当所有待缴费明细的数量为0 时表示该订单已经完成缴费
  920. //// QueryWrapper<PayOrderEntity> wrapper2 = new QueryWrapper<>();
  921. //// wrapper2.eq("order_no", one.getParentOrder());
  922. //// PayOrderEntity one1 = payOrderService.getOne(wrapper2);
  923. // if (one != null) {
  924. // if (notPaySize == 0) {
  925. // pInfo.setPayItemType("2");
  926. // } else {
  927. // pInfo.setPayItemType("3");
  928. // }
  929. // }
  930. // pInfo.setPayOrderLoan(parentOrderLone);
  931. // payableInfoService.updateById(pInfo);
  932. // }
  933. // }
  934. // /**
  935. // * 根据缴费项目查询所有的缴费明细用于选定明细金额进入的账户(建行/农商)
  936. // * @param itemName
  937. // * @return
  938. // */
  939. // @GetMapping("/queryItemDetail")
  940. // public CommonResult<T> queryItemDetail(String itemName){
  941. // return CommonResult.ok();
  942. // }
  943. }