收入合同关联会员项目
This commit is contained in:
+2
-2
@@ -238,8 +238,8 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
|
||||
@ApiOperation(value="收入合同-关联", notes="收入合同-关联")
|
||||
@PostMapping(value = "/associated")
|
||||
public Result<?> associated(@RequestBody List<PayIncomeContractAssociated> listPayIncomeContractAssociated) {
|
||||
List<ProjectOutput> list = payIncomeContractService.associated(listPayIncomeContractAssociated);
|
||||
return Result.OK("关联成功!",list);
|
||||
payIncomeContractService.associated(listPayIncomeContractAssociated);
|
||||
return Result.OK("关联成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
List<ProjectOutput> associated(List<PayIncomeContractAssociated> listPayIncomeContractAssociated);
|
||||
void associated(List<PayIncomeContractAssociated> listPayIncomeContractAssociated);
|
||||
/**
|
||||
* @Description 取消关联
|
||||
* @Author lqt
|
||||
|
||||
+142
-51
@@ -21,9 +21,14 @@ import com.jero.contract.service.IPayIncomeContractService;
|
||||
import com.jero.contract.vo.PayIncomeContractInput;
|
||||
import com.jero.contract.vo.ProjectOutput;
|
||||
import com.jero.meeting.service.IPayMeetingService;
|
||||
import com.jero.member.entity.PayMemberProject;
|
||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.jero.member.service.IPayMemberProjectService;
|
||||
import com.jero.member.service.IPayMemberProjectSubitemService;
|
||||
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||
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;
|
||||
@@ -89,6 +94,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||
@Resource
|
||||
private IPayMeetingService payMeetingService;
|
||||
@Resource
|
||||
private IPayMemberProjectService memberProjectService;
|
||||
@Resource
|
||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||
@Resource
|
||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||
|
||||
@Override
|
||||
public IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) {
|
||||
@@ -106,7 +117,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
throw new JeroBootException("收入合同信息不能为空!");
|
||||
}
|
||||
if(!Objects.isNull(payIncomeContract.getAccountsReceivableAmount()) && !Objects.isNull(payIncomeContract.getAmountReceived())
|
||||
&& payIncomeContract.getAccountsReceivableAmount().compareTo(payIncomeContract.getAmountReceived()) == -1){
|
||||
&& payIncomeContract.getAccountsReceivableAmount().compareTo(payIncomeContract.getAmountReceived()) < 0){
|
||||
throw new JeroBootException("应收金额大于已收金额!");
|
||||
}
|
||||
StringBuilder msgPayIncomeContract = ValidUtil.validateAll(payIncomeContract);
|
||||
@@ -174,16 +185,15 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
private void checkPayIncomeContractInstallment(List<PayIncomeContractInstallment> listPayIncomeContractInstallment,PayIncomeContract payIncomeContract){
|
||||
if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){
|
||||
StringBuilder msgPayIncomeContractInstallment = new StringBuilder();
|
||||
List<PayIncomeContractInstallment> finalListPayIncomeContractInstallment = listPayIncomeContractInstallment;
|
||||
listPayIncomeContractInstallment.forEach(p->{
|
||||
p.setContractId(payIncomeContract.getId());
|
||||
StringBuilder sb = ValidUtil.validateAll(p);
|
||||
if(!StringUtils.isBlank(sb)){
|
||||
msgPayIncomeContractInstallment.append("第").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("阶段:").append(sb);
|
||||
msgPayIncomeContractInstallment.append("第").append(listPayIncomeContractInstallment.indexOf(p) + 1).append("阶段:").append(sb);
|
||||
}
|
||||
if(!Objects.isNull(p.getAccountsReceivableAmount()) && !Objects.isNull(p.getPaidAmount())
|
||||
&& p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) == -1){
|
||||
msgPayIncomeContractInstallment.append("第").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("期应收金额大于已收金额!");
|
||||
&& p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) < 0){
|
||||
msgPayIncomeContractInstallment.append("第").append(listPayIncomeContractInstallment.indexOf(p) + 1).append("期应收金额大于已收金额!");
|
||||
}
|
||||
});
|
||||
if(!StringUtils.isBlank(msgPayIncomeContractInstallment)){
|
||||
@@ -204,7 +214,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
throw new JeroBootException("收入合同信息不能为空!");
|
||||
}
|
||||
if(!Objects.isNull(payIncomeContract.getAccountsReceivableAmount()) && !Objects.isNull(payIncomeContract.getAmountReceived())
|
||||
&& payIncomeContract.getAccountsReceivableAmount().compareTo(payIncomeContract.getAmountReceived()) == -1){
|
||||
&& payIncomeContract.getAccountsReceivableAmount().compareTo(payIncomeContract.getAmountReceived()) < 0){
|
||||
throw new JeroBootException("应收金额大于已收金额!");
|
||||
}
|
||||
StringBuilder msgPayIncomeContract = ValidUtil.validateAll(payIncomeContract);
|
||||
@@ -219,11 +229,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
throw new JeroBootException("收入合同不存在!");
|
||||
}
|
||||
// 项目已打包
|
||||
if(payIncomeContractStatus.getPack() == PayIncomeContractCommon.PACK1){
|
||||
if(payIncomeContract.getPack() != PayIncomeContractCommon.PACK1){
|
||||
if(Objects.equals(payIncomeContractStatus.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
if(!Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
throw new JeroBootException("打包状态不可更改!");
|
||||
}
|
||||
if(payIncomeContract.getPackYear() != payIncomeContractStatus.getPackYear()){
|
||||
if(!Objects.equals(payIncomeContract.getPackYear(),payIncomeContractStatus.getPackYear())){
|
||||
throw new JeroBootException("打包年份不可更改!");
|
||||
}
|
||||
}
|
||||
@@ -273,12 +283,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public List<ProjectOutput> associated(List<PayIncomeContractAssociated> listPayIncomeContractAssociated) {
|
||||
public void associated(List<PayIncomeContractAssociated> listPayIncomeContractAssociated) {
|
||||
if(CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
|
||||
throw new JeroBootException("关联项目不能为空!");
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<ProjectOutput> listProjectOutput = new ArrayList<>();
|
||||
listPayIncomeContractAssociated.forEach(p->{
|
||||
ProjectOutput projectOutput = new ProjectOutput();
|
||||
StringBuilder msgPayIncomeContractAssociated = ValidUtil.validateAll(p);
|
||||
@@ -322,14 +331,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
payPackCompanyProjectService.setPack(payCommonProject.getChargeCompanyId(),payCommonProject.getContactsId(),payIncomeContract.getPackYear(),payCommonProject.getId(),PayIncomeContractCommon.PROJECT_TYPE1,payIncomeContract.getPack());
|
||||
}
|
||||
}
|
||||
projectOutput.setProjectId(payCommonProject.getId());
|
||||
projectOutput.setProjectType(PayIncomeContractCommon.PROJECT_TYPE1);
|
||||
projectOutput.setChargeProject(payCommonProject.getChargeProject());
|
||||
projectOutput.setChargeUse(payCommonProject.getChargeUse());
|
||||
projectOutput.setChargeCompanyName(payCommonProject.getChargeCompanyTemporaryName());
|
||||
projectOutput.setContactsName(payCommonProject.getChargeCompanyTemporaryName());
|
||||
projectOutput.setPaidAmount(payCommonProject.getPaidAmount());
|
||||
projectOutput.setReceivableAmount(payCommonProject.getReceivableAmount());
|
||||
// 更新项目id
|
||||
p.setProjectId(payCommonProject.getId());
|
||||
break;
|
||||
case PayIncomeContractCommon.PROJECT_TYPE2:
|
||||
// 工作组项目
|
||||
@@ -339,7 +342,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
}
|
||||
LambdaQueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem = new LambdaQueryWrapper<>();
|
||||
queryPayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getWorkingGroupId,payWorkingGroup.getId());
|
||||
queryPayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getChargeCompanyId,payIncomeContract.getSignedCompanyId());
|
||||
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(queryPayWorkingGroupSubItem);
|
||||
if(CollectionUtils.isEmpty(listPayWorkingGroupSubItem)){
|
||||
throw new JeroBootException("工作组成员单位不存在!");
|
||||
@@ -370,14 +372,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
}
|
||||
// 更新项目id
|
||||
p.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
|
||||
projectOutput.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
|
||||
projectOutput.setProjectType(PayIncomeContractCommon.PROJECT_TYPE2);
|
||||
projectOutput.setChargeProject(payWorkingGroup.getWorkingGroupProject());
|
||||
projectOutput.setChargeProject(listPayWorkingGroupSubItem.get(0).getChargeProject());
|
||||
projectOutput.setChargeCompanyName(listPayWorkingGroupSubItem.get(0).getChargeCompanyTemporaryName());
|
||||
projectOutput.setContactsName(listPayWorkingGroupSubItem.get(0).getChargeCompanyTemporaryName());
|
||||
projectOutput.setPaidAmount(listPayWorkingGroupSubItem.get(0).getPaidAmount());
|
||||
projectOutput.setReceivableAmount(listPayWorkingGroupSubItem.get(0).getReceivableAmount());
|
||||
break;
|
||||
case PayIncomeContractCommon.PROJECT_TYPE3:
|
||||
// 打包合同不可选择会议项目
|
||||
@@ -385,34 +379,83 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
throw new JeroBootException("打包合同不可关联会议项目!");
|
||||
}
|
||||
|
||||
|
||||
// 更新项目id
|
||||
// p.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
|
||||
// projectOutput.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
|
||||
// projectOutput.setProjectType(PayIncomeContractCommon.PROJECT_TYPE2);
|
||||
// projectOutput.setChargeProject(payWorkingGroup.getWorkingGroupProject());
|
||||
// projectOutput.setChargeProject(listPayWorkingGroupSubItem.get(0).getChargeProject());
|
||||
// projectOutput.setChargeCompanyName(listPayWorkingGroupSubItem.get(0).getChargeCompanyTemporaryName());
|
||||
// projectOutput.setContactsName(listPayWorkingGroupSubItem.get(0).getChargeCompanyTemporaryName());
|
||||
// projectOutput.setPaidAmount(listPayWorkingGroupSubItem.get(0).getPaidAmount());
|
||||
// projectOutput.setReceivableAmount(listPayWorkingGroupSubItem.get(0).getReceivableAmount());
|
||||
// todo 会议项目
|
||||
break;
|
||||
case PayIncomeContractCommon.PROJECT_TYPE4:
|
||||
// todo 会员项目
|
||||
// 会员项目
|
||||
PayMemberProject payMemberProject = memberProjectService.getById(p.getProjectId());
|
||||
if(Objects.isNull(payMemberProject)){
|
||||
throw new JeroBootException("会员项目不存在!");
|
||||
}
|
||||
LambdaQueryWrapper<PayMemberProjectSubitem> queryPayMemberProjectSubitem = new LambdaQueryWrapper<>();
|
||||
queryPayMemberProjectSubitem.eq(PayMemberProjectSubitem::getProjectId,payMemberProject.getId());
|
||||
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(queryPayMemberProjectSubitem);
|
||||
if(CollectionUtils.isEmpty(listPayMemberProjectSubitem)){
|
||||
throw new JeroBootException("会员项目成员单位不存在!");
|
||||
}
|
||||
// 验证企业是否正确
|
||||
if(!Objects.equals(listPayMemberProjectSubitem.get(0).getCompanyId(),payIncomeContract.getSignedCompanyId())){
|
||||
throw new JeroBootException("企业不匹配!");
|
||||
}
|
||||
// 验证项目是否已被关联
|
||||
getIncomeContractAssociated(p.getContractId(),listPayMemberProjectSubitem.get(0).getId());
|
||||
// 合同选择打包,运行年份不是打包企业,添加打包企业
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
// 打包,将关联项目设置成打包
|
||||
LambdaUpdateWrapper<PayMemberProjectSubitem> updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>();
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername());
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date());
|
||||
if(!StringUtils.isBlank(listPayMemberProjectSubitem.get(0).getContractNo())){
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getContractNo,payIncomeContract.getContractNum());
|
||||
}
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK1);
|
||||
updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,listPayMemberProjectSubitem.get(0).getId());
|
||||
memberProjectSubitemService.update(updatePayMemberProjectSubitem);
|
||||
// 添加打包企业
|
||||
// 合同选择了打包,查看打包年份&&打包企业是否存在
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
payPackCompanyProjectService.setPack(listPayMemberProjectSubitem.get(0).getCompanyId(),listPayMemberProjectSubitem.get(0).getCompanyContactId(),payIncomeContract.getPackYear(),listPayMemberProjectSubitem.get(0).getId(),PayIncomeContractCommon.PROJECT_TYPE4,payIncomeContract.getPack());
|
||||
}
|
||||
}
|
||||
p.setProjectId(listPayMemberProjectSubitem.get(0).getId());
|
||||
break;
|
||||
case PayIncomeContractCommon.PROJECT_TYPE5:
|
||||
// todo 标协会员
|
||||
// 标协会员
|
||||
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(p.getProjectId());
|
||||
if(Objects.isNull(tbMemberProjectSubitem)){
|
||||
throw new JeroBootException("标协会员项目不存在!");
|
||||
}
|
||||
// 验证企业是否正确
|
||||
if(!Objects.equals(tbMemberProjectSubitem.getCompanyId(),payIncomeContract.getSignedCompanyId())){
|
||||
throw new JeroBootException("企业不匹配!");
|
||||
}
|
||||
// 验证项目是否已被关联
|
||||
getIncomeContractAssociated(p.getContractId(),tbMemberProjectSubitem.getId());
|
||||
// 合同选择打包,运行年份不是打包企业,添加打包企业
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
// 打包,将关联项目设置成打包
|
||||
LambdaUpdateWrapper<TbMemberProjectSubitem> updateTbMemberProjectSubitem = new LambdaUpdateWrapper<>();
|
||||
updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateBy,sysUser.getUsername());
|
||||
updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateTime,new Date());
|
||||
updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK1);
|
||||
updateTbMemberProjectSubitem.eq(TbMemberProjectSubitem::getId,tbMemberProjectSubitem.getId());
|
||||
tbMemberProjectSubitemService.update(updateTbMemberProjectSubitem);
|
||||
// 添加打包企业
|
||||
// 合同选择了打包,查看打包年份&&打包企业是否存在
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
payPackCompanyProjectService.setPack(tbMemberProjectSubitem.getCompanyId(),tbMemberProjectSubitem.getLiaisonManId(),payIncomeContract.getPackYear(),tbMemberProjectSubitem.getId(),PayIncomeContractCommon.PROJECT_TYPE5,payIncomeContract.getPack());
|
||||
}
|
||||
}
|
||||
p.setProjectId(tbMemberProjectSubitem.getId());
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
|
||||
payIncomeContractAssociatedService.save(p);
|
||||
projectOutput.setContractId(p.getContractId());
|
||||
projectOutput.setId(p.getId());
|
||||
listProjectOutput.add(projectOutput);
|
||||
});
|
||||
return listProjectOutput;
|
||||
}
|
||||
/**
|
||||
* @Description 验证项目是否被合同关联
|
||||
@@ -443,12 +486,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
throw new JeroBootException("关联id不能为空!");
|
||||
}
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getById(input.getId());
|
||||
if(!Objects.equals(input.getContractId(),payIncomeContractAssociated.getContractId())){
|
||||
throw new JeroBootException("关联id不能为空!");
|
||||
}
|
||||
if(Objects.isNull(payIncomeContractAssociated)){
|
||||
throw new JeroBootException("关联记录不存在!");
|
||||
}
|
||||
if(!Objects.equals(input.getContractId(),payIncomeContractAssociated.getContractId())){
|
||||
throw new JeroBootException("关联id不能为空!");
|
||||
}
|
||||
PayIncomeContract payIncomeContract = payIncomeContractService.getById(payIncomeContractAssociated.getContractId());
|
||||
if(Objects.isNull(payIncomeContract)){
|
||||
throw new JeroBootException("合同不存在!");
|
||||
@@ -514,10 +557,58 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
// todo 会议项目
|
||||
break;
|
||||
case PayIncomeContractCommon.PROJECT_TYPE4:
|
||||
// todo 会员项目
|
||||
// 会员项目
|
||||
PayMemberProjectSubitem payMemberProjectSubitem = memberProjectSubitemService.getById(payIncomeContractAssociated.getProjectId());
|
||||
if(Objects.isNull(payMemberProjectSubitem)){
|
||||
throw new JeroBootException("会员项目不存在!");
|
||||
}
|
||||
// 更新项目id
|
||||
payIncomeContractAssociated.setProjectId(payMemberProjectSubitem.getId());
|
||||
// 合同为打包
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
// 查询打包项目来源是否为收入合同
|
||||
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
|
||||
queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,payMemberProjectSubitem.getId());
|
||||
queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayIncomeContractCommon.COME1);
|
||||
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
|
||||
// 存在数据,取消打包,变更项目打包状态, 否则不进行操作
|
||||
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
|
||||
payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId());
|
||||
LambdaUpdateWrapper<PayMemberProjectSubitem> updatePayMemberProjectSubitem = new LambdaUpdateWrapper<>();
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername());
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date());
|
||||
updatePayMemberProjectSubitem.set(PayMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK0);
|
||||
updatePayMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,payMemberProjectSubitem.getId());
|
||||
memberProjectSubitemService.update(updatePayMemberProjectSubitem);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PayIncomeContractCommon.PROJECT_TYPE5:
|
||||
// todo 标协会员
|
||||
// 标协会员
|
||||
TbMemberProjectSubitem tbMemberProjectSubitem = tbMemberProjectSubitemService.getById(payIncomeContractAssociated.getProjectId());
|
||||
if(Objects.isNull(tbMemberProjectSubitem)){
|
||||
throw new JeroBootException("标协会员项目不存在!");
|
||||
}
|
||||
// 更新项目id
|
||||
payIncomeContractAssociated.setProjectId(tbMemberProjectSubitem.getId());
|
||||
// 合同为打包
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
// 查询打包项目来源是否为收入合同
|
||||
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
|
||||
queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,tbMemberProjectSubitem.getId());
|
||||
queryPayPackCompanyProject.eq(PayPackCompanyProject::getCome,PayIncomeContractCommon.COME1);
|
||||
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
|
||||
// 存在数据,取消打包,变更项目打包状态, 否则不进行操作
|
||||
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
|
||||
payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId());
|
||||
LambdaUpdateWrapper<TbMemberProjectSubitem> updateTbMemberProjectSubitem = new LambdaUpdateWrapper<>();
|
||||
updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateBy,sysUser.getUsername());
|
||||
updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateTime,new Date());
|
||||
updateTbMemberProjectSubitem.set(TbMemberProjectSubitem::getPack,PayIncomeContractCommon.PACK0);
|
||||
updateTbMemberProjectSubitem.eq(TbMemberProjectSubitem::getId,tbMemberProjectSubitem.getId());
|
||||
tbMemberProjectSubitemService.update(updateTbMemberProjectSubitem);
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
@@ -603,7 +694,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
}
|
||||
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
LambdaUpdateWrapper<PayIncomeContract> update = new LambdaUpdateWrapper();
|
||||
LambdaUpdateWrapper<PayIncomeContract> update = new LambdaUpdateWrapper<>();
|
||||
update.set(PayIncomeContract::getUpdateBy,sysUser.getUsername());
|
||||
update.set(PayIncomeContract::getUpdateTime,new Date());
|
||||
update.eq(PayIncomeContract::getId,payIncomeContractAudit.getContractId());
|
||||
@@ -628,7 +719,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
throw new JeroBootException("收入合同状态不正确!");
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
LambdaUpdateWrapper<PayIncomeContract> update = new LambdaUpdateWrapper();
|
||||
LambdaUpdateWrapper<PayIncomeContract> update = new LambdaUpdateWrapper<>();
|
||||
update.set(PayIncomeContract::getUpdateBy,sysUser.getUsername());
|
||||
update.set(PayIncomeContract::getUpdateTime,new Date());
|
||||
update.eq(PayIncomeContract::getId,payIncomeContractAudit.getContractId());
|
||||
@@ -745,7 +836,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
public void insertPayIncomeContract(PayIncomeContract payIncomeContract,String projectId,Integer projectType) {
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
if(!Objects.isNull(payIncomeContract)){
|
||||
if(payIncomeContract.getStatus() == PayIncomeContractCommon.STATUS1){
|
||||
if(Objects.equals(payIncomeContract.getStatus(),PayIncomeContractCommon.STATUS1)){
|
||||
throw new JeroBootException("合同状态为草稿状态不可关联!");
|
||||
}
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = new PayIncomeContractAssociated();
|
||||
|
||||
+58
-2
@@ -2,18 +2,26 @@ package com.jero.member.controller;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.contract.entity.PayIncomeContract;
|
||||
import com.jero.contract.service.IPayIncomeContractService;
|
||||
import com.jero.member.entity.PayMemberProject;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.jero.member.service.IPayMemberProjectService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||
import com.jero.project.common.PayProjectCommon;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
@@ -35,13 +43,17 @@ import com.jero.common.aspect.annotation.AutoLog;
|
||||
public class PayMemberProjectController extends JeroController<PayMemberProject, IPayMemberProjectService> {
|
||||
@Resource
|
||||
private IPayMemberProjectService memberProjectService;
|
||||
@Autowired
|
||||
private IPayIncomeContractService payIncomeContractService;
|
||||
@Resource
|
||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*/
|
||||
@AutoLog(value = "会员项目表-分页列表查询")
|
||||
@ApiOperation(value="会员项目表-分页列表查询", notes="会员项目表-分页列表查询")
|
||||
@AutoLog(value = "会员项目表-根据成员单位列表查询")
|
||||
@ApiOperation(value="会员项目表-根据成员单位列表查询", notes="会员项目表-根据成员单位列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
public Result<?> queryPageList(PayMemberProject payMemberProject,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@@ -53,6 +65,50 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
|
||||
return Result.OK(memberProjectPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description 收入合同列表分页查询
|
||||
* @Author lqt
|
||||
* @Date 2021/9/17
|
||||
* @Param companyId 企业id
|
||||
* @Param contractId 合同id
|
||||
* @Param projectType 会员类型 4:会员项目,5:标协会员项目
|
||||
* @Param memberName 会员名称
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
@AutoLog(value = "会员项目表-收入合同列表分页查询")
|
||||
@ApiOperation(value="会员项目表-收入合同列表分页查询", notes="会员项目表-收入合同列表分页查询")
|
||||
@GetMapping(value = "/queryListByCompany")
|
||||
public Result<?> queryListByCompany(
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name = "companyId") String companyId,
|
||||
@RequestParam(name = "contractId") String contractId,
|
||||
@RequestParam(name = "projectType") String projectType,
|
||||
@RequestParam(name = "memberName",required = false) String memberName) {
|
||||
|
||||
if(StringUtils.isBlank(companyId)){
|
||||
return Result.error("企业id不能为空!");
|
||||
}
|
||||
PayIncomeContract payIncomeContract = payIncomeContractService.getById(contractId);
|
||||
if(Objects.isNull(payIncomeContract)){
|
||||
return Result.error("合同不存在!");
|
||||
}
|
||||
// 会员
|
||||
if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE4)){
|
||||
Page<PayMemberProject> page = new Page<>(pageNo, pageSize);
|
||||
IPage<PayMemberProject> list = memberProjectService.queryListByCompany(page,companyId,memberName,PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack(),payIncomeContract.getPackYear());
|
||||
return Result.OK(list);
|
||||
}
|
||||
// 标协会员
|
||||
if(Objects.equals(projectType,PayProjectCommon.PROJECT_TYPE5)){
|
||||
Page<TbMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
|
||||
IPage<TbMemberProjectSubitem> list = tbMemberProjectSubitemService.queryListByCompany(page,companyId,PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack(),payIncomeContract.getPackYear());
|
||||
return Result.OK(list);
|
||||
}
|
||||
return Result.OK(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表查询
|
||||
*/
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jero.modules.system.volid.group.*;
|
||||
@@ -133,4 +134,11 @@ public class PayMemberProject implements Serializable {
|
||||
@Size(max = 200, message = "备注最大为200个字符")
|
||||
private String remark;
|
||||
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "项目类型")
|
||||
private Integer projectType;
|
||||
}
|
||||
|
||||
+14
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.math.BigDecimal;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.jero.common.util.PasswordUtil;
|
||||
@@ -198,4 +199,17 @@ public class TbMemberProjectSubitem implements Serializable {
|
||||
return PasswordUtil.decrypt(mobile);
|
||||
}
|
||||
|
||||
/**项目名称*/
|
||||
@ApiModelProperty(value = "项目名称")
|
||||
@TableField(exist = false)
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "项目类型")
|
||||
private Integer projectType;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+14
@@ -1,7 +1,10 @@
|
||||
package com.jero.member.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.member.entity.PayMemberProject;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @Description: 会员项目表
|
||||
@@ -11,4 +14,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
*/
|
||||
public interface PayMemberProjectMapper extends BaseMapper<PayMemberProject> {
|
||||
|
||||
/**
|
||||
* @Description 查询与收入合同企业一致的数据
|
||||
* @Author lqt
|
||||
* @Date 2021/9/17
|
||||
* @Param companyId 企业id
|
||||
* @Param memberName 会员名称
|
||||
* @Param projectType 项目类型
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page,@Param("companyId") String companyId,@Param("memberName") String memberName,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear);
|
||||
}
|
||||
|
||||
+15
@@ -2,6 +2,8 @@ package com.jero.member.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
@@ -14,4 +16,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
*/
|
||||
public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProjectSubitem> {
|
||||
|
||||
/**
|
||||
* @Description 查询与收入合同企业一致的数据
|
||||
* @Author lqt
|
||||
* @Date 2021/9/17
|
||||
* @Param companyId 企业id
|
||||
* @Param memberName 会员名称
|
||||
* @Param projectType 项目类型
|
||||
* @Param
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page,@Param("companyId") String companyId,@Param("projectType") String projectType,@Param("pack") Integer pack,@Param("packYear") String packYear);
|
||||
|
||||
}
|
||||
|
||||
+19
@@ -16,4 +16,23 @@
|
||||
<result column="charge_notice_file_id" property="chargeNoticeFileId" />
|
||||
<result column="remark" property="remark" />
|
||||
</resultMap>
|
||||
<select id="queryListByCompany" resultType="com.jero.member.entity.PayMemberProject">
|
||||
SELECT pmp.*,#{projectType} AS projectType FROM pay_member_project_subitem pmps
|
||||
LEFT JOIN pay_member_project pmp ON pmp.id = pmps.project_id
|
||||
LEFT JOIN pay_pack_company_project ppcp ON ppcp.project_id = pmps.id
|
||||
LEFT JOIN pay_pack_company ppc ON ppc.id = ppcp.pack_id
|
||||
<if test="pack == 1 and packYear != '' and packYear != null">
|
||||
AND ppc.pack_year=#{packYear}
|
||||
</if>
|
||||
LEFT JOIN pay_income_contract_associated pica ON pica.project_id = pmps.id
|
||||
WHERE pmps.company_id =#{companyId} AND pmp.id IS NOT NULL AND pmp.id != ''
|
||||
AND (pica.id is null OR pica.id = '')
|
||||
<if test="memberName != '' and memberName != null">
|
||||
AND pmp.project_name like concat('%',concat(#{memberName},'%'))
|
||||
</if>
|
||||
<if test="pack == 1 and packYear != '' and packYear != null">
|
||||
AND (ppc.id is null OR ppc.id ='')
|
||||
</if>
|
||||
GROUP BY pmp.id ORDER BY pmp.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
+16
@@ -23,4 +23,20 @@
|
||||
<result column="make_invoice" property="makeInvoice" />
|
||||
<result column="mail" property="mail" />
|
||||
</resultMap>
|
||||
<select id="queryListByCompany" resultType="com.jero.member.entity.TbMemberProjectSubitem">
|
||||
SELECT tmps.*,tmp.project_name,#{projectType} AS projectType FROM tb_member_project_subitem tmps
|
||||
LEFT JOIN tb_member_project tmp ON tmps.project_id = tmp.id
|
||||
LEFT JOIN pay_pack_company_project ppcp ON ppcp.project_id = tmps.id
|
||||
LEFT JOIN pay_pack_company ppc ON ppc.id = ppcp.pack_id
|
||||
<if test="pack == 1 and packYear != '' and packYear != null">
|
||||
AND ppc.pack_year=#{packYear}
|
||||
</if>
|
||||
LEFT JOIN pay_income_contract_associated pica ON pica.project_id = tmps.id
|
||||
WHERE tmps.company_id =#{companyId} AND tmp.id IS NOT NULL AND tmp.id != ''
|
||||
AND (pica.id is null OR pica.id = '')
|
||||
<if test="pack == 1 and packYear != '' and packYear != null">
|
||||
AND (ppc.id is null OR ppc.id ='')
|
||||
</if>
|
||||
GROUP BY tmps.id ORDER BY tmps.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
+14
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.member.entity.PayMemberProject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.project.common.PayProjectCommon;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -69,4 +71,16 @@ public interface IPayMemberProjectService extends IService<PayMemberProject> {
|
||||
* @return
|
||||
*/
|
||||
IPage<PayMemberProject> getPage(Page<PayMemberProject> page, QueryWrapper<PayMemberProject> queryWrapper);
|
||||
|
||||
/**
|
||||
* @Description 查询与收入合同企业一致的数据
|
||||
* @Author lqt
|
||||
* @Date 2021/9/17
|
||||
* @Param companyId 企业id
|
||||
* @Param memberName 会员名称
|
||||
* @Param projectType 项目类型
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page,String companyId,String memberName,String projectType,Integer pack,String packYear);
|
||||
}
|
||||
|
||||
+13
@@ -1,5 +1,7 @@
|
||||
package com.jero.member.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.List;
|
||||
@@ -58,4 +60,15 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
|
||||
* @return
|
||||
*/
|
||||
List<TbMemberProjectSubitem> queryList();
|
||||
/**
|
||||
* @Description 查询与收入合同企业一致的数据
|
||||
* @Author lqt
|
||||
* @Date 2021/9/17
|
||||
* @Param companyId 企业id
|
||||
* @Param memberName 会员名称
|
||||
* @Param projectType 项目类型
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page, String companyId, String projectType,Integer pack,String packYear);
|
||||
}
|
||||
|
||||
+50
-4
@@ -5,15 +5,24 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||
import com.jero.member.entity.PayMemberProject;
|
||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
||||
import com.jero.member.mapper.PayMemberProjectMapper;
|
||||
import com.jero.member.service.IPayMemberProjectService;
|
||||
import com.jero.member.service.IPayMemberProjectSubitemService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.mapper.SysUserMapper;
|
||||
import com.jero.project.entity.PayWorkingGroupSubItem;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@@ -25,8 +34,14 @@ import javax.annotation.Resource;
|
||||
*/
|
||||
@Service
|
||||
public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProjectMapper, PayMemberProject> implements IPayMemberProjectService {
|
||||
@Resource
|
||||
private PayMemberProjectMapper payMemberProjectMapper;
|
||||
@Resource
|
||||
private SysUserMapper userMapper;
|
||||
@Autowired
|
||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||
@Resource
|
||||
private IPayMemberProjectSubitemService memberProjectSubitemService;
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -34,6 +49,7 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void add(PayMemberProject payMemberProject) {
|
||||
//判断项目名称
|
||||
LambdaQueryWrapper<PayMemberProject> wrapper = new LambdaQueryWrapper<>();
|
||||
@@ -49,9 +65,6 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
|
||||
throw new JeroBootException("联系人不存在");
|
||||
}
|
||||
payMemberProject.setDirectorName(sysUser.getUsername());
|
||||
|
||||
|
||||
|
||||
save(payMemberProject);
|
||||
}
|
||||
|
||||
@@ -74,9 +87,33 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
|
||||
*/
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayMemberProjectSubitem::getProjectId, id);
|
||||
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
|
||||
getPayIncomeContractAssociated(listPayMemberProjectSubitem);
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description 校验是存在关联合同的项目
|
||||
* @Author lqt
|
||||
* @Date 2021/9/8
|
||||
* @Param
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
private void getPayIncomeContractAssociated(List<PayMemberProjectSubitem> listPayMemberProjectSubitem){
|
||||
if(!CollectionUtils.isEmpty(listPayMemberProjectSubitem)){
|
||||
List<String> list = listPayMemberProjectSubitem.stream().map(PayMemberProjectSubitem::getId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
||||
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,list);
|
||||
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
|
||||
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
@@ -85,7 +122,11 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
|
||||
*/
|
||||
@Override
|
||||
public void deleteByIds(List<String> ids) {
|
||||
removeByIds(ids);
|
||||
LambdaQueryWrapper<PayMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||
query.in(PayMemberProjectSubitem::getProjectId, ids);
|
||||
List<PayMemberProjectSubitem> listPayMemberProjectSubitem = memberProjectSubitemService.list(query);
|
||||
getPayIncomeContractAssociated(listPayMemberProjectSubitem);
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,4 +162,9 @@ public class PayPayMemberProjectServiceImpl extends ServiceImpl<PayMemberProject
|
||||
memberProjectPage.setRecords(records);
|
||||
return memberProjectPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<PayMemberProject> queryListByCompany(Page<PayMemberProject> page,String companyId, String memberName, String projectType,Integer pack,String packYear) {
|
||||
return payMemberProjectMapper.queryListByCompany(page,companyId,memberName,projectType, pack, packYear);
|
||||
}
|
||||
}
|
||||
|
||||
+108
-5
@@ -1,11 +1,19 @@
|
||||
package com.jero.member.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.ProjectDetailService;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.common.vo.ProjectStatusVO;
|
||||
import com.jero.company.entity.PayContactsManagement;
|
||||
import com.jero.company.service.IPayCompanyManagementService;
|
||||
import com.jero.company.service.IPayContactsManagementService;
|
||||
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.pack.service.IPayPackCompanyProjectService;
|
||||
import com.jero.project.common.PayProjectCommon;
|
||||
import com.jero.temporary.entity.PayCompanyManagementTemporary;
|
||||
import com.jero.temporary.entity.PayContactsManagementTemporary;
|
||||
@@ -18,11 +26,15 @@ import com.jero.member.service.IPayMemberProjectService;
|
||||
import com.jero.member.service.IPayMemberProjectSubitemService;
|
||||
import com.jero.valid.group.ChargeNotice;
|
||||
import com.jero.valid.group.Contract;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@@ -34,20 +46,23 @@ import javax.annotation.Resource;
|
||||
*/
|
||||
@Service
|
||||
public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMemberProjectSubitemMapper, PayMemberProjectSubitem> implements IPayMemberProjectSubitemService {
|
||||
@Resource
|
||||
private IPayCompanyManagementService companyManagementService;
|
||||
|
||||
@Resource
|
||||
private IPayContactsManagementService contactsManagementService;
|
||||
|
||||
@Resource
|
||||
private IPayCompanyManagementTemporaryService companyManagementTemporaryService;
|
||||
|
||||
@Resource
|
||||
private IPayContactsManagementTemporaryService contactsManagementTemporaryService;
|
||||
|
||||
@Resource
|
||||
private IPayMemberProjectService memberProjectService;
|
||||
@Autowired
|
||||
private IPayIncomeContractService payIncomeContractService;
|
||||
@Autowired
|
||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||
@Autowired
|
||||
private ProjectDetailService projectDetailService;
|
||||
@Autowired
|
||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@@ -78,6 +93,22 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
//邮寄
|
||||
payMemberProjectSubitem.setMail(PayProjectCommon.MAIL0);
|
||||
save(payMemberProjectSubitem);
|
||||
// 来款方式为合同,校验合同编号
|
||||
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
|
||||
PayIncomeContract payIncomeContract = payIncomeContractService.setPayIncomeContractAssociated(payMemberProjectSubitem.getContractNo(),payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getId());
|
||||
if(!Objects.isNull(payIncomeContract)){
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
payIncomeContractService.insertPayIncomeContract(payIncomeContract,payMemberProjectSubitem.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE4));
|
||||
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayProjectCommon.PACKAGING1)){
|
||||
payPackCompanyProjectService.setPack(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getCompanyContactId(),payIncomeContract.getPackYear(),payIncomeContract.getId(),PayProjectCommon.PROJECT_TYPE4,payIncomeContract.getPack());
|
||||
LambdaUpdateWrapper<PayMemberProjectSubitem> update = new LambdaUpdateWrapper<>();
|
||||
update.eq(PayMemberProjectSubitem::getId,payMemberProjectSubitem.getId());
|
||||
update.set(PayMemberProjectSubitem::getPack,PayProjectCommon.PACKAGING1);
|
||||
update(update);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -90,6 +121,40 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
if (payMemberProjectSubitem1 == null){
|
||||
throw new JeroBootException("会员项目不存在");
|
||||
}
|
||||
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
|
||||
if(!Objects.equals(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem1.getCompanyId())
|
||||
&& (Objects.equals(payMemberProjectSubitem.getPack(),PayProjectCommon.PACKAGING1)
|
||||
|| !Objects.equals(payMemberProjectSubitem.getInAccount(),PayProjectCommon.IN_ACCOUNT0)
|
||||
|| !Objects.equals(payMemberProjectSubitem.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)
|
||||
|| !Objects.equals(payMemberProjectSubitem.getMail(),PayProjectCommon.MAIL0))){
|
||||
throw new JeroBootException("来款企业不可更改!");
|
||||
}
|
||||
// 校验项目是否已关联合同
|
||||
PayIncomeContract payIncomeContract = payIncomeContractService.checkPayIncomeContractAssociated(payMemberProjectSubitem.getId());
|
||||
if(!Objects.isNull(payIncomeContract)){
|
||||
if(!Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
|
||||
throw new JeroBootException("项目已关联合同,来款方式不可修改!");
|
||||
}
|
||||
if(!Objects.equals(payIncomeContract.getContractNum(),payMemberProjectSubitem.getContractNo())){
|
||||
throw new JeroBootException("项目已关联合同,合同编号不可修改!");
|
||||
}
|
||||
}else{
|
||||
PayIncomeContract payIncomeContractAdd = null;
|
||||
// 来款方式为合同,校验合同编号
|
||||
if(Objects.equals(payMemberProjectSubitem.getPaymentMethod(),PayProjectCommon.CHARGE_WAY2)){
|
||||
payIncomeContractAdd = payIncomeContractService.setPayIncomeContractAssociated(payMemberProjectSubitem.getContractNo(),payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getId());
|
||||
}
|
||||
if(!Objects.isNull(payIncomeContractAdd)){
|
||||
// 合同存在 && 合同状态不为草稿,不为未通过 关联合同
|
||||
payIncomeContractService.insertPayIncomeContract(payIncomeContractAdd,payMemberProjectSubitem.getId(),Integer.parseInt(PayProjectCommon.PROJECT_TYPE4));
|
||||
}else{
|
||||
payMemberProjectSubitem.setPack(PayProjectCommon.PACKAGING0);
|
||||
}
|
||||
// 关联了合同,判断合同是否打包,更新项目打包状态,添加打包
|
||||
if(!Objects.isNull(payIncomeContractAdd) && Objects.equals(payIncomeContractAdd.getPack(),PayProjectCommon.PACKAGING1)){
|
||||
payPackCompanyProjectService.setPack(payMemberProjectSubitem.getCompanyId(),payMemberProjectSubitem.getCompanyContactId(),payIncomeContractAdd.getPackYear(),payMemberProjectSubitem.getId(),PayProjectCommon.PROJECT_TYPE4,payIncomeContractAdd.getPack());
|
||||
}
|
||||
}
|
||||
//无法更改状态
|
||||
payMemberProjectSubitem.setPack(payMemberProjectSubitem1.getPack());
|
||||
//payMemberProjectSubitem.setNeedInvoice(payMemberProjectSubitem1.getNeedInvoice());
|
||||
@@ -112,6 +177,19 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
if (!payMemberProjectSubitem1.getPostContactTemporaryId().equals(postContactId)) {
|
||||
contactsManagementTemporaryService.removeById(postContactId);
|
||||
}
|
||||
// 变更应收金额,重新校验状态
|
||||
ProjectStatusVO projectStatusVO = projectDetailService.getStatus(payMemberProjectSubitem.getId(),payMemberProjectSubitem.getAmountReceivable(),payMemberProjectSubitem.getNeedInvoice());
|
||||
if(!Objects.isNull(projectStatusVO)){
|
||||
if(!Objects.isNull(projectStatusVO.getInAccount())){
|
||||
payMemberProjectSubitem.setInAccount(projectStatusVO.getInAccount());
|
||||
}
|
||||
if(!Objects.isNull(projectStatusVO.getMakeInvoice())){
|
||||
payMemberProjectSubitem.setMakeInvoice(projectStatusVO.getMakeInvoice());
|
||||
}
|
||||
if(!Objects.isNull(projectStatusVO.getMail())){
|
||||
payMemberProjectSubitem.setMail(projectStatusVO.getMail());
|
||||
}
|
||||
}
|
||||
validMemberProjectSubitem(payMemberProjectSubitem);
|
||||
saveOrUpdate(payMemberProjectSubitem);
|
||||
}
|
||||
@@ -168,7 +246,19 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
* 通过id删除
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteById(String id) {
|
||||
try {
|
||||
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayIncomeContractAssociated::getProjectId, id);
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
|
||||
if (!Objects.isNull(payIncomeContractAssociated)) {
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("会员项目-批量删除异常", e);
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
delectTemporaryById(id);
|
||||
removeById(id);
|
||||
}
|
||||
@@ -190,10 +280,23 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl<PayMember
|
||||
* 批量删除
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteByIds(List<String> ids) {
|
||||
for (String id : ids) {
|
||||
try {
|
||||
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayIncomeContractAssociated::getProjectId, id);
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
|
||||
if (!Objects.isNull(payIncomeContractAssociated)) {
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("普通项目管理-批量删除异常", e);
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
delectTemporaryById(id);
|
||||
}
|
||||
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
|
||||
+45
-1
@@ -1,12 +1,25 @@
|
||||
package com.jero.member.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||
import com.jero.member.entity.PayMemberProjectSubitem;
|
||||
import com.jero.member.entity.TbMemberProject;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.jero.member.mapper.TbMemberProjectMapper;
|
||||
import com.jero.member.service.ITbMemberProjectService;
|
||||
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Description: 标协会员项目表
|
||||
* @Author: jero-boot
|
||||
@@ -16,6 +29,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@Service
|
||||
public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMapper, TbMemberProject> implements ITbMemberProjectService {
|
||||
|
||||
@Autowired
|
||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||
@Resource
|
||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@@ -37,15 +54,42 @@ public class TbMemberProjectServiceImpl extends ServiceImpl<TbMemberProjectMappe
|
||||
*/
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||
query.eq(TbMemberProjectSubitem::getProjectId, id);
|
||||
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
|
||||
getPayIncomeContractAssociated(listTbMemberProjectSubitem);
|
||||
removeById(id);
|
||||
}
|
||||
/**
|
||||
* @Description 校验是存在关联合同的项目
|
||||
* @Author lqt
|
||||
* @Date 2021/9/8
|
||||
* @Param
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
private void getPayIncomeContractAssociated(List<TbMemberProjectSubitem> listTbMemberProjectSubitem){
|
||||
if(!CollectionUtils.isEmpty(listTbMemberProjectSubitem)){
|
||||
List<String> list = listTbMemberProjectSubitem.stream().map(TbMemberProjectSubitem::getId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
||||
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getProjectId,list);
|
||||
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
|
||||
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
@Override
|
||||
public void deleteByIds(List<String> ids) {
|
||||
removeByIds(ids);
|
||||
LambdaQueryWrapper<TbMemberProjectSubitem> query = new LambdaQueryWrapper<>();
|
||||
query.in(TbMemberProjectSubitem::getProjectId, ids);
|
||||
List<TbMemberProjectSubitem> listTbMemberProjectSubitem = tbMemberProjectSubitemService.list(query);
|
||||
getPayIncomeContractAssociated(listTbMemberProjectSubitem);
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+45
-1
@@ -1,12 +1,23 @@
|
||||
package com.jero.member.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||
import com.jero.member.entity.TbMemberProjectSubitem;
|
||||
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
|
||||
import com.jero.member.service.ITbMemberProjectSubitemService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Description: 标协会员项目成员表
|
||||
* @Author: jero-boot
|
||||
@@ -16,6 +27,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@Service
|
||||
public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProjectSubitemMapper, TbMemberProjectSubitem> implements ITbMemberProjectSubitemService {
|
||||
|
||||
@Resource
|
||||
private TbMemberProjectSubitemMapper tbMemberProjectSubitemMapper;
|
||||
@Autowired
|
||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||
/**
|
||||
* 保存
|
||||
*/
|
||||
@@ -37,6 +52,17 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
|
||||
*/
|
||||
@Override
|
||||
public void deleteById(String id) {
|
||||
try {
|
||||
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayIncomeContractAssociated::getProjectId, id);
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
|
||||
if (!Objects.isNull(payIncomeContractAssociated)) {
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("标协会员-批量删除异常", e);
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
@@ -45,7 +71,20 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
|
||||
*/
|
||||
@Override
|
||||
public void deleteByIds(List<String> ids) {
|
||||
removeByIds(ids);
|
||||
ids.forEach(p->{
|
||||
try {
|
||||
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayIncomeContractAssociated::getProjectId, p);
|
||||
PayIncomeContractAssociated payIncomeContractAssociated = payIncomeContractAssociatedService.getOne(query);
|
||||
if (!Objects.isNull(payIncomeContractAssociated)) {
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("标协会员-批量删除异常", e);
|
||||
throw new JeroBootException("已关联合同不可删除!");
|
||||
}
|
||||
});
|
||||
removeByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -63,4 +102,9 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
|
||||
public List<TbMemberProjectSubitem> queryList() {
|
||||
return list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<TbMemberProjectSubitem> queryListByCompany(Page<TbMemberProjectSubitem> page, String companyId, String projectType,Integer pack,String packYear) {
|
||||
return tbMemberProjectSubitemMapper.queryListByCompany(page, companyId, projectType,pack,packYear);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user