Browse Source

费用添加合同

contract
Yen 2 years ago
parent
commit
2f59af99f4
  1. 147
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostContractController.java
  2. 125
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostContract.java
  3. 57
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostContractBo.java
  4. 14
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostContractMapper.java
  5. 14
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostContractService.java
  6. 22
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostContractServiceImpl.java

147
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostContractController.java

@ -0,0 +1,147 @@
package com.qs.serve.modules.tbs.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.sys.entity.SysAttach;
import com.qs.serve.modules.sys.service.SysAttachService;
import com.qs.serve.modules.tbs.entity.bo.TbsCostContractBo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.tbs.entity.TbsCostContract;
import com.qs.serve.modules.tbs.service.TbsCostContractService;
import javax.validation.Valid;
import java.util.Arrays;
import java.util.List;
/**
* 预算 费用合同
* @author YenHex
* @since 2023-03-14
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("tbs/costContract")
public class TbsCostContractController {
private TbsCostContractService tbsCostContractService;
private SysAttachService attachService;
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('tbs:costApply:query')")
public R<List<TbsCostContract>> getList(TbsCostContract param){
LambdaQueryWrapper<TbsCostContract> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<TbsCostContract> list = tbsCostContractService.list(lqw);
for (TbsCostContract contract : list) {
if(CollectionUtil.isNotEmpty(contract.getAttachIds())){
List<String> attachIds = Arrays.asList(contract.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
contract.setAttachInfoList(attachList);
}
}
return R.ok(list);
}
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('tbs:costApply:query')")
public R<PageVo<TbsCostContract>> getPage(TbsCostContract param){
LambdaQueryWrapper<TbsCostContract> lqw = new LambdaQueryWrapper<>(param);
PageUtil.startPage();
List<TbsCostContract> list = tbsCostContractService.list(lqw);
for (TbsCostContract contract : list) {
if(CollectionUtil.isNotEmpty(contract.getAttachIds())){
List<String> attachIds = Arrays.asList(contract.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
contract.setAttachInfoList(attachList);
}
}
return R.byPageHelperList(list);
}
/**
* ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.Budget, title = "费用合同", biz = BizType.QUERY)
@PreAuthorize("hasRole('tbs:costApply:query')")
public R<TbsCostContract> getById(@PathVariable("id") String id){
TbsCostContract contract = tbsCostContractService.getById(id);
if(CollectionUtil.isNotEmpty(contract.getAttachIds())){
List<String> attachIds = Arrays.asList(contract.getAttachIds());
List<SysAttach> attachList = attachService.listByIds(attachIds);
contract.setAttachInfoList(attachList);
}
return R.ok(contract);
}
/**
* 更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.Budget, title = "费用合同", biz = BizType.UPDATE)
@PreAuthorize("hasRole('tbs:costApply:update')")
public R<?> updateById(@RequestBody @Valid TbsCostContractBo param){
TbsCostContract entity = CopierUtil.copy(param,new TbsCostContract());
boolean result = tbsCostContractService.updateById(entity);
return R.isTrue(result);
}
/**
* 新增
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.Budget, title = "费用合同", biz = BizType.INSERT)
@PreAuthorize("hasRole('tbs:costApply:insert')")
public R<?> save(@RequestBody @Valid TbsCostContractBo param){
TbsCostContract entity = CopierUtil.copy(param,new TbsCostContract());
boolean result = tbsCostContractService.save(entity);
return R.isTrue(result);
}
/**
* 删除
* @param ids
* @return
*/
@DeleteMapping("/deleteById/{ids}")
@SysLog(module = SystemModule.Budget, title = "费用合同", biz = BizType.DELETE)
@PreAuthorize("hasRole('tbs:costApply:delete')")
public R<?> deleteById(@PathVariable("ids") String ids){
List<Long> idsLong = StringUtils.splitIdLong(ids);
boolean result = tbsCostContractService.removeByIds(idsLong);
return R.isTrue(result);
}
}

125
src/main/java/com/qs/serve/modules/tbs/entity/TbsCostContract.java

@ -0,0 +1,125 @@
package com.qs.serve.modules.tbs.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* 费用合同 实体类
* @author YenHex
* @since 2023-03-14
*/
@Data
@TableName(value = "tbs_cost_contract",autoResultMap = true)
public class TbsCostContract implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 合同名称 */
@NotBlank(message = "合同名称不能为空")
@Length(max = 50,message = "合同名称长度不能超过50字")
private String contractName;
/** 合同金额 */
private BigDecimal contractAmount;
/** 合同条件(文本框) */
private String contractCondition;
/** 合同附件地址 */
@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] attachIds;
/** 签约时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime signTime;
/** 到期时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime expireTime;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 附件信息列表 */
@TableField(exist = false)
private List<?> attachInfoList;
public static TbsCostContract toNewObject(TbsCostContract source){
TbsCostContract costContract = new TbsCostContract();
costContract.setId(source.getId());
costContract.setCostApplyId(source.getCostApplyId());
costContract.setContractName(source.getContractName());
costContract.setContractAmount(source.getContractAmount());
costContract.setContractCondition(source.getContractCondition());
costContract.setAttachIds(source.getAttachIds());
costContract.setSignTime(source.getSignTime());
costContract.setExpireTime(source.getExpireTime());
costContract.setRemark(source.getRemark());
costContract.setCreateTime(source.getCreateTime());
costContract.setUpdateTime(source.getUpdateTime());
costContract.setTenantId(source.getTenantId());
costContract.setCreateBy(source.getCreateBy());
costContract.setUpdateBy(source.getUpdateBy());
costContract.setDelFlag(source.getDelFlag());
return costContract;
}
}

57
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsCostContractBo.java

@ -0,0 +1,57 @@
package com.qs.serve.modules.tbs.entity.bo;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 费用合同 Bo
* @author YenHex
* @since 2023-03-14
*/
@Data
public class TbsCostContractBo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 合同名称 */
@NotBlank(message = "合同名称不能为空")
private String contractName;
/** 合同金额 */
private BigDecimal contractAmount;
/** 合同条件(文本框) */
private String contractCondition;
/** 合同附件地址 */
private String[] attachIds;
/** 签约时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime signTime;
/** 到期时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime expireTime;
}

14
src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostContractMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsCostContract;
/**
* 费用合同 Mapper
* @author YenHex
* @date 2023-03-14
*/
public interface TbsCostContractMapper extends BaseMapper<TbsCostContract> {
}

14
src/main/java/com/qs/serve/modules/tbs/service/TbsCostContractService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.tbs.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tbs.entity.TbsCostContract;
/**
* 费用合同 服务接口
* @author YenHex
* @date 2023-03-14
*/
public interface TbsCostContractService extends IService<TbsCostContract> {
}

22
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostContractServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.tbs.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.entity.TbsCostContract;
import com.qs.serve.modules.tbs.service.TbsCostContractService;
import com.qs.serve.modules.tbs.mapper.TbsCostContractMapper;
/**
* 费用合同 服务实现类
* @author YenHex
* @since 2023-03-14
*/
@Slf4j
@Service
@AllArgsConstructor
public class TbsCostContractServiceImpl extends ServiceImpl<TbsCostContractMapper,TbsCostContract> implements TbsCostContractService {
}
Loading…
Cancel
Save