合同管理-去掉审核流程,添加作废功能

This commit is contained in:
liangqitao
2021-12-14 17:35:32 +08:00
parent eb660dc66c
commit 78d7daf257
13 changed files with 395 additions and 43 deletions
@@ -27,7 +27,12 @@ public enum CompanyMessageEnums {
MSG13("QY_13_HYTZ_FBW_CREATE","会议通知","meetingName,busId"),//点击跳转到报名页面,meetingName,busId
MSG14("QY_14_JFTZ_DZ_CREATE","缴费通知","projectName,amount"),//弹窗:查看该项目详情,projectName,amount
MSG15("QY_15_KPTZ_KP_CREATE","开票通知","projectName"),//弹窗:查看该项目详情,projectName
MSG16("QY_16_HYTZ_NOT_AUDIT_CREATE","会议通知","");//弹窗:查看该会议详情
MSG16("QY_16_HYTZ_NOT_AUDIT_CREATE","会议通知",""),//弹窗:查看该会议详情
MSG17("QY_17_JFTZ_UPLOAD_VOUCHER","缴费通知","projectName"),//进入缴费凭证的页面 projectName
MSG18("QY_18_JFTZ_VOUCHER_CHECK","缴费通知","projectName"),//进入缴费凭证的页面 projectName
MSG19("QY_19_HYTZ_CANCELLATION","合同通知","contractNum,contractName"),//合同列表页 contractNum,contractName
MSG20("QY_20_HYTZ_NOT_AUDIT_CREATE","项目通知","projectName,"),//项目详情页/弹框 projectName
MSG21("QY_21_HYTZ_NOT_AUDIT_CREATE","合同通知","contractNum,contractName");//合同列表页 contractNum,contractName 对应原型的序号19
@@ -24,7 +24,9 @@ public enum ManagementMessageEnums {
MSG11("GL_11_DZTZ_DZ_CREATE","到账通知","projectName,time,amount"),//查看该项目详情, projectName,time,amount
MSG12("GL_12_KPTZ_KP_CREATE","开票通知","projectName,time,amount,num"),//查看该项目详情,projectName,time,amount,num
MSG13("GL_13_YJTZ_PJ_CREATE","邮寄通知","projectName"),//查看该项目详情, projectName
MSG14("GL_14_YJTZ_HT_CREATE","邮寄通知","contractName,contractNum");//跳转到合同的详情页面, contractNum,contractName
MSG14("GL_14_YJTZ_HT_CREATE","邮寄通知","contractName,contractNum"),//跳转到合同的详情页面, contractNum,contractName
MSG15("GL_15_XMTZ_UPLOAD_VOUCHER","项目通知","projectName"),//审核弹窗 projectName
MSG16("GL_16_HTTZ_HT_CANCELLATION","合同通知","contractNum,contractName");//合同详情页面
private String code;
@@ -26,6 +26,8 @@ public enum MessageUrlEnums {
M_OPEN_TYPE12("M_OPEN_TYPE12","component","@comp/ProjectDetailModal"),
M_OPEN_TYPE13("M_OPEN_TYPE13","component","@comp/ProjectDetailModal"),
M_OPEN_TYPE14("M_OPEN_TYPE14","url","/contractManagement/RevenueContractDetail"),
M_OPEN_TYPE15("M_OPEN_TYPE15","component",""),
M_OPEN_TYPE16("M_OPEN_TYPE16","url","/contractManagement/RevenueContractDetail"),
// todo 待定企业端
C_OPEN_TYPE1("C_OPEN_TYPE1","href",""),
C_OPEN_TYPE2("C_OPEN_TYPE2","component","MessagePage/MeetingDetailModal"),
@@ -42,7 +44,12 @@ public enum MessageUrlEnums {
C_OPEN_TYPE13("C_OPEN_TYPE13","href",""),
C_OPEN_TYPE14("C_OPEN_TYPE14","component","MessagePage/ProjectDetailModal"),
C_OPEN_TYPE15("C_OPEN_TYPE15","component","MessagePage/ProjectDetailModal"),
C_OPEN_TYPE16("C_OPEN_TYPE16","component","MessagePage/ProjectDetailModal");
C_OPEN_TYPE16("C_OPEN_TYPE16","component","MessagePage/ProjectDetailModal"),
C_OPEN_TYPE17("C_OPEN_TYPE17","url",""),
C_OPEN_TYPE18("C_OPEN_TYPE18","url",""),
C_OPEN_TYPE19("C_OPEN_TYPE19","url","/mineContract/MineContract"),
C_OPEN_TYPE20("C_OPEN_TYPE20","",""),
C_OPEN_TYPE21("C_OPEN_TYPE21","url","/mineContract/MineContract");
/**
@@ -8,25 +8,29 @@ import java.util.List;
public class PayIncomeContractCommon {
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档,6:已作废)
*/
public final static Integer STATUS1 = 1;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档,6:已作废)
*/
public final static Integer STATUS2 = 2;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档,6:已作废)
*/
public final static Integer STATUS3 = 3;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档,6:已作废)
*/
public final static Integer STATUS4 = 4;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档)
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档,6:已作废)
*/
public final static Integer STATUS5 = 5;
/**
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已存档,6:已作废)
*/
public final static Integer STATUS6 = 6;
/**
* 是否打包(1:是,0:否)
*/
@@ -0,0 +1,37 @@
package com.jero.contract.controller;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.contract.entity.PayIncomeContractAssociatedCancellation;
import com.jero.contract.service.IPayIncomeContractAssociatedCancellationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* @Description: pay_income_contract_associated_cancellation
* @Author: jeecg-boot
* @Date: 2021-12-14
* @Version: V1.0
*/
@Api(tags="pay_income_contract_associated_cancellation")
@RestController
@RequestMapping("/contract/payIncomeContractAssociatedCancellation")
@Slf4j
public class PayIncomeContractAssociatedCancellationController extends JeroController<PayIncomeContractAssociatedCancellation, IPayIncomeContractAssociatedCancellationService> {
@Autowired
private IPayIncomeContractAssociatedCancellationService payIncomeContractAssociatedCancellationService;
}
@@ -16,14 +16,8 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.oConvertUtils;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.entity.PayIncomeContractAudit;
import com.jero.contract.entity.PayIncomeContractInstallment;
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.entity.*;
import com.jero.contract.service.*;
import com.jero.contract.vo.*;
import com.jero.mail.entity.PayMailContract;
import com.jero.mail.service.IPayMailContractService;
@@ -79,6 +73,8 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
private IPayMailContractService payMailContractService;
@Resource
private ISysUserService sysUserService;
@Resource
private IPayIncomeContractAssociatedCancellationService payIncomeContractAssociatedCancellationService;
/**
* 分页列表查询
@@ -335,20 +331,20 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
}
/**
* 提交审核
* 提交
*
* @param payIncomeContract 收入合同
*/
@AutoLog(value = "收入合同-提交审核",operateType = 3)
@ApiOperation(value="收入合同-提交审核", notes="收入合同-提交审核")
@AutoLog(value = "收入合同-提交",operateType = 3)
@ApiOperation(value="收入合同-提交", notes="收入合同-提交")
@PostMapping(value = "/submitAudit")
public Result<?> submitAudit(@RequestBody PayIncomeContract payIncomeContract) {
payIncomeContractService.submitAudit(payIncomeContract);
return Result.OK("提交审核成功!");
return Result.OK("提交成功!");
}
/**
* 审核
* 审核(已废弃)
*
* @param payIncomeContractAudit 审核记录
*/
@@ -364,6 +360,23 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
return Result.OK("审核成功!");
}
/**
* 已作废
*
* @param payIncomeContractAudit 审核记录
*/
@AutoLog(value = "收入合同-已作废",operateType = 7)
// @RequiresPermissions("revenueContract:aduit")
@ApiOperation(value="收入合同-已作废", notes="收入合同-已作废")
@PostMapping(value = "/cancellation")
public Result<?> cancellation(@RequestBody PayIncomeContractAudit payIncomeContractAudit) {
if(StringUtils.isBlank(payIncomeContractAudit.getContractId())){
return Result.error("id不能为空!");
}
payIncomeContractService.cancellation(payIncomeContractAudit);
return Result.OK("操作成功!");
}
/**
* 归档
*
@@ -440,8 +453,25 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
}
String str = JSON.toJSONString(payIncomeContract);
PayIncomeContractDetailOutput payIncomeContractDetailOutput = JSONObject.parseObject(str,PayIncomeContractDetailOutput.class);
List<ProjectOutput> listProject = new ArrayList<>();
// 获取关联项目id
List<ProjectOutput> listProject = payIncomeContractService.getAssociated(id);
if(Objects.equals(payIncomeContract.getStatus(),PayIncomeContractCommon.STATUS6)){
LambdaQueryWrapper<PayIncomeContractAssociatedCancellation> queryPayIncomeContractAssociatedCancellation = new LambdaQueryWrapper();
queryPayIncomeContractAssociatedCancellation.eq(PayIncomeContractAssociatedCancellation::getContractId,payIncomeContract.getId());
List<PayIncomeContractAssociatedCancellation> listPayIncomeContractAssociatedCancellation = payIncomeContractAssociatedCancellationService.list(queryPayIncomeContractAssociatedCancellation);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociatedCancellation)){
List<ProjectOutput> finalListProject = listProject;
listPayIncomeContractAssociatedCancellation.forEach(p->{
String s = JSON.toJSONString(p);
ProjectOutput projectOutput = JSONObject.parseObject(s,ProjectOutput.class);
projectOutput.setId(p.getAssociatedId());
finalListProject.add(projectOutput);
});
}
}else{
listProject = payIncomeContractService.getAssociated(id);
}
LambdaQueryWrapper<PayMailContract> queryPayMailContract = new LambdaQueryWrapper<>();
queryPayMailContract.eq(PayMailContract::getContractId,id);
queryPayMailContract.eq(PayMailContract::getPostStatus,PayIncomeContractCommon.POST_STATUS1);
@@ -520,7 +550,24 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
List<PayIncomeContractInstallment> listPayIncomeContractInstallment = payIncomeContractInstallmentService.list(queryPayIncomeContractInstallment);
// 获取关联项目id
List<ProjectOutput> listProject = payIncomeContractService.getAssociated(id);
List<ProjectOutput> listProject = new ArrayList<>();
// 获取关联项目id
if(Objects.equals(payIncomeContract.getStatus(),PayIncomeContractCommon.STATUS6)){
LambdaQueryWrapper<PayIncomeContractAssociatedCancellation> queryPayIncomeContractAssociatedCancellation = new LambdaQueryWrapper();
queryPayIncomeContractAssociatedCancellation.eq(PayIncomeContractAssociatedCancellation::getContractId,payIncomeContract.getId());
List<PayIncomeContractAssociatedCancellation> listPayIncomeContractAssociatedCancellation = payIncomeContractAssociatedCancellationService.list(queryPayIncomeContractAssociatedCancellation);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociatedCancellation)){
List<ProjectOutput> finalListProject = listProject;
listPayIncomeContractAssociatedCancellation.forEach(p->{
String s = JSON.toJSONString(p);
ProjectOutput projectOutput = JSONObject.parseObject(s,ProjectOutput.class);
projectOutput.setId(p.getAssociatedId());
finalListProject.add(projectOutput);
});
}
}else{
listProject = payIncomeContractService.getAssociated(id);
}
LambdaQueryWrapper<PayIncomeContractAudit> queryPayIncomeContractAudit = new LambdaQueryWrapper<>();
queryPayIncomeContractAudit.in(PayIncomeContractAudit::getContractId,id);
@@ -0,0 +1,93 @@
package com.jero.contract.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: pay_income_contract_associated_cancellation
* @Author: jeecg-boot
* @Date: 2021-12-14
* @Version: V1.0
*/
@Data
@TableName("pay_income_contract_associated_cancellation")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="pay_income_contract_associated_cancellation对象", description="pay_income_contract_associated_cancellation")
public class PayIncomeContractAssociatedCancellation implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**关联id*/
@ApiModelProperty(value = "关联id")
private java.lang.String associatedId;
/**合同id*/
@Excel(name = "合同id", width = 15)
@ApiModelProperty(value = "合同id")
private java.lang.String contractId;
/**项目id*/
@Excel(name = "项目id", width = 15)
@ApiModelProperty(value = "项目id")
private java.lang.String projectId;
/**项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)*/
@Excel(name = "项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)", width = 15)
@ApiModelProperty(value = "项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)")
private java.lang.Integer projectType;
/**来款项目*/
@Excel(name = "来款项目", width = 15)
@ApiModelProperty(value = "来款项目")
private java.lang.String chargeProject;
/**来款用途*/
@Excel(name = "来款用途", width = 15)
@ApiModelProperty(value = "来款用途")
private java.lang.String chargeUse;
/**来款单位*/
@Excel(name = "来款单位", width = 15)
@ApiModelProperty(value = "来款单位")
private java.lang.String chargeCompanyName;
/**应收金额(元)*/
@Excel(name = "应收金额(元)", width = 15)
@ApiModelProperty(value = "应收金额(元)")
private java.math.BigDecimal receivableAmount;
/**实收金额(元)*/
@Excel(name = "实收金额(元)", width = 15)
@ApiModelProperty(value = "实收金额(元)")
private java.math.BigDecimal paidAmount;
/**负责人名称*/
@Excel(name = "负责人名称", width = 15)
@ApiModelProperty(value = "负责人名称")
private java.lang.String principalName;
/**企业联系人*/
@Excel(name = "企业联系人", width = 15)
@ApiModelProperty(value = "企业联系人")
private java.lang.String contactsName;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private java.util.Date updateTime;
}
@@ -0,0 +1,15 @@
package com.jero.contract.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.contract.entity.PayIncomeContractAssociatedCancellation;
/**
* @Description: pay_income_contract_associated_cancellation
* @Author: jeecg-boot
* @Date: 2021-12-14
* @Version: V1.0
*/
public interface PayIncomeContractAssociatedCancellationMapper extends BaseMapper<PayIncomeContractAssociatedCancellation> {
}
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.contract.mapper.PayIncomeContractAssociatedCancellationMapper">
</mapper>
@@ -0,0 +1,15 @@
package com.jero.contract.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.contract.entity.PayIncomeContractAssociatedCancellation;
/**
* @Description: pay_income_contract_associated_cancellation
* @Author: jeecg-boot
* @Date: 2021-12-14
* @Version: V1.0
*/
public interface IPayIncomeContractAssociatedCancellationService extends IService<PayIncomeContractAssociatedCancellation> {
}
@@ -105,6 +105,17 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
* @Exception
*/
void updateAudit(PayIncomeContractAudit payIncomeContractAudit);
/**
* @Description 已作废
* @Author lqt
* @Date 2021/9/5
* @Param payIncomeContractAudit 审核记录
* @Return
* @Exception
*/
void cancellation(PayIncomeContractAudit payIncomeContractAudit);
/**
* @Description 归档
* @Author lqt
@@ -0,0 +1,19 @@
package com.jero.contract.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.contract.entity.PayIncomeContractAssociatedCancellation;
import com.jero.contract.mapper.PayIncomeContractAssociatedCancellationMapper;
import com.jero.contract.service.IPayIncomeContractAssociatedCancellationService;
import org.springframework.stereotype.Service;
/**
* @Description: pay_income_contract_associated_cancellation
* @Author: jeecg-boot
* @Date: 2021-12-14
* @Version: V1.0
*/
@Service
public class PayIncomeContractAssociatedCancellationServiceImpl extends ServiceImpl<PayIncomeContractAssociatedCancellationMapper, PayIncomeContractAssociatedCancellation> implements IPayIncomeContractAssociatedCancellationService {
}
@@ -1,5 +1,7 @@
package com.jero.contract.service.impl;
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.update.LambdaUpdateWrapper;
@@ -8,22 +10,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.common.RoleCommon;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.entity.PayIncomeContractAudit;
import com.jero.contract.entity.PayIncomeContractInstallment;
import com.jero.contract.entity.*;
import com.jero.contract.mapper.PayIncomeContractMapper;
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.service.*;
import com.jero.contract.vo.PayIncomeContractInput;
import com.jero.contract.vo.ProjectOutput;
import com.jero.mail.entity.PayMailContract;
@@ -46,7 +44,6 @@ import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.common.PackCommon;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
@@ -118,6 +115,10 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
private IPayMeetingService payMeetingService;
@Resource
private IPayMailContractService payMailContractService;
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayIncomeContractAssociatedCancellationService payIncomeContractAssociatedCancellationService;
@Override
public IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) {
@@ -765,25 +766,35 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
}
PayIncomeContract payIncomeContractNew = payIncomeContractService.getById(payIncomeContract.getId());
if(Objects.isNull(payIncomeContractNew)){
throw new JeroBootException("合同不存在!");
throw new JeroBootException("收入合同不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(!sysUser.getRoleCode().contains(RoleCommon.CWRY) && !Objects.equals(sysUser.getId(),payIncomeContractNew.getPrincipalId())){
throw new JeroBootException("数据权限不足!");
}
// 验证合同状态是否为草稿或者未通过
if(!Objects.equals(payIncomeContract.getStatus(),PayIncomeContractCommon.STATUS2)
|| (!Objects.equals(payIncomeContractNew.getStatus(),PayIncomeContractCommon.STATUS1)
&& !Objects.equals(payIncomeContractNew.getStatus(),PayIncomeContractCommon.STATUS4))){
throw new JeroBootException("收入合同审核状态不正确!");
// 验证合同状态是否为草稿
if(!Objects.equals(payIncomeContractNew.getStatus(),PayIncomeContractCommon.STATUS1)){
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.set(PayIncomeContract::getStatus,PayIncomeContractCommon.STATUS2);
updatePayIncomeContract.set(PayIncomeContract::getStatus,PayIncomeContractCommon.STATUS3);
payIncomeContractService.update(updatePayIncomeContract);
// 获取项目负责人,发送消息
// 更新到合同邮寄表
PayMailContract payMailContract = new PayMailContract();
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(payIncomeContractNew.getSignedContactsTemporaryId());
if(!Objects.isNull(payContactsManagementTemporary)){
payMailContract.setMobile(payContactsManagementTemporary.getPhone());
payMailContract.setEmail(payContactsManagementTemporary.getEmail());
}
payMailContract.setContractId(payIncomeContractNew.getId());
payMailContract.setPostStatus(PayIncomeContractCommon.POST_STATUS0);
payMailContract.setLiaisonMan(payIncomeContractNew.getContractName());
payMailContractService.save(payMailContract);
// 获取财务人员,发送消息
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY));
if(!CollectionUtils.isEmpty(list)){
list.forEach(p->{
@@ -792,7 +803,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
if(!StringUtils.isBlank(p.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail()));
}
if(!StringUtils.isEmpty(p.getPhone())){
if(!StringUtils.isBlank(p.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(p.getPhone()));
}
HashMap<String,String> map = new HashMap<>();
@@ -800,9 +811,9 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
map.put("contractName",payIncomeContractNew.getContractName());
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setToUser(p.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG2.getCode());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG3.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("M_OPEN_TYPE2");
sendMessageDTO.setBusType("M_OPEN_TYPE3");
JSONObject json = new JSONObject();
json.put("revenueId",payIncomeContractNew.getId());
json.put("contractNum",payIncomeContractNew.getContractNum());
@@ -992,6 +1003,87 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
}
@Override
@Transactional
public void cancellation(PayIncomeContractAudit payIncomeContractAudit) {
PayIncomeContract payIncomeContractStatus = payIncomeContractService.getById(payIncomeContractAudit.getContractId());
if(Objects.isNull(payIncomeContractStatus)){
throw new JeroBootException("收入合同不存在!");
}
if(Objects.equals(payIncomeContractStatus.getStatus(),PayIncomeContractCommon.STATUS6)){
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,payIncomeContractAudit.getContractId());
update.set(PayIncomeContract::getStatus, PayIncomeContractCommon.STATUS6);
payIncomeContractService.update(update);
// 获取关联项目id
List<ProjectOutput> listProject = payIncomeContractService.getAssociated(payIncomeContractAudit.getContractId());
if(!CollectionUtils.isEmpty(listProject)){
List<PayIncomeContractAssociatedCancellation> list = new ArrayList<>();
listProject.forEach(p->{
String str = JSON.toJSONString(p);
PayIncomeContractAssociatedCancellation payIncomeContractAssociatedCancellation = JSONObject.parseObject(str,PayIncomeContractAssociatedCancellation.class);
payIncomeContractAssociatedCancellation.setId(null);
payIncomeContractAssociatedCancellation.setAssociatedId(p.getId());
list.add(payIncomeContractAssociatedCancellation);
});
payIncomeContractAssociatedCancellationService.saveBatch(list);
}
// 发生送消息给 合同负责人;合同企业联系人
// 合同负责人
SysUser sysUserData = sysUserService.getById(payIncomeContractStatus.getPrincipalId());
if(!Objects.isNull(sysUserData)){
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(sysUserData.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(sysUserData.getEmail()));
}
if(!StringUtils.isEmpty(sysUserData.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(sysUserData.getPhone()));
}
HashMap<String,String> map = new HashMap<>();
map.put("contractNum",payIncomeContractStatus.getContractNum());
map.put("contractName",payIncomeContractStatus.getContractName());
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setToUser(sysUserData.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG16.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("M_OPEN_TYPE16");
JSONObject json = new JSONObject();
json.put("revenueId",payIncomeContractStatus.getId());
json.put("contractNum",payIncomeContractStatus.getContractNum());
json.put("contractType",PayIncomeContractCommon.CONTRACT_TYPE);
sendMessageDTO.setBusId(json.toJSONString());
sendMessageService.SendMessageService(sendMessageDTO);
}
// 合同企业联系人
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(payIncomeContractStatus.getSignedContactsTemporaryId());
if(!Objects.isNull(payContactsManagementTemporary)){
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!StringUtils.isBlank(payContactsManagementTemporary.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(payContactsManagementTemporary.getEmail()));
}
if(!StringUtils.isEmpty(payContactsManagementTemporary.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
sendMessageDTO.setToUser(PasswordUtil.decrypt(payContactsManagementTemporary.getPhone()));
}
HashMap<String,String> map = new HashMap<>();
map.put("contractNum",payIncomeContractStatus.getContractNum());
map.put("contractName",payIncomeContractStatus.getContractName());
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG19.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("C_OPEN_TYPE19");
sendMessageService.SendMessageService(sendMessageDTO);
}
}
@Override
@Transactional
public void updateArchive(PayIncomeContractAudit payIncomeContractAudit) {