企业端我的普通项目接口添加

This commit is contained in:
梁琦涛
2021-09-29 19:09:34 +08:00
parent d8f39421d5
commit c5d897b278
7 changed files with 409 additions and 57 deletions
@@ -6,32 +6,38 @@ 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;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.common.ProjectCommon;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectDetailService;
import com.jero.common.system.api.ISysBaseAPI;
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.ValidUtil;
import com.jero.common.vo.ProjectDetailVO;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
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.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.entity.PayCommonProject;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -40,6 +46,7 @@ import com.jero.project.vo.PayCommonProjectOutput;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -58,20 +65,26 @@ import io.swagger.annotations.ApiOperation;
@RequestMapping("/project/payCommonProject")
@Slf4j
public class PayCommonProjectController extends JeroController<PayCommonProject, IPayCommonProjectService> {
@Autowired
@Resource
private IPayCommonProjectService payCommonProjectService;
@Autowired
@Resource
private ProjectDetailService projectDetailService;
@Autowired
@Resource
private ISysBaseAPI sysBaseAPI;
@Autowired
@Resource
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Autowired
@Resource
private IPayIncomeContractService payIncomeContractService;
@Autowired
@Resource
private ISysUserService sysUserService;
@Autowired
@Resource
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Resource
private IPayMailBillService payMailBillService;
@Resource
private IPayPackCompanyService payPackCompanyService;
@Resource
private IPayMailBillProjectService payMailBillProjectService;
/**
* 分页列表查询
*
@@ -111,6 +124,102 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
return Result.OK(pageList);
}
/**
* 企业端-分页列表查询
* 即项目的企业联系人、邮寄联系人、打包的企业联系人和打包联系人、关联合同的签订单位联系人
* @param payCommonProject 普通项目管理
* @param pageNo 页数
* @param pageSize 条数
* @return
*/
@ApiOperation(value="普通项目管理-企业端-分页列表查询", notes="普通项目管理-企业端-分页列表查询")
@GetMapping(value = "/queryCompanyPageList")
public Result<?> queryCompanyPageList(PayCommonProject payCommonProject,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(Objects.isNull(sysUser)){
return Result.error("没有查到用户信息!");
}
List<String> listUser = new ArrayList<>();
// 项目的企业联系人
LambdaQueryWrapper<PayCommonProject> queryPayCommonProject = new LambdaQueryWrapper<>();
queryPayCommonProject.eq(PayCommonProject::getContactsId,sysUser.getId());
List<PayCommonProject> listPayCommonProject = payCommonProjectService.list(queryPayCommonProject);
if(!CollectionUtils.isEmpty(listPayCommonProject)){
List<String> list = listPayCommonProject.stream().map(PayCommonProject::getId).collect(Collectors.toList());
listUser.addAll(list);
}
LambdaQueryWrapper<PayMailBill> queryPayMailBill = new LambdaQueryWrapper<>();
queryPayMailBill.eq(PayMailBill::getContactId,sysUser.getId());
List<PayMailBill> listPayMailBill = payMailBillService.list(queryPayMailBill);
// 邮寄联系人
if(!CollectionUtils.isEmpty(listPayMailBill)){
List<String> listId = listPayMailBill.stream().map(PayMailBill::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
queryPayMailBillProject.in(PayMailBillProject::getBillId,listId);
List<PayMailBillProject> listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProject);
if(!CollectionUtils.isEmpty(listPayMailBillProject)){
List<String> listProjectId = listPayMailBillProject.stream().map(PayMailBillProject::getProjectId).collect(Collectors.toList());
listUser.addAll(listProjectId);
}
}
// 打包的企业联系人和打包联系人
LambdaQueryWrapper<PayPackCompany> queryPayPackCompany = new LambdaQueryWrapper<>();
queryPayPackCompany.eq(PayPackCompany::getCompanyContactId,sysUser.getId()).or()
.eq(PayPackCompany::getPackContactId,sysUser.getId());
List<PayPackCompany> listPayPackCompany = payPackCompanyService.list(queryPayPackCompany);
if(!CollectionUtils.isEmpty(listPayPackCompany)){
List<String> listPayPackCompanyId = listPayPackCompany.stream().map(PayPackCompany::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
queryPayPackCompanyProject.in(PayPackCompanyProject::getProjectId,listPayPackCompanyId);
queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayProjectCommon.PROJECT_TYPE1);
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
List<String> listId = listPayPackCompanyProject.stream().map(PayPackCompanyProject::getProjectId).collect(Collectors.toList());
listUser.addAll(listId);
}
}
// 关联合同的签订单位联系人
LambdaQueryWrapper<PayIncomeContract> queryPayIncomeContract = new LambdaQueryWrapper<>();
queryPayIncomeContract.eq(PayIncomeContract::getSignedContactsId,sysUser.getId());
List<PayIncomeContract> listPayIncomeContract = payIncomeContractService.list(queryPayIncomeContract);
if(!CollectionUtils.isEmpty(listPayIncomeContract)){
List<String> listId = listPayIncomeContract.stream().map(PayIncomeContract::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,listId);
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectType,PayProjectCommon.PROJECT_TYPE1);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
List<String> listProjectId = listPayIncomeContractAssociated.stream().map(PayIncomeContractAssociated::getProjectId).collect(Collectors.toList());
listUser.addAll(listProjectId);
}
}
listUser.stream().distinct();
QueryWrapper<PayCommonProject> queryWrapper = QueryGenerator.initQueryWrapper(payCommonProject, req.getParameterMap());
if(!CollectionUtils.isEmpty(listUser)){
queryWrapper.in("id",listUser);
}else{
queryWrapper.in("id", Arrays.asList(""));
}
Page<PayCommonProject> page = new Page<PayCommonProject>(pageNo, pageSize);
IPage<PayCommonProject> pageList = payCommonProjectService.page(page, queryWrapper);
if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayCommonProject> list = pageList.getRecords();
list.forEach(p->{
if(Objects.isNull(p.getReceivableAmount())){
p.setReceivableAmount(new BigDecimal("0.00"));
}
if(Objects.isNull(p.getPaidAmount())){
p.setPaidAmount(new BigDecimal("0.00"));
}
});
pageList.setRecords(list);
}
return Result.OK(pageList);
}
/**
* 收入合同-列表
*