支出合同变更修改
This commit is contained in:
+1
-1
@@ -80,7 +80,7 @@ public class PayIncomeContractCommon {
|
||||
*/
|
||||
public final static List<String> LIST_SPENDING_CONTRACT = Arrays.asList("合同编号","合同名称","签订单位","签订联系人","是否开口","负责人",
|
||||
"部门名称","签订合同总金额","税率","未税金额","合同签订日期","合同终止日期","合同约定主要时点",
|
||||
"应付金额","已付金额","未付金额","账款状态","合同约定付款次数","是否打包","打包年份");
|
||||
"应付金额","已付金额","未付金额","账款状态","合同约定付款次数");
|
||||
/**
|
||||
* 支出合同分期信息excel 表头
|
||||
*/
|
||||
|
||||
+80
-17
@@ -9,9 +9,9 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
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;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.api.vo.Result;
|
||||
@@ -20,12 +20,12 @@ import com.jero.common.common.RoleCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
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.DateUtils;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
import com.jero.contract.entity.*;
|
||||
import com.jero.contract.service.IPaySpendingContractAuditService;
|
||||
import com.jero.contract.service.IPaySpendingContractInstallmentService;
|
||||
import com.jero.contract.service.IPaySpendingContractService;
|
||||
import com.jero.contract.vo.*;
|
||||
@@ -39,9 +39,7 @@ import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||
import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
|
||||
import org.jeecgframework.poi.excel.view.JeecgMapExcelView;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -63,6 +61,8 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
|
||||
@Resource
|
||||
private IPaySpendingContractInstallmentService paySpendingContractInstallmentService;
|
||||
@Resource
|
||||
private IPaySpendingContractAuditService paySpendingContractAuditService;
|
||||
@Resource
|
||||
private Environment env;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@@ -85,6 +85,7 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
@RequestParam(name="startTime",required = false) String startTime,
|
||||
@RequestParam(name="endTime",required = false) String endTime,
|
||||
@RequestParam(name="chargeStatus",required = false) String chargeStatus,
|
||||
HttpServletRequest req) {
|
||||
if(!StringUtils.isBlank(paySpendingContract.getContractNum()) && paySpendingContract.getContractNum().length() > 50){
|
||||
return Result.error("合同编号长度不能大于50个字符!");
|
||||
@@ -98,8 +99,12 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
|
||||
if(!StringUtils.isBlank(paySpendingContract.getContractNum())){
|
||||
paySpendingContract.setContractNum(oConvertUtils.replaceAllPercent(paySpendingContract.getContractNum()));
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(!sysUser.getRoleCode().contains(RoleCommon.CWRY)){
|
||||
paySpendingContract.setPrincipalId(sysUser.getId());
|
||||
}
|
||||
Page<PaySpendingContract> page = new Page<>(pageNo, pageSize);
|
||||
IPage<PaySpendingContract> pageList = paySpendingContractService.queryPageList(page, paySpendingContract,startTime,endTime);
|
||||
IPage<PaySpendingContract> pageList = paySpendingContractService.queryPageList(page, paySpendingContract,startTime,endTime,chargeStatus);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
@@ -157,6 +162,40 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
|
||||
}
|
||||
return Result.error("合同编号不存在!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 审核
|
||||
*
|
||||
* @param paySpendingContractAudit 审核记录
|
||||
*/
|
||||
@AutoLog(value = "收入合同-合同审核",operateType = 7)
|
||||
@RequiresPermissions("revenueContract:aduit")
|
||||
@ApiOperation(value="收入合同-审核", notes="收入合同-审核")
|
||||
@PostMapping(value = "/audit")
|
||||
public Result<?> audit(@RequestBody PaySpendingContractAudit paySpendingContractAudit) {
|
||||
if(StringUtils.isBlank(paySpendingContractAudit.getContractId())){
|
||||
return Result.error("id不能为空!");
|
||||
}
|
||||
paySpendingContractService.updateAudit(paySpendingContractAudit);
|
||||
return Result.OK("审核成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 归档
|
||||
*
|
||||
* @param paySpendingContractAudit 审核记录
|
||||
*/
|
||||
@AutoLog(value = "收入合同-归档",operateType = 8)
|
||||
@RequiresPermissions("revenueContract:archive")
|
||||
@ApiOperation(value="收入合同-归档", notes="收入合同-归档")
|
||||
@PostMapping(value = "/archive")
|
||||
public Result<?> archive(@RequestBody PaySpendingContractAudit paySpendingContractAudit) {
|
||||
if(StringUtils.isBlank(paySpendingContractAudit.getContractId())){
|
||||
return Result.error("id不能为空!");
|
||||
}
|
||||
paySpendingContractService.updateArchive(paySpendingContractAudit);
|
||||
return Result.OK("归档成功!");
|
||||
}
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
@@ -220,14 +259,40 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
|
||||
queryPaySpendingContractInstallment.eq(PaySpendingContractInstallment::getContractId,paySpendingContract.getId());
|
||||
List<PaySpendingContractInstallment> listPaySpendingContractInstallment = paySpendingContractInstallmentService.list(queryPaySpendingContractInstallment);
|
||||
String str = JSON.toJSONString(paySpendingContract);
|
||||
|
||||
PaySpendingContractDetailOutput paySpendingContractDetailOutput = JSONObject.parseObject(str,PaySpendingContractDetailOutput.class);
|
||||
// 字典翻译
|
||||
paySpendingContractDetailOutput.setOpening_dictText(sysBaseAPI.translateDict("yn",String.valueOf(paySpendingContract.getOpening())));
|
||||
paySpendingContractDetailOutput.setAccountStatus_dictText(sysBaseAPI.translateDict("revenue_contract_account_status",String.valueOf(paySpendingContract.getAccountStatus())));
|
||||
paySpendingContractDetailOutput.setPack_dictText(sysBaseAPI.translateDict("yn",String.valueOf(paySpendingContract.getPack())));
|
||||
paySpendingContractDetailOutput.setContractStatus_dictText(sysBaseAPI.translateDict("revenue_contract_status",String.valueOf(paySpendingContract.getStatus())));
|
||||
if(!CollectionUtils.isEmpty(listPaySpendingContractInstallment)){
|
||||
paySpendingContractDetailOutput.setListInstallment(listPaySpendingContractInstallment);
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<PaySpendingContractAudit> queryPaySpendingContractAudit = new LambdaQueryWrapper<>();
|
||||
queryPaySpendingContractAudit.in(PaySpendingContractAudit::getContractId,id);
|
||||
List<PaySpendingContractAudit> listPaySpendingContractAudit = paySpendingContractAuditService.list(queryPaySpendingContractAudit);
|
||||
List<PaySpendingContractAuditOutput> listArchive = new ArrayList<>();
|
||||
List<PaySpendingContractAuditOutput> listAudit = new ArrayList<>();
|
||||
if(!CollectionUtils.isEmpty(listPaySpendingContractAudit)){
|
||||
String strAudit = JSON.toJSONString(listPaySpendingContractAudit);
|
||||
List<PaySpendingContractAuditOutput> listAll = JSONArray.parseArray(strAudit,PaySpendingContractAuditOutput.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());
|
||||
}
|
||||
|
||||
if(!CollectionUtils.isEmpty(listArchive)){
|
||||
paySpendingContractDetailOutput.setListArchive(listArchive);
|
||||
}
|
||||
if(!CollectionUtils.isEmpty(listAudit)){
|
||||
paySpendingContractDetailOutput.setListAudit(listAudit);
|
||||
}
|
||||
return Result.OK(paySpendingContractDetailOutput);
|
||||
}
|
||||
|
||||
@@ -325,26 +390,24 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
|
||||
filedsList.add(new ExcelExportEntity("合同签订日期", "contractDate"));
|
||||
filedsList.add(new ExcelExportEntity("合同终止日期", "terminationDate"));
|
||||
filedsList.add(new ExcelExportEntity("合同约定主要时点", "contractTimePoints"));
|
||||
filedsList.add(new ExcelExportEntity("应收金额", "accountsReceivableAmount"));
|
||||
filedsList.add(new ExcelExportEntity("已收金额", "amountReceived"));
|
||||
filedsList.add(new ExcelExportEntity("未收金额", "outstandingAmount"));
|
||||
filedsList.add(new ExcelExportEntity("应付金额", "accountsReceivableAmount"));
|
||||
filedsList.add(new ExcelExportEntity("已付金额", "amountReceived"));
|
||||
filedsList.add(new ExcelExportEntity("未付金额", "outstandingAmount"));
|
||||
filedsList.add(new ExcelExportEntity("账款状态", "accountStatus"));
|
||||
filedsList.add(new ExcelExportEntity("合同约定付款次数", "contractPaymentTimes"));
|
||||
filedsList.add(new ExcelExportEntity("是否打包", "pack"));
|
||||
filedsList.add(new ExcelExportEntity("打包年份", "packYear"));
|
||||
int count = mapCount.get("count");
|
||||
if(count > 0){
|
||||
for (int i = 1; i <= count; i++){
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段", "phaseName" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段应收", "accountsReceivableAmount" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段应收时间", "accountsReceivableTime" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段实收", "paidAmount" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段实收时间", "paidTime" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段应付", "accountsReceivableAmount" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段应付时间", "accountsReceivableTime" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段实付", "paidAmount" + i));
|
||||
filedsList.add(new ExcelExportEntity(i + "阶段实付时间", "paidTime" + i));
|
||||
}
|
||||
}
|
||||
// Step.3 AutoPoi 导出Excel
|
||||
ModelAndView mv = new ModelAndView(new JeecgMapExcelView());
|
||||
mv.addObject(MapExcelConstants.FILE_NAME, "收入合同"); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
mv.addObject(MapExcelConstants.FILE_NAME, "支出合同"); //此处设置的filename无效 ,前端会重更新设置一下
|
||||
mv.addObject(MapExcelConstants.ENTITY_LIST, filedsList);
|
||||
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
|
||||
ExportParams exportParams=new ExportParams("支出合同", "支出合同");
|
||||
|
||||
+5
-4
@@ -164,16 +164,17 @@ public class PaySpendingContract implements Serializable {
|
||||
@ApiModelProperty(value = "合同约定付款次数")
|
||||
private String contractPaymentTimes;
|
||||
/**是否打包(1:是,0:否)*/
|
||||
@Excel(name = "是否打包(1:是,0:否)", width = 15)
|
||||
@ApiModelProperty(value = "是否打包(1:是,0:否)")
|
||||
@NotNull(message = "是否打包不能为空")
|
||||
@Dict(dicCode = "yn")
|
||||
private Integer pack;
|
||||
/**打包年份*/
|
||||
@Excel(name = "打包年份", width = 15)
|
||||
@ApiModelProperty(value = "打包年份")
|
||||
@Pattern(regexp = "^\\d{4}$",message = "打包年份式错误")
|
||||
private String packYear;
|
||||
/**合同状态(2:已通过,3:未通过,4:已归档)*/
|
||||
@Excel(name = "合同状态(2:已通过,3:未通过,4:已存档)", width = 15)
|
||||
@ApiModelProperty(value = "合同状态(2:已通过,3:未通过,4:已存档)")
|
||||
@Dict(dicCode = "expenditure_contract_status")
|
||||
private java.lang.Integer status;
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
package com.jero.contract.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import javax.validation.constraints.Max;
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: pay_spending_contract_audit
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-03
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
@TableName("pay_spending_contract_audit")
|
||||
@Accessors(chain = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@ApiModel(value="pay_spending_contract_audit对象", description="pay_spending_contract_audit")
|
||||
public class PaySpendingContractAudit implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**主键*/
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@ApiModelProperty(value = "主键")
|
||||
private String id;
|
||||
/**合同id*/
|
||||
@Excel(name = "合同id", width = 15)
|
||||
@ApiModelProperty(value = "合同id")
|
||||
@Size(max = 32, message = "合同id长度不能大于32个字符")
|
||||
private String contractId;
|
||||
/**合同状态(2:待审核,3:已通过,4:未通过,5:已归档)*/
|
||||
@Excel(name = "合同状态(2:待审核,3:已通过,4:未通过,5:已归档)", width = 15)
|
||||
@ApiModelProperty(value = "合同状态(2:待审核,3:已通过,4:未通过,5:已归档)")
|
||||
@Dict(dicCode = "expenditure_contract_status")
|
||||
@Max(5)
|
||||
@Min(1)
|
||||
private Integer contractStatus;
|
||||
/**拒绝说明*/
|
||||
@Excel(name = "拒绝说明", width = 15)
|
||||
@ApiModelProperty(value = "拒绝说明")
|
||||
@Size(max = 200, message = "拒绝说明长度不能大于200个字符")
|
||||
private String explainRemarks;
|
||||
/**创建人*/
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private 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 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;
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.jero.contract.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.contract.entity.PaySpendingContractAudit;
|
||||
|
||||
/**
|
||||
* @Description: pay_income_contract_audit
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-03
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface PaySpendingContractAuditMapper extends BaseMapper<PaySpendingContractAudit> {
|
||||
|
||||
}
|
||||
+1
-1
@@ -26,7 +26,7 @@ public interface PaySpendingContractMapper extends BaseMapper<PaySpendingContrac
|
||||
* @Exception
|
||||
*/
|
||||
IPage<PaySpendingContract> queryPageList(Page<PaySpendingContract> page, @Param("paySpendingContract") PaySpendingContract paySpendingContract
|
||||
,@Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
,@Param("startTime") String startTime, @Param("endTime") String endTime,@Param("chargeStatus") String chargeStatus);
|
||||
|
||||
/**
|
||||
* @Description excel导出
|
||||
|
||||
+5
@@ -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.PaySpendingContractAuditMapper">
|
||||
|
||||
</mapper>
|
||||
+8
@@ -30,6 +30,8 @@
|
||||
contract_payment_times,
|
||||
pack,
|
||||
pack_year,
|
||||
status,
|
||||
if(status = 2,1,0) as statusOrder,
|
||||
create_by,
|
||||
create_time,
|
||||
update_by,
|
||||
@@ -55,6 +57,12 @@
|
||||
<if test="paySpendingContract.principalId != null and paySpendingContract.principalId != ''">
|
||||
AND principal_id = #{paySpendingContract.principalId}
|
||||
</if>
|
||||
<if test="paySpendingContract.status != null and paySpendingContract.status != ''">
|
||||
AND aa.status = #{paySpendingContract.status}
|
||||
</if>
|
||||
<if test="chargeStatus != null and chargeStatus != ''">
|
||||
AND aa.chargeStatus = #{chargeStatus}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY chargeStatus desc,create_time desc
|
||||
</select>
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.jero.contract.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.contract.entity.PaySpendingContractAudit;
|
||||
|
||||
/**
|
||||
* @Description: pay_income_contract_audit
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-03
|
||||
* @Version: V1.0
|
||||
*/
|
||||
public interface IPaySpendingContractAuditService extends IService<PaySpendingContractAudit> {
|
||||
|
||||
}
|
||||
+22
-1
@@ -3,7 +3,10 @@ package com.jero.contract.service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.contract.entity.PayIncomeContract;
|
||||
import com.jero.contract.entity.PayIncomeContractAudit;
|
||||
import com.jero.contract.entity.PaySpendingContract;
|
||||
import com.jero.contract.entity.PaySpendingContractAudit;
|
||||
import com.jero.contract.vo.PaySpendingContractInput;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -24,7 +27,7 @@ public interface IPaySpendingContractService extends IService<PaySpendingContrac
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
IPage<PaySpendingContract> queryPageList(Page<PaySpendingContract> page,PaySpendingContract paySpendingContract,String startTime,String endTime);
|
||||
IPage<PaySpendingContract> queryPageList(Page<PaySpendingContract> page,PaySpendingContract paySpendingContract,String startTime,String endTime,String chargeStatus);
|
||||
|
||||
/**
|
||||
* @Description 添加
|
||||
@@ -80,4 +83,22 @@ public interface IPaySpendingContractService extends IService<PaySpendingContrac
|
||||
* @Exception
|
||||
*/
|
||||
List<PaySpendingContract> queryList(String contractNum,String contractName,String startTime,String endTime);
|
||||
/**
|
||||
* @Description 审核
|
||||
* @Author lqt
|
||||
* @Date 2021/9/5
|
||||
* @Param paySpendingContractAudit 审核记录
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
void updateAudit(PaySpendingContractAudit paySpendingContractAudit);
|
||||
/**
|
||||
* @Description 归档
|
||||
* @Author lqt
|
||||
* @Date 2021/9/5
|
||||
* @Param paySpendingContractAudit 审核记录
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
void updateArchive(PaySpendingContractAudit paySpendingContractAudit);
|
||||
}
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.jero.contract.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.contract.entity.PaySpendingContractAudit;
|
||||
import com.jero.contract.mapper.PaySpendingContractAuditMapper;
|
||||
import com.jero.contract.service.IPaySpendingContractAuditService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @Description: pay_income_contract_audit
|
||||
* @Author: jeecg-boot
|
||||
* @Date: 2021-09-03
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Service
|
||||
public class PaySpendingContractAuditServiceImpl extends ServiceImpl<PaySpendingContractAuditMapper, PaySpendingContractAudit> implements IPaySpendingContractAuditService {
|
||||
|
||||
}
|
||||
+194
-38
@@ -1,27 +1,39 @@
|
||||
package com.jero.contract.service.impl;
|
||||
|
||||
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.common.RoleCommon;
|
||||
import com.jero.common.dto.SendMessageDTO;
|
||||
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.DateUtils;
|
||||
import com.jero.common.util.ImportExcelUtil;
|
||||
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.PaySpendingContract;
|
||||
import com.jero.contract.entity.PaySpendingContractAudit;
|
||||
import com.jero.contract.entity.PaySpendingContractInstallment;
|
||||
import com.jero.contract.mapper.PaySpendingContractMapper;
|
||||
import com.jero.contract.service.IPaySpendingContractAuditService;
|
||||
import com.jero.contract.service.IPaySpendingContractInstallmentService;
|
||||
import com.jero.contract.service.IPaySpendingContractService;
|
||||
import com.jero.contract.vo.PaySpendingContractImportExcel;
|
||||
import com.jero.contract.vo.PaySpendingContractInput;
|
||||
import com.jero.mail.entity.PayMailContract;
|
||||
import com.jero.mail.service.IPayMailContractService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
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;
|
||||
@@ -64,11 +76,19 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Resource
|
||||
private PaySpendingContractMapper paySpendingContractMapper;
|
||||
@Resource
|
||||
private IPaySpendingContractAuditService paySpendingContractAuditService;
|
||||
@Resource
|
||||
private IPayMailContractService payMailContractService;
|
||||
@Resource
|
||||
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
|
||||
@Resource
|
||||
private SendMessageService sendMessageService;
|
||||
|
||||
|
||||
@Override
|
||||
public IPage<PaySpendingContract> queryPageList(Page<PaySpendingContract> page, PaySpendingContract paySpendingContract, String startTime, String endTime) {
|
||||
return paySpendingContractMapper.queryPageList(page,paySpendingContract,startTime,endTime);
|
||||
public IPage<PaySpendingContract> queryPageList(Page<PaySpendingContract> page, PaySpendingContract paySpendingContract, String startTime, String endTime,String chargeStatus) {
|
||||
return paySpendingContractMapper.queryPageList(page,paySpendingContract,startTime,endTime,chargeStatus);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,7 +103,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
}
|
||||
if(!Objects.isNull(paySpendingContract.getAccountsReceivableAmount()) && !Objects.isNull(paySpendingContract.getAmountReceived())
|
||||
&& paySpendingContract.getAccountsReceivableAmount().compareTo(paySpendingContract.getAmountReceived()) < 0){
|
||||
throw new JeroBootException("已收金额大于应收金额!");
|
||||
throw new JeroBootException("已付金额大于应付金额!");
|
||||
}
|
||||
StringBuilder msgPayIncomeContract = ValidUtil.validateAll(paySpendingContract);
|
||||
if(!StringUtils.isBlank(msgPayIncomeContract)){
|
||||
@@ -109,6 +129,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
if(Objects.isNull(principalName)){
|
||||
throw new JeroBootException("负责人名称为空!");
|
||||
}
|
||||
paySpendingContract.setStatus(PayIncomeContractCommon.STATUS2);
|
||||
paySpendingContract.setPrincipalId(principalName.getId());
|
||||
paySpendingContract.setPrincipalName(principalName.getRealname());
|
||||
paySpendingContractService.save(paySpendingContract);
|
||||
@@ -123,7 +144,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
}
|
||||
if(!Objects.isNull(p.getAccountsReceivableAmount()) && !Objects.isNull(p.getPaidAmount())
|
||||
&& p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) < 0){
|
||||
msgPaySpendingContractInstallment.append("第").append(finalListPaySpendingContractInstallment.indexOf(p) + 1).append("期实收金额大于应收金额!");
|
||||
msgPaySpendingContractInstallment.append("第").append(finalListPaySpendingContractInstallment.indexOf(p) + 1).append("期实付金额大于应付金额!");
|
||||
}
|
||||
});
|
||||
paySpendingContractInstallmentService.saveBatch(listPaySpendingContractInstallment);
|
||||
@@ -131,6 +152,34 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
if(!StringUtils.isBlank(msgPaySpendingContractInstallment)){
|
||||
throw new JeroBootException(msgPaySpendingContractInstallment.toString());
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// 获取项目负责人,发送消息
|
||||
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY));
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
list.forEach(p->{
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
if(!StringUtils.isBlank(p.getEmail())){
|
||||
sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail()));
|
||||
}
|
||||
if(!StringUtils.isEmpty(p.getPhone())){
|
||||
sendMessageDTO.setPhone(PasswordUtil.decrypt(p.getPhone()));
|
||||
}
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("contractNum",paySpendingContract.getContractNum());
|
||||
map.put("contractName",paySpendingContract.getContractName());
|
||||
sendMessageDTO.setFromUser(sysUser.getUsername());
|
||||
sendMessageDTO.setToUser(p.getUsername());
|
||||
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG2.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
sendMessageDTO.setBusType("M_OPEN_TYPE2");
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("revenueId",paySpendingContract.getId());
|
||||
json.put("contractNum",paySpendingContract.getContractNum());
|
||||
sendMessageDTO.setBusId(json.toJSONString());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
});
|
||||
}
|
||||
return paySpendingContract;
|
||||
}
|
||||
|
||||
@@ -146,7 +195,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
}
|
||||
if(!Objects.isNull(paySpendingContract.getAccountsReceivableAmount()) && !Objects.isNull(paySpendingContract.getAmountReceived())
|
||||
&& paySpendingContract.getAccountsReceivableAmount().compareTo(paySpendingContract.getAmountReceived()) < 0){
|
||||
throw new JeroBootException("已收金额大于应收金额!");
|
||||
throw new JeroBootException("已付金额大于应付金额!");
|
||||
}
|
||||
StringBuilder msgPayIncomeContract = ValidUtil.validateAll(paySpendingContract);
|
||||
if(!StringUtils.isBlank(msgPayIncomeContract)){
|
||||
@@ -195,7 +244,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
}
|
||||
if(!Objects.isNull(p.getAccountsReceivableAmount()) && !Objects.isNull(p.getPaidAmount())
|
||||
&& p.getAccountsReceivableAmount().compareTo(p.getPaidAmount()) < 0){
|
||||
msgPaySpendingContractInstallment.append("第").append(finalListPaySpendingContractInstallment.indexOf(p) + 1).append("期实收金额大于应收金额!");
|
||||
msgPaySpendingContractInstallment.append("第").append(finalListPaySpendingContractInstallment.indexOf(p) + 1).append("期实付金额大于应付金额!");
|
||||
}
|
||||
});
|
||||
paySpendingContractInstallmentService.saveBatch(listPaySpendingContractInstallment);
|
||||
@@ -208,6 +257,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
if(Objects.isNull(principalName)){
|
||||
throw new JeroBootException("负责人名称为空!");
|
||||
}
|
||||
paySpendingContract.setStatus(PayIncomeContractCommon.STATUS2);
|
||||
paySpendingContract.setPrincipalId(principalName.getId());
|
||||
paySpendingContract.setPrincipalName(principalName.getRealname());
|
||||
paySpendingContractService.updateById(paySpendingContract);
|
||||
@@ -239,7 +289,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
query.in(PaySpendingContract::getId,ids);
|
||||
List<PaySpendingContract> listPaySpendingContractStatus = paySpendingContractService.list(query);
|
||||
if(CollectionUtils.isEmpty(listPaySpendingContractStatus)){
|
||||
throw new JeroBootException("收入合同不存在!");
|
||||
throw new JeroBootException("支出合同不存在!");
|
||||
}
|
||||
paySpendingContractService.removeByIds(ids);
|
||||
LambdaUpdateWrapper<PaySpendingContractInstallment> updatePaySpendingContractInstallment = new LambdaUpdateWrapper<>();
|
||||
@@ -338,28 +388,28 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
paySpendingContractInstallment.setPhaseName(sub.get(mm));
|
||||
if(!StringUtils.isBlank(sub.get(mm + 1))){
|
||||
if(!pattern.matcher(sub.get(mm + 1)).matches()){
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应收格式错误,请修改。<br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应付格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContractInstallment.setAccountsReceivableAmount(new BigDecimal(sub.get(mm + 1)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(sub.get(mm + 2))){
|
||||
if(!DateUtils.isValidDate(sub.get(mm + 2))){
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应收时间日期格式不正确,请修改。 <br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段应付时间日期格式不正确,请修改。 <br/>");
|
||||
}else{
|
||||
paySpendingContractInstallment.setAccountsReceivableTime(DateUtils.str2Date(sub.get(mm + 2),new SimpleDateFormat("yyyy-MM-dd")));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(sub.get(mm + 3))){
|
||||
if(!pattern.matcher(sub.get(mm + 3)).matches()){
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收格式错误,请修改。<br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实付格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContractInstallment.setPaidAmount(new BigDecimal(sub.get(mm + 3)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(sub.get(mm + 4))) {
|
||||
if (!DateUtils.isValidDate(sub.get(mm + 4))) {
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实收时间日期格式不正确,请修改。<br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(i+1).append("阶段实付时间日期格式不正确,请修改。<br/>");
|
||||
} else {
|
||||
paySpendingContractInstallment.setPaidTime(DateUtils.str2Date(sub.get(mm + 4), new SimpleDateFormat("yyyy-MM-dd")));
|
||||
}
|
||||
@@ -444,9 +494,9 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
}
|
||||
if(!Objects.isNull(paySpendingContract.getAccountsReceivableAmount()) && !Objects.isNull(paySpendingContract.getAmountReceived())){
|
||||
if(paySpendingContract.getAccountsReceivableAmount().compareTo(paySpendingContract.getAmountReceived()) < 0){
|
||||
sb.append("第").append(n + 1).append("行:已收金额大于应收金额,请修改。<br/>");
|
||||
sb.append("第").append(n + 1).append("行:已付金额大于应付金额,请修改。<br/>");
|
||||
}else if(!Objects.isNull(paySpendingContract.getOutstandingAmount()) && paySpendingContract.getAccountsReceivableAmount().subtract(paySpendingContract.getAmountReceived()).compareTo(paySpendingContract.getOutstandingAmount()) != 0){
|
||||
sb.append("第").append(n + 1).append("行:未收金额不正确,请修改。<br/>");
|
||||
sb.append("第").append(n + 1).append("行:未付金额不正确,请修改。<br/>");
|
||||
}
|
||||
}
|
||||
List<PaySpendingContractInstallment> listPaySpendingContractInstallment = p.getListInstallment();
|
||||
@@ -455,7 +505,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
int c = listPaySpendingContractInstallment.indexOf(item) + 1;
|
||||
if(!Objects.isNull(item.getAccountsReceivableAmount()) && !Objects.isNull(item.getPaidAmount())
|
||||
&& item.getAccountsReceivableAmount().compareTo(item.getPaidAmount()) < 0){
|
||||
sb.append("第").append(n + 1).append("行:").append(c).append("阶段实收大于应收,请修改。<br/>");
|
||||
sb.append("第").append(n + 1).append("行:").append(c).append("阶段实付大于应付,请修改。<br/>");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -508,6 +558,133 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
return paySpendingContractMapper.queryList( contractNum, contractName, startTime, endTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateAudit(PaySpendingContractAudit paySpendingContractAudit) {
|
||||
PaySpendingContract paySpendingContractStatus = paySpendingContractService.getById(paySpendingContractAudit.getContractId());
|
||||
if(Objects.isNull(paySpendingContractStatus)){
|
||||
throw new JeroBootException("支出合同不存在!");
|
||||
}
|
||||
// 校验合同状态是否为待审核
|
||||
if(Objects.isNull(paySpendingContractAudit.getContractStatus()) || !Objects.equals(paySpendingContractStatus.getStatus(),PayIncomeContractCommon.STATUS2)
|
||||
|| (!Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS3) && !Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS4))){
|
||||
throw new JeroBootException("支出合同状态不正确!");
|
||||
}
|
||||
|
||||
if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS4)
|
||||
&& StringUtils.isBlank(paySpendingContractAudit.getExplainRemarks())){
|
||||
throw new JeroBootException("请输入拒绝说明!");
|
||||
}
|
||||
if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS3)){
|
||||
paySpendingContractAudit.setExplainRemarks("");
|
||||
}
|
||||
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
LambdaUpdateWrapper<PaySpendingContract> update = new LambdaUpdateWrapper<>();
|
||||
update.set(PaySpendingContract::getUpdateBy,sysUser.getUsername());
|
||||
update.set(PaySpendingContract::getUpdateTime,new Date());
|
||||
update.eq(PaySpendingContract::getId,paySpendingContractAudit.getContractId());
|
||||
update.set(PaySpendingContract::getStatus, paySpendingContractAudit.getContractStatus());
|
||||
paySpendingContractService.update(update);
|
||||
// 添加审核记录
|
||||
paySpendingContractAuditService.save(paySpendingContractAudit);
|
||||
|
||||
// 审核通过
|
||||
if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS3)){
|
||||
// 更新到合同邮寄表
|
||||
PayMailContract payMailContract = new PayMailContract();
|
||||
PayContactsManagementTemporary payContactsManagementTemporary = payContactsManagementTemporaryService.getById(paySpendingContractStatus.getSignedContactsTemporaryId());
|
||||
if(!Objects.isNull(payContactsManagementTemporary)){
|
||||
payMailContract.setMobile(payContactsManagementTemporary.getPhone());
|
||||
payMailContract.setEmail(payContactsManagementTemporary.getEmail());
|
||||
}
|
||||
payMailContract.setContractId(paySpendingContractStatus.getId());
|
||||
payMailContract.setPostStatus(PayIncomeContractCommon.POST_STATUS0);
|
||||
payMailContract.setLiaisonMan(paySpendingContractStatus.getContractName());
|
||||
payMailContractService.save(payMailContract);
|
||||
// 获取项目负责人,发送消息
|
||||
List<SysUser> list = sysUserService.getRolesUser(Arrays.asList(RoleCommon.CWRY));
|
||||
if(!CollectionUtils.isEmpty(list)){
|
||||
list.forEach(p->{
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
if(!StringUtils.isBlank(p.getEmail())){
|
||||
sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail()));
|
||||
}
|
||||
if(!StringUtils.isBlank(p.getPhone())){
|
||||
sendMessageDTO.setPhone(PasswordUtil.decrypt(p.getPhone()));
|
||||
}
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("contractNum",paySpendingContractStatus.getContractNum());
|
||||
map.put("contractName",paySpendingContractStatus.getContractName());
|
||||
sendMessageDTO.setFromUser(sysUser.getUsername());
|
||||
sendMessageDTO.setToUser(p.getUsername());
|
||||
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG3.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
sendMessageDTO.setBusType("M_OPEN_TYPE3");
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("revenueId",paySpendingContractStatus.getId());
|
||||
json.put("contractNum",paySpendingContractStatus.getContractNum());
|
||||
sendMessageDTO.setBusId(json.toJSONString());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
});
|
||||
}
|
||||
}
|
||||
// 审核未通过
|
||||
if(Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS4)){
|
||||
SysUser sysUserData = sysUserService.getById(paySpendingContractStatus.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",paySpendingContractStatus.getContractNum());
|
||||
map.put("contractName",paySpendingContractStatus.getContractName());
|
||||
sendMessageDTO.setFromUser(sysUser.getUsername());
|
||||
sendMessageDTO.setToUser(sysUserData.getUsername());
|
||||
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG4.getCode());
|
||||
sendMessageDTO.setTemplateParam(map);
|
||||
sendMessageDTO.setBusType("M_OPEN_TYPE4");
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("revenueId",paySpendingContractStatus.getId());
|
||||
json.put("contractNum",paySpendingContractStatus.getContractNum());
|
||||
sendMessageDTO.setBusId(json.toJSONString());
|
||||
sendMessageService.SendMessageService(sendMessageDTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateArchive(PaySpendingContractAudit paySpendingContractAudit) {
|
||||
PaySpendingContract paySpendingContractStatus = paySpendingContractService.getById(paySpendingContractAudit.getContractId());
|
||||
if(Objects.isNull(paySpendingContractStatus)){
|
||||
throw new JeroBootException("支出合同不存在!");
|
||||
}
|
||||
// 校验合同状态是否为已通过
|
||||
if(!Objects.equals(paySpendingContractStatus.getStatus(),PayIncomeContractCommon.STATUS3)){
|
||||
throw new JeroBootException("支出合同不可归档!");
|
||||
}
|
||||
if(Objects.isNull(paySpendingContractAudit.getContractStatus()) || !Objects.equals(paySpendingContractAudit.getContractStatus(),PayIncomeContractCommon.STATUS5)){
|
||||
throw new JeroBootException("支出合同状态不正确!");
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
LambdaUpdateWrapper<PaySpendingContract> update = new LambdaUpdateWrapper<>();
|
||||
update.set(PaySpendingContract::getUpdateBy,sysUser.getUsername());
|
||||
update.set(PaySpendingContract::getUpdateTime,new Date());
|
||||
update.eq(PaySpendingContract::getId,paySpendingContractAudit.getContractId());
|
||||
update.set(PaySpendingContract::getStatus, PayIncomeContractCommon.STATUS5);
|
||||
paySpendingContractService.update(update);
|
||||
// 添加归档记录
|
||||
paySpendingContractAudit.setContractStatus(PayIncomeContractCommon.STATUS5);
|
||||
paySpendingContractAuditService.save(paySpendingContractAudit);
|
||||
}
|
||||
|
||||
|
||||
private PaySpendingContract setPaySpendingContractExcel(Map<Integer,String> map,Map<String, String> mapOpening,Map<String, String> mapPack,
|
||||
int n,StringBuilder sb){
|
||||
@@ -573,48 +750,27 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
|
||||
paySpendingContract.setContractTimePoints(map.get(13));
|
||||
if(!StringUtils.isBlank(map.get(13))){
|
||||
if(!pattern.matcher(map.get(13)).matches()){
|
||||
sb.append("第").append(n).append("行:应收金额格式错误,请修改。<br/>");
|
||||
sb.append("第").append(n).append("行:应付金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setAccountsReceivableAmount(new BigDecimal(map.get(13)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(14))){
|
||||
if(!pattern.matcher(map.get(14)).matches()){
|
||||
sb.append("第").append(n).append("行:已收金额格式错误,请修改。<br/>");
|
||||
sb.append("第").append(n).append("行:已付金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setAmountReceived(new BigDecimal(map.get(14)));
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isBlank(map.get(15))){
|
||||
if(!pattern.matcher(map.get(15)).matches()){
|
||||
sb.append("第").append(n).append("行:未收金额格式错误,请修改。<br/>");
|
||||
sb.append("第").append(n).append("行:未付金额格式错误,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setOutstandingAmount(new BigDecimal(map.get(15)));
|
||||
}
|
||||
}
|
||||
|
||||
paySpendingContract.setContractPaymentTimes(map.get(17));
|
||||
if(StringUtils.isEmpty(map.get(18))){
|
||||
sb.append("第").append(n).append("行:是否打包不能为空,请修改。<br/>");
|
||||
}else{
|
||||
mapPack.forEach((k,v)->{
|
||||
if(Objects.equals(map.get(18),k)){
|
||||
paySpendingContract.setPack(Integer.parseInt(v));
|
||||
}
|
||||
});
|
||||
if(Objects.isNull(paySpendingContract.getPack())){
|
||||
sb.append("第").append(n).append("行:是否打包格式错误,请修改。<br/>");
|
||||
paySpendingContract.setPack(2);
|
||||
}
|
||||
// 打包获取打包年份
|
||||
if(Objects.equals(paySpendingContract.getPack(),PayIncomeContractCommon.PACK1)){
|
||||
if(StringUtils.isEmpty(map.get(19))){
|
||||
sb.append("第").append(n).append("行:打包年份不能为空,请修改。<br/>");
|
||||
}else{
|
||||
paySpendingContract.setPackYear(map.get(19));
|
||||
}
|
||||
}
|
||||
}
|
||||
return paySpendingContract;
|
||||
}
|
||||
|
||||
|
||||
+14
@@ -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 PaySpendingContractAuditOutput extends PayIncomeContractAudit implements Serializable {
|
||||
/**
|
||||
* 合同状态(1:草稿,2:待审核,3:已通过,4:未通过,5:已归档)
|
||||
*/
|
||||
private String contractStatus_dictText;
|
||||
}
|
||||
+22
@@ -2,6 +2,7 @@ package com.jero.contract.vo;
|
||||
|
||||
import com.jero.contract.entity.PaySpendingContract;
|
||||
import com.jero.contract.entity.PaySpendingContractInstallment;
|
||||
import com.jero.mail.entity.PayMailContract;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -23,9 +24,30 @@ public class PaySpendingContractDetailOutput extends PaySpendingContract impleme
|
||||
* 是否打包(1:是,2:否)
|
||||
*/
|
||||
private String pack_dictText;
|
||||
|
||||
/**
|
||||
* 合同状态(2:待审核,3:已通过,4:未通过,5:已存档)
|
||||
*/
|
||||
private String contractStatus_dictText;
|
||||
/**
|
||||
* 分期记录
|
||||
*/
|
||||
@ApiModelProperty(value = "分期记录集合")
|
||||
private List<PaySpendingContractInstallment> listInstallment;
|
||||
|
||||
/**
|
||||
* 归档记录
|
||||
*/
|
||||
@ApiModelProperty(value = "归档记录")
|
||||
private List<PaySpendingContractAuditOutput> listArchive;
|
||||
/**
|
||||
* 审核记录
|
||||
*/
|
||||
@ApiModelProperty(value = "审核记录")
|
||||
private List<PaySpendingContractAuditOutput> listAudit;
|
||||
/**
|
||||
* 邮寄信息
|
||||
*/
|
||||
@ApiModelProperty(value = "邮寄信息")
|
||||
private PayMailContract payMailContract;
|
||||
}
|
||||
|
||||
+22
-28
@@ -47,14 +47,14 @@ public class PaySpendingContractExcelModel implements Serializable {
|
||||
/**合同约定主要时点*/
|
||||
@Excel(name = "合同约定主要时点", width = 15)
|
||||
private String contractTimePoints;
|
||||
/**应收金额*/
|
||||
@Excel(name = "应收金额", width = 15)
|
||||
/**应付金额*/
|
||||
@Excel(name = "应付金额", width = 15)
|
||||
private String accountsReceivableAmount;
|
||||
/**已收金额*/
|
||||
@Excel(name = "已收金额", width = 15)
|
||||
/**已付金额*/
|
||||
@Excel(name = "已付金额", width = 15)
|
||||
private String amountReceived;
|
||||
/**未收金额*/
|
||||
@Excel(name = "未收金额", width = 15)
|
||||
/**未付金额*/
|
||||
@Excel(name = "未付金额", width = 15)
|
||||
private BigDecimal outstandingAmount;
|
||||
/**账款状态(1:未支付,2:部分支付,3:已付全款)*/
|
||||
@Excel(name = "账款状态", width = 15)
|
||||
@@ -62,40 +62,34 @@ public class PaySpendingContractExcelModel implements Serializable {
|
||||
/**合同约定付款次数*/
|
||||
@Excel(name = "合同约定付款次数", width = 15)
|
||||
private String contractPaymentTimes;
|
||||
/**是否打包(1:是,0:否)*/
|
||||
@Excel(name = "是否打包", width = 15)
|
||||
private Integer pack;
|
||||
/**打包年份*/
|
||||
@Excel(name = "打包年份", width = 15)
|
||||
private String packYear;
|
||||
/**阶段名称*/
|
||||
@Excel(name = "1阶段", width = 15)
|
||||
private String phaseName1;
|
||||
/**应收金额*/
|
||||
@Excel(name = "1阶段应收", width = 15)
|
||||
/**应付金额*/
|
||||
@Excel(name = "1阶段应付", width = 15)
|
||||
private Integer accountsReceivableAmount1;
|
||||
/**应收时间*/
|
||||
@Excel(name = "1阶段应收时间", width = 15, format = "yyyy-MM-dd")
|
||||
/**应付时间*/
|
||||
@Excel(name = "1阶段应付时间", width = 15, format = "yyyy-MM-dd")
|
||||
private Date accountsReceivableTime1;
|
||||
/**实收金额*/
|
||||
@Excel(name = "1阶段实收", width = 15)
|
||||
/**实付金额*/
|
||||
@Excel(name = "1阶段实付", width = 15)
|
||||
private Integer paidAmount1;
|
||||
/**实收时间*/
|
||||
@Excel(name = "1阶段实收时间", width = 15, format = "yyyy-MM-dd")
|
||||
/**实付时间*/
|
||||
@Excel(name = "1阶段实付时间", width = 15, format = "yyyy-MM-dd")
|
||||
private Date paidTime1;
|
||||
/**阶段名称*/
|
||||
@Excel(name = "2阶段", width = 15)
|
||||
private String phaseName2;
|
||||
/**应收金额*/
|
||||
@Excel(name = "2阶段应收", width = 15)
|
||||
/**应付金额*/
|
||||
@Excel(name = "2阶段应付", width = 15)
|
||||
private Integer accountsReceivableAmount2;
|
||||
/**应收时间*/
|
||||
@Excel(name = "2阶段应收时间", width = 15, format = "yyyy-MM-dd")
|
||||
/**应付时间*/
|
||||
@Excel(name = "2阶段应付时间", width = 15, format = "yyyy-MM-dd")
|
||||
private Date accountsReceivableTime2;
|
||||
/**实收金额*/
|
||||
@Excel(name = "2阶段实收", width = 15)
|
||||
/**实付金额*/
|
||||
@Excel(name = "2阶段实付", width = 15)
|
||||
private Integer paidAmount2;
|
||||
/**实收时间*/
|
||||
@Excel(name = "2阶段实收时间", width = 15, format = "yyyy-MM-dd")
|
||||
/**实付时间*/
|
||||
@Excel(name = "2阶段实付时间", width = 15, format = "yyyy-MM-dd")
|
||||
private Date paidTime2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user