打包关联项目

This commit is contained in:
梁琦涛
2021-09-10 18:42:05 +08:00
parent 8af238c27d
commit 916a9fed4b
8 changed files with 101 additions and 8 deletions
@@ -2,6 +2,7 @@ package com.jero.pack.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.pack.common.PackCommon;
import com.jero.pack.entity.PayPackCompanyProject; import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.vo.PayPackCompanyProjectInput; import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject; import com.jero.project.entity.PayCommonProject;
@@ -35,4 +36,18 @@ public interface PayPackCompanyProjectMapper extends BaseMapper<PayPackCompanyPr
* @Exception * @Exception
*/ */
List<PayCommonProject> queryPackListAll(PayPackCompanyProjectInput input); List<PayCommonProject> queryPackListAll(PayPackCompanyProjectInput input);
/**
* @Description 筛选符合打包年份的项目
* @Author lqt
* @Date 2021/9/10
* @Param companyId 企业id
* @Param projectType 项目类型
* @Param year 年份
* @Return
* @Exception
*/
List<String> queryPackToYear(@Param("companyId") String companyId,@Param("projectType") String projectType,
@Param("year") String year,@Param("come") Integer come);
} }
@@ -203,4 +203,11 @@
ORDER BY create_time desc ORDER BY create_time desc
</select> </select>
<select id="queryPackToYear" resultType="java.lang.String">
SELECT ppcp.project_id
FROM pay_pack_company_project ppcp
LEFT JOIN pay_pack_company ppc ON ppcp.pack_id = ppc.id
WHERE ppcp.project_type =#{projectType} AND ppc.pack_year = #{year} AND ppc.company_id=#{companyId}
AND ppcp.come = #{come}
</select>
</mapper> </mapper>
@@ -40,4 +40,15 @@ public interface IPayPackCompanyProjectService extends IService<PayPackCompanyPr
* @Exception * @Exception
*/ */
void addPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject); void addPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject);
/**
* @Description 筛选符合打包年份的项目
* @Author lqt
* @Date 2021/9/10
* @Param companyId 企业id
* @Param projectType 项目类型
* @Param year 打包年份
* @Return
* @Exception
*/
List<String> queryPackToYear(String companyId,String projectType,String year);
} }
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.pack.common.PackCommon;
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.mapper.PayPackCompanyProjectMapper; import com.jero.pack.mapper.PayPackCompanyProjectMapper;
@@ -85,4 +86,9 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
payPackCompanyProjectService.save(payPackCompanyProject); payPackCompanyProjectService.save(payPackCompanyProject);
} }
} }
@Override
public List<String> queryPackToYear(String companyId,String projectType,String year) {
return payPackCompanyProjectMapper.queryPackToYear(companyId,projectType,year, PackCommon.COME2);
}
} }
@@ -25,6 +25,7 @@ import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService; import com.jero.contract.service.IPayIncomeContractService;
import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService; import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
@@ -67,6 +68,8 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
private IPayPackCompanyService payPackCompanyService; private IPayPackCompanyService payPackCompanyService;
@Autowired @Autowired
private ISysUserService sysUserService; private ISysUserService sysUserService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
/** /**
* 分页列表查询 * 分页列表查询
* *
@@ -136,8 +139,14 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
List<PayCommonProject> list = payCommonProjectService.list(queryWrapper); List<PayCommonProject> list = payCommonProjectService.list(queryWrapper);
List<PayCommonProjectOutput> listNew = new ArrayList<>(); List<PayCommonProjectOutput> listNew = new ArrayList<>();
List<PayCommonProjectOutput> listPayCommonProjectOutputNew = new ArrayList<>(); List<PayCommonProjectOutput> listPayCommonProjectOutputNew = new ArrayList<>();
if(!CollectionUtils.isEmpty(list)){ if(!CollectionUtils.isEmpty(list)){
// todo 缺少更具合同打包状态筛选打包年份数据 // 查询打包年份的打包企业
List<String> listProject = new ArrayList<>();
if(Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
listProject = payPackCompanyProjectService.queryPackToYear(payIncomeContract.getSignedCompanyId(),PayProjectCommon.PROJECT_TYPE1,payIncomeContract.getPackYear());
}
List<String> listProjectId = list.stream().map(PayCommonProject::getId).collect(Collectors.toList()); List<String> listProjectId = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
// 获取已经关联合同的普通项目 // 获取已经关联合同的普通项目
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
@@ -151,12 +160,17 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
String str = JSON.toJSONString(list); String str = JSON.toJSONString(list);
listNew = JSONArray.parseArray(str,PayCommonProjectOutput.class); listNew = JSONArray.parseArray(str,PayCommonProjectOutput.class);
List<String> finalListProjectId = listProjectIdNew; List<String> finalListProjectId = listProjectIdNew;
List<String> finalListProject = listProject;
listNew.forEach(p->{ listNew.forEach(p->{
// 没有关联合同 // 没有关联合同
if(!CollectionUtils.isEmpty(finalListProjectId) && finalListProjectId.contains(p.getId())){ if(!CollectionUtils.isEmpty(finalListProjectId) && finalListProjectId.contains(p.getId())){
return; return;
} }
// 去掉已打包&&打包年份不一致的数据
if(!CollectionUtils.isEmpty(finalListProject) && Objects.equals(p.getPack(),PayProjectCommon.PACKAGING1)
&& finalListProject.contains(p.getId())){
return;
}
if(!Objects.isNull(p.getChargeUse())){ if(!Objects.isNull(p.getChargeUse())){
p.setChargeUse_dictText(sysBaseAPI.translateDict("payment_charge_use",String.valueOf(p.getChargeUse()))); p.setChargeUse_dictText(sysBaseAPI.translateDict("payment_charge_use",String.valueOf(p.getChargeUse())));
} }
@@ -1,6 +1,7 @@
package com.jero.project.controller; package com.jero.project.controller;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -16,8 +17,11 @@ import com.jero.common.exception.JeroBootException;
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.util.ValidUtil; import com.jero.common.util.ValidUtil;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.vo.PayWorkingGroupPayment; import com.jero.project.vo.PayWorkingGroupPayment;
import com.jero.project.vo.PayWorkingGroupVO; import com.jero.project.vo.PayWorkingGroupVO;
@@ -55,6 +59,10 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
private ISysUserService sysUserService; private ISysUserService sysUserService;
@Autowired @Autowired
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService; private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayIncomeContractService payIncomeContractService;
// todo 缺少工作组A,B权限查询 // todo 缺少工作组A,B权限查询
@@ -115,16 +123,38 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
@ApiOperation(value="工作组项目-根据成员单位列表查询", notes="工作组项目-根据单位列表查询") @ApiOperation(value="工作组项目-根据成员单位列表查询", notes="工作组项目-根据单位列表查询")
@GetMapping(value = "/queryListByCompany") @GetMapping(value = "/queryListByCompany")
public Result<?> queryListByCompany(@RequestParam(name = "companyId") String companyId, public Result<?> queryListByCompany(@RequestParam(name = "companyId") String companyId,
@RequestParam(name = "contractId") String contractId,
@RequestParam(name = "workingGroupProject",required = false) String workingGroupProject, @RequestParam(name = "workingGroupProject",required = false) String workingGroupProject,
@RequestParam(name = "year",required = false) String year) { @RequestParam(name = "year",required = false) String year) {
if(StringUtils.isBlank(companyId)){ if(StringUtils.isBlank(companyId)){
return Result.error("企业id不能为空!"); return Result.error("企业id不能为空!");
} }
List<PayWorkingGroupVO> list = payWorkingGroupService.queryListByCompany(companyId,workingGroupProject,year, PayProjectCommon.PROJECT_TYPE2); PayIncomeContract payIncomeContract = payIncomeContractService.getById(contractId);
if(!CollectionUtils.isEmpty(list)){ if(Objects.isNull(payIncomeContract)){
setPayWorkingGroupSubItem(list); return Result.error("合同不存在!");
} }
return Result.OK(list); List<PayWorkingGroupVO> list = payWorkingGroupService.queryListByCompany(companyId,workingGroupProject,year, PayProjectCommon.PROJECT_TYPE2);
List<PayWorkingGroupVO> listNew = new ArrayList<>();
if(!CollectionUtils.isEmpty(list)){
// 查询打包年份的打包企业
List<String> listProject = new ArrayList<>();
if(Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
listProject = payPackCompanyProjectService.queryPackToYear(payIncomeContract.getSignedCompanyId(),PayProjectCommon.PROJECT_TYPE1,payIncomeContract.getPackYear());
}
List<String> finalListProject = listProject;
list.forEach(p->{
// 去掉已打包&&打包年份不一致的数据
if(!CollectionUtils.isEmpty(finalListProject) && Objects.equals(p.getPack(),PayProjectCommon.PACKAGING1)
&& finalListProject.contains(p.getId())){
return;
}
listNew.add(p);
});
}
if(!CollectionUtils.isEmpty(listNew)){
setPayWorkingGroupSubItem(listNew);
}
return Result.OK(listNew);
} }
/** /**
@@ -60,13 +60,15 @@
pwg.create_by AS createBy, pwg.create_by AS createBy,
pwg.create_time AS createTime, pwg.create_time AS createTime,
pwg.update_by AS updateBy, pwg.update_by AS updateBy,
pwg.update_time AS updateTime pwg.update_time AS updateTime,
pwgs.pack,
pwgs.id AS proejctId
FROM pay_working_group_subitem pwgs FROM pay_working_group_subitem pwgs
LEFT JOIN pay_working_group pwg ON pwg.id = pwgs.working_group_id LEFT JOIN pay_working_group pwg ON pwg.id = pwgs.working_group_id
WHERE pwg.id is not null AND pwg.id !='' AND pwgs.charge_company_id = #{companyId} WHERE pwg.id is not null AND pwg.id !='' AND pwgs.charge_company_id = #{companyId}
AND pwgs.id NOT IN (SELECT project_id FROM pay_income_contract_associated WHERE project_type=#{projectType}) AND pwgs.id NOT IN (SELECT project_id FROM pay_income_contract_associated WHERE project_type=#{projectType})
<if test="workingGroupProject != null and workingGroupProject != ''"> <if test="workingGroupProject != null and workingGroupProject != ''">
AND pwg.working_group_project LIKE concat('%',concat(#{workingGroupProject},'%')) AND pwg.working_group_project LIKE concat('%',concat(#{workingGroupProject},'%'))
</if> </if>
<if test="year != null and year != ''"> <if test="year != null and year != ''">
AND pwg.year = #{year} AND pwg.year = #{year}
@@ -11,4 +11,12 @@ import java.io.Serializable;
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
public class PayWorkingGroupVO extends PayWorkingGroup implements Serializable { public class PayWorkingGroupVO extends PayWorkingGroup implements Serializable {
private PayWorkingGroupPayment obj; private PayWorkingGroupPayment obj;
/**
* 打包(1:是,0:否)
*/
private String pack;
/**
* 项目id
*/
private String projectId;
} }