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);
|
Integer checkMemberCompanyName(@Param("memberId") String memberId, @Param("companyName") String companyName);
|
||||||
|
|
||||||
IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, @Param(Constants.WRAPPER) QueryWrapper<PayCompanyManagement> queryWrapper);
|
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
|
left join pay_functional_safety_center_subitem pfscs on pcm.id = pfscs.company_id
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
+1
@@ -127,4 +127,5 @@ public interface IPayCompanyManagementService extends IService<PayCompanyManagem
|
|||||||
|
|
||||||
IPage<PayCompanyManagement> pageSafetyCenter(Page<PayCompanyManagement> page, QueryWrapper<PayCompanyManagement> queryWrapper);
|
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);
|
return payCompanyManagementMapper.pageSafetyCenter(page, queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page<PayCompanyManagement> pageHaveMoney(Page<PayCompanyManagement> page, List<String> chargeCompanyIds) {
|
||||||
|
return payCompanyManagementMapper.pageHaveMoney(page, chargeCompanyIds);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验企业名称和信用代码是否匹配
|
* 校验企业名称和信用代码是否匹配
|
||||||
* @param payCompanyManagement
|
* @param payCompanyManagement
|
||||||
|
|||||||
+1
-1
@@ -2713,7 +2713,7 @@
|
|||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</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"
|
<foreach item="item" index="index" collection="companyComeMoneySearch.chargeCompanyIds"
|
||||||
open="AND chargeCompanyId in (" separator="," close=")">
|
open="AND chargeCompanyId in (" separator="," close=")">
|
||||||
#{item}
|
#{item}
|
||||||
|
|||||||
+70
-25
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollStreamUtil;
|
|||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.common.api.vo.Result;
|
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.apache.shiro.authz.annotation.RequiresPermissions;
|
||||||
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
import org.jeecgframework.poi.excel.ExcelExportUtil;
|
||||||
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
|
import org.jeecgframework.poi.excel.entity.TemplateExportParams;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
@@ -238,15 +241,20 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||||
String chargeCompanyId = companyComeMoneySearch.getChargeCompanyId();
|
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)){
|
if (StringUtils.isNotBlank(chargeCompanyId)){
|
||||||
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
|
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
|
||||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
allSearch.setChargeCompanyIds(chargeCompanyIds);
|
||||||
}else {
|
wrapper.in(PayCompanyManagement::getId,chargeCompanyIds);
|
||||||
List<PayCompanyManagement> list = payCompanyManagementService.list();
|
|
||||||
chargeCompanyIds = list.stream().map(PayCompanyManagement::getId).collect(Collectors.toList());
|
|
||||||
companyComeMoneySearch.setChargeCompanyIds(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_begin = companyComeMoneySearch.getYear_begin();
|
||||||
String year_end = companyComeMoneySearch.getYear_end();
|
String year_end = companyComeMoneySearch.getYear_end();
|
||||||
int integer1 = Integer.parseInt(year_begin);
|
int integer1 = Integer.parseInt(year_begin);
|
||||||
@@ -254,14 +262,21 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
int i = integer2 - integer1;
|
int i = integer2 - integer1;
|
||||||
List<String> years = new LinkedList<>();
|
List<String> years = new LinkedList<>();
|
||||||
years.add(year_begin);
|
years.add(year_begin);
|
||||||
for (int i1 = 0; i1 < i; i1++) {
|
for (int i1 = 1; i1 <= i; i1++) {
|
||||||
years.add(String.valueOf(integer1+i1));
|
years.add(String.valueOf(integer1+i1));
|
||||||
}
|
}
|
||||||
companyComeMoneySearch.setYears(years);
|
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<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
//获取表头
|
//获取表头
|
||||||
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
|
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
|
||||||
List<Map<String, String>> titleList = new ArrayList<>();
|
List<Map<String, String>> titleList = new ArrayList<>();
|
||||||
|
//总金额map
|
||||||
Map<String, String> allMap = new HashMap<>();
|
Map<String, String> allMap = new HashMap<>();
|
||||||
BigDecimal zero = new BigDecimal("0.00");
|
BigDecimal zero = new BigDecimal("0.00");
|
||||||
for (String s : years) {
|
for (String s : years) {
|
||||||
@@ -283,8 +298,7 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
map.put("titleList", titleList);
|
map.put("titleList", titleList);
|
||||||
//获取数据
|
//统计金额
|
||||||
List<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(companyComeMoneySearch);
|
|
||||||
List<Map<String, String>> valList = new ArrayList<>();
|
List<Map<String, String>> valList = new ArrayList<>();
|
||||||
//先按企业id分组
|
//先按企业id分组
|
||||||
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
|
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
|
||||||
@@ -292,7 +306,7 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
Map<String, String> lm = new HashMap<>();
|
Map<String, String> lm = new HashMap<>();
|
||||||
//获取单一企业数据
|
//获取单一企业数据
|
||||||
List<CompanyComeMoneyClassificationList> companyDateList = companyIdKeyMap.get(companyId);
|
List<CompanyComeMoneyClassificationList> companyDateList = companyIdKeyMap.get(companyId);
|
||||||
if (companyDateList.isEmpty()) {
|
if (CollectionUtil.isEmpty(companyDateList)) {
|
||||||
continue;
|
continue;
|
||||||
}else {
|
}else {
|
||||||
String companyName = companyDateList.get(0).getCompanyName();
|
String companyName = companyDateList.get(0).getCompanyName();
|
||||||
@@ -311,9 +325,6 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
lm.put(yearKey, bigDecimal.toString());
|
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) {
|
for (String yearKey : years) {
|
||||||
//获得单一年数据
|
//获得单一年数据
|
||||||
@@ -331,15 +342,51 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
}
|
}
|
||||||
String key = yearKey + "_" + value;
|
String key = yearKey + "_" + value;
|
||||||
lm.put(key, bigDecimal.toString());
|
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);
|
valList.add(lm);
|
||||||
}
|
}
|
||||||
map.put("valList", valList);
|
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("allMap", allMap);
|
||||||
|
|
||||||
|
map.put("page", page.setRecords(null));
|
||||||
return Result.OK(map);
|
return Result.OK(map);
|
||||||
|
|
||||||
}/**
|
}/**
|
||||||
@@ -353,14 +400,11 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
public void classificationExcel(CompanyComeMoneySearch companyComeMoneySearch,
|
public void classificationExcel(CompanyComeMoneySearch companyComeMoneySearch,
|
||||||
HttpServletResponse response) {
|
HttpServletResponse response) {
|
||||||
String chargeCompanyId = companyComeMoneySearch.getChargeCompanyId();
|
String chargeCompanyId = companyComeMoneySearch.getChargeCompanyId();
|
||||||
List<String> chargeCompanyIds;
|
List<String> chargeCompanyIds = new ArrayList<>();
|
||||||
|
CompanyComeMoneySearch allSearch = new CompanyComeMoneySearch();
|
||||||
if (StringUtils.isNotBlank(chargeCompanyId)){
|
if (StringUtils.isNotBlank(chargeCompanyId)){
|
||||||
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
|
chargeCompanyIds = StrUtil.split(chargeCompanyId, ',');
|
||||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
allSearch.setChargeCompanyIds(chargeCompanyIds);
|
||||||
}else {
|
|
||||||
List<PayCompanyManagement> list = payCompanyManagementService.list();
|
|
||||||
chargeCompanyIds = list.stream().map(PayCompanyManagement::getId).collect(Collectors.toList());
|
|
||||||
companyComeMoneySearch.setChargeCompanyIds(chargeCompanyIds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
String year_begin = companyComeMoneySearch.getYear_begin();
|
String year_begin = companyComeMoneySearch.getYear_begin();
|
||||||
@@ -370,10 +414,11 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
int i = integer2 - integer1;
|
int i = integer2 - integer1;
|
||||||
List<String> years = new LinkedList<>();
|
List<String> years = new LinkedList<>();
|
||||||
years.add(year_begin);
|
years.add(year_begin);
|
||||||
for (int i1 = 0; i1 < i; i1++) {
|
for (int i1 = 1; i1 <= i; i1++) {
|
||||||
years.add(String.valueOf(integer1+i1));
|
years.add(String.valueOf(integer1+i1));
|
||||||
}
|
}
|
||||||
companyComeMoneySearch.setYears(years);
|
companyComeMoneySearch.setYears(years);
|
||||||
|
allSearch.setYears(years);
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
//获取表头
|
//获取表头
|
||||||
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
|
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
|
||||||
@@ -397,7 +442,7 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
}
|
}
|
||||||
map.put("titleList", titleList);
|
map.put("titleList", titleList);
|
||||||
//获取数据
|
//获取数据
|
||||||
List<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(companyComeMoneySearch);
|
List<CompanyComeMoneyClassificationList> list = payWorkingGroupService.queryPageListForCompanyClassification(allSearch);
|
||||||
List<Map<String, String>> valList = new ArrayList<>();
|
List<Map<String, String>> valList = new ArrayList<>();
|
||||||
//先按企业id分组
|
//先按企业id分组
|
||||||
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
|
Map<String, List<CompanyComeMoneyClassificationList>> companyIdKeyMap = CollStreamUtil.groupByKey(list, CompanyComeMoneyClassificationList::getCompanyId);
|
||||||
@@ -458,7 +503,7 @@ public class CompanyComeMoneyStatisticsController {
|
|||||||
response.setContentType("application/x-download");
|
response.setContentType("application/x-download");
|
||||||
response.setCharacterEncoding("UTF-8");
|
response.setCharacterEncoding("UTF-8");
|
||||||
response.setHeader("Content-Disposition",
|
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();
|
ServletOutputStream outputStream = response.getOutputStream();
|
||||||
workbook.write(outputStream);
|
workbook.write(outputStream);
|
||||||
workbook.close();
|
workbook.close();
|
||||||
|
|||||||
Reference in New Issue
Block a user