1. 回款相关

This commit is contained in:
zhaowenyuan 2024-06-17 16:26:56 +08:00
parent 8f4e2a7bf8
commit 1c23791f02
14 changed files with 404 additions and 67 deletions

View File

@ -23,14 +23,10 @@ import java.lang.annotation.*;
public @interface SysLog { public @interface SysLog {
String value() default ""; String value() default "";
/** /**
* 操作类型 * 操作类型
*/ */
BusinessType businessType() default BusinessType.OTHER; BusinessType businessType() default BusinessType.OTHER;
boolean export() default false;
/** /**
* 是否 入库 * 是否 入库
*/ */

View File

@ -19,7 +19,6 @@ import java.lang.reflect.Field;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@NoArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(access = AccessLevel.PRIVATE)
public class WrapperUtils { public class WrapperUtils {
@ -29,9 +28,11 @@ public class WrapperUtils {
if (null != columns) { if (null != columns) {
queryWrapper = queryWrapper.select(columns); queryWrapper = queryWrapper.select(columns);
} }
// 构造Wrapper if (null != commonParam){
queryWrapper = queryWrapper // 构造Wrapper
.orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy()); queryWrapper = queryWrapper
.orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy());
}
if (query == null) { if (query == null) {
return queryWrapper.lambda(); return queryWrapper.lambda();
} }

View File

@ -16,6 +16,10 @@ import java.time.LocalDateTime;
*/ */
@Data @Data
public class ContractDTO { public class ContractDTO {
/**
* 新增合同时
*/
private Long projectId;
/** /**
* 合同Id * 合同Id
*/ */

View File

@ -0,0 +1,41 @@
package com.chushang.inspection.project.entity.dto;
import com.chushang.common.core.validator.Create;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* 回款
* @auther: zhao
* @date: 2024/6/17 15:30
*/
@Data
public class PaymentDTO {
/**
* 项目id
*/
@NotNull(message = "项目id不能为空", groups = {Create.class})
private Long projectId;
/**
* 合同Id
*/
@NotNull(message = "合同id不能为空", groups = {Create.class})
private Long contractId;
/**
* 回款金额
*/
@NotNull(message = "回款金额不能为空", groups = {Create.class})
private BigDecimal paymentAmount;
/**
* 回款备注
*/
private String remark;
/**
* 回款文件证明
*/
@NotNull(message = "回款证明文件不能为空", groups = {Create.class})
private String paymentReceipt;
}

View File

@ -1,14 +1,12 @@
package com.chushang.inspection.project.entity.dto; package com.chushang.inspection.project.entity.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.chushang.common.core.validator.Create; import com.chushang.common.core.validator.Create;
import com.chushang.common.core.validator.Update; import com.chushang.common.core.validator.Update;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
/** /**
* @auther: zhao * @auther: zhao
@ -31,7 +29,7 @@ public class ProjectDTO {
* 项目合同 * 项目合同
*/ */
@NotNull(message = "项目合同不能为空", groups = Create.class) @NotNull(message = "项目合同不能为空", groups = Create.class)
@NotNull(message = "项目合同不能为空", groups = Update.class) @Null(message = "项目合同不能为空", groups = Update.class)
@Valid @Valid
private ContractDTO contract; private ContractDTO contract;

View File

@ -76,4 +76,11 @@ public class WrkProject extends BaseEntity {
@TableField(value = "update_by", fill = FieldFill.UPDATE) @TableField(value = "update_by", fill = FieldFill.UPDATE)
@Condition(name = "update_by", type = Condition.ConditionType.eq) @Condition(name = "update_by", type = Condition.ConditionType.eq)
private String updateBy; private String updateBy;
/**
* 项目有效状态, 合同处于有效时, 项目就是有效
*/
@TableField(value = "project_effect")
@DictFormat(dictType = "project_effect")
private Integer projectEffect;
} }

View File

@ -67,6 +67,11 @@ public class WrkProjectContract extends BaseEntity {
*/ */
@TableField(value = "contract_amount") @TableField(value = "contract_amount")
private BigDecimal contractAmount; private BigDecimal contractAmount;
/**
* 项目已经 回款金额
*/
@TableField(value = "payment_amount")
private BigDecimal paymentAmount;
/** /**
* 审核状态 项目审核状态 待初审 待复审 初审驳回 复审驳回 初审通过=待复审 复审通过 * 审核状态 项目审核状态 待初审 待复审 初审驳回 复审驳回 初审通过=待复审 复审通过
@ -85,6 +90,8 @@ public class WrkProjectContract extends BaseEntity {
/** /**
* 回款状态 是否已经回款完成 * 回款状态 是否已经回款完成
* 0 未完成
* 1 已完成
*/ */
@TableField(value = "payment_state") @TableField(value = "payment_state")
@DictFormat(dictType = "payment_state") @DictFormat(dictType = "payment_state")

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.chushang.common.mybatis.base.BaseEntity; import com.chushang.common.mybatis.base.BaseEntity;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@ -38,8 +39,8 @@ public class WrkProjectPayment extends BaseEntity {
/** /**
* 回款合同id * 回款合同id
*/ */
@TableField(value = "contracty_id") @TableField(value = "contract_id")
private Long contractyId; private Long contractId;
/** /**
* 项目名称 * 项目名称

View File

@ -1,15 +0,0 @@
package com.chushang.inspection.project.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @auther: zhao
* @date: 2024/6/15 11:22
*/
@Slf4j
@RestController
@RequestMapping(value = "/project/contract")
public class WrkProjectContractController {
}

View File

@ -1,6 +1,5 @@
package com.chushang.inspection.project.controller; package com.chushang.inspection.project.controller;
import cn.hutool.core.bean.BeanUtil;
import com.chushang.common.core.exception.utils.AssertUtil; import com.chushang.common.core.exception.utils.AssertUtil;
import com.chushang.common.core.validator.Create; import com.chushang.common.core.validator.Create;
import com.chushang.common.core.validator.Update; import com.chushang.common.core.validator.Update;
@ -9,13 +8,12 @@ import com.chushang.common.log.annotation.SysLog;
import com.chushang.common.log.enums.BusinessType; import com.chushang.common.log.enums.BusinessType;
import com.chushang.common.mybatis.page.CommonParam; import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.inspection.project.entity.dto.ContractDTO;
import com.chushang.inspection.project.entity.dto.ProjectDTO; import com.chushang.inspection.project.entity.dto.ProjectDTO;
import com.chushang.inspection.project.entity.po.WrkProject; import com.chushang.inspection.project.entity.po.WrkProject;
import com.chushang.inspection.project.entity.po.WrkProjectContract;
import com.chushang.inspection.project.service.WrkProjectContractService; import com.chushang.inspection.project.service.WrkProjectContractService;
import com.chushang.inspection.project.service.WrkProjectService; import com.chushang.inspection.project.service.WrkProjectService;
import com.chushang.security.annotation.RequiresPermissions; import com.chushang.security.annotation.RequiresPermissions;
import com.chushang.security.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -32,8 +30,8 @@ public class WrkProjectController {
@Resource @Resource
WrkProjectService projectService; WrkProjectService projectService;
@Resource
WrkProjectContractService contractService;
/** /**
* 获取项目列表 * 获取项目列表
*/ */
@ -50,7 +48,7 @@ public class WrkProjectController {
* 新增项目 -- 暂存 + 提交审核 * 新增项目 -- 暂存 + 提交审核
*/ */
@PostMapping(value = "/save") @PostMapping(value = "/save")
// @RequiresPermissions("inspection:project:save") @RequiresPermissions("inspection:project:save")
@SysLog(value = "项目",businessType = BusinessType.INSERT) @SysLog(value = "项目",businessType = BusinessType.INSERT)
public AjaxResult save(@RequestBody @Validated(Create.class) ProjectDTO project){ public AjaxResult save(@RequestBody @Validated(Create.class) ProjectDTO project){
return AjaxResult.success(projectService.save(project)); return AjaxResult.success(projectService.save(project));
@ -60,7 +58,7 @@ public class WrkProjectController {
* 修改 项目 * 修改 项目
*/ */
@PostMapping(value = "/update") @PostMapping(value = "/update")
// @RequiresPermissions("inspection:project:save") @RequiresPermissions("inspection:project:save")
@SysLog(value = "项目",businessType = BusinessType.UPDATE) @SysLog(value = "项目",businessType = BusinessType.UPDATE)
public AjaxResult update(@RequestBody @Validated(Update.class) ProjectDTO project){ public AjaxResult update(@RequestBody @Validated(Update.class) ProjectDTO project){
Long projectId = project.getProjectId(); Long projectId = project.getProjectId();
@ -68,6 +66,66 @@ public class WrkProjectController {
return AjaxResult.success(projectService.update(project)); return AjaxResult.success(projectService.update(project));
} }
/**
* 删除项目
*/
@DeleteMapping(value = "/{projectId}")
@RequiresPermissions("inspection:project:del")
@SysLog(value = "项目",businessType = BusinessType.DELETE)
public AjaxResult delProject(@PathVariable Long projectId)
{
return AjaxResult.success(projectService.delete(projectId));
}
/**
* 合同新增
*/
@PostMapping(value = "/contract/save")
@SysLog(value = "合同", businessType = BusinessType.INSERT)
@RequiresPermissions("inspection:contract:save")
public AjaxResult save(@RequestBody @Validated(Create.class) ContractDTO contract)
{
Long projectId = contract.getProjectId();
AssertUtil.invalidate(null == projectId, "新增合同时, 项目id 不能为空");
return AjaxResult.success(projectService.saveContract(contract));
}
/**
* 修改 合同
*/
@PostMapping(value = "/contract/update")
@SysLog(value = "合同", businessType = BusinessType.UPDATE)
@RequiresPermissions("inspection:contract:update")
public AjaxResult update(@RequestBody @Validated(Update.class) ContractDTO contract){
Long contractId = contract.getContractId();
AssertUtil.invalidate(null == contractId, "修改合同时, 合同id 不能为空");
return AjaxResult.success(projectService.updateContract(contract));
}
/**
* 删除 合同
*/
@DeleteMapping(value = "/contract/{contractId}")
@RequiresPermissions("inspection:contract:del")
@SysLog(value = "合同", businessType = BusinessType.DELETE)
public AjaxResult del(@PathVariable Long contractId){
projectService.deleteContract(contractId);
return AjaxResult.success();
}
/**
* 获取 项目合同列表
* 根据 项目Id 获取
*/
@GetMapping(value = "/contract/list")
@RequiresPermissions("inspection:contract:list")
public AjaxResult list(Long projectId)
{
CommonParam commonParam = CommonParam.buildPageRequest();
return AjaxResult.success(contractService.pageList(projectId, commonParam));
}
// /** // /**
// //
// /** // /**

View File

@ -1,10 +1,22 @@
package com.chushang.inspection.project.controller; package com.chushang.inspection.project.controller;
import com.chushang.common.core.validator.Create;
import com.chushang.common.core.web.AjaxResult;
import com.chushang.common.log.annotation.SysLog;
import com.chushang.common.log.enums.BusinessType;
import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.inspection.project.entity.dto.PaymentDTO;
import com.chushang.inspection.project.service.WrkProjectPaymentService;
import com.chushang.security.annotation.RequiresPermissions;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping; import org.aspectj.weaver.loadtime.Aj;
import org.springframework.web.bind.annotation.RestController; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/** /**
* 回款
* @auther: zhao * @auther: zhao
* @date: 2024/6/15 11:22 * @date: 2024/6/15 11:22
*/ */
@ -12,4 +24,31 @@ import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping(value = "/project/payment") @RequestMapping(value = "/project/payment")
public class WrkProjectPaymentController { public class WrkProjectPaymentController {
@Resource
WrkProjectPaymentService paymentService;
@SysLog(value = "回款", businessType = BusinessType.INSERT)
@PostMapping(value = "/save")
@RequiresPermissions("project:payment:save")
public AjaxResult save(@RequestBody @Validated(Create.class)PaymentDTO payment){
return AjaxResult.success(paymentService.save(payment));
}
@GetMapping(value = "/list")
@RequiresPermissions("project:payment:list")
public AjaxResult list(PaymentDTO payment)
{
CommonParam commonParam = CommonParam.buildPageRequest();
return AjaxResult.success(paymentService.pageList(payment.getProjectId(), payment.getContractId(),commonParam));
}
@SysLog(value = "合同回款", businessType = BusinessType.DELETE)
@DeleteMapping(value = "/{paymentId}")
@RequiresPermissions("project:payment:del")
public AjaxResult del(@PathVariable Long paymentId){
paymentService.removeById(paymentId);
return AjaxResult.success();
}
} }

View File

@ -1,11 +1,23 @@
package com.chushang.inspection.project.service; package com.chushang.inspection.project.service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.inspection.project.entity.dto.ContractDTO;
import com.chushang.inspection.project.entity.po.WrkProject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chushang.inspection.project.mapper.WrkProjectContractMapper; import com.chushang.inspection.project.mapper.WrkProjectContractMapper;
import com.chushang.inspection.project.entity.po.WrkProjectContract; import com.chushang.inspection.project.entity.po.WrkProjectContract;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
/** /**
* @auther: zhao * @auther: zhao
@ -14,5 +26,30 @@ import com.chushang.inspection.project.entity.po.WrkProjectContract;
@Slf4j @Slf4j
@Service @Service
public class WrkProjectContractService extends ServiceImpl<WrkProjectContractMapper, WrkProjectContract> implements IService<WrkProjectContract> { public class WrkProjectContractService extends ServiceImpl<WrkProjectContractMapper, WrkProjectContract> implements IService<WrkProjectContract> {
/**
* 删除合同
*/
@Transactional
public void delete(Long contractId) {
WrkProjectContract contract = getById(contractId);
Integer auditStatus = contract.getAuditStatus();
if (3 == auditStatus || 4 == auditStatus){
log.info("删除已经审核通过的项目");
}
removeById(contractId);
}
public PageResult pageList(Long projectId, CommonParam commonParam) {
WrkProjectContract contract = WrkProjectContract.builder().projectId(projectId).build();
return pageList(contract, commonParam);
}
public PageResult pageList(WrkProjectContract contract, CommonParam commonParam) {
LambdaQueryWrapper<WrkProjectContract> queryWrapper = WrapperUtils.builder(contract, contract, commonParam);
IPage<WrkProjectContract> page = this.page(
new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()),
queryWrapper
);
return new PageResult(page);
}
} }

View File

@ -1,12 +1,31 @@
package com.chushang.inspection.project.service; package com.chushang.inspection.project.service;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.chushang.common.core.exception.ResultException;
import com.chushang.common.core.exception.utils.AssertUtil;
import com.chushang.common.core.util.DateUtils;
import com.chushang.common.mybatis.enums.Operator;
import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.inspection.project.entity.dto.PaymentDTO;
import com.chushang.inspection.project.entity.po.WrkProject;
import com.chushang.inspection.project.entity.po.WrkProjectContract;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.chushang.inspection.project.entity.po.WrkProjectPayment; import com.chushang.inspection.project.entity.po.WrkProjectPayment;
import com.chushang.inspection.project.mapper.WrkProjectPaymentMapper; import com.chushang.inspection.project.mapper.WrkProjectPaymentMapper;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDate;
/** /**
* @auther: zhao * @auther: zhao
* @date: 2024/6/15 10:51 * @date: 2024/6/15 10:51
@ -14,5 +33,86 @@ import com.chushang.inspection.project.mapper.WrkProjectPaymentMapper;
@Slf4j @Slf4j
@Service @Service
public class WrkProjectPaymentService extends ServiceImpl<WrkProjectPaymentMapper, WrkProjectPayment> implements IService<WrkProjectPayment> { public class WrkProjectPaymentService extends ServiceImpl<WrkProjectPaymentMapper, WrkProjectPayment> implements IService<WrkProjectPayment> {
@Resource
WrkProjectService projectService;
@Resource
WrkProjectContractService contractService;
public Long save(PaymentDTO payment)
{
WrkProjectPayment projectPayment = new WrkProjectPayment();
BeanUtil.copyProperties(payment, projectPayment);
Long projectId = payment.getProjectId();
Long contractId = payment.getContractId();
WrkProject project = new WrkProject();
project.setProjectId(projectId);
LambdaQueryWrapper<WrkProject> projectSql = WrapperUtils.builder(project, project, null)
.last(Operator.LIMIT_ONE.getCharacter());
project = projectService.getOne(projectSql);
AssertUtil.invalidate(null == project, "查询不到对应的项目");
WrkProjectContract projectContract = new WrkProjectContract();
projectContract.setProjectId(projectId);
projectContract.setContractId(contractId);
LambdaQueryWrapper<WrkProjectContract> contractSql = WrapperUtils.builder(projectContract, projectContract, null)
.last(Operator.LIMIT_ONE.getCharacter());
projectContract = contractService.getOne(contractSql);
AssertUtil.invalidate(null == projectContract, "查询不到对应的项目合同");
projectPayment.setProjectName(project.getProjectName());
projectPayment.setDeptId(project.getDeptId());
LocalDate now = LocalDate.now();
//
projectPayment.setPaymentDate(DateUtils.format(now));
//
projectPayment.setPaymentMonth(DateUtils.format(now, "yyyy-MM"));
// 合同金额
BigDecimal contractAmount = projectContract.getContractAmount();
// 已经回款的金额
BigDecimal countPaymentAmount = projectPayment.getPaymentAmount();
// 当前回款金额
BigDecimal paymentAmount = payment.getPaymentAmount();
// 待回款金额
BigDecimal subtract = contractAmount.subtract(countPaymentAmount);
int i = subtract.compareTo(paymentAmount);
// 说明已经回款完毕
if (i == 0){
// 总回款金额
projectPayment.setPaymentAmount(paymentAmount.add(countPaymentAmount));
// 修改 回款 金额完成
WrkProjectContract contract = new WrkProjectContract();
contract.setContractId(contractId);
contract.setPaymentState(1);
contractService.updateById(contract);
}
// 未回款完成
else if (i > 0){
projectPayment.setPaymentAmount(paymentAmount.add(countPaymentAmount));
}
// 回款超了
else {
throw new ResultException("回款金额已经大于合同金额");
}
save(projectPayment);
return projectPayment.getPaymentId();
}
public PageResult pageList(Long projectId, Long contractId, CommonParam commonParam)
{
WrkProjectPayment projectPayment = new WrkProjectPayment();
projectPayment.setPaymentId(projectId);
projectPayment.setContractId(contractId);
return pageList(projectPayment, commonParam);
}
public PageResult pageList(WrkProjectPayment projectPayment, CommonParam commonParam)
{
LambdaQueryWrapper<WrkProjectPayment> queryWrapper = WrapperUtils.builder(projectPayment, projectPayment, commonParam);
IPage<WrkProjectPayment> page = this.page(
new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()),
queryWrapper
);
return new PageResult(page);
}
} }

View File

@ -8,8 +8,10 @@ import com.chushang.common.mybatis.page.CommonParam;
import com.chushang.common.mybatis.utils.PageResult; import com.chushang.common.mybatis.utils.PageResult;
import com.chushang.common.mybatis.utils.WrapperUtils; import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.datascope.annotation.DataScope; import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.project.entity.dto.ContractDTO;
import com.chushang.inspection.project.entity.dto.ProjectDTO; import com.chushang.inspection.project.entity.dto.ProjectDTO;
import com.chushang.inspection.project.entity.po.WrkProjectContract; import com.chushang.inspection.project.entity.po.WrkProjectContract;
import com.chushang.security.utils.SecurityUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -48,32 +50,28 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
{ {
WrkProject wrkProject = new WrkProject(); WrkProject wrkProject = new WrkProject();
BeanUtil.copyProperties(project, wrkProject); BeanUtil.copyProperties(project, wrkProject);
// Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
Long deptId = 200L; // Long deptId = 200L;
wrkProject.setDeptId(deptId); wrkProject.setDeptId(deptId);
ContractDTO contract = project.getContract();
LocalDateTime now = LocalDateTime.now();
// 项目合同
if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) {
wrkProject.setProjectEffect(0);
}else {
wrkProject.setProjectEffect(1);
}
this.save(wrkProject); this.save(wrkProject);
// 项目合同 // 项目合同
WrkProjectContract contract = WrkProjectContract.builder().build(); saveContract(contract);
BeanUtil.copyProperties(project.getContract(), contract);
contract.setProjectId(wrkProject.getProjectId());
LocalDateTime now = LocalDateTime.now();
// 之前 && 之后 无效
if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) {
contract.setProjectEffect(0);
}else {
contract.setProjectEffect(1);
}
// 未回款完成
contract.setPaymentState(0);
// 项目合同
contractService.save(contract);
return wrkProject.getProjectId(); return wrkProject.getProjectId();
} }
/** /**
* 修改项目 * 修改项目 -- 不同时修改 合同
*/ */
@Transactional @Transactional
public Long update(ProjectDTO project) public Long update(ProjectDTO project)
@ -82,19 +80,84 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
BeanUtil.copyProperties(project, wrkProject); BeanUtil.copyProperties(project, wrkProject);
this.updateById(wrkProject); this.updateById(wrkProject);
// 项目合同 // 项目合同
WrkProjectContract contract = WrkProjectContract.builder().build(); // WrkProjectContract contract = WrkProjectContract.builder().build();
BeanUtil.copyProperties(project.getContract(), contract); // BeanUtil.copyProperties(project.getContract(), contract);
LocalDateTime now = LocalDateTime.now(); // LocalDateTime now = LocalDateTime.now();
// 之前 && 之后 无效 // // 之前 && 之后 无效
if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) { // if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) {
contract.setProjectEffect(0); // contract.setProjectEffect(0);
}else { // }else {
contract.setProjectEffect(1); // contract.setProjectEffect(1);
} // }
// 未回款完成 // // 未回款完成
contract.setPaymentState(0); // contract.setPaymentState(0);
// 项目合同 修改时不需要 项目id // 项目合同 修改时不需要 项目id
contractService.updateById(contract); // contractService.updateById(contract);
return wrkProject.getProjectId(); return wrkProject.getProjectId();
} }
public void updateState(Long projectId, Integer projectEffect)
{
WrkProject project = new WrkProject();
project.setProjectId(projectId);
project.setProjectEffect(projectEffect);
updateById(project);
}
@Transactional
public Long delete(Long projectId)
{
WrkProject project = getById(projectId);
if (null != project){
// 项目有效状态
Integer projectEffect = project.getProjectEffect();
if (1 == projectEffect){
log.info("删除了有效项目, 但是此处不管");
}
}
removeById(projectId);
return projectId;
}
@Transactional
public Long saveContract(ContractDTO contract) {
// 项目合同
WrkProjectContract projectContract = WrkProjectContract.builder().build();
BeanUtil.copyProperties(contract, projectContract);
projectContract.setProjectId(contract.getProjectId());
// 未回款完成
projectContract.setPaymentState(0);
LocalDateTime now = LocalDateTime.now();
boolean projectEffect = !now.isBefore(contract.getContractStartTime()) || !now.isAfter(contract.getContractEndTime());
// 之前 && 之后 无效
projectContract.setProjectEffect(projectEffect ? 1 : 0);
contractService.save(projectContract);
updateState(contract.getProjectId(), projectEffect ? 1 : 0 );
return projectContract.getContractId();
}
@Transactional
public Long updateContract(ContractDTO contract) {
// 项目合同
WrkProjectContract projectContract = WrkProjectContract.builder().build();
BeanUtil.copyProperties(contract, projectContract);
projectContract.setProjectId(null);
LocalDateTime now = LocalDateTime.now();
boolean projectEffect = !now.isBefore(contract.getContractStartTime()) || !now.isAfter(contract.getContractEndTime());
// 之前 && 之后 无效
projectContract.setProjectEffect(projectEffect ? 1 : 0);
// 未回款完成
projectContract.setPaymentState(0);
contractService.updateById(projectContract);
updateState(contract.getProjectId(), projectEffect ? 1 : 0 );
return projectContract.getContractId();
}
public void deleteContract(Long contractId) {
contractService.delete(contractId);
}
} }