update 企业来款统计-分类统计 分页
This commit is contained in:
+2
@@ -33,4 +33,6 @@ public interface PayCompanyManagementMapper extends BaseMapper<PayCompanyManagem
|
||||
Integer checkMemberCompanyName(@Param("memberId") String memberId, @Param("companyName") String companyName);
|
||||
|
||||
IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, @Param(Constants.WRAPPER) QueryWrapper<PayCompanyManagement> queryWrapper);
|
||||
|
||||
Page<PayCompanyManagement> pageHaveMoney(Page<PayCompanyManagement> page, @Param("chargeCompanyIds") List<String> chargeCompanyIds);
|
||||
}
|
||||
|
||||
+9
@@ -46,4 +46,13 @@
|
||||
left join pay_functional_safety_center_subitem pfscs on pcm.id = pfscs.company_id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="pageHaveMoney" resultType="com.jero.company.entity.PayCompanyManagement">
|
||||
select distinct chargeCompanyId as id from v_statistical
|
||||
<where>
|
||||
<foreach item="item" index="index" collection="chargeCompanyIds" open="chargeCompanyId in (" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
+1
@@ -127,4 +127,5 @@ public interface IPayCompanyManagementService extends IService<PayCompanyManagem
|
||||
|
||||
IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, QueryWrapper<PayCompanyManagement> queryWrapper);
|
||||
|
||||
Page<PayCompanyManagement> pageHaveMoney(Page<PayCompanyManagement> page, List<String> chargeCompanyIds);
|
||||
}
|
||||
|
||||
+5
@@ -715,6 +715,11 @@ public class PayCompanyManagementServiceImpl extends ServiceImpl<PayCompanyManag
|
||||
return payCompanyManagementMapper.pageSafetyCenter(page, queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<PayCompanyManagement> pageHaveMoney(Page<PayCompanyManagement> page, List<String> chargeCompanyIds) {
|
||||
return payCompanyManagementMapper.pageHaveMoney(page, chargeCompanyIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验企业名称和信用代码是否匹配
|
||||
* @param payCompanyManagement
|
||||
|
||||
+1
-1
@@ -2713,7 +2713,7 @@
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="companyComeMoneySearch.chargeCompanyId != null and companyComeMoneySearch.chargeCompanyId != ''">
|
||||
<if test="companyComeMoneySearch.chargeCompanyIds != null and companyComeMoneySearch.chargeCompanyIds != ''">
|
||||
<foreach item="item" index="index" collection="companyComeMoneySearch.chargeCompanyIds"
|
||||
open="AND chargeCompanyId in (" separator="," close=")">
|
||||
#{item}
|
||||
|
||||
+70
-25
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollStreamUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
@@ -28,7 +29,9 @@ import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
||||
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
@@ -238,15 +241,20 @@ public class CompanyComeMoneyStatisticsController {
|
||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
String chargeCompanyId = companyComeMoneySearch.getChargeCompanyId();
|
||||
List<String> chargeCompanyIds;
|
||||
LambdaQueryWrapper<PayCompanyManagement> wrapper = new LambdaQueryWrapper<>();
|
||||
List<String> chargeCompanyIds = new ArrayList<>();
|
||||
CompanyComeMoneySearch allSearch = new CompanyComeMoneySearch();
|
||||
if (StringUtils.isNotBlank(chargeCompanyId)){
|
||||
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
|
||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
||||
}else {
|
||||
List<PayCompanyManagement> list = payCompanyManagementService.list();
|
||||
chargeCompanyIds = list.stream().map(PayCompanyManagement::getId).collect(Collectors.toList());
|
||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
||||
allSearch.setChargeCompanyIds(chargeCompanyIds);
|
||||
wrapper.in(PayCompanyManagement::getId,chargeCompanyIds);
|
||||
}
|
||||
//获取分页后需要统计的企业
|
||||
Page<PayCompanyManagement> page = new Page<>(pageNo, pageSize);
|
||||
Page<PayCompanyManagement> companyManagementPage = payCompanyManagementService.pageHaveMoney(page,chargeCompanyIds);
|
||||
chargeCompanyIds = companyManagementPage.getRecords().stream().map(PayCompanyManagement::getId).collect(Collectors.toList());
|
||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
||||
|
||||
String year_begin = companyComeMoneySearch.getYear_begin();
|
||||
String year_end = companyComeMoneySearch.getYear_end();
|
||||
int integer1 = Integer.parseInt(year_begin);
|
||||
@@ -254,14 +262,21 @@ public class CompanyComeMoneyStatisticsController {
|
||||
int i = integer2 - integer1;
|
||||
List<String> years = new LinkedList<>();
|
||||
years.add(year_begin);
|
||||
for (int i1 = 0; i1 < i; i1++) {
|
||||
for (int i1 = 1; i1 <= i; i1++) {
|
||||
years.add(String.valueOf(integer1+i1));
|
||||
}
|
||||
companyComeMoneySearch.setYears(years);
|
||||
allSearch.setYears(years);
|
||||
//获取当前分页数据
|
||||
List<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(companyComeMoneySearch);
|
||||
//获取总金额
|
||||
List<CompanyComeMoneyClassificationList> allMoneyList = payWorkingGroupService.queryPageListForCompanyClassification(allSearch);
|
||||
//拼接返回值map
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//获取表头
|
||||
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
|
||||
List<Map<String, String>> titleList = new ArrayList<>();
|
||||
//总金额map
|
||||
Map<String, String> allMap = new HashMap<>();
|
||||
BigDecimal zero = new BigDecimal("0.00");
|
||||
for (String s : years) {
|
||||
@@ -283,8 +298,7 @@ public class CompanyComeMoneyStatisticsController {
|
||||
}
|
||||
}
|
||||
map.put("titleList", titleList);
|
||||
//获取数据
|
||||
List<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(companyComeMoneySearch);
|
||||
//统计金额
|
||||
List<Map<String, String>> valList = new ArrayList<>();
|
||||
//先按企业id分组
|
||||
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
|
||||
@@ -292,7 +306,7 @@ public class CompanyComeMoneyStatisticsController {
|
||||
Map<String, String> lm = new HashMap<>();
|
||||
//获取单一企业数据
|
||||
List<CompanyComeMoneyClassificationList> companyDateList = companyIdKeyMap.get(companyId);
|
||||
if (companyDateList.isEmpty()) {
|
||||
if (CollectionUtil.isEmpty(companyDateList)) {
|
||||
continue;
|
||||
}else {
|
||||
String companyName = companyDateList.get(0).getCompanyName();
|
||||
@@ -311,9 +325,6 @@ public class CompanyComeMoneyStatisticsController {
|
||||
}
|
||||
}
|
||||
lm.put(yearKey, bigDecimal.toString());
|
||||
String allStr = allMap.get(yearKey);
|
||||
BigDecimal all = new BigDecimal(allStr).add(bigDecimal);
|
||||
allMap.put(yearKey,all.toString());
|
||||
}
|
||||
for (String yearKey : years) {
|
||||
//获得单一年数据
|
||||
@@ -331,15 +342,51 @@ public class CompanyComeMoneyStatisticsController {
|
||||
}
|
||||
String key = yearKey + "_" + value;
|
||||
lm.put(key, bigDecimal.toString());
|
||||
String allStr = allMap.get(key);
|
||||
BigDecimal all = new BigDecimal(allStr).add(bigDecimal);
|
||||
allMap.put(key,all.toString());
|
||||
}
|
||||
}
|
||||
valList.add(lm);
|
||||
}
|
||||
map.put("valList", valList);
|
||||
//存入总金额
|
||||
//按年份分组
|
||||
Map<String, List<CompanyComeMoneyClassificationList>> yearKeyMap = CollStreamUtil.groupByKey(allMoneyList, CompanyComeMoneyClassificationList::getYear);
|
||||
for (String yearKey : years) {
|
||||
//获得单一年数据
|
||||
List<CompanyComeMoneyClassificationList> dataList = yearKeyMap.get(yearKey);
|
||||
BigDecimal bigDecimal = new BigDecimal("0.00");
|
||||
if (dataList != null){
|
||||
for (CompanyComeMoneyClassificationList list1 : dataList) {
|
||||
String allMoney = list1.getAllMoney();
|
||||
bigDecimal = bigDecimal.add(new BigDecimal(allMoney));
|
||||
}
|
||||
}
|
||||
String allStr = allMap.get(yearKey);
|
||||
BigDecimal all = new BigDecimal(allStr).add(bigDecimal);
|
||||
allMap.put(yearKey,all.toString());
|
||||
}
|
||||
for (String yearKey : years) {
|
||||
//获得单一年数据
|
||||
List<CompanyComeMoneyClassificationList> dataList = yearKeyMap.get(yearKey);
|
||||
for (DictModel dictModel : dictModels) {
|
||||
BigDecimal bigDecimal = new BigDecimal("0.00");
|
||||
String value = dictModel.getValue();
|
||||
if (dataList != null){
|
||||
for (CompanyComeMoneyClassificationList list2 : dataList) {
|
||||
if (list2.getChargeUse().equals(value)) {
|
||||
String allMoney = list2.getAllMoney();
|
||||
bigDecimal = bigDecimal.add(new BigDecimal(allMoney));
|
||||
}
|
||||
}
|
||||
}
|
||||
String key = yearKey + "_" + value;
|
||||
String allStr = allMap.get(key);
|
||||
BigDecimal all = new BigDecimal(allStr).add(bigDecimal);
|
||||
allMap.put(key,all.toString());
|
||||
}
|
||||
}
|
||||
map.put("allMap", allMap);
|
||||
|
||||
map.put("page", page.setRecords(null));
|
||||
return Result.OK(map);
|
||||
|
||||
}/**
|
||||
@@ -353,14 +400,11 @@ public class CompanyComeMoneyStatisticsController {
|
||||
public void classificationExcel(CompanyComeMoneySearch companyComeMoneySearch,
|
||||
HttpServletResponse response) {
|
||||
String chargeCompanyId = companyComeMoneySearch.getChargeCompanyId();
|
||||
List<String> chargeCompanyIds;
|
||||
List<String> chargeCompanyIds = new ArrayList<>();
|
||||
CompanyComeMoneySearch allSearch = new CompanyComeMoneySearch();
|
||||
if (StringUtils.isNotBlank(chargeCompanyId)){
|
||||
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
|
||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
||||
}else {
|
||||
List<PayCompanyManagement> list = payCompanyManagementService.list();
|
||||
chargeCompanyIds = list.stream().map(PayCompanyManagement::getId).collect(Collectors.toList());
|
||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
||||
allSearch.setChargeCompanyIds(chargeCompanyIds);
|
||||
}
|
||||
|
||||
String year_begin = companyComeMoneySearch.getYear_begin();
|
||||
@@ -370,10 +414,11 @@ public class CompanyComeMoneyStatisticsController {
|
||||
int i = integer2 - integer1;
|
||||
List<String> years = new LinkedList<>();
|
||||
years.add(year_begin);
|
||||
for (int i1 = 0; i1 < i; i1++) {
|
||||
for (int i1 = 1; i1 <= i; i1++) {
|
||||
years.add(String.valueOf(integer1+i1));
|
||||
}
|
||||
companyComeMoneySearch.setYears(years);
|
||||
allSearch.setYears(years);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//获取表头
|
||||
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
|
||||
@@ -397,7 +442,7 @@ public class CompanyComeMoneyStatisticsController {
|
||||
}
|
||||
map.put("titleList", titleList);
|
||||
//获取数据
|
||||
List<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(companyComeMoneySearch);
|
||||
List<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(allSearch);
|
||||
List<Map<String, String>> valList = new ArrayList<>();
|
||||
//先按企业id分组
|
||||
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
|
||||
@@ -458,7 +503,7 @@ public class CompanyComeMoneyStatisticsController {
|
||||
response.setContentType("application/x-download");
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.setHeader("Content-Disposition",
|
||||
"attachment;filename=".concat(String.valueOf(URLEncoder.encode("征集问题.xls", "UTF-8"))));
|
||||
"attachment;filename=".concat(String.valueOf(URLEncoder.encode("企业来款分类统计.xlsx", "UTF-8"))));
|
||||
ServletOutputStream outputStream = response.getOutputStream();
|
||||
workbook.write(outputStream);
|
||||
workbook.close();
|
||||
|
||||
Reference in New Issue
Block a user