打包管理

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
@@ -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;
}