企业管理变更

This commit is contained in:
梁琦涛
2021-09-15 18:01:08 +08:00
parent b9e9191b0e
commit 452ad38797
8 changed files with 167 additions and 137 deletions
@@ -2,19 +2,23 @@ package com.jero.company.common;
public class PayCompanyManagementCommon {
/**
* (1:管理端,2:报名)
* 数据来源(1:财务人员,2:其他人)
*/
public final static Integer DATA_SOURCE1 = 1;
/**
* (1:管理端,2:报名)
* 数据来源(1:财务人员,2:其他人)
*/
public final static Integer DATA_SOURCE2 = 2;
/**
* 报名新增(1:是,0:否)
* 审核状态(1:通过,2:待审核)财务人员添加企业不需要审核默认是通过状态
*/
public final static Integer SIGNING_UP1 = 1;
public final static Integer STATUS1 = 1;
/**
* 报名新增(1:是,0:否)
* 审核状态(1:通过,2:待审核)财务人员添加企业不需要审核默认是通过状态
*/
public final static Integer SIGNING_UP0 = 0;
public final static Integer STATUS2 = 1;
/**
* 财务角色
*/
public final static String ROLE_CODE = "";
}
@@ -1,22 +1,6 @@
package com.jero.company.common;
public class PayContactsManagementCommon {
/**
* (1:管理端,2:报名)
*/
public final static Integer DATA_SOURCE1 = 1;
/**
* (1:管理端,2:报名)
*/
public final static Integer DATA_SOURCE2 = 2;
/**
* 报名新增(1:是,0:否)
*/
public final static Integer SIGNING_UP1 = 1;
/**
* 报名新增(1:是,0:否)
*/
public final static Integer SIGNING_UP0 = 0;
/**
* 性别(1:男,2:女)
*/
@@ -8,6 +8,7 @@ import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
@@ -18,6 +19,7 @@ import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.common.PayCompanyManagementCommon;
import com.jero.company.common.PayContactsManagementCommon;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.service.IPayCompanyManagementService;
import org.apache.commons.collections.CollectionUtils;
@@ -105,28 +107,41 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
PayCompanyManagement payCompanyManagementNew = null;
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 查看角色是否为财务人员
int dataSource = PayCompanyManagementCommon.DATA_SOURCE2;
int status = PayCompanyManagementCommon.STATUS2;
if(Objects.equals(sysUser.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE)){
dataSource = PayCompanyManagementCommon.DATA_SOURCE1;
status = PayCompanyManagementCommon.STATUS1;
}
payCompanyManagement.setDataSource(dataSource);
payCompanyManagement.setStatus(status);
try {
// 新增企业前在次校验企业名称是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getCompanyName,payCompanyManagement.getCompanyName());
payCompanyManagementNew = payCompanyManagementService.getOne(queryWrapper);
PayCompanyManagement payCompanyManagementNew = payCompanyManagementService.getOne(queryWrapper);
// 存在数据
if(!Objects.isNull(payCompanyManagementNew)){
return Result.error("该企业名称已存在!");
}
}catch (Exception e){
log.info("企业管理-添加异常",e);
return Result.error("该企业名称已存在!");
}
// 存在数据
if(!Objects.isNull(payCompanyManagementNew)){
// 如果是管理新增 && 已存在数据来源是报名,更新数据,变更来源为管理端
if(Objects.equals(payCompanyManagement.getDataSource(),PayCompanyManagementCommon.DATA_SOURCE1)
&& Objects.equals(payCompanyManagementNew.getDataSource(),PayCompanyManagementCommon.DATA_SOURCE2)){
payCompanyManagement.setId(payCompanyManagementNew.getId());
payCompanyManagement.setDataSource(PayCompanyManagementCommon.DATA_SOURCE1);
payCompanyManagement.setSigningUp(payCompanyManagementNew.getSigningUp());
payCompanyManagementService.updateById(payCompanyManagement);
return Result.OK("添加成功!");
try {
// 新增企业前在次校验信用代码是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getDutyCode,payCompanyManagement.getDutyCode());
PayCompanyManagement payCompanyManagementNew = payCompanyManagementService.getOne(queryWrapper);
// 存在数据
if(!Objects.isNull(payCompanyManagementNew)){
return Result.error("该信用代码已存在!");
}
return Result.error("该企业名称已存在!");
}catch (Exception e){
log.info("企业管理-添加异常",e);
return Result.error("该信用代码已存在!");
}
if(!StringUtils.isBlank(payCompanyManagement.getCompanyPhone())){
try {
@@ -152,6 +167,16 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 查看角色是否为财务人员
int dataSource = PayCompanyManagementCommon.DATA_SOURCE2;
int status = PayCompanyManagementCommon.STATUS2;
if(Objects.equals(sysUser.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE)){
dataSource = PayCompanyManagementCommon.DATA_SOURCE1;
status = PayCompanyManagementCommon.STATUS1;
}
payCompanyManagement.setDataSource(dataSource);
payCompanyManagement.setStatus(status);
try {
// 编辑保存企业前再次校验企业名称是否存在
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
@@ -175,7 +200,27 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
payCompanyManagementService.updateById(payCompanyManagement);
return Result.OK("编辑成功!");
}
/**
* 审核
*
* @param id 企业管理id
* @return
*/
@ApiOperation(value="企业管理-审核", notes="企业管理-审核")
@GetMapping(value = "/audit")
public Result<?> audit(@RequestParam(name="id") String id) {
if(StringUtils.isBlank(id)){
return Result.error("id不能为空!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaUpdateWrapper<PayCompanyManagement> updatePayCompanyManagement = new LambdaUpdateWrapper<>();
updatePayCompanyManagement.eq(PayCompanyManagement::getId,id);
updatePayCompanyManagement.set(PayCompanyManagement::getStatus,PayCompanyManagementCommon.STATUS1);
updatePayCompanyManagement.set(PayCompanyManagement::getUpdateBy,sysUser.getUsername());
updatePayCompanyManagement.set(PayCompanyManagement::getUpdateTime,new Date());
payCompanyManagementService.update(updatePayCompanyManagement);
return Result.OK("审核成功!");
}
/**
* 通过id删除
*
@@ -214,6 +259,36 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
return Result.OK("批量删除成功!");
}
/**
* 通过信用代码查询
*
* @param dutyCode 信用代码
* @return
*/
@ApiOperation(value="企业管理-通过信用代码查询", notes="企业管理-通过信用代码查询")
@GetMapping(value = "/queryByDutyCode")
public Result<?> queryByDutyCode(@RequestParam(name="dutyCode") String dutyCode) {
if(StringUtils.isBlank(dutyCode)){
return Result.error("信用代码不能为空!");
}else{
if(dutyCode.length() > 50){
return Result.error("信用代码长度应小于50字符!");
}
}
try {
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getDutyCode,dutyCode);
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getOne(queryWrapper);
if(Objects.isNull(payCompanyManagement)) {
return Result.OK("没有该信用代码!");
}
}catch (Exception e){
log.info("企业管理-通过信用代码查询",e);
return Result.error("该信用代码已存在!");
}
return Result.error("该信用代码已存在!");
}
/**
* 通过企业名称查询
*
@@ -233,7 +308,6 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
try {
LambdaQueryWrapper<PayCompanyManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCompanyManagement::getCompanyName,companyName);
queryWrapper.eq(PayCompanyManagement::getDataSource,PayCompanyManagementCommon.DATA_SOURCE1);
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getOne(queryWrapper);
if(Objects.isNull(payCompanyManagement)) {
return Result.OK("没有该企业名称!");
@@ -272,7 +346,6 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
public ModelAndView exportXls(HttpServletRequest request, PayCompanyManagement payCompanyManagement) {
// Step.1 组装查询条件
QueryWrapper<PayCompanyManagement> queryWrapper = QueryGenerator.initQueryWrapper(payCompanyManagement, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 获取导出数据
List<PayCompanyManagement> pageList = payCompanyManagementService.list(queryWrapper);
@@ -326,6 +399,14 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
@ApiOperation(value="企业管理-excel导入数据", notes="企业管理-excel导入数据")
@PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 查看角色是否为财务人员
int dataSource = PayCompanyManagementCommon.DATA_SOURCE2;
int status = PayCompanyManagementCommon.STATUS2;
if(Objects.equals(sysUser.getRoleCode(),PayCompanyManagementCommon.ROLE_CODE)){
dataSource = PayCompanyManagementCommon.DATA_SOURCE1;
status = PayCompanyManagementCommon.STATUS1;
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
@@ -347,6 +428,8 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
List<PayCompanyManagement> listAll = payCompanyManagementService.listPayCompanyManagement(companyList);
List<String> listCompany = new ArrayList<>();
StringBuilder msg = new StringBuilder();
int finalDataSource = dataSource;
int finalStatus = status;
list.forEach(p->{
int count = list.indexOf(p);
// 校验excel表中是否存在重复企业名称
@@ -354,8 +437,8 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
msg.append("").append(count + 3).append(" 行:企业名称在excel中重复,请修改。<br/>");
}
listCompany.add(p.getCompanyName());
p.setDataSource(PayCompanyManagementCommon.DATA_SOURCE1);
p.setSigningUp(PayCompanyManagementCommon.SIGNING_UP0);
p.setDataSource(finalDataSource);
p.setStatus(finalStatus);
// 校验字段值
StringBuilder s = ValidUtil.validateExcel(p,(count+3));
if(!StringUtils.isBlank(s)){
@@ -365,16 +448,6 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
if(!CollectionUtils.isEmpty(listAll)){
List<PayCompanyManagement> listCompanyEquals = listAll.stream().filter(p1->Objects.equals(p1.getCompanyName(),p.getCompanyName())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listCompanyEquals)){
// 已存在数据来源是报名,变更来源为管理端,替换掉数据
if(Objects.equals(listCompanyEquals.get(0).getDataSource(),PayCompanyManagementCommon.DATA_SOURCE2)){
String str = JSON.toJSONString(p);
PayCompanyManagement payCompanyManagement = JSON.parseObject(str,PayCompanyManagement.class);
payCompanyManagement.setId(listCompanyEquals.get(0).getId());
payCompanyManagement.setSigningUp(listCompanyEquals.get(0).getSigningUp());
listSigning.add(payCompanyManagement);
listRemove.add(p);
return;
}
msg.append("").append(count + 3).append("行:企业名称已经存在,请修改。<br/>");
}
}
@@ -286,7 +286,6 @@ public class PayContactsManagementController extends JeroController<PayContactsM
String phoneNew = PasswordUtil.encrypt(phone);
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,phoneNew);
queryWrapper.eq(PayContactsManagement::getDataSource,PayContactsManagementCommon.DATA_SOURCE1);
PayContactsManagement payContactsManagement = payContactsManagementService.getOne(queryWrapper);
if(Objects.isNull(payContactsManagement)) {
return Result.OK("没有该手机号!");
@@ -319,7 +318,6 @@ public class PayContactsManagementController extends JeroController<PayContactsM
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,name);
queryWrapper.eq(PayContactsManagement::getCompanyId,companyId);
queryWrapper.eq(PayContactsManagement::getDataSource,PayContactsManagementCommon.DATA_SOURCE1);
PayContactsManagement payContactsManagement = payContactsManagementService.getOne(queryWrapper);
if(Objects.isNull(payContactsManagement)) {
return Result.OK("没有该联系人姓名!");
@@ -474,8 +472,6 @@ public class PayContactsManagementController extends JeroController<PayContactsM
msg.append("").append(count + 3).append(" 行:联系人姓名在excel中重复,请修改。<br/>");
}
listContacts.add(p);
p.setDataSource(PayContactsManagementCommon.DATA_SOURCE1);
p.setSigningUp(PayContactsManagementCommon.SIGNING_UP0);
// 校验字段值
StringBuilder s = ValidUtil.validateExcel(p,(count+3));
if(!StringUtils.isBlank(s)){
@@ -495,16 +491,6 @@ public class PayContactsManagementController extends JeroController<PayContactsM
// 校验 表中是否存手机号
List<PayContactsManagement> listCompanyEquals = listContactsAll.stream().filter(p1->Objects.equals(p1.getPhone(),p.getPhone())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listCompanyEquals)){
// 已存在数据来源是报名,变更来源为管理端,替换掉数据
if(Objects.equals(listCompanyEquals.get(0).getDataSource(),PayContactsManagementCommon.DATA_SOURCE2)){
String str = JSON.toJSONString(p);
PayContactsManagement payContactsManagement = JSON.parseObject(str,PayContactsManagement.class);
payContactsManagement.setId(listCompanyEquals.get(0).getId());
payContactsManagement.setSigningUp(listCompanyEquals.get(0).getSigningUp());
listSigning.add(payContactsManagement);
listRemove.add(p);
return;
}
msg.append("").append(count + 3).append("行:手机号已经存在,请修改。<br/>");
}
List<PayContactsManagement> listContactsEquals = listContactsAll.stream().filter(p1->Objects.equals(p1.getCompanyId(),p.getCompanyId())
@@ -5,6 +5,7 @@ import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
@@ -79,23 +80,24 @@ public class PayCompanyManagement implements Serializable {
@Size(max = 50, message = "银行账号长度不能大于50个字符")
@Pattern(regexp = "^[0-9]*$",message = "银行账号格式错误")
private String bankAccount;
/**税号*/
@Excel(name = "税号", width = 15)
@ApiModelProperty(value = "税号")
@NotEmpty(message = "税号不能为空!")
@Size(max = 50, message = "税号长度不能大于50个字符")
@Pattern(regexp = "^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$",message = "税号格式错误")
/**信用代码*/
@Excel(name = "信用代码", width = 15)
@ApiModelProperty(value = "信用代码")
@NotEmpty(message = "信用代码不能为空!")
@Size(max = 50, message = "信用代码长度不能大于50个字符")
@Pattern(regexp = "^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$",message = "信用代码格式错误")
private String dutyCode;
/**数据来源(1:管理端,2:报名)*/
@ApiModelProperty(value = "数据来源(1:管理端,2:报名)")
/**审核状态(1:通过,2:待审核)财务人员添加企业不需要审核默认是通过状态*/
@ApiModelProperty(value = "审核状态(1:通过,2:待审核)财务人员添加企业不需要审核默认是通过状态")
@Max(2)
@Min(1)
@Dict(dicCode = "company_aduit_status")
private Integer status;
/**数据来源(1:财务人员,2:其他人)*/
@ApiModelProperty(value = "数据来源(1:财务人员,2:其他人)")
@Max(2)
@Min(1)
private Integer dataSource;
/**报名新增(1:是,0:否)*/
@ApiModelProperty(value = "报名新增(1:是,0:否)")
@Max(1)
@Min(0)
private Integer signingUp;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@@ -85,16 +85,6 @@ public class PayContactsManagement implements Serializable {
@Pattern(regexp = "^[0-9]\\d{5}$",message = "邮编格式错误")
@NotEmpty(message = "邮政编码不能为空!")
private String postalCode;
/**数据来源(1:管理端,2:报名)*/
@ApiModelProperty(value = "数据来源(1:管理端,2:报名)")
@Max(2)
@Min(1)
private Integer dataSource;
/**报名新增(1:是,0:否)*/
@ApiModelProperty(value = "报名新增(1:是,0:否)")
@Max(1)
@Min(0)
private Integer signingUp;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@@ -14,8 +14,6 @@
pcm.email,
pcm.contact_address AS contactAddress,
pcm.postal_code AS postalCode,
pcm.data_source AS dataSource,
pcm.signing_up AS signingUp,
pcm.remarks,
pcm.create_by AS createBy,
pcm.create_time AS createTime,
@@ -24,12 +22,6 @@
FROM pay_contacts_management pcm
LEFT JOIN pay_company_management pcm1 ON pcm.company_id = pcm1.id
<where>
<if test="payContactsManagement.dataSource != null and payContactsManagement.dataSource != ''">
AND pcm.data_source = #{payContactsManagement.dataSource}
</if>
<if test="payContactsManagement.signingUp != null and payContactsManagement.signingUp != ''">
AND pcm.signing_up = #{payContactsManagement.signingUp}
</if>
<if test="payContactsManagement.name != null and payContactsManagement.name != ''">
AND pcm.name LIKE concat('%',concat(#{payContactsManagement.name},'%'))
</if>
@@ -27,7 +27,6 @@ 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;
import com.jero.project.entity.PayWorkingGroupSubItem;
@@ -143,25 +142,10 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
setPayIncomeContract(payIncomeContract);
payIncomeContract.setStatus(PayIncomeContractCommon.STATUS1);
payIncomeContractService.save(payIncomeContract);
StringBuilder msgPayIncomeContractInstallment = new StringBuilder();
if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){
List<PayIncomeContractInstallment> finalListPayIncomeContractInstallment = listPayIncomeContractInstallment;
listPayIncomeContractInstallment.forEach(p->{
p.setContractId(payIncomeContract.getId());
StringBuilder sb = ValidUtil.validateAll(p);
if(!StringUtils.isBlank(sb)){
msgPayIncomeContractInstallment.append("").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("阶段:").append(sb);
}
if(!Objects.isNull(p.getAccountsReceivableAmount()) && !Objects.isNull(p.getPaidAmount())
&& p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) == -1){
msgPayIncomeContractInstallment.append("").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("期应收金额大于已收金额!");
}
});
payIncomeContractInstallmentService.saveBatch(listPayIncomeContractInstallment);
}
if(!StringUtils.isBlank(msgPayIncomeContractInstallment)){
throw new JeroBootException(msgPayIncomeContractInstallment.toString());
}
// 校验金额
checkPayIncomeContractInstallment(listPayIncomeContractInstallment,payIncomeContract);
// 选择了打包,创建打包企业
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
LambdaQueryWrapper<PayPackCompany> queryPayPackCompany = new LambdaQueryWrapper<>();
@@ -187,6 +171,28 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
return payIncomeContractMapper.getAssociated(contractId);
}
private void checkPayIncomeContractInstallment(List<PayIncomeContractInstallment> listPayIncomeContractInstallment,PayIncomeContract payIncomeContract){
if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){
StringBuilder msgPayIncomeContractInstallment = new StringBuilder();
List<PayIncomeContractInstallment> finalListPayIncomeContractInstallment = listPayIncomeContractInstallment;
listPayIncomeContractInstallment.forEach(p->{
p.setContractId(payIncomeContract.getId());
StringBuilder sb = ValidUtil.validateAll(p);
if(!StringUtils.isBlank(sb)){
msgPayIncomeContractInstallment.append("").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("阶段:").append(sb);
}
if(!Objects.isNull(p.getAccountsReceivableAmount()) && !Objects.isNull(p.getPaidAmount())
&& p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) == -1){
msgPayIncomeContractInstallment.append("").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("期应收金额大于已收金额!");
}
});
if(!StringUtils.isBlank(msgPayIncomeContractInstallment)){
throw new JeroBootException(msgPayIncomeContractInstallment.toString());
}
payIncomeContractInstallmentService.saveBatch(listPayIncomeContractInstallment);
}
}
@Override
@Transactional
public void editPayIncomeContractInput(PayIncomeContractInput input) {
@@ -212,6 +218,15 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(payIncomeContractStatus)){
throw new JeroBootException("收入合同不存在!");
}
// 项目已打包
if(payIncomeContractStatus.getPack() == PayIncomeContractCommon.PACK1){
if(payIncomeContract.getPack() != PayIncomeContractCommon.PACK1){
throw new JeroBootException("打包状态不可更改!");
}
if(payIncomeContract.getPackYear() != payIncomeContractStatus.getPackYear()){
throw new JeroBootException("打包年份不可更改!");
}
}
if(!Objects.equals(payIncomeContractStatus.getStatus(),PayIncomeContractCommon.STATUS1)
&& !Objects.equals(payIncomeContractStatus.getStatus(),PayIncomeContractCommon.STATUS4)){
throw new JeroBootException("收入合同不可编辑!");
@@ -242,7 +257,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
log.info("收入合同-添加异常",e);
throw new JeroBootException("合同名称已存在!");
}
StringBuilder msgPayIncomeContractInstallment = new StringBuilder();
// 删除历史
LambdaQueryWrapper<PayIncomeContractInstallment> queryPayIncomeContractInstallment = new LambdaQueryWrapper<>();
queryPayIncomeContractInstallment.eq(PayIncomeContractInstallment::getContractId,payIncomeContract.getId());
@@ -251,25 +265,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
List<String> list = listPayIncomeContractInstallmentOld.stream().map(PayIncomeContractInstallment::getId).collect(Collectors.toList());
payIncomeContractInstallmentService.removeByIds(list);
}
// 新增
if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){
List<PayIncomeContractInstallment> finalListPayIncomeContractInstallment = listPayIncomeContractInstallment;
listPayIncomeContractInstallment.forEach(p->{
p.setContractId(payIncomeContract.getId());
StringBuilder sb = ValidUtil.validateAll(p);
if(!StringUtils.isBlank(sb)){
msgPayIncomeContractInstallment.append("").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("阶段:").append(sb);
}
if(!Objects.isNull(p.getAccountsReceivableAmount()) && !Objects.isNull(p.getPaidAmount())
&& p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) == -1){
msgPayIncomeContractInstallment.append("").append(finalListPayIncomeContractInstallment.indexOf(p) + 1).append("期应收金额大于已收金额!");
}
});
payIncomeContractInstallmentService.saveBatch(listPayIncomeContractInstallment);
}
if(!StringUtils.isBlank(msgPayIncomeContractInstallment)){
throw new JeroBootException(msgPayIncomeContractInstallment.toString());
}
// 校验金额
checkPayIncomeContractInstallment(listPayIncomeContractInstallment,payIncomeContract);
setPayIncomeContract(payIncomeContract);
payIncomeContractService.updateById(payIncomeContract);
}
@@ -383,8 +380,10 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
projectOutput.setReceivableAmount(listPayWorkingGroupSubItem.get(0).getReceivableAmount());
break;
case PayIncomeContractCommon.PROJECT_TYPE3:
// 打包合同不可选择会议项目
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
throw new JeroBootException("打包合同不可关联会议项目!");
}
// todo 会议项目
break;