打包管理

This commit is contained in:
梁琦涛
2021-09-13 09:31:12 +08:00
parent 33784ef5bf
commit 4933ad59cd
23 changed files with 714 additions and 135 deletions
@@ -0,0 +1,40 @@
package com.jero.common.common;
public class ProjectCommon {
/**
* 打包(1:是,0:否)
*/
public final static Integer PACKAGING0 = 0;
/**
* 打包(1:是,0:否)
*/
public final static Integer PACKAGING1 = 1;
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE1 = "1";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE2 = "2";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE3 = "3";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE4 = "4";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE5 = "5";
/**
* 来源(1:收入合同,2:打包管理)
*/
public final static Integer COME1 = 1;
/**
* 来源(1:收入合同,2:打包管理)
*/
public final static Integer COME2 = 2;
}
@@ -0,0 +1,16 @@
package com.jero.common.service;
public interface ProjectPackService {
/**
* @Description 更新项目状态
* @Author lqt
* @Date 2021/9/12
* @Param projectId 项目id
* @Param projectType 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
* @Param packStatus 打包(1:是,0:否)
* @Param packId 打包id
* @Return
* @Exception
*/
void updateProjectStatus(String projectId,String projectType,String packStatus,String packId);
}
@@ -6,6 +6,7 @@ import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectDetailService;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.service.IPayMailBillService;
import com.jero.pack.common.PackCommon;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
@@ -17,6 +18,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
@Service
public class ProjectDetailServiceImpl implements ProjectDetailService {
@@ -0,0 +1,148 @@
package com.jero.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectPackService;
import com.jero.common.system.vo.LoginUser;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.pack.common.PackCommon;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;
@Service
public class ProjectPackServiceImpl implements ProjectPackService {
@Autowired
private IPayCommonProjectService payCommonProjectService;
@Autowired
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
@Resource
private IPayMeetingSituationService payMeetingSituationService;
@Resource
private IPayMemberProjectSubitemService payMemberProjectSubitemService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Autowired
private IPayPackCompanyService payPackCompanyService;
@Override
public void updateProjectStatus(String projectId, String projectType, String packStatus,String packId) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
PayPackCompany payPackCompany = payPackCompanyService.getById(packId);
if(Objects.isNull(payPackCompany)){
throw new JeroBootException("打包企业不存在!");
}
switch (projectType){
// 普通项目
case PackCommon.PROJECT_TYPE1:
// 验证项目是否存在
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(projectId);
if(Objects.isNull(payCommonProjectOld)){
throw new JeroBootException("项目不存在!");
}
// 验证企业是否正确
if(!Objects.equals(payCommonProjectOld.getChargeCompanyId(),payPackCompany.getCompanyId())){
throw new JeroBootException("企业不匹配!");
}
LambdaUpdateWrapper<PayCommonProject> payCommonProject = new LambdaUpdateWrapper<>();
payCommonProject.eq(PayCommonProject::getId,projectId);
payCommonProject.set(PayCommonProject::getPack,packStatus);
payCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername());
payCommonProject.set(PayCommonProject::getUpdateTime,new Date());
payCommonProjectService.update(payCommonProject);
break;
// 工作组项目
case PackCommon.PROJECT_TYPE2:
// 验证项目是否存在
PayWorkingGroupSubItem payWorkingGroupSubItemOld = payWorkingGroupSubItemService.getById(projectId);
if(Objects.isNull(payWorkingGroupSubItemOld)){
throw new JeroBootException("项目不存在!");
}
// 验证企业是否正确
if(!Objects.equals(payWorkingGroupSubItemOld.getChargeCompanyId(),payPackCompany.getCompanyId())){
throw new JeroBootException("企业不匹配!");
}
LambdaUpdateWrapper<PayWorkingGroupSubItem> payWorkingGroupSubItem = new LambdaUpdateWrapper<>();
payWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,projectId);
payWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,packStatus);
payWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername());
payWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date());
payWorkingGroupSubItemService.update(payWorkingGroupSubItem);
break;
// 会议项目
case PackCommon.PROJECT_TYPE3:
// 验证项目是否存在
PayMeetingSituation payMeetingSituationOld = payMeetingSituationService.getById(projectId);
if(Objects.isNull(payMeetingSituationOld)){
throw new JeroBootException("项目不存在!");
}
// 验证企业是否正确
if(!Objects.equals(payMeetingSituationOld.getCompanyId(),payPackCompany.getCompanyId())){
throw new JeroBootException("企业不匹配!");
}
LambdaUpdateWrapper<PayMeetingSituation> payMeetingSituation = new LambdaUpdateWrapper<>();
payMeetingSituation.eq(PayMeetingSituation::getId,projectId);
payMeetingSituation.set(PayMeetingSituation::getPack,packStatus);
payMeetingSituation.set(PayMeetingSituation::getAmountReceivable,new BigDecimal("0.00"));
payMeetingSituation.set(PayMeetingSituation::getPaidAmount,new BigDecimal("0.00"));
payMeetingSituation.set(PayMeetingSituation::getUpdateBy,sysUser.getUsername());
payMeetingSituation.set(PayMeetingSituation::getUpdateTime,new Date());
payMeetingSituationService.update(payMeetingSituation);
break;
// 会员项目
case PackCommon.PROJECT_TYPE4:
// 验证项目是否存在
PayMemberProjectSubitem payMemberProjectSubitemOld = payMemberProjectSubitemService.getById(projectId);
if(Objects.isNull(payMemberProjectSubitemOld)){
throw new JeroBootException("项目不存在!");
}
// 验证企业是否正确
if(!Objects.equals(payMemberProjectSubitemOld.getCompanyId(),payPackCompany.getCompanyId())){
throw new JeroBootException("企业不匹配!");
}
LambdaUpdateWrapper<PayMemberProjectSubitem> payMemberProjectSubitem = new LambdaUpdateWrapper<>();
payMemberProjectSubitem.eq(PayMemberProjectSubitem::getId,projectId);
payMemberProjectSubitem.set(PayMemberProjectSubitem::getPack,packStatus);
payMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateBy,sysUser.getUsername());
payMemberProjectSubitem.set(PayMemberProjectSubitem::getUpdateTime,new Date());
payMemberProjectSubitemService.update(payMemberProjectSubitem);
break;
// 标协会员
case PackCommon.PROJECT_TYPE5:
// 验证项目是否存在
TbMemberProjectSubitem tbMemberProjectSubitemOld = tbMemberProjectSubitemService.getById(projectId);
if(Objects.isNull(tbMemberProjectSubitemOld)){
throw new JeroBootException("项目不存在!");
}
// 验证企业是否正确
if(!Objects.equals(tbMemberProjectSubitemOld.getCompanyId(),payPackCompany.getCompanyId())){
throw new JeroBootException("企业不匹配!");
}
LambdaUpdateWrapper<TbMemberProjectSubitem> tbMemberProjectSubitem = new LambdaUpdateWrapper<>();
tbMemberProjectSubitem.eq(TbMemberProjectSubitem::getId,projectId);
tbMemberProjectSubitem.set(TbMemberProjectSubitem::getPack,packStatus);
tbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateBy,sysUser.getUsername());
tbMemberProjectSubitem.set(TbMemberProjectSubitem::getUpdateTime,new Date());
tbMemberProjectSubitemService.update(tbMemberProjectSubitem);
break;
default:break;
}
}
}
@@ -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;
}
@@ -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);
@@ -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;
@@ -38,6 +38,5 @@ public interface PayIncomeContractMapper extends BaseMapper<PayIncomeContract> {
* @Return
* @Exception
*/
// todo 缺少会议,会员项目数据
List<ProjectOutput> getAssociated(@Param("contractId") String contractId);
}
@@ -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>
@@ -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:
@@ -10,7 +10,26 @@ public class PackCommon {
* 打包(1:是,0:否)
*/
public final static Integer PACKAGING1 = 1;
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE1 = "1";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE2 = "2";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE3 = "3";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE4 = "4";
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE5 = "5";
/**
* 来源(1:收入合同,2:打包管理)
*/
@@ -14,11 +14,16 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
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.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
@@ -43,6 +48,8 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
private IPayPackCompanyService payPackCompanyService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
/**
* 分页列表查询
@@ -63,6 +70,12 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
QueryWrapper<PayPackCompany> queryWrapper = QueryGenerator.initQueryWrapper(payPackCompany, req.getParameterMap());
Page<PayPackCompany> page = new Page<PayPackCompany>(pageNo, pageSize);
IPage<PayPackCompany> pageList = payPackCompanyService.page(page, queryWrapper);
if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayPackCompany> list = pageList.getRecords();
list.forEach(p->{
});
}
return Result.OK(pageList);
}
@@ -80,20 +93,8 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
try {
LambdaQueryWrapper<PayPackCompany> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId());
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew)){
return Result.error("该年份下已存在此打包企业!");
}
}catch (Exception e){
log.error("",e);
return Result.error("该年份下已存在此打包企业!");
}
payPackCompanyService.save(payPackCompany);
payPackCompanyService.addPayPackCompany(payPackCompany);
return Result.OK("添加成功!");
}
@@ -111,19 +112,7 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
try {
LambdaQueryWrapper<PayPackCompany> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId());
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew) && !Objects.equals(payPackCompany.getId(),payPackCompanyNew.getId())){
return Result.error("该年份下已存在此打包企业!");
}
}catch (Exception e){
log.error("",e);
return Result.error("该年份下已存在此打包企业!");
}
payPackCompanyService.updateById(payPackCompany);
payPackCompanyService.editPayPackCompany(payPackCompany);
return Result.OK("编辑成功!");
}
@@ -196,6 +185,15 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if(payPackCompany==null) {
return Result.error("未找到对应数据");
}
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(payPackCompany.getCompanyContactTemporaryId());
if(!Objects.isNull(payContactsManagementTemporary)){
if(!StringUtils.isBlank(payContactsManagementTemporary.getPhone())){
payPackCompany.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
payPackCompany.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
}
return Result.OK(payPackCompany);
}
@@ -79,7 +79,7 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
@ApiOperation(value="打包项目维护-列表查询", notes="打包项目维护-列表查询")
@GetMapping(value = "/listAll")
public Result<?> queryListAll(PayPackCompanyProjectInput input) {
if(Objects.isNull(input.getPack())){
if(Objects.isNull(input.getPackId())){
return Result.error("打包id不能为空");
}
PayPackCompany payPackCompany = payPackCompanyService.getById(input.getPackId());
@@ -110,6 +110,7 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
if(Objects.isNull(payPackCompany)){
return Result.error("打包企业不存在");
}
input.setPackId(input.getPackId());
input.setCompanyId(payPackCompany.getCompanyId());
input.setPack(PackCommon.PACKAGING0);
List<PayCommonProject> list = payPackCompanyProjectService.queryPackListAll(input);
@@ -142,15 +143,8 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
if(StringUtils.isBlank(payPackCompanyProject.getId())){
return Result.error("关联id不能为空!");
}
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
return Result.error("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME2)){
return Result.error("此项目已在合同处创建关联,请先从合同处取消关联!");
}
payPackCompanyProjectService.removeById(payPackCompanyProject.getId());
return Result.OK("添加成功!");
payPackCompanyProjectService.removePayPackCompanyProject(payPackCompanyProject);
return Result.OK("取消打包成功!");
}
/**
* 批量取消打包
@@ -165,21 +159,8 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
if(StringUtils.isBlank(payPackCompanyProject.getPackProjectIds())){
return Result.error("关联id不能为空!");
}
String[] s = payPackCompanyProject.getPackProjectIds().split(",");
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
return Result.error("id不能为空!");
}
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
return Result.error("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME2)){
return Result.error("此项目已在合同处创建关联,请先从合同处取消关联!");
}
}
payPackCompanyProjectService.removeByIds(Arrays.asList(payPackCompanyProject.getPackProjectIds()));
return Result.OK("添加成功!");
payPackCompanyProjectService.removeBatchPayPackCompanyProject(payPackCompanyProject);
return Result.OK("批量取消打包成功!");
}
/**
@@ -1,7 +1,10 @@
package com.jero.pack.entity;
import java.io.Serializable;
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 lombok.Data;
@@ -13,6 +16,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.Size;
/**
@@ -34,11 +38,11 @@ public class PayPackCompany implements Serializable {
@ApiModelProperty(value = "id")
private java.lang.String id;
/**企业id*/
@Excel(name = "企业id", width = 15)
// @Excel(name = "企业id", width = 15)
@ApiModelProperty(value = "企业id")
private java.lang.String companyId;
/**企业id*/
@Excel(name = "企业id", width = 15)
// @Excel(name = "企业id", width = 15)
@ApiModelProperty(value = "企业id")
private java.lang.String companyTemporaryId;
/**企业名称*/
@@ -46,11 +50,11 @@ public class PayPackCompany implements Serializable {
@ApiModelProperty(value = "企业名称")
private java.lang.String companyTemporaryName;
/**企业联系人id*/
@Excel(name = "企业联系人id", width = 15)
// @Excel(name = "企业联系人id", width = 15)
@ApiModelProperty(value = "企业联系人id")
private java.lang.String companyContactId;
/**企业联系人id*/
@Excel(name = "企业联系人id", width = 15)
// @Excel(name = "企业联系人id", width = 15)
@ApiModelProperty(value = "企业联系人id")
private java.lang.String companyContactTemporaryId;
/**企业联系人*/
@@ -62,11 +66,11 @@ public class PayPackCompany implements Serializable {
@ApiModelProperty(value = "打包年份")
private java.lang.String packYear;
/**打包联系人id*/
@Excel(name = "打包联系人id", width = 15)
// @Excel(name = "打包联系人id", width = 15)
@ApiModelProperty(value = "打包联系人id")
private java.lang.String packContactId;
/**打包联系人id*/
@Excel(name = "打包联系人id", width = 15)
// @Excel(name = "打包联系人id", width = 15)
@ApiModelProperty(value = "打包联系人id")
private java.lang.String packContactTemporaryId;
/**打包联系人*/
@@ -76,27 +80,31 @@ public class PayPackCompany implements Serializable {
/**打包费用总计*/
@Excel(name = "打包费用总计", width = 15)
@ApiModelProperty(value = "打包费用总计")
private java.lang.Integer packChargeTotal;
@DecimalMax(value = "9999999999.99",message = "打包费用总计格式错误")
private BigDecimal packChargeTotal;
/**打包费用备注*/
@Excel(name = "打包费用备注", width = 15)
// @Excel(name = "打包费用备注", width = 15)
@ApiModelProperty(value = "打包费用备注")
private java.lang.String packChargeRemark;
/**备注*/
@Excel(name = "备注", width = 15)
// @Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private java.lang.String remark;
/**实际到账费用*/
@Excel(name = "实际到账费用", width = 15)
@ApiModelProperty(value = "实际到账费用")
private java.lang.Integer receiptExpense;
@DecimalMax(value = "9999999999.99",message = "实际到账费用总计格式错误")
private BigDecimal receiptExpense;
/**开票金额*/
@Excel(name = "开票金额", width = 15)
// @Excel(name = "开票金额", width = 15)
@ApiModelProperty(value = "开票金额")
private java.lang.Integer invoiceAmount;
@DecimalMax(value = "9999999999.99",message = "开票金额总计格式错误")
private BigDecimal invoiceAmount;
/**未开票金额*/
@Excel(name = "未开票金额", width = 15)
// @Excel(name = "未开票金额", width = 15)
@ApiModelProperty(value = "未开票金额")
private java.lang.Integer uninvoicedAmount;
@DecimalMax(value = "9999999999.99",message = "未开票金额总计格式错误")
private BigDecimal uninvoicedAmount;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
@@ -113,4 +121,16 @@ public class PayPackCompany implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**
* 手机号
*/
@TableField(exist = false)
@ApiModelProperty(value = "手机号")
private String phone;
/**
* 邮箱
*/
@TableField(exist = false)
@ApiModelProperty(value = "邮箱")
private String email;
}
@@ -4,20 +4,16 @@
<select id="queryListAll" resultType="com.jero.project.entity.PayCommonProject">
select project.*,ppcp.come from pay_pack_company_project ppcp
LEFT JOIN pay_payment_record ppr ON ppr.project_id = ppcp.project_id
<if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</if>
LEFT JOIN
(
<!-- 普通项目-->
select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType
from pay_common_project c
<where>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND c.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND c.charge_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
@@ -30,10 +26,10 @@
from pay_working_group g
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
<where>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND gsub.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND g.working_group_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
@@ -46,10 +42,10 @@
from pay_meeting meeting
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
<where>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND sit.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND meeting.meeting_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
@@ -58,18 +54,18 @@
</where>
<!-- 会员项目-->
UNION ALL
select msub.id,member.project_name,msub.charge_use,member.director_id,member.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4
from pay_member_project member
inner join pay_member_project_subitem msub on member.id=msub.project_id
select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4
from pay_member_project pmp
inner join pay_member_project_subitem msub on pmp.id = msub.project_id
<where>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND msub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND member.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
<if test="projectName != null and projectName != ''">
AND pmp.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND member.particular_year = #{year}
AND pmp.particular_year = #{year}
</if>
</where>
<!-- 标协会员项目-->
@@ -78,31 +74,36 @@
from tb_member_project tmember
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
<where>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND tmsub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND tmember.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND tmember.year = #{year}
</if>
</where>
) project ON project.id = ppr.project_id
) project ON project.id = ppcp.project_id
LEFT JOIN pay_payment_record ppr ON ppr.project_id = project.id
<if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</if>
GROUP BY ppcp.project_id ORDER BY ppcp.create_time desc
</select>
<select id="queryPackListAll" resultType="com.jero.project.entity.PayCommonProject">
SELECT * FROM (
<!-- 普通项目-->
select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType
from pay_common_project c
<where>
<if test="projectId != null amd projectId != ''">
<if test="projectId != null and projectId != ''">
AND c.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND c.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND c.charge_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
@@ -118,13 +119,13 @@
from pay_working_group g
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
<where>
<if test="projectId != null amd projectId != ''">
<if test="projectId != null and projectId != ''">
AND gsub.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND gsub.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND g.working_group_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
@@ -140,13 +141,13 @@
from pay_meeting meeting
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
<where>
<if test="projectId != null amd projectId != ''">
<if test="projectId != null and projectId != ''">
AND sit.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND sit.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND meeting.meeting_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
@@ -158,21 +159,21 @@
</where>
<!-- 会员项目-->
UNION ALL
select msub.id,member.project_name,msub.charge_use,member.director_id,member.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4
from pay_member_project member
inner join pay_member_project_subitem msub on member.id=msub.project_id
select msub.id,pmp.project_name,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4
from pay_member_project pmp
inner join pay_member_project_subitem msub on pmp.id=msub.project_id
<where>
<if test="projectId != null amd projectId != ''">
<if test="projectId != null and projectId != ''">
AND msub.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND msub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND member.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
<if test="projectName != null and projectName != ''">
AND pmp.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND member.particular_year = #{year}
AND pmp.particular_year = #{year}
</if>
<if test="pack != null and pack != ''">
AND msub.pack = #{pack}
@@ -184,13 +185,13 @@
from tb_member_project tmember
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
<where>
<if test="projectId != null amd projectId != ''">
<if test="projectId != null and projectId != ''">
AND tmsub.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
<if test="companyId != null and companyId != ''">
AND tmsub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
<if test="projectName != null and projectName != ''">
AND tmember.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
@@ -200,8 +201,11 @@
AND tmsub.pack = #{pack}
</if>
</where>
) project
<if test="packId != null and packId != ''">
WHERE project.id NOT IN (SELECT project_id FROM pay_pack_company_project where pack_id = #{packId})
</if>
ORDER BY create_time desc
</select>
<select id="queryPackToYear" resultType="java.lang.String">
SELECT ppcp.project_id
@@ -41,6 +41,24 @@ public interface IPayPackCompanyProjectService extends IService<PayPackCompanyPr
*/
void addPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject);
/**
* @Description 取消打包
* @Author lqt
* @Date 2021/9/12
* @Param
* @Return
* @Exception
*/
void removePayPackCompanyProject(PayPackCompanyProject payPackCompanyProject);
/**
* @Description 批量取消打包
* @Author lqt
* @Date 2021/9/12
* @Param
* @Return
* @Exception
*/
void removeBatchPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject);
/**
* @Description 筛选符合打包年份的项目
* @Author lqt
* @Date 2021/9/10
@@ -10,5 +10,22 @@ import com.jero.pack.entity.PayPackCompany;
* @Version: V1.0
*/
public interface IPayPackCompanyService extends IService<PayPackCompany> {
/**
* @Description 添加
* @Author lqt
* @Date 2021/9/12
* @Param
* @Return
* @Exception
*/
void addPayPackCompany(PayPackCompany payPackCompany);
/**
* @Description 编辑
* @Author lqt
* @Date 2021/9/12
* @Param
* @Return
* @Exception
*/
void editPayPackCompany(PayPackCompany payPackCompany);
}
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.ProjectPackService;
import com.jero.pack.common.PackCommon;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
@@ -16,6 +17,7 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
@@ -38,6 +40,8 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayPackCompanyService payPackCompanyService;
@Autowired
private ProjectPackService projectPackService;
@Override
@@ -51,6 +55,7 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
}
@Override
@Transactional
public void addPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject) {
PayPackCompany payPackCompany = payPackCompanyService.getById(payPackCompanyProject.getPackId());
if(Objects.isNull(payPackCompany)){
@@ -74,6 +79,7 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
throw new JeroBootException("项目下企业不匹配!");
}
payPackCompanyProject.setProjectId(s1);
payPackCompanyProject.setCome(PackCommon.COME2);
listPayPackCompanyProject.add(payPackCompanyProject);
}
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
@@ -83,10 +89,51 @@ public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompany
throw new JeroBootException("项目已被打包!");
}
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
// 变更项目状态
listPayPackCompanyProject.forEach(p->{
projectPackService.updateProjectStatus(p.getProjectId(),String.valueOf(p.getProjectType()),String.valueOf(PackCommon.PACKAGING1),payPackCompanyProject.getPackId());
});
payPackCompanyProjectService.save(payPackCompanyProject);
}
}
@Override
@Transactional
public void removePayPackCompanyProject(PayPackCompanyProject payPackCompanyProject) {
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
throw new JeroBootException("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME1)){
throw new JeroBootException("此项目已在合同处创建关联,请先从合同处取消关联!");
}
// 更新项目状态
projectPackService.updateProjectStatus(payPackCompanyProject.getProjectId(),String.valueOf(payPackCompanyProject.getProjectType()),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId());
payPackCompanyProjectService.removeById(payPackCompanyProject.getId());
}
@Override
@Transactional
public void removeBatchPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject) {
String[] s = payPackCompanyProject.getPackProjectIds().split(",");
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
throw new JeroBootException("id不能为空!");
}
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
throw new JeroBootException("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME2)){
throw new JeroBootException("此项目已在合同处创建关联,请先从合同处取消关联!");
}
// 更新项目状态
projectPackService.updateProjectStatus(s1,String.valueOf(payPackCompanyProjectNew.getProjectType()),String.valueOf(PackCommon.PACKAGING0),payPackCompanyProject.getPackId());
}
payPackCompanyProjectService.removeByIds(Arrays.asList(payPackCompanyProject.getPackProjectIds()));
}
@Override
public List<String> queryPackToYear(String companyId,String projectType,String year) {
return payPackCompanyProjectMapper.queryPackToYear(companyId,projectType,year, PackCommon.COME2);
@@ -1,10 +1,24 @@
package com.jero.pack.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.mapper.PayPackCompanyMapper;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Objects;
/**
* @Description: pay_pack_company
@@ -15,4 +29,88 @@ import org.springframework.stereotype.Service;
@Service
public class PayPackCompanyServiceImpl extends ServiceImpl<PayPackCompanyMapper, PayPackCompany> implements IPayPackCompanyService {
@Autowired
private IPayPackCompanyService payPackCompanyService;
@Autowired
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
@Autowired
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Override
@Transactional
public void addPayPackCompany(PayPackCompany payPackCompany) {
try {
LambdaQueryWrapper<PayPackCompany> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId());
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew)){
throw new JeroBootException("该年份下已存在此打包企业!");
}
}catch (Exception e){
log.error("",e);
throw new JeroBootException("该年份下已存在此打包企业!");
}
setPayPackCompany(payPackCompany);
payPackCompanyService.save(payPackCompany);
}
@Override
@Transactional
public void editPayPackCompany(PayPackCompany payPackCompany) {
PayPackCompany payPackCompanyOld = payPackCompanyService.getById(payPackCompany.getId());
if(Objects.isNull(payPackCompanyOld)){
throw new JeroBootException("打包企业不存在!");
}
try {
LambdaQueryWrapper<PayPackCompany> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompany::getCompanyId,payPackCompany.getCompanyId());
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew) && !Objects.equals(payPackCompany.getId(),payPackCompanyNew.getId())){
throw new JeroBootException("该年份下已存在此打包企业!");
}
}catch (Exception e){
log.error("",e);
throw new JeroBootException("该年份下已存在此打包企业!");
}
// 删除历史数据
payCompanyManagementTemporaryService.removeById(payPackCompanyOld.getCompanyTemporaryId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payPackCompanyOld.getCompanyContactTemporaryId(),payPackCompanyOld.getPackContactTemporaryId()));
setPayPackCompany(payPackCompany);
payPackCompanyService.updateById(payPackCompany);
}
/**
* @Description 插入企业信息,联系人信息到临时表,更新项目记录
* @Author lqt
* @Date 2021/8/31
* @Param payCommonProject
* @Return
* @Exception
*/
private PayPackCompany setPayPackCompany(PayPackCompany payPackCompany){
// 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payPackCompany.getCompanyId());
if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!");
}
payPackCompany.setCompanyTemporaryId(chargeCompanyName.getId());
payPackCompany.setCompanyTemporaryName(chargeCompanyName.getCompanyName());
// 企业联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getCompanyContactId());
if(Objects.isNull(contactsName)){
throw new JeroBootException("企业联系人名称为空!");
}
payPackCompany.setCompanyContactTemporaryId(contactsName.getId());
payPackCompany.setCompanyContactTemporaryName(contactsName.getName());
// 邮寄联系人
PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payPackCompany.getPackContactId());
if(Objects.isNull(mailContactsName)){
throw new JeroBootException("邮寄联系人名称为空!");
}
payPackCompany.setPackContactTemporaryId(mailContactsName.getId());
payPackCompany.setPackContactTemporaryName(mailContactsName.getName());
return payPackCompany;
}
}
@@ -47,4 +47,9 @@ public class PayPackCompanyProjectInput implements Serializable {
*/
@ApiModelProperty(value = "项目ids,逗号分割")
private String projectIds;
/**
* 来款年份
*/
@ApiModelProperty(value = "来款年份")
private String paymentDate;
}
@@ -65,8 +65,6 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Autowired
private IPayPackCompanyService payPackCompanyService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@@ -150,8 +150,8 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
setPayCommonProject(payCommonProject);
// 先删除临时表企业信息,联系人信息,邮寄联系人信息
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsId(),payCommonProjectOld.getMailContactsId()));
payCompanyManagementTemporaryService.removeById(payCommonProjectOld.getChargeCompanyTemporaryId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProjectOld.getContactsTemporaryId(),payCommonProjectOld.getMailContactsTemporaryId()));
payCommonProjectService.updateById(payCommonProject);
}
@@ -42,10 +42,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -152,6 +149,10 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
@Override
@Transactional
public void editPayWorkingGroupSubItem(PayWorkingGroupSubItem payWorkingGroupSubItem) {
PayWorkingGroupSubItem payWorkingGroupSubItemOld = payWorkingGroupSubItemService.getById(payWorkingGroupSubItem.getId());
if(Objects.isNull(payWorkingGroupSubItemOld)){
throw new JeroBootException("项目不存在!");
}
if(payWorkingGroupSubItem.getChargeWay() == PayProjectCommon.CHARGE_WAY2){
if(Objects.isNull(payWorkingGroupSubItem.getReceivableAmount())){
throw new JeroBootException("应收金额不能为空");
@@ -207,6 +208,10 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
payWorkingGroupSubItemService.update(update);
// todo 缺少添加打包功能
}
// 先删除临时表企业信息,联系人信息,邮寄联系人信息
payCompanyManagementTemporaryService.removeById(payWorkingGroupSubItemOld.getChargeCompanyTemporaryId());
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payWorkingGroupSubItemOld.getContactsTemporaryIdOne(),payWorkingGroupSubItemOld.getContactsTemporaryIdTwo(),payWorkingGroupSubItemOld.getContactsTemporaryIdThree()));
payWorkingGroupSubItem = setPayWorkingGroupSubItem(payWorkingGroupSubItem);
payWorkingGroupSubItem.setChargeUse(PayProjectCommon.CHARGE_USE1);
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);