修改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.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 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.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator; 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.PasswordUtil;
import com.jero.common.util.ValidUtil; import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.mail.entity.PayMailBillProject; import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService; import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.pack.entity.PayPackCompany; import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService; import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService; import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayContactsManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; 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.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@@ -56,6 +63,8 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService; private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource @Resource
private IPayMailBillProjectService payMailBillProjectService; 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); IPage<PayPackCompany> pageList = payPackCompanyService.page(page, queryWrapper);
if(!CollectionUtils.isEmpty(pageList.getRecords())){ if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayPackCompany> list = 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->{ list.forEach(p->{
// 获取 打包费用,实际到账金额 if(!CollectionUtils.isEmpty(listPayCommonProject)){
PayPackCompanyProjectInput input = new PayPackCompanyProjectInput(); List<PayCommonProject> listCount = listPayCommonProject.stream().filter(item->Objects.equals(p.getId(),item.getId())).collect(Collectors.toList());
input.setCompanyId(p.getCompanyId()); if(!CollectionUtils.isEmpty(listCount)){
input.setPackId(p.getId()); p.setReceiptExpense(listPayCommonProject.get(0).getPaidAmount());
PayCommonProject payCommonProject = payPackCompanyService.queryPackListCount(input); }
if(!Objects.isNull(payCommonProject)){ }
p.setReceiptExpense(payCommonProject.getPaidAmount()); if(Objects.isNull(p.getReceiptExpense())){
}else{
p.setReceiptExpense(new BigDecimal("0.00")); p.setReceiptExpense(new BigDecimal("0.00"));
} }
if(Objects.isNull(p.getPackChargeTotal())){ if(Objects.isNull(p.getPackChargeTotal())){
@@ -216,12 +227,9 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
} }
} }
// 获取 打包费用,实际到账金额 // 获取 打包费用,实际到账金额
PayPackCompanyProjectInput input = new PayPackCompanyProjectInput(); List<PayCommonProject> listPayCommonProject = payPackCompanyService.queryPackListCount(Arrays.asList(payPackCompany.getId().split(",")));
input.setCompanyId(payPackCompany.getCompanyId()); if(!CollectionUtils.isEmpty(listPayCommonProject)){
input.setPackId(payPackCompany.getId()); payPackCompany.setReceiptExpense(listPayCommonProject.get(0).getPaidAmount());
PayCommonProject payCommonProject = payPackCompanyService.queryPackListCount(input);
if(!Objects.isNull(payCommonProject)){
payPackCompany.setReceiptExpense(payCommonProject.getPaidAmount());
}else{ }else{
payPackCompany.setReceiptExpense(new BigDecimal("0.00")); payPackCompany.setReceiptExpense(new BigDecimal("0.00"));
} }
@@ -252,7 +260,52 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
@GetMapping(value = "/exportXls") @GetMapping(value = "/exportXls")
@RequiresPermissions("packCompany:export") @RequiresPermissions("packCompany:export")
public ModelAndView exportXls(HttpServletRequest request, PayPackCompany payPackCompany) { 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 * @Return
* @Exception * @Exception
*/ */
PayCommonProject queryPackListCount(PayPackCompanyProjectInput input); List<PayCommonProject> queryPackListCount(List<String> listPackIds);
/** /**
* @Description 导出excel数据 * @Description 导出excel数据
@@ -2,8 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!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"> <mapper namespace="com.jero.pack.mapper.PayPackCompanyMapper">
<select id="queryPackListCount" resultType="com.jero.project.entity.PayCommonProject"> <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 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> </select>
</mapper> </mapper>
@@ -36,9 +36,9 @@ public interface IPayPackCompanyService extends IService<PayPackCompany> {
* @Description 查询金额 * @Description 查询金额
* @Author lqt * @Author lqt
* @Date 2021/9/13 * @Date 2021/9/13
* @Param * @Param listPackIds 打包企业id
* @Return * @Return
* @Exception * @Exception
*/ */
PayCommonProject queryPackListCount(PayPackCompanyProjectInput input); List<PayCommonProject> queryPackListCount(List<String> listPackIds);
} }
@@ -89,8 +89,8 @@ public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper,
} }
@Override @Override
public PayCommonProject queryPackListCount(PayPackCompanyProjectInput input) { public List<PayCommonProject> queryPackListCount(List<String> listPackIds) {
return payPackCompanyMapper.queryPackListCount(input); return payPackCompanyMapper.queryPackListCount(listPackIds);
} }
/** /**