1. 回款相关
This commit is contained in:
parent
8f4e2a7bf8
commit
1c23791f02
|
|
@ -23,14 +23,10 @@ import java.lang.annotation.*;
|
|||
public @interface SysLog {
|
||||
|
||||
String value() default "";
|
||||
|
||||
/**
|
||||
* 操作类型
|
||||
*/
|
||||
BusinessType businessType() default BusinessType.OTHER;
|
||||
|
||||
boolean export() default false;
|
||||
|
||||
/**
|
||||
* 是否 入库
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import java.lang.reflect.Field;
|
|||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
public class WrapperUtils {
|
||||
|
|
@ -29,9 +28,11 @@ public class WrapperUtils {
|
|||
if (null != columns) {
|
||||
queryWrapper = queryWrapper.select(columns);
|
||||
}
|
||||
if (null != commonParam){
|
||||
// 构造Wrapper
|
||||
queryWrapper = queryWrapper
|
||||
.orderBy(true, "asc".equals(commonParam.getIsAsc()), commonParam.getOrderBy());
|
||||
}
|
||||
if (query == null) {
|
||||
return queryWrapper.lambda();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ import java.time.LocalDateTime;
|
|||
*/
|
||||
@Data
|
||||
public class ContractDTO {
|
||||
/**
|
||||
* 新增合同时
|
||||
*/
|
||||
private Long projectId;
|
||||
/**
|
||||
* 合同Id
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -1,14 +1,12 @@
|
|||
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.Update;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Null;
|
||||
|
||||
/**
|
||||
* @auther: zhao
|
||||
|
|
@ -31,7 +29,7 @@ public class ProjectDTO {
|
|||
* 项目合同
|
||||
*/
|
||||
@NotNull(message = "项目合同不能为空", groups = Create.class)
|
||||
@NotNull(message = "项目合同不能为空", groups = Update.class)
|
||||
@Null(message = "项目合同不能为空", groups = Update.class)
|
||||
@Valid
|
||||
private ContractDTO contract;
|
||||
|
||||
|
|
|
|||
|
|
@ -76,4 +76,11 @@ public class WrkProject extends BaseEntity {
|
|||
@TableField(value = "update_by", fill = FieldFill.UPDATE)
|
||||
@Condition(name = "update_by", type = Condition.ConditionType.eq)
|
||||
private String updateBy;
|
||||
|
||||
/**
|
||||
* 项目有效状态, 合同处于有效时, 项目就是有效
|
||||
*/
|
||||
@TableField(value = "project_effect")
|
||||
@DictFormat(dictType = "project_effect")
|
||||
private Integer projectEffect;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,6 +67,11 @@ public class WrkProjectContract extends BaseEntity {
|
|||
*/
|
||||
@TableField(value = "contract_amount")
|
||||
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")
|
||||
@DictFormat(dictType = "payment_state")
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.chushang.common.mybatis.base.BaseEntity;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
|
@ -38,8 +39,8 @@ public class WrkProjectPayment extends BaseEntity {
|
|||
/**
|
||||
* 回款合同id
|
||||
*/
|
||||
@TableField(value = "contracty_id")
|
||||
private Long contractyId;
|
||||
@TableField(value = "contract_id")
|
||||
private Long contractId;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
}
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
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.validator.Create;
|
||||
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.mybatis.page.CommonParam;
|
||||
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.po.WrkProject;
|
||||
import com.chushang.inspection.project.entity.po.WrkProjectContract;
|
||||
import com.chushang.inspection.project.service.WrkProjectContractService;
|
||||
import com.chushang.inspection.project.service.WrkProjectService;
|
||||
import com.chushang.security.annotation.RequiresPermissions;
|
||||
import com.chushang.security.utils.SecurityUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -32,8 +30,8 @@ public class WrkProjectController {
|
|||
|
||||
@Resource
|
||||
WrkProjectService projectService;
|
||||
|
||||
|
||||
@Resource
|
||||
WrkProjectContractService contractService;
|
||||
/**
|
||||
* 获取项目列表
|
||||
*/
|
||||
|
|
@ -50,7 +48,7 @@ public class WrkProjectController {
|
|||
* 新增项目 -- 暂存 + 提交审核
|
||||
*/
|
||||
@PostMapping(value = "/save")
|
||||
// @RequiresPermissions("inspection:project:save")
|
||||
@RequiresPermissions("inspection:project:save")
|
||||
@SysLog(value = "项目",businessType = BusinessType.INSERT)
|
||||
public AjaxResult save(@RequestBody @Validated(Create.class) ProjectDTO project){
|
||||
return AjaxResult.success(projectService.save(project));
|
||||
|
|
@ -60,7 +58,7 @@ public class WrkProjectController {
|
|||
* 修改 项目
|
||||
*/
|
||||
@PostMapping(value = "/update")
|
||||
// @RequiresPermissions("inspection:project:save")
|
||||
@RequiresPermissions("inspection:project:save")
|
||||
@SysLog(value = "项目",businessType = BusinessType.UPDATE)
|
||||
public AjaxResult update(@RequestBody @Validated(Update.class) ProjectDTO project){
|
||||
Long projectId = project.getProjectId();
|
||||
|
|
@ -68,6 +66,66 @@ public class WrkProjectController {
|
|||
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));
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
//
|
||||
// /**
|
||||
|
|
|
|||
|
|
@ -1,10 +1,22 @@
|
|||
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 org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.aspectj.weaver.loadtime.Aj;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 回款
|
||||
* @auther: zhao
|
||||
* @date: 2024/6/15 11:22
|
||||
*/
|
||||
|
|
@ -12,4 +24,31 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
@RestController
|
||||
@RequestMapping(value = "/project/payment")
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,23 @@
|
|||
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.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 org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.chushang.inspection.project.mapper.WrkProjectContractMapper;
|
||||
import com.chushang.inspection.project.entity.po.WrkProjectContract;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @auther: zhao
|
||||
|
|
@ -14,5 +26,30 @@ import com.chushang.inspection.project.entity.po.WrkProjectContract;
|
|||
@Slf4j
|
||||
@Service
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +1,31 @@
|
|||
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.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 org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.chushang.inspection.project.entity.po.WrkProjectPayment;
|
||||
import com.chushang.inspection.project.mapper.WrkProjectPaymentMapper;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* @auther: zhao
|
||||
* @date: 2024/6/15 10:51
|
||||
|
|
@ -14,5 +33,86 @@ import com.chushang.inspection.project.mapper.WrkProjectPaymentMapper;
|
|||
@Slf4j
|
||||
@Service
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,8 +8,10 @@ import com.chushang.common.mybatis.page.CommonParam;
|
|||
import com.chushang.common.mybatis.utils.PageResult;
|
||||
import com.chushang.common.mybatis.utils.WrapperUtils;
|
||||
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.po.WrkProjectContract;
|
||||
import com.chushang.security.utils.SecurityUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
|
@ -48,32 +50,28 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
|
|||
{
|
||||
WrkProject wrkProject = new WrkProject();
|
||||
BeanUtil.copyProperties(project, wrkProject);
|
||||
// Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
||||
Long deptId = 200L;
|
||||
Long deptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
||||
// Long deptId = 200L;
|
||||
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);
|
||||
|
||||
// 项目合同
|
||||
WrkProjectContract contract = WrkProjectContract.builder().build();
|
||||
BeanUtil.copyProperties(project.getContract(), contract);
|
||||
contract.setProjectId(wrkProject.getProjectId());
|
||||
saveContract(contract);
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目
|
||||
* 修改项目 -- 不同时修改 合同
|
||||
*/
|
||||
@Transactional
|
||||
public Long update(ProjectDTO project)
|
||||
|
|
@ -82,19 +80,84 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
|
|||
BeanUtil.copyProperties(project, wrkProject);
|
||||
this.updateById(wrkProject);
|
||||
// 项目合同
|
||||
WrkProjectContract contract = WrkProjectContract.builder().build();
|
||||
BeanUtil.copyProperties(project.getContract(), contract);
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 在 之前 && 在 之后 无效
|
||||
if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) {
|
||||
contract.setProjectEffect(0);
|
||||
}else {
|
||||
contract.setProjectEffect(1);
|
||||
}
|
||||
// 未回款完成
|
||||
contract.setPaymentState(0);
|
||||
// WrkProjectContract contract = WrkProjectContract.builder().build();
|
||||
// BeanUtil.copyProperties(project.getContract(), contract);
|
||||
// LocalDateTime now = LocalDateTime.now();
|
||||
// // 在 之前 && 在 之后 无效
|
||||
// if (now.isBefore(contract.getContractStartTime()) && now.isAfter(contract.getContractEndTime())) {
|
||||
// contract.setProjectEffect(0);
|
||||
// }else {
|
||||
// contract.setProjectEffect(1);
|
||||
// }
|
||||
// // 未回款完成
|
||||
// contract.setPaymentState(0);
|
||||
// 项目合同 修改时不需要 项目id
|
||||
contractService.updateById(contract);
|
||||
// contractService.updateById(contract);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue