添加数据字典翻译

This commit is contained in:
梁琦涛
2021-09-06 17:08:56 +08:00
parent d3727c1f58
commit 251934fdac
10 changed files with 222 additions and 88 deletions
@@ -1,6 +1,7 @@
package com.jero.contract.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -38,7 +39,6 @@ import org.apache.commons.lang3.StringUtils;
import org.jeecgframework.poi.excel.def.MapExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecgframework.poi.excel.view.JeecgMapExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
@@ -146,10 +146,31 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
return Result.OK("编辑成功!");
}
/**
* 关联项目列表
*
* @param contractId 合同id
* @return
*/
@AutoLog(value = "收入合同-关联")
@ApiOperation(value="收入合同-关联", notes="收入合同-关联")
@GetMapping(value = "/getAssociated")
public Result<?> getAssociated(@RequestParam("contractId") String contractId) {
List<ProjectOutput> list = payIncomeContractService.getAssociated(contractId);
if(!CollectionUtils.isEmpty(list)){
list.forEach(p->{
if(!StringUtils.isBlank(p.getChargeUse())){
p.setChargeUse_dictText(sysBaseAPI.translateDict("payment_charge_use",p.getChargeUse()));
}
});
}
return Result.OK(list);
}
/**
* 关联
*
* @param listPayIncomeContractAssociated
* @param listPayIncomeContractAssociated 关联项目集合
* @return
*/
@AutoLog(value = "收入合同-关联")
@@ -163,7 +184,7 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
/**
* 取消关联
*
* @param payIncomeContractAssociated
* @param payIncomeContractAssociated 关联项目
* @return
*/
@AutoLog(value = "收入合同-取消关联")
@@ -171,7 +192,7 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
@PostMapping(value = "/cancelAssociated")
public Result<?> cancelAssociated(@RequestBody PayIncomeContractAssociated payIncomeContractAssociated) {
payIncomeContractService.cancelAssociated(payIncomeContractAssociated);
return Result.OK("关联成功!");
return Result.OK("取消关联成功!");
}
/**
@@ -273,77 +294,50 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
if(payIncomeContract==null) {
return Result.error("未找到对应数据");
}
// 获取分期信息
LambdaQueryWrapper<PayIncomeContractInstallment> queryPayIncomeContractInstallment = new LambdaQueryWrapper<>();
queryPayIncomeContractInstallment.eq(PayIncomeContractInstallment::getContractId,payIncomeContract.getId());
List<PayIncomeContractInstallment> listPayIncomeContractInstallment = payIncomeContractInstallmentService.list(queryPayIncomeContractInstallment);
// 获取关联项目id
List<ProjectOutput> listProject = new ArrayList<>();
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getContractId,id);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
List<String> listId = listPayIncomeContractAssociated.stream().map(PayIncomeContractAssociated::getProjectId).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listId)){
// 普通项目
LambdaQueryWrapper<PayCommonProject> queryPayCommonProject = new LambdaQueryWrapper<>();
queryPayCommonProject.in(PayCommonProject::getId,listId);
List<PayCommonProject> listPayCommonProject = payCommonProjectService.list(queryPayCommonProject);
if(!CollectionUtils.isEmpty(listPayCommonProject)){
listPayCommonProject.forEach(p->{
ProjectOutput projectOutput = new ProjectOutput();
projectOutput.setProjectId(p.getId());
projectOutput.setProjectType(PayIncomeContractCommon.PROJECT_TYPE1);
projectOutput.setChargeProject(p.getChargeProject());
projectOutput.setChargeUse(p.getChargeUse());
projectOutput.setChargeCompanyName(p.getChargeCompanyTemporaryName());
projectOutput.setContactsName(p.getChargeCompanyTemporaryName());
projectOutput.setPaidAmount(p.getPaidAmount());
projectOutput.setReceivableAmount(p.getReceivableAmount());
listProject.add(projectOutput);
});
}
// 工作组项目
LambdaQueryWrapper<PayWorkingGroupSubItem> queryPayWorkingGroupSubItem = new LambdaQueryWrapper<>();
queryPayWorkingGroupSubItem.in(PayWorkingGroupSubItem::getId,listId);
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(queryPayWorkingGroupSubItem);
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)){
listPayWorkingGroupSubItem.forEach(p->{
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(p.getWorkingGroupId());
ProjectOutput projectOutput = new ProjectOutput();
projectOutput.setProjectId(p.getId());
projectOutput.setProjectType(PayIncomeContractCommon.PROJECT_TYPE2);
if(Objects.isNull(payWorkingGroup)){
projectOutput.setChargeProject(payWorkingGroup.getWorkingGroupProject());
}
projectOutput.setChargeProject(p.getChargeProject());
projectOutput.setChargeCompanyName(p.getChargeCompanyTemporaryName());
projectOutput.setContactsName(p.getChargeCompanyTemporaryName());
projectOutput.setPaidAmount(p.getPaidAmount());
projectOutput.setReceivableAmount(p.getReceivableAmount());
listProject.add(projectOutput);
});
}
// todo 会议项目
// todo 会员项目
}
}
// 获取存档记录
List<ProjectOutput> listProject = payIncomeContractService.getAssociated(id);
LambdaQueryWrapper<PayIncomeContractAudit> queryPayIncomeContractAudit = new LambdaQueryWrapper<>();
queryPayIncomeContractAudit.in(PayIncomeContractAudit::getContractId,id);
List<PayIncomeContractAudit> listPayIncomeContractAudit = payIncomeContractAuditService.list(queryPayIncomeContractAudit);
List<PayIncomeContractAudit> listArchive = listPayIncomeContractAudit.stream().filter(p->Objects.equals(p.getContractStatus(), PayIncomeContractCommon.STATUS5)).collect(Collectors.toList());
// 获取审核记录
List<PayIncomeContractAudit> listAudit = listPayIncomeContractAudit.stream().filter(p->!Objects.equals(p.getContractStatus(), PayIncomeContractCommon.STATUS5)).collect(Collectors.toList());
List<PayIncomeContractAuditOutput> listArchive = new ArrayList<>();
List<PayIncomeContractAuditOutput> listAudit = new ArrayList<>();
if(!CollectionUtils.isEmpty(listPayIncomeContractAudit)){
String str = JSON.toJSONString(listPayIncomeContractAudit);
List<PayIncomeContractAuditOutput> listAll = JSONArray.parseArray(str,PayIncomeContractAuditOutput.class);
listAll.forEach(p->{
if(!Objects.isNull(p.getContractStatus())){
p.setContractStatus_dictText(sysBaseAPI.translateDict("revenue_contract_status",String.valueOf(p.getContractStatus())));
}
});
// 获取存档记录
listArchive = listAll.stream().filter(p->Objects.equals(p.getContractStatus(), PayIncomeContractCommon.STATUS5)).collect(Collectors.toList());
// 获取审核记录
listAudit = listAll.stream().filter(p->!Objects.equals(p.getContractStatus(), PayIncomeContractCommon.STATUS5)).collect(Collectors.toList());
}
String str = JSON.toJSONString(payIncomeContract);
PayIncomeContractDetailOutput payIncomeContractDetailOutput = JSONObject.parseObject(str,PayIncomeContractDetailOutput.class);
// 字典翻译
payIncomeContractDetailOutput.setOpening_dictText(sysBaseAPI.translateDict("yn",String.valueOf(payIncomeContract.getOpening())));
payIncomeContractDetailOutput.setAccountStatus_dictText(sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(payIncomeContract.getAccountStatus())));
payIncomeContractDetailOutput.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(payIncomeContract.getPack())));
payIncomeContractDetailOutput.setContractStatus_dictText(sysBaseAPI.translateDict("revenue_contract_status",String.valueOf(payIncomeContract.getStatus())));
if(!CollectionUtils.isEmpty(listPayIncomeContractInstallment)){
payIncomeContractDetailOutput.setListInstallment(listPayIncomeContractInstallment);
}
if(!CollectionUtils.isEmpty(listProject)){
listProject.sort((m1,m2)->m2.getCreateTime().compareToIgnoreCase(m1.getCreateTime()));
listProject.forEach(p->{
if(!StringUtils.isBlank(p.getChargeUse())){
p.setChargeUse_dictText(sysBaseAPI.translateDict("payment_charge_use",p.getChargeUse()));
}
});
payIncomeContractDetailOutput.setListProject(listProject);
}
if(!CollectionUtils.isEmpty(listArchive)){
@@ -380,7 +374,6 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
}
List<Map<String,String>> list = new ArrayList<>();
// excel字段长度
// todo 缺少字典转换
Map<String,Integer> mapCount = new HashMap<>();
mapCount.put("count",0);
if(!CollectionUtils.isEmpty(exportList)){
@@ -392,9 +385,9 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
exportList.forEach(p->{
String str = JSON.toJSONString(p);
Map<String,String> map = JSONObject.parseObject(str,Map.class);
map.put("opening",sysBaseAPI.translateDict("revenue_contract_open",String.valueOf(p.getOpening())));
map.put("opening",sysBaseAPI.translateDict("yn",String.valueOf(p.getOpening())));
map.put("accountStatus",sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(p.getAccountStatus())));
map.put("pack",sysBaseAPI.translateDict("pack_status",String.valueOf(p.getPack())));
map.put("pack",sysBaseAPI.translateDict("yn",String.valueOf(p.getPack())));
List<PayIncomeContractInstallment> listSub = listPayIncomeContractInstallment.stream().filter(item->
Objects.equals(p.getId(),item.getContractId())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listSub)){
@@ -4,6 +4,7 @@ import java.io.Serializable;
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,10 +80,11 @@ public class PayIncomeContract implements Serializable {
@ApiModelProperty(value = "临时签订单位联系人名称")
@Size(max = 50, message = "临时签订单位联系人名称长度不能大于50个字符")
private java.lang.String signedContactsTemporaryName;
/**是否开口(1为是,2为否)*/
@Excel(name = "是否开口(1为是,2为否)", width = 15)
@ApiModelProperty(value = "是否开口(1为是,2为否)")
/**是否开口(1为是,0为否)*/
@Excel(name = "是否开口(1为是,0为否)", width = 15)
@ApiModelProperty(value = "是否开口(1为是,0为否)")
@Max(2)
@Dict(dicCode = "yn")
private java.lang.Integer opening;
/**负责人id*/
@Excel(name = "负责人id", width = 15)
@@ -156,6 +158,7 @@ public class PayIncomeContract implements Serializable {
@Excel(name = "账款状态(1:未支付,2:部分支付,3:已付全款)", width = 15)
@ApiModelProperty(value = "账款状态(1:未支付,2:部分支付,3:已付全款)")
@Max(value = 3,message = "账款状态格式错误")
@Dict(dicCode = "revenue_contract_account_status")
private java.lang.Integer accountStatus;
/**合同约定付款次数*/
@Excel(name = "合同约定付款次数", width = 15)
@@ -164,6 +167,7 @@ public class PayIncomeContract implements Serializable {
/**是否打包(1:是,2:否)*/
@Excel(name = "是否打包(1:是,2:否)", width = 15)
@ApiModelProperty(value = "是否打包(1:是,2:否)")
@Dict(dicCode = "yn")
private java.lang.Integer pack;
/**打包年份*/
@Excel(name = "打包年份", width = 15)
@@ -172,6 +176,7 @@ public class PayIncomeContract implements Serializable {
/**合同状态(1:草稿,2:已通过,3:未通过,4:已归档)*/
@Excel(name = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)", width = 15)
@ApiModelProperty(value = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)")
@Dict(dicCode = "revenue_contract_status")
private java.lang.Integer status;
/**创建人*/
@ApiModelProperty(value = "创建人")
@@ -4,6 +4,7 @@ import java.io.Serializable;
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;
@@ -35,9 +36,10 @@ public class PayIncomeContractAudit implements Serializable {
@Excel(name = "合同id", width = 15)
@ApiModelProperty(value = "合同id")
private java.lang.String contractId;
/**合同状态(2:已通过,3:未通过,4:已归档)*/
@Excel(name = "合同状态(2:已通过,3:未通过,4:已归档)", width = 15)
@ApiModelProperty(value = "合同状态(2:已通过,3:未通过,4:已归档)")
/**合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)*/
@Excel(name = "合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)", width = 15)
@ApiModelProperty(value = "合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)")
@Dict(dicCode = "revenue_contract_status")
private java.lang.Integer contractStatus;
/**拒绝说明*/
@Excel(name = "拒绝说明", width = 15)
@@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.vo.PayIncomeContractOutput;
import com.jero.contract.vo.ProjectOutput;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: pay_income_contract
* @Author: jeecg-boot
@@ -27,4 +30,15 @@ public interface PayIncomeContractMapper extends BaseMapper<PayIncomeContract> {
IPage<PayIncomeContractOutput> queryPageList(Page<PayIncomeContractOutput> page, @Param("payIncomeContract") PayIncomeContract payIncomeContract,
@Param("chargeStatus") String chargeStatus,@Param("projectName") String projectName,
@Param("startTime") String startTime, @Param("endTime") String endTime);
/**
* @Description 关联项目列表
* @Author lqt
* @Date 2021/9/6
* @Param contractId 合同id
* @Return
* @Exception
*/
// todo 缺少会议,会员项目数据
List<ProjectOutput> getAssociated(@Param("contractId") String contractId);
}
@@ -75,4 +75,39 @@
</where>
GROUP BY pic.id ORDER BY pic.create_time desc
</select>
<select id="getAssociated" resultType="com.jero.contract.vo.ProjectOutput">
SELECT * FROM (
SELECT
pcp.id AS projectId,
'1' AS projectType,
pcp.charge_project AS chargeProject,
pcp.charge_use AS chargeUse,
pcp.charge_company_temporary_name AS chargeCompanyName,
pcp.receivable_amount AS receivableAmount,
pcp.paid_amount AS paidAmount,
pcp.principal_name AS principalName,
pcp.contacts_temporary_name AS contactsName,
pica.create_time AS createTime
FROM pay_income_contract_associated pica
JOIN pay_common_project pcp ON pica.project_id = pcp.id
WHERE pica.contract_id = #{contractId}
UNION ALL
SELECT
pwgs.id AS projectId,
'2' AS projectType,
pwg.working_group_project AS chargeProject,
'' AS chargeUse,
pwgs.charge_company_temporary_name AS chargeCompanyName,
pwgs.receivable_amount AS receivableAmount,
pwgs.paid_amount AS paidAmount,
pwg.principal_name_a AS principalName,
pwgs.contacts_temporary_name_one AS contactsName,
pica.create_time AS createTime
FROM pay_income_contract_associated pica
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}
) a
ORDER BY createTime,projectId DESC
</select>
</mapper>
@@ -42,6 +42,15 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
*/
void addPayIncomeContractInput(PayIncomeContractInput input);
/**
* @Description 关联项目列表
* @Author lqt
* @Date 2021/9/6
* @Param contractId 合同id
* @Return
* @Exception
*/
List<ProjectOutput> getAssociated(String contractId);
/**
* @Description 编辑
* @Author lqt
* @Date 2021/9/3
@@ -1,14 +1,12 @@
package com.jero.contract.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.ValidUtil;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.contract.entity.PayIncomeContract;
@@ -20,7 +18,6 @@ import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractAuditService;
import com.jero.contract.service.IPayIncomeContractInstallmentService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.contract.vo.PayIncomeContractAssociatedInput;
import com.jero.contract.vo.PayIncomeContractInput;
import com.jero.contract.vo.PayIncomeContractOutput;
import com.jero.contract.vo.ProjectOutput;
@@ -39,12 +36,14 @@ import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
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;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -148,6 +147,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
// todo 缺少发送消息
}
@Override
public List<ProjectOutput> getAssociated(String contractId) {
return payIncomeContractMapper.getAssociated(contractId);
}
@Override
@Transactional
public void editPayIncomeContractInput(PayIncomeContractInput input) {
@@ -233,6 +237,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
throw new JeroBootException("关联项目不能为空!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<ProjectOutput> listProjectOutput = new ArrayList<>();
listPayIncomeContractAssociated.forEach(p->{
ProjectOutput projectOutput = new ProjectOutput();
@@ -263,8 +268,10 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
// 合同选择打包,运行年份不是打包企业,添加打包企业
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
updatePayCommonProject.eq(PayCommonProject::getPack,PayIncomeContractCommon.PACK1);
updatePayCommonProject.eq(PayCommonProject::getId,p.getProjectId());
updatePayCommonProject.set(PayCommonProject::getPack,PayIncomeContractCommon.PACK1);
updatePayCommonProject.set(PayCommonProject::getUpdateBy,sysUser.getUsername());
updatePayCommonProject.set(PayCommonProject::getUpdateTime,new Date());
payCommonProjectService.update(updatePayCommonProject);
// todo 添加打包企业
}
@@ -290,13 +297,19 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(CollectionUtils.isEmpty(listPayWorkingGroupSubItem)){
throw new JeroBootException("工作组成员单位不存在!");
}
// 验证企业是否正确
if(!Objects.equals(listPayWorkingGroupSubItem.get(0).getChargeCompanyId(),payIncomeContract.getSignedCompanyId())){
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.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK1);
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.get(0).getId());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
// todo 添加打包企业
@@ -325,15 +338,27 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
});
return listProjectOutput;
}
/**
* @Description 验证项目是否被合同关联
* @Author lqt
* @Date 2021/9/6
* @Param contractId 合同id
* @Param projectId 项目id
* @Return
* @Exception
*/
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)){
List<PayIncomeContractAssociated> listNew = list.stream().filter(p->Objects.equals(p.getContractId(),contractId)).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listNew)){
throw new JeroBootException("项目已关联!");
}
throw new JeroBootException("项目已被其他合同关联!");
}
}
@Override
@@ -343,6 +368,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(payIncomeContract)){
throw new JeroBootException("合同不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 查看项目类型
switch (String.valueOf(payIncomeContractAssociated.getProjectType())){
case PayIncomeContractCommon.PROJECT_TYPE1:
@@ -352,10 +378,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(Objects.isNull(payCommonProject)){
throw new JeroBootException("项目不存在!");
}
// 将关联项目取消打包
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1)){
// todo 缺少查询项目是否为打包企业,是:保持不变,不是:取消打包 将关联项目取消打包
if(Objects.equals(payIncomeContract.getPack(),PayIncomeContractCommon.PACK1) ){
LambdaUpdateWrapper<PayCommonProject> updatePayCommonProject = new LambdaUpdateWrapper<>();
updatePayCommonProject.eq(PayCommonProject::getPack,PayIncomeContractCommon.PACK0);
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);
}
@@ -375,9 +403,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
}
// 更新项目id
payIncomeContractAssociated.setProjectId(listPayWorkingGroupSubItem.get(0).getId());
// 将关联项目取消打包
// todo 不是打包企业 取消打包 将关联项目取消打包
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK0);
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateBy,sysUser.getUsername());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getUpdateTime,new Date());
updatePayWorkingGroupSubItem.set(PayWorkingGroupSubItem::getPack,PayIncomeContractCommon.PACK0);
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId,listPayWorkingGroupSubItem.get(0).getId());
payWorkingGroupSubItemService.update(updatePayWorkingGroupSubItem);
break;
@@ -389,11 +419,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
break;
default:break;
}
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
payIncomeContractAssociatedService.removeById(payIncomeContractAssociated.getId());
}
@Override
public void submitAudit(PayIncomeContract payIncomeContract) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
StringBuilder msgPayIncomeContractAudit = ValidUtil.validateAll(payIncomeContract);
if(!StringUtils.isBlank(msgPayIncomeContractAudit)){
throw new JeroBootException(msgPayIncomeContractAudit.toString());
@@ -406,8 +437,10 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
throw new JeroBootException("合同不存在!");
}
LambdaUpdateWrapper<PayIncomeContract> updatePayIncomeContract = new LambdaUpdateWrapper<>();
updatePayIncomeContract.set(PayIncomeContract::getUpdateBy,sysUser.getUsername());
updatePayIncomeContract.set(PayIncomeContract::getUpdateTime,new Date());
updatePayIncomeContract.eq(PayIncomeContract::getId,payIncomeContract.getId());
updatePayIncomeContract.eq(PayIncomeContract::getStatus,PayIncomeContractCommon.STATUS3);
updatePayIncomeContract.set(PayIncomeContract::getStatus,PayIncomeContractCommon.STATUS3);
payIncomeContractService.update(updatePayIncomeContract);
}
@@ -463,8 +496,11 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
&& StringUtils.isBlank(payIncomeContractAudit.getExplainRemarks())){
throw new JeroBootException("请输入拒绝说明!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaUpdateWrapper<PayIncomeContract> update = new LambdaUpdateWrapper();
update.eq(PayIncomeContract::getId,payIncomeContractAudit.getContractId());
update.set(PayIncomeContract::getUpdateBy,sysUser.getUsername());
update.set(PayIncomeContract::getUpdateTime,new Date());
update.set(PayIncomeContract::getId,payIncomeContractAudit.getContractId());
update.eq(PayIncomeContract::getStatus, payIncomeContractAudit.getContractStatus());
payIncomeContractService.update(update);
// 添加审核记录
@@ -482,9 +518,12 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(!Objects.equals(payIncomeContractStatus.getStatus(),PayIncomeContractCommon.STATUS3)){
throw new JeroBootException("收入合同不可归档!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaUpdateWrapper<PayIncomeContract> update = new LambdaUpdateWrapper();
update.set(PayIncomeContract::getUpdateBy,sysUser.getUsername());
update.set(PayIncomeContract::getUpdateTime,new Date());
update.eq(PayIncomeContract::getId,id);
update.eq(PayIncomeContract::getStatus, PayIncomeContractCommon.STATUS5);
update.set(PayIncomeContract::getStatus, PayIncomeContractCommon.STATUS5);
payIncomeContractService.update(update);
// 添加归档记录
PayIncomeContractAudit payIncomeContractAudit = new PayIncomeContractAudit();
@@ -0,0 +1,14 @@
package com.jero.contract.vo;
import com.jero.contract.entity.PayIncomeContractAudit;
import lombok.Data;
import java.io.Serializable;
@Data
public class PayIncomeContractAuditOutput extends PayIncomeContractAudit implements Serializable {
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
*/
private String contractStatus_dictText;
}
@@ -11,6 +11,23 @@ import java.util.List;
@Data
public class PayIncomeContractDetailOutput extends PayIncomeContract implements Serializable {
/**
* 是否开口(1为是,0为否)
*/
private String opening_dictText;
/**
* 账款状态(1:未支付,2:部分支付,3:已付全款)
*/
private String accountStatus_dictText;
/**
* 是否打包(1:是,2:否)
*/
private String pack_dictText;
/**
* 合同状态(1:草稿,2:已通过,3:未通过,4:已归档)
*/
private String contractStatus_dictText;
/**
* 分期记录
*/
@@ -25,10 +42,10 @@ public class PayIncomeContractDetailOutput extends PayIncomeContract implements
* 归档记录
*/
@ApiModelProperty(value = "归档记录")
private List<PayIncomeContractAudit> listArchive;
private List<PayIncomeContractAuditOutput> listArchive;
/**
* 审核记录
*/
@ApiModelProperty(value = "审核记录")
private List<PayIncomeContractAudit> listAudit;
private List<PayIncomeContractAuditOutput> listAudit;
}
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@ApiModel(value="关联项目", description="关联项目")
@@ -30,6 +31,11 @@ public class ProjectOutput implements Serializable {
*/
@ApiModelProperty(value = "来款用途")
private String chargeUse;
/**
* 来款用途
*/
@ApiModelProperty(value = "来款用途")
private String chargeUse_dictText;
/**
* 来款单位
*/
@@ -59,5 +65,5 @@ public class ProjectOutput implements Serializable {
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private String createTime;
private Date createTime;
}