修改bug#40701

This commit is contained in:
梁琦涛
2021-10-15 11:42:26 +08:00
parent cdcb65cb03
commit a61aab6e09
5 changed files with 84 additions and 23 deletions
@@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -16,22 +17,28 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
@@ -56,6 +63,8 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
private IPayMailBillProjectService payMailBillProjectService;
@Resource
private Environment env;
/**
* 分页列表查询
@@ -78,15 +87,17 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
IPage<PayPackCompany> pageList = payPackCompanyService.page(page, queryWrapper);
if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayPackCompany> list = pageList.getRecords();
// 获取 打包费用,实际到账金额
List<String> listPackIds = list.stream().map(PayPackCompany::getId).collect(Collectors.toList());
List<PayCommonProject> listPayCommonProject = payPackCompanyService.queryPackListCount(listPackIds);
list.forEach(p->{
// 获取 打包费用,实际到账金额
PayPackCompanyProjectInput input = new PayPackCompanyProjectInput();
input.setCompanyId(p.getCompanyId());
input.setPackId(p.getId());
PayCommonProject payCommonProject = payPackCompanyService.queryPackListCount(input);
if(!Objects.isNull(payCommonProject)){
p.setReceiptExpense(payCommonProject.getPaidAmount());
}else{
if(!CollectionUtils.isEmpty(listPayCommonProject)){
List<PayCommonProject> listCount = listPayCommonProject.stream().filter(item->Objects.equals(p.getId(),item.getId())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listCount)){
p.setReceiptExpense(listPayCommonProject.get(0).getPaidAmount());
}
}
if(Objects.isNull(p.getReceiptExpense())){
p.setReceiptExpense(new BigDecimal("0.00"));
}
if(Objects.isNull(p.getPackChargeTotal())){
@@ -216,12 +227,9 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
}
}
// 获取 打包费用,实际到账金额
PayPackCompanyProjectInput input = new PayPackCompanyProjectInput();
input.setCompanyId(payPackCompany.getCompanyId());
input.setPackId(payPackCompany.getId());
PayCommonProject payCommonProject = payPackCompanyService.queryPackListCount(input);
if(!Objects.isNull(payCommonProject)){
payPackCompany.setReceiptExpense(payCommonProject.getPaidAmount());
List<PayCommonProject> listPayCommonProject = payPackCompanyService.queryPackListCount(Arrays.asList(payPackCompany.getId().split(",")));
if(!CollectionUtils.isEmpty(listPayCommonProject)){
payPackCompany.setReceiptExpense(listPayCommonProject.get(0).getPaidAmount());
}else{
payPackCompany.setReceiptExpense(new BigDecimal("0.00"));
}
@@ -252,7 +260,52 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
@GetMapping(value = "/exportXls")
@RequiresPermissions("packCompany:export")
public ModelAndView exportXls(HttpServletRequest request, PayPackCompany payPackCompany) {
return super.exportXls(request, payPackCompany, PayPackCompany.class, "打包企业管理");
// Step.1 组装查询条件
QueryWrapper<PayPackCompany> queryWrapper = QueryGenerator.initQueryWrapper(payPackCompany, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 获取导出数据
List<PayPackCompany> pageList = payPackCompanyService.list(queryWrapper);
List<PayPackCompany> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
if(!CollectionUtils.isEmpty(exportList)){
List<String> listPackIds = exportList.stream().map(PayPackCompany::getId).collect(Collectors.toList());
List<PayCommonProject> listPayCommonProject = payPackCompanyService.queryPackListCount(listPackIds);
exportList.forEach(p->{
if (!CollectionUtils.isEmpty(listPayCommonProject)) {
List<PayCommonProject> listCount = listPayCommonProject.stream().filter(item -> Objects.equals(p.getId(), item.getId())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(listCount)) {
p.setReceiptExpense(listPayCommonProject.get(0).getPaidAmount());
}
}
if (Objects.isNull(p.getReceiptExpense())) {
p.setReceiptExpense(new BigDecimal("0.00"));
}
if (Objects.isNull(p.getPackChargeTotal())) {
p.setPackChargeTotal(new BigDecimal("0.00"));
}
});
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, "打包企业管理"); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, PayPackCompany.class);
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams("打包企业管理", "打包企业管理");
exportParams.setImageBasePath(env.getProperty("jero.path.upload"));
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
return mv;
}
/**
@@ -24,7 +24,7 @@ public interface PayPackCompanyMapper extends BaseMapper<PayPackCompany> {
* @Return
* @Exception
*/
PayCommonProject queryPackListCount(PayPackCompanyProjectInput input);
List<PayCommonProject> queryPackListCount(List<String> listPackIds);
/**
* @Description 导出excel数据
@@ -2,8 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.pack.mapper.PayPackCompanyMapper">
<select id="queryPackListCount" resultType="com.jero.project.entity.PayCommonProject">
SELECT sum(ppr.amount_received) AS paid_amount FROM pay_pack_company_project ppcp
SELECT sum(ppr.amount_received) AS paid_amount, ppcp.pack_id AS id FROM pay_pack_company_project ppcp
LEFT JOIN pay_payment_record ppr ON ppcp.project_id = ppr.project_id
WHERE ppcp.pack_id = #{packId}
<where>
<if test="listPackIds != null and listPackIds.size() > 0">
ppcp.pack_id in
<foreach collection="listPackIds" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
group by ppcp.pack_id
</select>
</mapper>
@@ -36,9 +36,9 @@ public interface IPayPackCompanyService extends IService<PayPackCompany> {
* @Description 查询金额
* @Author lqt
* @Date 2021/9/13
* @Param
* @Param listPackIds 打包企业id
* @Return
* @Exception
*/
PayCommonProject queryPackListCount(PayPackCompanyProjectInput input);
List<PayCommonProject> queryPackListCount(List<String> listPackIds);
}
@@ -89,8 +89,8 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
}
@Override
public PayCommonProject queryPackListCount(PayPackCompanyProjectInput input) {
return payPackCompanyMapper.queryPackListCount(input);
public List<PayCommonProject> queryPackListCount(List<String> listPackIds) {
return payPackCompanyMapper.queryPackListCount(listPackIds);
}
/**