收入合同修改接收参数

This commit is contained in:
梁琦涛
2021-09-06 14:43:31 +08:00
parent 5cece32201
commit bc8bb77a22
6 changed files with 60 additions and 46 deletions
@@ -16,11 +16,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
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.entity.PayContactsManagement;
@@ -29,7 +27,6 @@ import com.jero.company.service.IPayContactsManagementService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -102,7 +102,16 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
@RequestParam(name="projectName",required = false) String projectName,
@RequestParam(name="startTime",required = false) String startTime,
@RequestParam(name="endTime",required = false) String endTime) {
// todo 缺少验证,缺少会议,会员项目
if(!StringUtils.isBlank(payIncomeContract.getContractNum()) && payIncomeContract.getContractNum().length() > 50){
return Result.error("合同编号长度不能大于50个字符!");
}
if(!StringUtils.isBlank(payIncomeContract.getContractName()) && payIncomeContract.getContractName().length() > 50){
return Result.error("合同名称长度不能大于50个字符!");
}
if(!StringUtils.isBlank(projectName) && projectName.length() > 50){
return Result.error("关联项目长度不能大于50个字符!");
}
// todo 缺少会议,会员项目
Page<PayIncomeContractOutput> page = new Page<>(pageNo, pageSize);
IPage<PayIncomeContractOutput> pageList = payIncomeContractService.queryPageList(page, payIncomeContract,chargeStatus,projectName,startTime,endTime);
pageList.getRecords().forEach(p->{
@@ -140,14 +149,14 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
/**
* 关联
*
* @param input
* @param listPayIncomeContractAssociated
* @return
*/
@AutoLog(value = "收入合同-关联")
@ApiOperation(value="收入合同-关联", notes="收入合同-关联")
@PostMapping(value = "/associated")
public Result<?> associated(@RequestBody PayIncomeContractAssociatedInput input) {
List<ProjectOutput> list = payIncomeContractService.associated(input);
public Result<?> associated(@RequestBody List<PayIncomeContractAssociated> listPayIncomeContractAssociated) {
List<ProjectOutput> list = payIncomeContractService.associated(listPayIncomeContractAssociated);
return Result.OK("关联成功!",list);
}
@@ -44,8 +44,8 @@ public class PayIncomeContractInstallment implements Serializable {
@ApiModelProperty(value = "应收金额")
private java.lang.String accountsReceivableAmount;
/**应收时间*/
@Excel(name = "应收时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "应收时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "应收时间")
private java.util.Date accountsReceivableTime;
@@ -54,8 +54,8 @@ public class PayIncomeContractInstallment implements Serializable {
@ApiModelProperty(value = "实收金额")
private java.lang.String paidAmount;
/**实收时间*/
@Excel(name = "实收时间", width = 15, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "实收时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "实收时间")
private java.util.Date paidTime;
@@ -54,11 +54,11 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
* @Description 收入合同-关联
* @Author lqt
* @Date 2021/9/5
* @Param input 关联项目
* @Param list 关联项目
* @Return
* @Exception
*/
List<ProjectOutput> associated(PayIncomeContractAssociatedInput input);
List<ProjectOutput> associated(List<PayIncomeContractAssociated> listPayIncomeContractAssociated);
/**
* @Description 取消关联
* @Author lqt
@@ -93,10 +93,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(input)){
throw new JeroBootException("收入合同信息不能为空!");
}
if(StringUtils.isBlank(input.getContract())){
throw new JeroBootException("收入合同信息不能为空!");
}
PayIncomeContract payIncomeContract = JSONObject.parseObject(input.getContract(),PayIncomeContract.class);
PayIncomeContract payIncomeContract = input.getContract();
if(Objects.isNull(payIncomeContract)){
throw new JeroBootException("收入合同信息不能为空!");
}
@@ -105,8 +102,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
throw new JeroBootException(msgPayIncomeContract.toString());
}
List<PayIncomeContractInstallment> listPayIncomeContractInstallment = new ArrayList<>();
if(!StringUtils.isBlank(input.getInstallment())){
listPayIncomeContractInstallment = JSONArray.parseArray(input.getInstallment(),PayIncomeContractInstallment.class);
if(!CollectionUtils.isEmpty(input.getInstallment())){
listPayIncomeContractInstallment = input.getInstallment();
}
try {
LambdaQueryWrapper<PayIncomeContract> query = new LambdaQueryWrapper<>();
@@ -142,7 +139,6 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(!StringUtils.isBlank(sb)){
msgPayIncomeContractInstallment.append("").append(finalListPayIncomeContractInstallment.indexOf(p)).append("阶段:").append(sb);
}
});
payIncomeContractInstallmentService.saveBatch(listPayIncomeContractInstallment);
}
@@ -158,11 +154,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(input)){
throw new JeroBootException("收入合同信息不能为空!");
}
if(StringUtils.isBlank(input.getContract())){
throw new JeroBootException("收入合同信息不能为空!");
}
PayIncomeContract payIncomeContract = JSONObject.parseObject(input.getContract(),PayIncomeContract.class);
if(Objects.isNull(payIncomeContract)){
PayIncomeContract payIncomeContract = input.getContract();
if(Objects.isNull(input.getContract())){
throw new JeroBootException("收入合同信息不能为空!");
}
StringBuilder msgPayIncomeContract = ValidUtil.validateAll(payIncomeContract);
@@ -181,8 +174,8 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
throw new JeroBootException("收入合同不可编辑!");
}
List<PayIncomeContractInstallment> listPayIncomeContractInstallment = new ArrayList<>();
if(!StringUtils.isBlank(input.getInstallment())){
listPayIncomeContractInstallment = JSONArray.parseArray(input.getInstallment(),PayIncomeContractInstallment.class);
if(!CollectionUtils.isEmpty(input.getInstallment())){
listPayIncomeContractInstallment = input.getInstallment();
}
try {
LambdaQueryWrapper<PayIncomeContract> query = new LambdaQueryWrapper<>();
@@ -236,11 +229,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
@Override
@Transactional
public List<ProjectOutput> associated(PayIncomeContractAssociatedInput input) {
if(StringUtils.isBlank(input.getAssociated())){
throw new JeroBootException("关联项目不能为空!");
}
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = JSONArray.parseArray(input.getAssociated(),PayIncomeContractAssociated.class);
public List<ProjectOutput> associated(List<PayIncomeContractAssociated> listPayIncomeContractAssociated) {
if(CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
throw new JeroBootException("关联项目不能为空!");
}
@@ -255,13 +244,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(payIncomeContract)){
throw new JeroBootException("合同不存在!");
}
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getContractId,p.getContractId());
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectId,p.getProjectId());
List<PayIncomeContractAssociated> listPayIncomeContractAssociatedNew = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociatedNew)){
throw new JeroBootException("项目已被其他合同关联!");
}
// 查看项目类型
switch (String.valueOf(p.getProjectType())){
case PayIncomeContractCommon.PROJECT_TYPE1:
@@ -271,6 +254,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(payCommonProject)){
throw new JeroBootException("项目不存在!");
}
// 验证企业是否正确
if(!Objects.equals(payCommonProject.getChargeCompanyId(),payIncomeContract.getSignedCompanyId())){
throw new JeroBootException("企业不匹配!");
}
// 验证项目是否已被关联
getIncomeContractAssociated(p.getContractId(),p.getProjectId());
// 合同选择打包,运行年份不是打包企业,添加打包企业
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
@@ -301,13 +290,19 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(CollectionUtils.isEmpty(listPayWorkingGroupSubItem)){
throw new JeroBootException("工作组成员单位不存在!");
}
// 验证项目是否已被关联
getIncomeContractAssociated(p.getContractId(),listPayWorkingGroupSubItem.get(0).getId());
// 合同选择打包,运行年份不是打包企业,添加打包企业
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
// 打包,将关联项目设置成打包
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK1);
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.get(0).getId());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
// todo 添加打包企业
}
// 更新项目id
p.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
// 打包,将关联项目设置成打包
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK1);
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.get(0).getId());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
projectOutput.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
projectOutput.setProjectType(PayIncomeContractCommon.PROJECT_TYPE2);
projectOutput.setChargeProject(payWorkingGroup.getWorkingGroupProject());
@@ -331,6 +326,16 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
return listProjectOutput;
}
private void getIncomeContractAssociated(String contractId,String projectId){
LambdaQueryWrapper<PayIncomeContractAssociated> query = new LambdaQueryWrapper<>();
query.eq(PayIncomeContractAssociated::getContractId,contractId);
query.eq(PayIncomeContractAssociated::getProjectId,projectId);
List<PayIncomeContractAssociated> list = payIncomeContractAssociatedService.list(query);
if(!CollectionUtils.isEmpty(list)){
throw new JeroBootException("项目已被其他合同关联!");
}
}
@Override
@Transactional
public void cancelAssociated(PayIncomeContractAssociated payIncomeContractAssociated) {
@@ -1,9 +1,12 @@
package com.jero.contract.vo;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractInstallment;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class PayIncomeContractInput implements Serializable {
@@ -11,10 +14,10 @@ public class PayIncomeContractInput implements Serializable {
* 合同数据
*/
@ApiModelProperty(value = "合同数据")
private String contract;
private PayIncomeContract contract;
/**
* 分期信息
*/
@ApiModelProperty(value = "分期信息")
private String installment;
private List<PayIncomeContractInstallment> installment;
}