Browse Source

Merge remote-tracking branch 'origin/master'

lizhenhao 2 years atrás
parent
commit
94958b7b6d

+ 44 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractFileController.java

@@ -0,0 +1,44 @@
+package com.jeeplus.test.cw.contractRegistration.controller;
+
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFile;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.contractRegistration.service.ContractFileService;
+import com.jeeplus.test.workContract.service.dto.WorkContractFileDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-10 16:13
+ **/
+@RestController
+@Api(tags ="财务合同登记归档管理")
+@RequestMapping(value = "/contract/contractFile")
+public class ContractFileController {
+
+    @Autowired
+    private ContractFileService service;
+
+    /**
+     * 合同登记新增/修改
+     */
+    @ApiOperation(value = "合同登记归档新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody ContractFile contractFile) throws Exception{
+        String id = service.saveInfo(contractFile);
+        return ResponseUtil.newInstance().add("businessTable", "cw_work_contract_file").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody ContractFile contractFile) {
+        service.updateStatusById(contractFile);
+    }
+}

+ 81 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/controller/ContractInfoController.java

@@ -0,0 +1,81 @@
+package com.jeeplus.test.cw.contractRegistration.controller;
+
+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.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.contractRegistration.service.ContractInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-08 10:52
+ **/
+@RestController
+@Api(tags ="财务合同登记管理")
+@RequestMapping(value = "/contract/registration")
+public class ContractInfoController {
+
+    @Autowired
+    private ContractInfoService service;
+
+    /**
+     * 列表查询
+     * @param info
+     * @return
+     */
+    @ApiOperation(value = "列表查询")
+    @PreAuthorize("hasAnyAuthority('cw_work_contract_info:list')")
+    @GetMapping("/list")
+    public ResponseEntity<IPage<ContractInfo>> list(ContractInfo info, Page<ContractInfo> page) throws Exception {
+        QueryWrapper<ContractInfo> wrapper = QueryWrapperGenerator.buildQueryCondition(info, ContractInfo.class);
+        IPage<ContractInfo> list = service.list(page,info,wrapper);
+        return ResponseEntity.ok(list);
+    }
+
+    /**
+     * 合同登记新增/修改
+     */
+    @ApiOperation(value = "合同登记新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody ContractInfo info) throws Exception{
+        String id = service.saveInfo(info);
+        return ResponseUtil.newInstance().add("businessTable", "cw_work_contract_info").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 合同登记信息删除
+     */
+    @ApiOperation(value = "合同登记删除")
+    @GetMapping(value = "remove")
+    public String remove(@RequestParam String id) {
+        return service.removeById(id);
+    }
+
+    /**
+     * 合同登记查询
+     */
+    @ApiOperation(value = "合同登记查询")
+    @GetMapping(value = "findById")
+    public ContractInfo findById(@RequestParam String id) {
+        return service.findById(id);
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody ContractInfo info) {
+        service.updateStatusById(info);
+    }
+}

+ 47 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractFile.java

@@ -0,0 +1,47 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-10 16:06
+ **/
+@Data
+@TableName(value = "cw_work_contract_file")
+public class ContractFile extends BaseEntity {
+
+    /**
+     * 合同登记主键值
+     */
+    private String contractInfoId;
+    /**
+     * 流程id
+     */
+    private String procInsId;
+    private String processDefinitionId;
+    /**
+     * 归档人
+     */
+    private String fileCreateName;
+    /**
+     * 归档状态
+     */
+    private String filedType;
+    /**
+     * 归档完成时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private String filedData;
+    /**
+     * 案卷号
+     */
+    private String filedNo;
+    /**
+     * 确认案卷号
+     */
+    private String confirmFiledNo;
+
+}

+ 72 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/domain/ContractInfo.java

@@ -0,0 +1,72 @@
+package com.jeeplus.test.cw.contractRegistration.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.query.Query;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-08 10:42
+ **/
+@Data
+@TableName(value = "cw_work_contract_info")
+public class ContractInfo extends BaseEntity {
+
+    //合同编号(字典值)
+    public static final String BIZ_CODE = "10";
+
+    @Query(tableColumn = "a.contract_no")
+    private String contractNo;              //合同编号
+    @Query(tableColumn = "a.contract_name")
+    private String contractName;            //合同名称
+
+    private String payerSubject;            //付款主体
+    private String paymentMethod;           //付款方式
+    @Query(tableColumn = "a.signing_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private String signingDate;             //签约日期
+    @Query(tableColumn = "a.contract_amount")
+    private Double contractAmount;          //合同金额(元)
+    private Double actualContractAmount;    //合同实际金额
+    private String contractNum;             //合同份数
+    private String paymentAgreement;        //付款约定
+    @TableField(fill = FieldFill.UPDATE)
+    private String changeNum;               //修改次数
+    @Query(tableColumn = "a.department")
+    private String department;              //所属部门
+    private String clientContacts;          //委托方联系人
+    private String clientContactsPhone;     //委托方联系人电话
+    private String contractApprovalType;    //合同归档审批类型
+    private String procInsId;               //流程id
+    private String processDefinitionId;     //
+    private String status;                  //状态
+
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;                //创建人名称
+
+    @TableField(exist = false)
+    @Query(tableColumn = "c.id")
+    private String createId;                //创建人id
+
+    @TableField(exist = false)
+    private String contractStatus;          //合同状态
+
+    /**
+     * 归档状态
+     */
+    @Query(tableColumn = "b.filed_type")
+    private String filedType;
+
+    @TableField(exist = false)
+    private String[] contractAmounts;
+
+    @TableField(exist = false)
+    private String[] contractDates;
+}

+ 16 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractFileMapper.java

@@ -0,0 +1,16 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFile;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-10 16:10
+ **/
+public interface ContractFileMapper extends BaseMapper<ContractFile> {
+
+    void updateStatusById(@Param("id") String id, @Param("filedType")String filedType);
+
+    ContractFile selectFileByContractInfoId (@Param("id") String id);
+}

+ 26 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/ContractInfoMapper.java

@@ -0,0 +1,26 @@
+package com.jeeplus.test.cw.contractRegistration.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.workContract.domain.WorkContractInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-08 10:47
+ **/
+public interface ContractInfoMapper extends BaseMapper<ContractInfo> {
+
+    IPage<ContractInfo> findPageList(Page<ContractInfo> page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper);
+
+    ContractInfo findById (@Param("id") String id);
+
+    void updateStatusById(@Param("id") String id, @Param("status")String status);
+}

+ 16 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/xml/ContractFileMapper.xml

@@ -0,0 +1,16 @@
+<?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.jeeplus.test.cw.contractRegistration.mapper.ContractFileMapper">
+    <update id="updateStatusById">
+        UPDATE cw_work_contract_file SET filed_type = #{filedType}, filed_data = NOW()
+        <if test="filedType == '4'.toString()">
+            ,proc_ins_id = null
+            ,process_definition_id = null
+        </if>
+        WHERE del_flag = 0 AND contract_info_id = #{id}
+    </update>
+    <select id="selectFileByContractInfoId"
+            resultType="com.jeeplus.test.cw.contractRegistration.domain.ContractFile">
+        SELECT * FROM `cw_work_contract_file` WHERE del_flag = 0 AND contract_info_id = #{id}
+    </select>
+</mapper>

+ 75 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/mapper/xml/ContractInfoMapper.xml

@@ -0,0 +1,75 @@
+<?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.jeeplus.test.cw.contractRegistration.mapper.ContractInfoMapper">
+    <update id="updateStatusById">
+        UPDATE cw_work_contract_info SET `status` = #{status} WHERE del_flag = 0 AND id = #{id}
+    </update>
+    <select id="findPageList" resultType="com.jeeplus.test.cw.contractRegistration.domain.ContractInfo">
+        SELECT
+			a.id,
+			c.`name` AS create_by,
+			c.`id` AS createId,
+			a.create_date,
+			a.update_by,
+			a.update_date,
+			a.del_flag,
+			a.contract_no as contractNo,
+			a.contract_name as contractName,
+			a.payer_subject as payerSubject,
+			a.payment_method as paymentMethod,
+			DATE_FORMAT(a.signing_date,'%Y-%m-%d') as signingDate,
+            a.contract_amount as contractAmount,
+            a.actual_contract_amount as actualContractAmount,
+            a.contract_num as contractNum,
+            a.payment_agreement as paymentAgreement,
+            a.change_num as changeNum,
+            a.department,
+            a.client_contacts as clientContacts,
+            a.client_contacts_phone as clientContactsPhone,
+            a.contract_approval_type as contractApprovalType,
+            a.proc_ins_id as procInsId,
+            a.process_definition_id as processDefinitionId,
+            a.status,
+            b.filed_type as filedType
+		FROM
+			cw_work_contract_info a
+            LEFT JOIN cw_work_contract_file b on a.id = b.contract_info_id
+            LEFT JOIN sys_user c ON a.create_by = c.id
+		${ew.customSqlSegment}
+		ORDER BY a.update_date DESC
+    </select>
+    <select id="findById" resultType="com.jeeplus.test.cw.contractRegistration.domain.ContractInfo">
+        SELECT
+			a.id,
+			c.`name` AS createBy,
+			c.`id` AS createId,
+			a.create_date,
+			a.update_by,
+			a.update_date,
+			a.del_flag,
+			a.contract_no as contractNo,
+			a.contract_name as contractName,
+			a.payer_subject as payerSubject,
+			a.payment_method as paymentMethod,
+			DATE_FORMAT(a.signing_date,'%Y-%m-%d') as signingDate,
+            a.contract_amount as contractAmount,
+            a.actual_contract_amount as actualContractAmount,
+            a.contract_num as contractNum,
+            a.payment_agreement as paymentAgreement,
+            a.change_num as changeNum,
+            a.department,
+            a.client_contacts as clientContacts,
+            a.client_contacts_phone as clientContactsPhone,
+            a.contract_approval_type as contractApprovalType,
+            a.proc_ins_id as procInsId,
+            a.status,
+            b.filed_type as filedType
+		FROM
+			cw_work_contract_info a
+            LEFT JOIN cw_work_contract_file b on a.id = b.contract_info_id
+            LEFT JOIN sys_user c ON a.create_by = c.id
+        WHERE
+			a.id = #{id}
+			AND a.del_flag = 0
+    </select>
+</mapper>

+ 80 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/service/ContractFileService.java

@@ -0,0 +1,80 @@
+package com.jeeplus.test.cw.contractRegistration.service;
+
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractFile;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.contractRegistration.mapper.ContractFileMapper;
+import com.jeeplus.test.workContract.domain.WorkContractFile;
+import com.jeeplus.test.workContract.service.dto.WorkContractFileDto;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-10 16:12
+ **/
+@Service
+public class ContractFileService {
+
+    @Resource
+    private ContractFileMapper mapper;
+
+    /**
+     * 根据id修改status
+     */
+    public void updateStatusById(ContractFile contractFile) {
+        mapper.updateStatusById(contractFile.getId(), contractFile.getFiledType());
+    }
+
+    public String saveInfo(ContractFile contractFile) throws Exception {
+        if (StringUtils.isNotEmpty(contractFile.getId())) {
+            ContractFile info = mapper.selectFileByContractInfoId(contractFile.getId());
+            if (info != null) {
+                return update(contractFile, info.getId());
+            }
+        }
+        return add(contractFile);
+    }
+
+    /**
+     * 合同登记新增
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String add(ContractFile contractFile) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        String id = UUID.randomUUID().toString().replace("-", "");
+        ContractFile file = new ContractFile();
+        BeanUtils.copyProperties(contractFile, file);
+        file.setId(id);
+        file.setCreateBy(userDTO.getId());
+        file.setCreateDate(new Date());
+        file.setUpdateBy(userDTO.getId());
+        file.setUpdateDate(new Date());
+        mapper.insert(file);
+        return id;
+    }
+
+    /**
+     * 合同登记归档修改
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String update(ContractFile contractFile, String id) {
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        ContractFile file = new ContractFile();
+        BeanUtils.copyProperties(contractFile, file);
+        file.setId(id);
+        file.setUpdateBy(userDTO.getId());
+        file.setUpdateDate(new Date());
+        mapper.updateById(file);
+        return file.getId();
+    }
+}

+ 178 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/cw/contractRegistration/service/ContractInfoService.java

@@ -0,0 +1,178 @@
+package com.jeeplus.test.cw.contractRegistration.service;
+
+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.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.StringUtils;
+import com.jeeplus.sys.utils.UserUtils;
+import com.jeeplus.test.cw.contractRegistration.domain.ContractInfo;
+import com.jeeplus.test.cw.contractRegistration.mapper.ContractInfoMapper;
+import com.jeeplus.test.mould.service.SerialnumTplService;
+import com.jeeplus.test.oss.domain.WorkAttachment;
+import com.jeeplus.test.reimbursement.reimbursementType.domain.ReimbursementTypeInfo;
+import com.jeeplus.test.workContract.domain.WorkContractInfo;
+import com.jeeplus.test.workContract.service.dto.WorkAttachmentDto;
+import com.jeeplus.test.workContract.service.dto.WorkContractInfoDto;
+import org.flowable.editor.language.json.converter.util.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-08 10:50
+ **/
+@Service
+public class ContractInfoService {
+
+    @Resource
+    private ContractInfoMapper mapper;
+
+    @Resource
+    private SerialnumTplService serialnumTplService;
+
+    /**
+     * 根据id修改status
+     */
+    public void updateStatusById(ContractInfo info) {
+        mapper.updateStatusById(info.getId(), info.getStatus());
+    }
+
+    public IPage<ContractInfo> list(Page<ContractInfo> page, ContractInfo info, QueryWrapper<ContractInfo> wrapper) {
+//        LambdaQueryWrapper<ContractInfo> wrapper = new LambdaQueryWrapper<>();
+
+        //条件查询list
+        //1、合同编号
+        if (StringUtils.isNotEmpty(info.getContractNo())) {
+            wrapper.like("a.contract_no", info.getContractNo());
+        }
+        //2、合同名称
+        if (StringUtils.isNotEmpty(info.getContractName())) {
+            wrapper.like("a.contract_name", info.getContractName());
+        }
+        //3、合同金额(区间)
+        String[] contractAmounts = info.getContractAmounts();
+        if (contractAmounts != null) {
+            if (StringUtils.isNotEmpty(contractAmounts[0])) {
+                wrapper.ge("a.contract_amount",contractAmounts[0]);
+            }
+            if (StringUtils.isNotEmpty(contractAmounts[1])) {
+                wrapper.le("a.contract_amount", contractAmounts[1]);
+            }
+        }
+        //4、签约时间(区间)
+        String[] contractDates = info.getContractDates();
+        if (contractDates != null) {
+
+            wrapper.between("a.signing_date", contractDates[0], contractDates[1]);
+        }
+        //5、创建人
+        if (StringUtils.isNotEmpty(info.getContractName())) {
+            wrapper.like("a.contract_name", info.getContractName());
+        }
+        //6、所属部门
+        if (StringUtils.isNotEmpty(info.getDepartment())) {
+            wrapper.like("a.department", info.getDepartment());
+        }
+        //7、状态
+        if (StringUtils.isNotEmpty(info.getStatus())) {
+            wrapper.like("a.status", info.getStatus());
+        }
+        //8、归档状态
+        if (StringUtils.isNotEmpty(info.getFiledType())) {
+            wrapper.like("b.filed_type", info.getFiledType());
+        }
+        wrapper.eq("a.del_flag","0");
+        IPage<ContractInfo> pageList = mapper.findPageList(page, wrapper);
+
+        return pageList;
+    }
+
+    /**
+     * 合同登记查询
+     */
+    public ContractInfo findById(String id) {
+
+        ContractInfo dto = mapper.findById(id);
+        if (dto != null){
+            dto.setContractStatus("新创建");
+        }
+
+        return dto;
+    }
+
+    public String saveInfo(ContractInfo info) throws Exception {
+        if (StringUtils.isNotEmpty(info.getId())) {
+            ContractInfo contractInfo = mapper.selectById(info.getId());
+            if (contractInfo != null) {
+                info.setCreateBy(info.getCreateId());
+                return update(info);
+            }
+        }
+        return add(info);
+    }
+
+    /**
+     * 合同登记删除
+     */
+    public String removeById(String id) {
+        mapper.deleteById(id);
+        // 附件删除
+        return "删除完成!";
+    }
+
+    /**
+     * 合同登记修改
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String update(ContractInfo info) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        //合同编号生成
+//        String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), WorkContractInfoDto.BIZ_CODE);
+        ContractInfo contractInfo = new ContractInfo();
+        BeanUtils.copyProperties(info, contractInfo);
+//        info.setNo(serialNum);
+        contractInfo.setUpdateBy(userDTO.getId());
+        contractInfo.setUpdateDate(new Date());
+        int num = Integer.parseInt(contractInfo.getChangeNum()) + 1;
+        contractInfo.setChangeNum(num + "");
+        mapper.updateById(contractInfo);
+
+        return info.getId();
+    }
+
+    /**
+     * 合同登记新增
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String add(ContractInfo contractInfo) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+        //合同编号生成
+        String serialNum = serialnumTplService.genSerialNum(userDTO.getCompanyDTO().getId(), ContractInfo.BIZ_CODE);
+        String id = UUID.randomUUID().toString().replace("-", "");
+        ContractInfo info = new ContractInfo();
+        BeanUtils.copyProperties(contractInfo, info);
+        info.setId(id);
+//        info.setNo(serialNum);
+        info.setContractNo(serialNum);
+        info.setCreateBy(userDTO.getId());
+        info.setCreateDate(new Date());
+        info.setUpdateBy(userDTO.getId());
+
+        info.setUpdateDate(new Date());
+        mapper.insert(info);
+
+        return id;
+    }
+}