打包管理
This commit is contained in:
+9
@@ -83,4 +83,13 @@ public class PayIncomeContractCommon {
|
||||
*/
|
||||
public final static List<String> LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","期应收","期应收时间","期实收","期实收时间");
|
||||
|
||||
/**
|
||||
* 来源(1:收入合同,2:打包管理)
|
||||
*/
|
||||
public final static Integer COME1 = 1;
|
||||
/**
|
||||
* 来源(1:收入合同,2:打包管理)
|
||||
*/
|
||||
public final static Integer COME2 = 2;
|
||||
|
||||
}
|
||||
|
||||
-1
@@ -99,7 +99,6 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
|
||||
if(Objects.equals(chargeStatus,PayIncomeContractCommon.CHARGE_STATUS0)){
|
||||
chargeStatus = "";
|
||||
}
|
||||
// todo 缺少会议,会员项目,标协会员
|
||||
Page<PayIncomeContract> page = new Page<>(pageNo, pageSize);
|
||||
IPage<PayIncomeContract> pageList = payIncomeContractService.queryPageList(page, payIncomeContract,chargeStatus,projectName,startTime,endTime);
|
||||
return Result.OK(pageList);
|
||||
|
||||
+1
@@ -2,6 +2,7 @@ package com.jero.contract.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
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 lombok.Data;
|
||||
|
||||
-1
@@ -38,6 +38,5 @@ public interface PayIncomeContractMapper extends BaseMapper<PayIncomeContract> {
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
// todo 缺少会议,会员项目数据
|
||||
List<ProjectOutput> getAssociated(@Param("contractId") String contractId);
|
||||
}
|
||||
|
||||
+68
-5
@@ -47,11 +47,23 @@
|
||||
LEFT JOIN pay_income_contract_associated pica ON pica.contract_id = pic.id
|
||||
LEFT JOIN
|
||||
(
|
||||
select id,charge_project AS projectName from pay_common_project
|
||||
union all
|
||||
select pwgs.id,pwg.working_group_project AS projectName from pay_working_group_subitem pwgs
|
||||
left join pay_working_group pwg ON pwg.id = pwgs.working_group_id
|
||||
WHERE pwg.working_group_project is not null and pwg.working_group_project!=''
|
||||
SELECT id,charge_project AS projectName FROM pay_common_project
|
||||
UNION ALL
|
||||
SELECT pwgs.id,pwg.working_group_project AS projectName FROM pay_working_group_subitem pwgs
|
||||
LEFT JOIN pay_working_group pwg ON pwg.id = pwgs.working_group_id
|
||||
WHERE pwg.working_group_project IS NOT NULL AND pwg.working_group_project != ''
|
||||
UNION ALL
|
||||
SELECT sit.id,meeting.meeting_name AS projectName FROM pay_meeting meeting
|
||||
INNER JOIN pay_meeting_situation sit ON meeting.id = sit.meeting_id
|
||||
WHERE meeting.meeting_name IS NOT NULL AND meeting.meeting_name != ''
|
||||
UNION ALL
|
||||
SELECT msub.id,pmp.project_name AS projectName FROM pay_member_project pmp
|
||||
INNER JOIN pay_member_project_subitem msub ON pmp.id = msub.project_id
|
||||
WHERE pmp.project_name IS NOT NULL AND pmp.project_name != ''
|
||||
UNION ALL
|
||||
SELECT tmsub.id,tmember.project_name AS projectName FROM tb_member_project tmember
|
||||
INNER JOIN tb_member_project_subitem tmsub ON tmember.id=tmsub.project_id
|
||||
where tmember.project_name IS NOT NULL AND tmember.project_name != ''
|
||||
) project ON project.id = pica.project_id
|
||||
GROUP BY pic.id
|
||||
) aa
|
||||
@@ -116,6 +128,57 @@
|
||||
JOIN pay_working_group_subitem pwgs ON pica.project_id = pwgs.id
|
||||
LEFT JOIN pay_working_group pwg ON pwgs.working_group_id = pwg.id
|
||||
WHERE pica.contract_id = #{contractId}
|
||||
UNION ALL
|
||||
SELECT
|
||||
pica.id AS id,
|
||||
pica.contract_id AS contractId,
|
||||
sit.id AS projectId,
|
||||
'3' AS projectType,
|
||||
meeting.meeting_name AS chargeProject,
|
||||
sit.charge_use AS chargeUse,
|
||||
sit.company_name AS chargeCompanyName,
|
||||
sit.amount_receivable AS receivableAmount,
|
||||
sit.paid_amount AS paidAmount,
|
||||
meeting.director_name AS principalName,
|
||||
pica.create_time AS createTime
|
||||
FROM pay_income_contract_associated pica
|
||||
JOIN pay_meeting_situation sit ON pica.project_id = sit.id
|
||||
LEFT JOIN pay_meeting meeting ON meeting.id = sit.meeting_id
|
||||
WHERE pica.contract_id = #{contractId}
|
||||
UNION ALL
|
||||
SELECT
|
||||
pica.id AS id,
|
||||
pica.contract_id AS contractId,
|
||||
msub.id AS projectId,
|
||||
'4' AS projectType,
|
||||
pmp.project_name AS chargeProject,
|
||||
msub.charge_use AS chargeUse,
|
||||
msub.company_name AS chargeCompanyName,
|
||||
msub.amount_receivable AS receivableAmount,
|
||||
msub.paid_amount AS paidAmount,
|
||||
pmp.director_name AS principalName,
|
||||
pica.create_time AS createTime
|
||||
FROM pay_income_contract_associated pica
|
||||
JOIN pay_member_project_subitem msub ON pica.project_id = msub.id
|
||||
LEFT JOIN pay_member_project pmp ON pmp.id=msub.project_id
|
||||
WHERE pica.contract_id = #{contractId}
|
||||
UNION ALL
|
||||
SELECT
|
||||
pica.id AS id,
|
||||
pica.contract_id AS contractId,
|
||||
tmsub.id AS projectId,
|
||||
'5' AS projectType,
|
||||
tmember.project_name AS chargeProject,
|
||||
tmsub.charge_use AS chargeUse,
|
||||
tmsub.company_name AS chargeCompanyName,
|
||||
tmsub.amount_receivable AS receivableAmount,
|
||||
tmsub.paid_amount AS paidAmount,
|
||||
tmember.director_name AS principalName,
|
||||
pica.create_time AS createTime
|
||||
FROM pay_income_contract_associated pica
|
||||
JOIN tb_member_project_subitem tmsub ON pica.project_id = tmsub.id
|
||||
LEFT JOIN tb_member_project tmember ON tmember.id=tmsub.project_id
|
||||
WHERE pica.contract_id = #{contractId}
|
||||
) a
|
||||
ORDER BY createTime,projectId DESC
|
||||
</select>
|
||||
|
||||
+103
-12
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.service.ProjectPackService;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
@@ -22,6 +23,10 @@ import com.jero.contract.vo.PayIncomeContractInput;
|
||||
import com.jero.contract.vo.ProjectOutput;
|
||||
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.PayCommonProject;
|
||||
import com.jero.project.entity.PayWorkingGroup;
|
||||
@@ -42,6 +47,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -80,6 +86,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
private IPayWorkingGroupService payWorkingGroupService;
|
||||
@Autowired
|
||||
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
|
||||
@Autowired
|
||||
private ProjectPackService projectPackService;
|
||||
@Autowired
|
||||
private IPayPackCompanyService payPackCompanyService;
|
||||
@Autowired
|
||||
private IPayPackCompanyProjectService payPackCompanyProjectService;
|
||||
|
||||
@Override
|
||||
public IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) {
|
||||
@@ -152,6 +164,23 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
if(!StringUtils.isBlank(msgPayIncomeContractInstallment)){
|
||||
throw new JeroBootException(msgPayIncomeContractInstallment.toString());
|
||||
}
|
||||
// 选择了打包,创建打包企业
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
LambdaQueryWrapper<PayPackCompany> queryPayPackCompany = new LambdaQueryWrapper<>();
|
||||
queryPayPackCompany.eq(PayPackCompany::getCompanyId,payIncomeContract.getSignedCompanyId());
|
||||
queryPayPackCompany.eq(PayPackCompany::getPackYear,payIncomeContract.getPackYear());
|
||||
List<PayPackCompany> listPayPackCompany = payPackCompanyService.list(queryPayPackCompany);
|
||||
//不存在打包企业 添加打包企业
|
||||
if(CollectionUtils.isEmpty(listPayPackCompany)){
|
||||
PayPackCompany payPackCompanyData = new PayPackCompany();
|
||||
payPackCompanyData.setCompanyId(payIncomeContract.getSignedCompanyId());
|
||||
payPackCompanyData.setCompanyContactId(payIncomeContract.getSignedCompanyId());
|
||||
payPackCompanyData.setPackYear(payIncomeContract.getPackYear());
|
||||
payPackCompanyData.setPackContactId(payIncomeContract.getSignedContactsId());
|
||||
payPackCompanyService.addPayPackCompany(payPackCompanyData);
|
||||
}
|
||||
}
|
||||
|
||||
return payIncomeContract;
|
||||
}
|
||||
|
||||
@@ -265,7 +294,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
if(Objects.isNull(payIncomeContract)){
|
||||
throw new JeroBootException("合同不存在!");
|
||||
}
|
||||
|
||||
// 查看项目类型
|
||||
switch (String.valueOf(p.getProjectType())){
|
||||
case PayIncomeContractCommon.PROJECT_TYPE1:
|
||||
@@ -281,8 +309,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
}
|
||||
// 验证项目是否已被关联
|
||||
getIncomeContractAssociated(p.getContractId(),p.getProjectId());
|
||||
// 合同选择打包,运行年份不是打包企业,添加打包企业
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
// 合同选择打包 && 企业没有打包,添加打包企业
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1) && !Objects.equals(payCommonProject.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
|
||||
updatePayCommonProject.eq(PayCommonProject::getId,p.getProjectId());
|
||||
if(!StringUtils.isBlank(payCommonProject.getContractNum())){
|
||||
@@ -292,7 +320,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername());
|
||||
updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date());
|
||||
payCommonProjectService.update(updatePayCommonProject);
|
||||
// todo 添加打包企业
|
||||
// 添加打包企业
|
||||
// 合同选择了打包,查看打包年份&&打包企业是否存在
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
setPack(payCommonProject.getChargeCompanyId(),payCommonProject.getContactsId(),payIncomeContract.getPackYear(),payCommonProject.getId(),payIncomeContract.getPack(),payCommonProject.getReceivableAmount(),payCommonProject.getPaidAmount());
|
||||
}
|
||||
}
|
||||
projectOutput.setProjectId(payCommonProject.getId());
|
||||
projectOutput.setProjectType(PayIncomeContractCommon.PROJECT_TYPE1);
|
||||
@@ -334,7 +366,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK1);
|
||||
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.get(0).getId());
|
||||
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
|
||||
// todo 添加打包企业
|
||||
// 添加打包企业
|
||||
// 合同选择了打包,查看打包年份&&打包企业是否存在
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
setPack(listPayWorkingGroupSubItem.get(0).getChargeCompanyId(),listPayWorkingGroupSubItem.get(0).getContactsIdOne(),payIncomeContract.getPackYear(),listPayWorkingGroupSubItem.get(0).getId(),payIncomeContract.getPack(),listPayWorkingGroupSubItem.get(0).getReceivableAmount(),listPayWorkingGroupSubItem.get(0).getPaidAmount());
|
||||
}
|
||||
}
|
||||
// 更新项目id
|
||||
p.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
|
||||
@@ -367,6 +403,54 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
return listProjectOutput;
|
||||
}
|
||||
/**
|
||||
* @Description 添加打包企业
|
||||
* @Author lqt
|
||||
* @Date 2021/9/12
|
||||
* @Param
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
private void setPack(String companyId, String contactsId, String packYear, String projectId, Integer pack, BigDecimal receivableAmount,BigDecimal paidAmount){
|
||||
// 合同选择了打包,查看打包年份&&打包企业是否存在
|
||||
if(Objects.equals(pack,PayIncomeContractCommon.PACK1)){
|
||||
LambdaQueryWrapper<PayPackCompany> queryPayPackCompany = new LambdaQueryWrapper<>();
|
||||
queryPayPackCompany.eq(PayPackCompany::getCompanyId,companyId);
|
||||
queryPayPackCompany.eq(PayPackCompany::getPackYear,packYear);
|
||||
List<PayPackCompany> listPayPackCompany = payPackCompanyService.list(queryPayPackCompany);
|
||||
PayPackCompany payPackCompany = new PayPackCompany();
|
||||
//不存在打包企业 添加打包企业
|
||||
if(CollectionUtils.isEmpty(listPayPackCompany)){
|
||||
PayPackCompany payPackCompanyData = new PayPackCompany();
|
||||
payPackCompanyData.setCompanyId(companyId);
|
||||
payPackCompanyData.setCompanyContactId(contactsId);
|
||||
payPackCompanyData.setPackYear(packYear);
|
||||
payPackCompanyData.setPackContactId(contactsId);
|
||||
payPackCompanyService.addPayPackCompany(payPackCompanyData);
|
||||
LambdaQueryWrapper<PayPackCompany> queryPayPackCompanyNew = new LambdaQueryWrapper<>();
|
||||
queryPayPackCompanyNew.eq(PayPackCompany::getCompanyId,companyId);
|
||||
queryPayPackCompanyNew.eq(PayPackCompany::getPackYear,packYear);
|
||||
List<PayPackCompany> listPayPackCompanyNew = payPackCompanyService.list(queryPayPackCompanyNew);
|
||||
payPackCompany = listPayPackCompanyNew.get(0);
|
||||
}else{
|
||||
payPackCompany = listPayPackCompany.get(0);
|
||||
}
|
||||
// 更新打包实收金额
|
||||
LambdaUpdateWrapper<PayPackCompany> updatePayPackCompany = new LambdaUpdateWrapper<>();
|
||||
updatePayPackCompany.eq(PayPackCompany::getPackChargeTotal,payPackCompany.getPackChargeTotal().add(receivableAmount));
|
||||
updatePayPackCompany.eq(PayPackCompany::getReceiptExpense,payPackCompany.getReceiptExpense().add(paidAmount));
|
||||
updatePayPackCompany.set(PayPackCompany::getId,payPackCompany.getId());
|
||||
// todo 更新开票金额与未开票金额
|
||||
payPackCompanyService.update(updatePayPackCompany);
|
||||
// 添加打包企业成员
|
||||
PayPackCompanyProject payPackCompanyProject = new PayPackCompanyProject();
|
||||
payPackCompanyProject.setPackId(payPackCompany.getId());
|
||||
payPackCompanyProject.setProjectId(projectId);
|
||||
payPackCompanyProject.setCome(PayIncomeContractCommon.COME1);
|
||||
payPackCompanyProject.setProjectId(PayIncomeContractCommon.PROJECT_TYPE1);
|
||||
payPackCompanyProjectService.save(payPackCompanyProject);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @Description 验证项目是否被合同关联
|
||||
* @Author lqt
|
||||
* @Date 2021/9/6
|
||||
@@ -386,7 +470,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
}
|
||||
throw new JeroBootException("项目已被其他合同关联!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -418,12 +501,20 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
|
||||
}
|
||||
// todo 缺少查询项目是否为打包企业,是:保持不变,不是:取消打包 将关联项目取消打包
|
||||
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1) ){
|
||||
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
|
||||
updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername());
|
||||
updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date());
|
||||
updatePayCommonProject.set(PayCommonProject::getPack,PayIncomeContractCommon.PACK0);
|
||||
updatePayCommonProject.eq(PayCommonProject::getId,payIncomeContractAssociated.getProjectId());
|
||||
payCommonProjectService.update(updatePayCommonProject);
|
||||
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
|
||||
queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId());
|
||||
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
|
||||
// todo 如果在打包企业中&& 来源为支出合同,取消打包,变更打包企业金额 否则不进行操作
|
||||
if(!CollectionUtils.isEmpty(listPayPackCompanyProject) && Objects.equals(listPayPackCompanyProject.get(0).getCome(),PayIncomeContractCommon.COME1)){
|
||||
payPackCompanyService.update();
|
||||
payPackCompanyProjectService.removeById(listPayPackCompanyProject.get(0).getId());
|
||||
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
|
||||
updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername());
|
||||
updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date());
|
||||
updatePayCommonProject.set(PayCommonProject::getPack,PayIncomeContractCommon.PACK0);
|
||||
updatePayCommonProject.eq(PayCommonProject::getId,payIncomeContractAssociated.getProjectId());
|
||||
payCommonProjectService.update(updatePayCommonProject);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PayIncomeContractCommon.PROJECT_TYPE2:
|
||||
|
||||
Reference in New Issue
Block a user