Merge pull request 'demand: 客户账单查询-cpu飙升问题定位解决' (#241) from aike into master

Reviewed-on: http://git.xdadan.loc/tanex/emis-service/pulls/241
This commit is contained in:
heyu 2025-11-25 16:22:10 +08:00
commit c31f16e48d
3 changed files with 92 additions and 51 deletions

View File

@ -11,37 +11,28 @@
package com.xdadan.erp.web.emis;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.map.MapUtil;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import com.xdadan.erp.emis.utils.WaybillHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.core.controller.BaseController;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.common.utils.poi.ExcelUtil;
import com.xdadan.erp.emis.domain.EmisSettlePayRecord;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import com.xdadan.erp.emis.service.IEmisSettlePayRecordService;
import com.xdadan.erp.emis.utils.WaybillHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 账单收退款记录Controller
@ -89,6 +80,38 @@ public class EmisSettlePayRecordController extends BaseController
return getDataTable(list);
}
/**
* 查询账单收退款记录列表
*/
@GetMapping("/listSimple")
public TableDataInfo listSimple(EmisSettlePayRecord emisSettlePayRecord)
{
startPage();
setPrivParams(emisSettlePayRecord);
String billCodeStr = MapUtil.getStr(emisSettlePayRecord.getParams(),"billCode");
if(!StringUtils.isEmpty(billCodeStr)){
emisSettlePayRecord.getParams().put("billCode", WaybillHelper.formatQueryValue(billCodeStr));
String[] billCodeSortList = billCodeStr.split(",");
if(billCodeSortList.length>1){
emisSettlePayRecord.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList));
}
}
if(!StringUtils.isEmpty(emisSettlePayRecord.getSettleBillNo())){
emisSettlePayRecord.setSettleBillNo(WaybillHelper.formatQueryValue(emisSettlePayRecord.getSettleBillNo()));
String[] settleBillNoSortList = emisSettlePayRecord.getSettleBillNo().split(",");
if(settleBillNoSortList.length>1){
emisSettlePayRecord.getParams().put("settleBillNoSortList",Arrays.asList(settleBillNoSortList));
}
}
List<EmisSettlePayRecord> list = emisSettlePayRecordService.selectEmisSettlePayRecordListSimple(emisSettlePayRecord);
return getDataTable(list);
}
/**
* 收款统计Map
*/

View File

@ -9,14 +9,13 @@
*/
package com.xdadan.erp.emis.service;
import java.util.List;
import java.util.Map;
import com.xdadan.erp.emis.domain.EmisSettlePayRecord;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import javax.servlet.http.HttpServletResponse;
import com.xdadan.erp.emis.domain.EmisSettlePayRecord;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* @ClassName EmisSettlePayRecordService
@ -41,6 +40,14 @@ public interface IEmisSettlePayRecordService
*/
public List<EmisSettlePayRecord> selectEmisSettlePayRecordList(EmisSettlePayRecord emisSettlePayRecord);
/**
* 查询账单收退款记录列表
*
* @param emisSettlePayRecord 账单收退款记录
* @return 账单收退款记录集合
*/
public List<EmisSettlePayRecord> selectEmisSettlePayRecordListSimple(EmisSettlePayRecord emisSettlePayRecord);
public Map<String, Object> getSettlePayStatInfoMap(EmisSettlePayRecord emisSettlePayRecord);
public List<PayBackRecordDtl> queryPayBackRecordList(EmisSettlePayRecord emisSettlePayRecord);

View File

@ -10,6 +10,24 @@
package com.xdadan.erp.emis.service.impl;
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import com.xdadan.erp.emis.mapper.*;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.service.IEmisSettleBillService;
import com.xdadan.erp.emis.service.IEmisSettlePayRecordService;
import com.xdadan.erp.emis.service.excelCellStrategy.EmisSettlePayRecordCustomExcelUtil;
import com.xdadan.erp.emis.utils.WaybillHelper;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.ZoneId;
@ -22,25 +40,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.xdadan.erp.emis.domain.*;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.PayBackRecordDtl;
import com.xdadan.erp.emis.mapper.*;
import com.xdadan.erp.emis.service.EmisBaseService;
import com.xdadan.erp.emis.service.IEmisSettleBillService;
import com.xdadan.erp.emis.service.excelCellStrategy.EmisSettlePayRecordCustomExcelUtil;
import com.xdadan.erp.emis.utils.WaybillHelper;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xdadan.erp.emis.service.IEmisSettlePayRecordService;
/**
* 账单收退款记录Service业务层处理
*
@ -92,6 +91,18 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
return emisSettlePayRecordMapper.selectEmisSettlePayRecordById(id);
}
/**
* 查询账单收退款记录列表
*
* @param emisSettlePayRecord 账单收退款记录
* @return 账单收退款记录
*/
@Override
public List<EmisSettlePayRecord> selectEmisSettlePayRecordListSimple(EmisSettlePayRecord emisSettlePayRecord)
{
return emisSettlePayRecordMapper.selectEmisSettlePayRecordList(emisSettlePayRecord);
}
/**
* 查询账单收退款记录列表(带扩展信息)
*
@ -118,7 +129,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
.map(EmisSettlePayRecord::getPayId)
.filter(StringUtils::isNotBlank)
.distinct()
.collect(java.util.stream.Collectors.toList());
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(payIds)) {
return baseList;
@ -365,7 +376,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
// 对于没有开票状态记录的payId,需要检查emis_settle_bill的open_bill_status
List<String> missingPayIds = payIds.stream()
.filter(payId -> !result.containsKey(payId))
.collect(java.util.stream.Collectors.toList());
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(missingPayIds)) {
List<Map<String, Object>> billStatusList = emisSettlePayRecordMapper
@ -621,7 +632,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I
if (StringUtils.isNotBlank(payRecordOld.getSettleBillNo())) {
List<String> settleBillNos = Arrays.stream(payRecordOld.getSettleBillNo().split(","))
.map(String::trim)
.filter(org.apache.commons.lang3.StringUtils::isNotBlank)
.filter(StringUtils::isNotBlank)
.distinct()
.collect(Collectors.toList());
for (String settleBillNo : settleBillNos) {