浏览代码

客户登记,合同登记

sangwenwei 1 年之前
父节点
当前提交
f6f424b4f9
共有 34 个文件被更改,包括 3048 次插入0 次删除
  1. 153 0
      jeeplus-modules/jeeplus-business/pom.xml
  2. 24 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/JeeplusBusinessApplication.java
  3. 220 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/controller/JyWorkClientController.java
  4. 31 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientBank.java
  5. 177 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientInfo.java
  6. 14 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientJobTypeInfo.java
  7. 56 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientLinkman.java
  8. 12 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/dto/JyPageInfoDto.java
  9. 25 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/dto/JyWorkClientInfosDto.java
  10. 10 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientBankMapper.java
  11. 23 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientInfoMapper.java
  12. 10 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientJobTypeInfoMapper.java
  13. 10 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientLinkmanMapper.java
  14. 146 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/xml/JyWorkClientInfoMapper.xml
  15. 440 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/service/JyWorkClientService.java
  16. 106 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/controller/JyWorkContractController.java
  17. 61 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/controller/JyWorkContractFileController.java
  18. 27 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/domain/JyContractParticipant.java
  19. 31 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/domain/JyWorkContractFile.java
  20. 196 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/domain/JyWorkContractInfo.java
  21. 23 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyContractParticipantMapper.java
  22. 15 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyWorkContractFileMapper.java
  23. 61 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyWorkContractInfoMapper.java
  24. 11 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyContractParticipantMapper.xml
  25. 13 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractFileMapper.xml
  26. 206 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractInfoMapper.xml
  27. 90 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/JyWorkContractFileService.java
  28. 507 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/JyWorkContractService.java
  29. 29 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/dto/JyWorkContractFileDto.java
  30. 159 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/dto/JyWorkContractInfoDto.java
  31. 102 0
      jeeplus-modules/jeeplus-business/src/main/resources/bootstrap.yml
  32. 18 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/DictController.java
  33. 41 0
      jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/DictTypeService.java
  34. 1 0
      jeeplus-modules/pom.xml

+ 153 - 0
jeeplus-modules/jeeplus-business/pom.xml

@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>jeeplus-modules</artifactId>
+        <groupId>org.jeeplus</groupId>
+        <version>9.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>jeeplus-business</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+        <!-- poi office -->
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+            <version>4.3.0</version>
+        </dependency>
+
+<!--        <dependency>-->
+<!--            <groupId>org.jeeplus</groupId>-->
+<!--            <artifactId>jeeplus-flowable</artifactId>-->
+<!--            <version>${project.parent.version}</version>-->
+<!--        </dependency>-->
+
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-public-modules</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-common-mybatis-plus</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+
+
+        <!-- SpringCloud Alibaba Nacos -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Nacos Config -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+
+        <!-- SpringCloud Alibaba Sentinel -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+
+        <!--添加actuator依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <!--spring boot admin依赖-->
+        <dependency>
+            <groupId>de.codecentric</groupId>
+            <artifactId>spring-boot-admin-starter-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-mail</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-common-core</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-common-security</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.jeeplus</groupId>-->
+<!--            <artifactId>jeeplus-system</artifactId>-->
+<!--            <version>${project.parent.version}</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.jeeplus</groupId>-->
+<!--            <artifactId>jeeplus-system-api</artifactId>-->
+<!--            <version>${project.parent.version}</version>-->
+<!--        </dependency>-->
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-common-log</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-common-swagger</artifactId>
+            <version>${project.parent.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jeeplus</groupId>
+            <artifactId>jeeplus-assess</artifactId>
+            <version>9.0</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.1.2.RELEASE</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+
+                </configuration>
+            </plugin>
+
+        </plugins>
+    </build>
+</project>

+ 24 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/JeeplusBusinessApplication.java

@@ -0,0 +1,24 @@
+package com.jeeplus.business;
+
+import com.jeeplus.core.annotation.JeeplusCloudApplication;
+import org.springframework.boot.SpringApplication;
+import org.springframework.cache.annotation.EnableCaching;
+
+/**
+ * 嘉溢合同项目模块
+ */
+
+@JeeplusCloudApplication
+public class JeeplusBusinessApplication {
+    public static void main(String[] args) {
+        SpringApplication.run ( JeeplusBusinessApplication.class, args );
+        System.out.println ( " O(∩_∩)O~ 嘉溢合同项目模块启动成功 ^_^゙  \n" + "    _                         _                   _                  _   \n" +
+                "   (_)                       | |                 | |                | |  \n" +
+                "    _    ___    ___   _ __   | |  _   _   ___    | |_    ___   ___  | |_ \n" +
+                "   | |  / _ \\  / _ \\ | '_ \\  | | | | | | / __|   | __|  / _ \\ / __| | __|\n" +
+                "   | | |  __/ |  __/ | |_) | | | | |_| | \\__ \\   | |_  |  __/ \\__ \\ | |_ \n" +
+                "   | |  \\___|  \\___| | .__/  |_|  \\__,_| |___/    \\__|  \\___| |___/  \\__|\n" +
+                "  _/ |               | |                                                 \n" +
+                " |__/                |_|                                                 " );
+    }
+}

+ 220 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/controller/JyWorkClientController.java

@@ -0,0 +1,220 @@
+package com.jeeplus.business.workClientInfo.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+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.business.workClientInfo.domain.JyWorkClientInfo;
+import com.jeeplus.business.workClientInfo.domain.dto.JyWorkClientInfosDto;
+import com.jeeplus.business.workClientInfo.service.JyWorkClientService;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.UserDTO;
+//import com.jeeplus.sys.utils.TicketQueryUtils;
+//import com.jeeplus.sys.utils.UserUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@Api(tags ="jyWorkClientInfo")
+@RestController
+@RequestMapping(value = "/JyWorkClientInfo/workClientInfo")
+public class JyWorkClientController {
+
+    @Resource
+    private JyWorkClientService jyWorkClientService;
+
+    /**
+     * 客户信息列表
+     */
+    @ApiOperation(value = "客户信息列表")
+    @GetMapping(value = "list")
+    public ResponseEntity<IPage<JyWorkClientInfo>> list(JyWorkClientInfo workClientInfo, Page<JyWorkClientInfo> page) throws Exception {
+        QueryWrapper<JyWorkClientInfo> workClientInfoQueryWrapper = QueryWrapperGenerator.buildQueryCondition(workClientInfo, JyWorkClientInfo.class);
+        if (ObjectUtil.isNotEmpty(workClientInfo)) {
+            if (ObjectUtil.isNotEmpty(workClientInfo.getCreateDates())) {
+                workClientInfoQueryWrapper.between("a.create_time",workClientInfo.getCreateDates()[0], workClientInfo.getCreateDates()[1]);
+            }
+            if (StringUtils.isNotBlank(workClientInfo.getCreateById())) {
+                workClientInfoQueryWrapper.eq("a.create_by_id",workClientInfo.getCreateById());
+            }
+            if (StringUtils.isNotEmpty(workClientInfo.getClientType())){
+                workClientInfoQueryWrapper.eq("a.client_type",workClientInfo.getClientType());
+            }
+            if (StringUtils.isNotEmpty(workClientInfo.getCompanyIndustry())){
+                workClientInfoQueryWrapper.eq("a.company_industry",workClientInfo.getCompanyIndustry());
+            }
+        }
+        IPage<JyWorkClientInfo> list = jyWorkClientService.list(page, workClientInfoQueryWrapper);
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        for (JyWorkClientInfo info: list.getRecords()) {
+            if(userDTO.getName().equals(info.getCreateById()) || userDTO.isAdmin()){
+                info.setCreateFlag("1");
+            }else{
+                info.setCreateFlag("0");
+            }
+        }
+        return ResponseEntity.ok (list);
+    }
+
+    /**
+     * 客户信息新增/修改
+     */
+    @ApiOperation(value = "客户信息新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity save(@RequestBody JyWorkClientInfosDto workClientInfosDto) {
+        if(ObjectUtil.isNotEmpty(workClientInfosDto)){
+            if(ObjectUtil.isNotEmpty(workClientInfosDto.getWorkClientInfo())){
+                if(StringUtils.isBlank(workClientInfosDto.getWorkClientInfo().getName())){
+                    return ResponseEntity.badRequest().body("保存信息失败,没有获取到用户名称");
+                }
+                if(!jyWorkClientService.haveWorkClient(workClientInfosDto)){
+                    return ResponseEntity.badRequest().body("用户已存在,保存失败");
+                }
+                if(!jyWorkClientService.haveUscCode(workClientInfosDto)){
+                    return ResponseEntity.badRequest().body("统一社会信用代码已存在,保存失败");
+                }
+                if(StringUtils.isNotBlank(workClientInfosDto.getWorkClientInfo().getId())){
+                    return ResponseEntity.ok(jyWorkClientService.update(workClientInfosDto));
+                }else{
+                    return ResponseEntity.ok(jyWorkClientService.save(workClientInfosDto));
+                }
+            }else{
+                return ResponseEntity.badRequest().body("保存信息失败,没有获取到数据");
+            }
+        }
+        return ResponseEntity.badRequest().body("保存信息失败,没有获取到数据");
+    }
+
+    /**
+     * 新建或修改  判断统一社会信用代码是否重复
+     */
+    @ApiOperation(value = "判断统一社会信用代码是否重复")
+    @GetMapping(value = "haveUscCode")
+    public boolean haveUscCode(@RequestParam String id,@RequestParam String uscCode) {
+        JyWorkClientInfosDto workClientInfosDto = new JyWorkClientInfosDto();
+        JyWorkClientInfo workClientInfo = new JyWorkClientInfo();
+        workClientInfo.setId(id);
+        workClientInfo.setUscCode(uscCode);
+        workClientInfosDto.setWorkClientInfo(workClientInfo);
+        return jyWorkClientService.haveUscCode(workClientInfosDto);
+    }
+
+    /**
+     * 新建或修改  判断客户是否重复
+     */
+    @ApiOperation(value = "判断客户是否重复")
+    @GetMapping(value = "haveWorkClient")
+    public boolean haveWorkClient(@RequestParam String id,@RequestParam String name) {
+        JyWorkClientInfosDto workClientInfosDto = new JyWorkClientInfosDto();
+        JyWorkClientInfo workClientInfo = new JyWorkClientInfo();
+        workClientInfo.setId(id);
+        workClientInfo.setName(name);
+        workClientInfosDto.setWorkClientInfo(workClientInfo);
+        return jyWorkClientService.haveWorkClient(workClientInfosDto);
+    }
+
+    /**
+     * 客户信息删除
+     */
+    @ApiOperation(value = "客户信息删除")
+    @GetMapping(value = "remove")
+    public Map<String,Object> remove(@RequestParam String id) {
+        return jyWorkClientService.removeById(id);
+    }
+
+    /**
+     * 客户信息查询
+     */
+    @ApiOperation(value = "客户信息查询")
+    @GetMapping(value = "findById")
+    public JyWorkClientInfosDto findById(@RequestParam String id) {
+        return jyWorkClientService.findById(id);
+    }
+
+    /**
+     * 客户信息更新
+     */
+    @ApiOperation(value = "客户信息更新")
+    @PostMapping(value = "update")
+    public String update(@RequestBody JyWorkClientInfosDto workClientInfosDto) {
+        return jyWorkClientService.update(workClientInfosDto);
+    }
+
+    /**
+     * 根据名称模糊搜索客户信息
+     */
+    @ApiOperation(value = "根据名称模糊搜索客户信息")
+    @GetMapping(value = "findListByName")
+    public List<JyWorkClientInfo> findListByName(@RequestParam String name) {
+        return jyWorkClientService.findListByName(name);
+    }
+
+    /**
+     * 根据关键字查询相关企业
+     * @param keyword
+     * @return
+     */
+    @ApiOperation(value = "根据关键字查询相关企业")
+    @PostMapping("enterpriseSearchByName")
+    public String enterpriseSearchByName(@RequestParam String keyword){
+        if(StringUtils.isBlank(keyword)){
+            return null;
+        }
+        return  SpringUtil.getBean ( IUserApi.class ).enterpriseSearchByName(keyword);
+    }
+
+    /**
+     * 根据id查询企业税号
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id查询企业税号")
+    @PostMapping("enterpriseTicketInfo")
+    public Object enterpriseTicketInfo(String id){
+        if(StringUtils.isBlank(id)){
+            return null;
+        }
+        return SpringUtil.getBean ( IUserApi.class ).enterpriseTicketInfoQueryById(id);
+    }
+
+    /**
+     * 根据名称、统一社会信用代码判断是否存在
+     */
+    @ApiOperation(value = "根据名称、统一社会信用代码判断是否存在")
+    @GetMapping(value = "isExist")
+    public Integer isExist(@RequestParam String param) {
+        return jyWorkClientService.isExist(param);
+    }
+
+    /**
+     * 客户信息列表-组件使用
+     */
+    @ApiOperation(value = "客户信息列表-组件使用")
+    @GetMapping(value = "componentList")
+    public ResponseEntity<IPage<JyWorkClientInfo>> componentList(JyWorkClientInfo workClientInfo, Page<JyWorkClientInfo> page) throws Exception {
+        QueryWrapper<JyWorkClientInfo> workClientInfoQueryWrapper = QueryWrapperGenerator.buildQueryCondition(workClientInfo, JyWorkClientInfo.class);
+        IPage<JyWorkClientInfo> list = jyWorkClientService.componentList(page,workClientInfoQueryWrapper);
+        return ResponseEntity.ok (list);
+    }
+
+    /**
+     * 客户信息查询-组件使用
+     */
+    @ApiOperation(value = "客户信息查询-组件使用")
+    @GetMapping(value = "componentById")
+    public JyWorkClientInfo componentById(@RequestParam String id) {
+        return jyWorkClientService.componentById(id);
+    }
+}

+ 31 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientBank.java

@@ -0,0 +1,31 @@
+package com.jeeplus.business.workClientInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName("jy_work_client_bank")
+public class JyWorkClientBank extends BaseEntity {
+
+    /**
+     * 开户银行
+     */
+    private String ourBank;
+
+    /**
+     * 开户账号
+     */
+    private String bankNumber;
+
+    /**
+     * 备注信息
+     */
+    private String remarks;
+
+    /**
+     * 外键关联客户信息表
+     */
+    private String clientId;
+
+}

+ 177 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientInfo.java

@@ -0,0 +1,177 @@
+package com.jeeplus.business.workClientInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.query.Query;
+import com.jeeplus.core.query.QueryType;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 客户管理Entity
+ */
+@Data
+@TableName("jy_work_client_info")
+public class JyWorkClientInfo extends BaseEntity {
+
+    /**
+     * 客户名称
+     */
+    @Query(tableColumn = "a.name")
+    private String name;
+
+    /**
+     * 法人代表
+     */
+    private String lawerPresint;
+
+    /**
+     * 组织机构代码
+     */
+    private String orUnicode;
+
+    /**
+     * 客户性质
+     */
+    @Query
+    private String companyType;
+    /**
+     * 客户性质名称
+     */
+    @TableField(exist = false)
+    private String companyTypeName;
+
+    /**
+     * 客户行业
+     */
+    @Query
+    private String companyIndustry;
+    /**
+     * 客户行业名称
+     */
+    @TableField(exist = false)
+    private String companyIndustryName;
+
+    /**
+     * 客户类型
+     */
+    @Query
+    private String clientType;
+    /**
+     * 客户类型名称
+     */
+    @TableField(exist = false)
+    private String clientTypeName;
+
+    /**
+     * 信用等级
+     */
+    private String creditRank;
+
+    /**
+     * 地区Id
+     */
+    @Query(type = QueryType.EQ)
+    private String areaId;
+
+    /**
+     * 地区名称
+     */
+    @TableField(exist = false)
+    private String areaName;
+
+    /**
+     * 邮政编码
+     */
+    private String zipCode;
+
+    /**
+     * 传真
+     */
+    private String fax;
+
+    /**
+     * 税务号
+     */
+    private String taxId;
+
+    /**
+     * 电子邮箱
+     */
+    private String email;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 注册地址
+     */
+    private String registerAddress;
+
+    /**
+     * 公司网址
+     */
+    private String companyUrl;
+
+    /**
+     * 单位简介
+     */
+    private String remarks;
+
+    /**
+     * 创建人所属公司id
+     */
+    private String companyId;
+
+    /**
+     * 创建人所属部门id
+     */
+    private String officeId;
+
+    /**
+     * 地区父节点
+     */
+    private String areaParentIds;
+
+    /**
+     * 公司电话
+     */
+    private String telephone;
+
+    /**
+     * 是否拥有统一社会信用代码  1:有,2无
+     */
+    private Integer hasUscc;
+
+    /**
+     * 统一社会信用代码
+     */
+    @Query
+    private String uscCode;
+
+    /**
+     * 客户编号
+     */
+    private String number;
+
+    /**
+     * 代表方(以逗号分割)
+     */
+    @TableField(exist = false)
+    @Query(type = QueryType.EQ, tableColumn = "f.job_type_id")
+    private String deputy;
+
+    @TableField(exist = false)
+    private String[] createDates;
+
+    @TableField(exist = false)
+    private String createFlag;  //创建状态
+    @TableField(exist = false)
+    private List<JyWorkClientBank> backs;
+
+}

+ 14 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientJobTypeInfo.java

@@ -0,0 +1,14 @@
+package com.jeeplus.business.workClientInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+@Data
+@TableName("jy_work_client_job_type_info")
+public class JyWorkClientJobTypeInfo {
+
+    private String workClientId;
+
+    private String jobTypeId;
+
+}

+ 56 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/JyWorkClientLinkman.java

@@ -0,0 +1,56 @@
+package com.jeeplus.business.workClientInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+@TableName("jy_work_client_linkman")
+public class JyWorkClientLinkman extends BaseEntity {
+
+    /**
+     * 联系人姓名
+     */
+    private String name;
+
+    /**
+     * 部门
+     */
+    private String office;
+
+    /**
+     * 职务
+     */
+    private String position;
+
+    /**
+     * QQ
+     */
+    private String qq;
+
+    /**
+     * 联系人电话
+     */
+    private String linkPhone;
+
+    /**
+     * 联系人手机
+     */
+    private String linkMobile;
+
+    /**
+     * E-mail
+     */
+    private String email;
+
+    /**
+     * 是否默认联系人
+     */
+    private String isDefault;
+
+    /**
+     * 外键关联客户信息表
+     */
+    private String clientId;
+
+}

+ 12 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/dto/JyPageInfoDto.java

@@ -0,0 +1,12 @@
+package com.jeeplus.business.workClientInfo.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class JyPageInfoDto {
+
+    private String name;
+
+    private String areaId;
+
+}

+ 25 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/domain/dto/JyWorkClientInfosDto.java

@@ -0,0 +1,25 @@
+package com.jeeplus.business.workClientInfo.domain.dto;
+
+
+//import com.jeeplus.pubmodules.oss.domain.WorkAttachment;
+
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientBank;
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo;
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientLinkman;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class JyWorkClientInfosDto {
+
+    private JyWorkClientInfo workClientInfo;
+
+    private List<JyWorkClientBank> workClientBank;
+
+    private List<JyWorkClientLinkman> workClientLinkman;
+
+    private List<WorkAttachmentInfo> workAttachments;
+
+}

+ 10 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientBankMapper.java

@@ -0,0 +1,10 @@
+package com.jeeplus.business.workClientInfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientBank;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface JyWorkClientBankMapper extends BaseMapper<JyWorkClientBank> {
+}

+ 23 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientInfoMapper.java

@@ -0,0 +1,23 @@
+package com.jeeplus.business.workClientInfo.mapper;
+
+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.business.workClientInfo.domain.JyWorkClientInfo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JyWorkClientInfoMapper extends BaseMapper<JyWorkClientInfo> {
+
+    JyWorkClientInfo getByName(@Param("clientName")String clientName);
+
+    IPage<JyWorkClientInfo> findPageList(Page<JyWorkClientInfo> page, @Param(Constants.WRAPPER)QueryWrapper queryWrapper);
+
+    Integer isExist(@Param("value") String value);
+
+    IPage<JyWorkClientInfo> componentList(Page<JyWorkClientInfo> page, @Param(Constants.WRAPPER)QueryWrapper queryWrapper);
+}

+ 10 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientJobTypeInfoMapper.java

@@ -0,0 +1,10 @@
+package com.jeeplus.business.workClientInfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientJobTypeInfo;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface JyWorkClientJobTypeInfoMapper extends BaseMapper<JyWorkClientJobTypeInfo> {
+}

+ 10 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientLinkmanMapper.java

@@ -0,0 +1,10 @@
+package com.jeeplus.business.workClientInfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientLinkman;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface JyWorkClientLinkmanMapper extends BaseMapper<JyWorkClientLinkman> {
+}

+ 146 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/xml/JyWorkClientInfoMapper.xml

@@ -0,0 +1,146 @@
+<?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.business.workClientInfo.mapper.JyWorkClientInfoMapper">
+
+	<sql id="Base_Column_List">
+        a.id,
+        a.create_by_id,
+        a.create_time,
+        a.update_by_id,
+        a.update_time,
+        a.del_flag,
+        a.name,
+        a.lawer_presint,
+        a.or_unicode,
+        a.company_type,
+        a.company_industry,
+        a.client_type,
+        a.credit_rank,
+        a.area_id,
+        a.zip_code,
+        a.fax,
+        a.tax_id,
+        a.email,
+        a.address,
+        a.register_address,
+        a.company_url,
+        a.remarks,
+        a.company_id,
+        a.office_id,
+        a.area_parent_ids,
+        a.telephone,
+        a.has_uscc,
+        a.usc_code,
+        a.number
+    </sql>
+	<resultMap id="BaseResultMap" type="com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo">
+		<id property="id" column="id" jdbcType="VARCHAR"/>
+		<result property="createById" column="create_by_id" jdbcType="VARCHAR"/>
+		<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+		<result property="updateById" column="update_by_id" jdbcType="VARCHAR"/>
+		<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+		<result property="delFlag" column="del_flag" jdbcType="CHAR"/>
+		<result property="name" column="name" jdbcType="VARCHAR"/>
+		<result property="lawerPresint" column="lawer_presint" jdbcType="VARCHAR"/>
+		<result property="orUnicode" column="or_unicode" jdbcType="VARCHAR"/>
+		<result property="companyType" column="company_type" jdbcType="VARCHAR"/>
+		<result property="companyIndustry" column="company_industry" jdbcType="VARCHAR"/>
+		<result property="clientType" column="client_type" jdbcType="VARCHAR"/>
+		<result property="creditRank" column="credit_rank" jdbcType="VARCHAR"/>
+		<result property="areaId" column="area_id" jdbcType="VARCHAR"/>
+		<result property="zipCode" column="zip_code" jdbcType="VARCHAR"/>
+		<result property="fax" column="fax" jdbcType="VARCHAR"/>
+		<result property="taxId" column="tax_id" jdbcType="VARCHAR"/>
+		<result property="email" column="email" jdbcType="VARCHAR"/>
+		<result property="address" column="address" jdbcType="VARCHAR"/>
+		<result property="registerAddress" column="register_address" jdbcType="VARCHAR"/>
+		<result property="companyUrl" column="company_url" jdbcType="VARCHAR"/>
+		<result property="remarks" column="remarks" jdbcType="VARCHAR"/>
+		<result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+		<result property="officeId" column="office_id" jdbcType="VARCHAR"/>
+		<result property="areaParentIds" column="area_parent_ids" jdbcType="VARCHAR"/>
+		<result property="telephone" column="telephone" jdbcType="VARCHAR"/>
+		<result property="hasUscc" column="has_uscc" jdbcType="TINYINT"/>
+		<result property="uscCode" column="usc_code" jdbcType="VARCHAR"/>
+		<result property="number" column="number" jdbcType="VARCHAR"/>
+		<result property="areaName" column="sa_name" jdbcType="VARCHAR"/>
+
+	</resultMap>
+	<select id="componentList" resultMap="BaseResultMap">
+		select
+		<include refid="Base_Column_List"></include>,
+		sa.name sa_name
+		from jy_work_client_info a
+		left join sys_area sa on sa.id = a.area_id and sa.del_flag = '0'
+		${ew.customSqlSegment}
+		order by a.update_time desc
+	</select>
+	<select id="findPageList" resultType="com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo">
+		SELECT
+			a.id,
+			su.name create_by_id,
+			a.create_time,
+			a.update_by_id,
+			a.update_time,
+			a.del_flag,
+			a.name,
+			a.lawer_presint,
+			a.or_unicode,
+			a.company_type,
+			a.company_industry,
+			a.client_type,
+			a.credit_rank,
+			b.`name` AS area_id,
+			b.`name` AS areaName,
+			a.zip_code,
+			a.fax,
+			a.tax_id,
+			a.email,
+			a.address,
+			a.register_address,
+			a.company_url,
+			a.remarks,
+			a.company_id,
+			a.office_id,
+			a.area_parent_ids,
+			a.telephone,
+			a.has_uscc,
+			a.usc_code,
+			a.number,
+			(SELECT GROUP_CONCAT(d.label SEPARATOR ',' )
+				FROM
+					work_client_job_type_info c,
+					sys_dict_value d,
+					sys_dict_type e
+				WHERE
+					c.job_type_id = d.VALUE
+					AND e.id = d.dict_type_id
+					AND e.type = 'representative'
+					AND c.work_client_id = a.id) AS deputy
+		FROM
+			jy_work_client_info a
+		LEFT JOIN sys_area b ON a.area_id = b.`code`
+		LEFT JOIN sys_user su ON su.id = a.create_by_id
+		LEFT JOIN work_client_job_type_info f ON a.id = f.work_client_id
+		${ew.customSqlSegment}
+		ORDER BY
+			a.update_time DESC
+	</select>
+
+	<select id="isExist" resultType="java.lang.Integer">
+		SELECT
+			COUNT( 0 )
+		FROM
+			jy_work_client_info
+		WHERE
+			del_flag = 0
+			AND (
+			`name` = #{value}
+			OR usc_code = #{value})
+	</select>
+	<select id="getByName" resultType="com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo">
+		select  <include refid="Base_Column_List"></include>
+		from jy_work_client_info
+		where name=#{clientName}
+	</select>
+</mapper>

+ 440 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/service/JyWorkClientService.java

@@ -0,0 +1,440 @@
+package com.jeeplus.business.workClientInfo.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSON;
+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.pubmodules.oss.domain.WorkAttachment;
+//import com.jeeplus.pubmodules.oss.mapper.OssServiceMapper;
+//import com.jeeplus.pubmodules.oss.service.OssService;
+
+
+
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientBank;
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo;
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientJobTypeInfo;
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientLinkman;
+import com.jeeplus.business.workClientInfo.domain.dto.JyWorkClientInfosDto;
+import com.jeeplus.business.workClientInfo.mapper.JyWorkClientBankMapper;
+import com.jeeplus.business.workClientInfo.mapper.JyWorkClientInfoMapper;
+import com.jeeplus.business.workClientInfo.mapper.JyWorkClientJobTypeInfoMapper;
+import com.jeeplus.business.workClientInfo.mapper.JyWorkClientLinkmanMapper;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IDictApi;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.service.dto.UserDTO;
+//import com.jeeplus.sys.utils.DictUtils;
+//import com.jeeplus.sys.utils.UserUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class JyWorkClientService {
+
+    @Resource
+    private JyWorkClientInfoMapper jyWorkClientInfoMapper;
+
+    @Resource
+    private JyWorkClientBankMapper jyWorkClientBankMapper;
+
+    @Resource
+    private JyWorkClientLinkmanMapper jyWorkClientLinkmanMapper;
+
+//    @Resource
+//    private OssServiceMapper ossServiceMapper;
+
+    @Resource
+    private JyWorkClientJobTypeInfoMapper jyWorkClientJobTypeInfoMapper;
+
+
+//    @Resource
+//    private OssService ossService;
+
+    /**
+     * 客户信息列表
+     * @param
+     * @return
+     */
+    public IPage<JyWorkClientInfo> list(Page<JyWorkClientInfo> page, QueryWrapper<JyWorkClientInfo> queryWrapper) {
+        queryWrapper.eq("a.del_flag","0");
+        IPage<JyWorkClientInfo> pageList = jyWorkClientInfoMapper.findPageList(page, queryWrapper);
+        List<JyWorkClientInfo> list = pageList.getRecords();
+        if (CollectionUtil.isNotEmpty(list)) {
+            for (JyWorkClientInfo info : list) {
+                LambdaQueryWrapper<JyWorkClientBank> wrapper = new LambdaQueryWrapper<>();
+                wrapper.eq(JyWorkClientBank::getClientId, info.getId());
+                List<JyWorkClientBank> banks = jyWorkClientBankMapper.selectList(wrapper);
+                info.setBacks(banks);
+            }
+        }
+        return pageList;
+    }
+
+    /**
+     * 客户信息保存
+     * @param workClientInfosDto
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String save(JyWorkClientInfosDto workClientInfosDto) {
+        //获取当前登录人信息
+        UserDTO dto = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        //客户信息处理
+        String id = UUID.randomUUID().toString().replace("-", "");
+        JyWorkClientInfo workClientInfo = workClientInfosDto.getWorkClientInfo();
+        workClientInfo.setId(id);
+        workClientInfo.setCreateById(dto.getId());
+        workClientInfo.setCreateTime(new Date());
+        workClientInfo.setUpdateById(dto.getId());
+        workClientInfo.setUpdateTime(new Date());
+        workClientInfo.setCompanyId(dto.getCompanyDTO().getId());
+        workClientInfo.setOfficeId(dto.getOfficeDTO().getId());
+        jyWorkClientInfoMapper.insert(workClientInfo);
+        //客户行业处理
+        String deputy = workClientInfo.getDeputy();
+        if (StringUtils.isNotEmpty(deputy)) {
+            List<String> list = Arrays.asList(deputy.split(","));
+            list.stream().forEach(i -> {
+                JyWorkClientJobTypeInfo info = new JyWorkClientJobTypeInfo();
+                info.setWorkClientId(id);
+                info.setJobTypeId(i);
+                jyWorkClientJobTypeInfoMapper.insert(info);
+            });
+        }
+        //开户行信息处理
+        List<JyWorkClientBank> workClientBank = workClientInfosDto.getWorkClientBank();
+        if (CollectionUtil.isNotEmpty(workClientBank)) {
+            workClientBank.stream().forEach(i -> {
+                i.setId(UUID.randomUUID().toString().replace("-", ""));
+                i.setCreateById(dto.getId());
+                i.setCreateTime(new Date());
+                i.setUpdateById(dto.getId());
+                i.setUpdateTime(new Date());
+                i.setClientId(id);
+                jyWorkClientBankMapper.insert(i);
+            });
+        }
+        //联系人信息处理
+        List<JyWorkClientLinkman> workClientLinkman = workClientInfosDto.getWorkClientLinkman();
+        if (CollectionUtil.isNotEmpty(workClientLinkman)) {
+            workClientLinkman.stream().forEach(i -> {
+                i.setId(UUID.randomUUID().toString().replace("-", ""));
+                i.setCreateById(dto.getId());
+                i.setCreateTime(new Date());
+                i.setUpdateById(dto.getId());
+                i.setUpdateTime(new Date());
+                i.setClientId(id);
+                jyWorkClientLinkmanMapper.insert(i);
+            });
+        }
+        //附件信息处理
+        List<WorkAttachmentInfo> workAttachments = workClientInfosDto.getWorkAttachments();
+        if (CollectionUtil.isNotEmpty(workAttachments)) {
+            int j = 1;
+            for (WorkAttachmentInfo i : workAttachments) {
+                i.setId(UUID.randomUUID().toString().replace("-", ""));
+
+                //文件类型处理
+                List<String> strings = Arrays.asList(i.getAttachmentName().split("\\."));
+                if (CollectionUtil.isNotEmpty(strings)) {
+                    i.setType(strings.get(1));
+                }
+                i.setDelFlag(0);
+
+                UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+                i.setCreateTime(new Date());
+                i.setUpdateTime(new Date());
+                i.setAttachmentId(id);
+                i.setSort(j);
+                Map<String,String> map = new HashMap<>();
+                String workAttachment = JSON.toJSONString((i));
+                String userDTOInfo = JSON.toJSONString((userDTO));
+                map.put("workAttachment",workAttachment);
+                map.put("userDTO",userDTOInfo);
+                SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+                j++;
+            }
+        }
+        return "添加完成!";
+    }
+
+    /**
+     * 客户信息删除
+     * @param id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String,Object> removeById (String id) {
+        Map<String,Object> map = new HashMap();
+
+        //客户信息删除
+        jyWorkClientInfoMapper.deleteById(id);
+        //客户行业处理
+        LambdaQueryWrapper<JyWorkClientJobTypeInfo> wrapper3 = new LambdaQueryWrapper<>();
+        wrapper3.eq(JyWorkClientJobTypeInfo::getWorkClientId, id);
+        jyWorkClientJobTypeInfoMapper.delete(wrapper3);
+        //客户关联开户行信息删除
+        LambdaQueryWrapper<JyWorkClientBank> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(JyWorkClientBank::getClientId, id);
+        jyWorkClientBankMapper.delete(wrapper);
+        //客户关联紧急联系人信息删除
+        LambdaQueryWrapper<JyWorkClientLinkman> wrapper1 = new LambdaQueryWrapper<>();
+        wrapper1.eq(JyWorkClientLinkman::getClientId, id);
+        jyWorkClientLinkmanMapper.delete(wrapper1);
+        //客户关联附件信息删除
+//        LambdaQueryWrapper<WorkAttachmentInfo> wrapper2 = new LambdaQueryWrapper<>();
+//        wrapper2.eq(WorkAttachmentInfo::getAttachmentId, id);
+        SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(id);
+        map.put("success",true);
+        map.put("message","删除成功!");
+        return map;
+    }
+
+    /**
+     * 客户信息查询
+     * @param id
+     * @return
+     */
+    public JyWorkClientInfosDto findById (String id) {
+        JyWorkClientInfosDto dto = new JyWorkClientInfosDto();
+        JyWorkClientInfo workClientInfo = jyWorkClientInfoMapper.selectById(id);
+        //从字典中找出客户性质名称
+        String companyTypeName = SpringUtil.getBean ( IDictApi.class ).getDictLabel(workClientInfo.getCompanyType(), "customer_nature", "");
+        workClientInfo.setCompanyTypeName(companyTypeName);
+        //从字典中找出客户行业名称
+        String companyIndustryName = SpringUtil.getBean ( IDictApi.class ).getDictLabel(workClientInfo.getCompanyIndustry(), "industry", "");
+        workClientInfo.setCompanyIndustryName(companyIndustryName);
+        //从字典中找出客户行业名称
+        String clientTypeName = SpringUtil.getBean ( IDictApi.class ).getDictLabel(workClientInfo.getClientType(), "customer_type", "");
+        workClientInfo.setClientTypeName(clientTypeName);
+        //客户行业查询
+        LambdaQueryWrapper<JyWorkClientJobTypeInfo> wrapper3 = new LambdaQueryWrapper<>();
+        wrapper3.eq(JyWorkClientJobTypeInfo::getWorkClientId, id);
+        List<JyWorkClientJobTypeInfo> infos = jyWorkClientJobTypeInfoMapper.selectList(wrapper3);
+        if (CollectionUtil.isNotEmpty(infos)) {
+            String s = new String();
+            for (JyWorkClientJobTypeInfo info : infos) {
+                String jobTypeId = info.getJobTypeId();
+                s = s + "," + jobTypeId;
+            }
+            String substring = s.substring(1, s.length());
+            workClientInfo.setDeputy(substring);
+        }
+        //客户信息查询
+        dto.setWorkClientInfo(workClientInfo);
+        //客户关联开户行信息查询
+        LambdaQueryWrapper<JyWorkClientBank> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(JyWorkClientBank::getClientId, id);
+        wrapper.orderByDesc(JyWorkClientBank::getUpdateTime);
+        dto.setWorkClientBank(jyWorkClientBankMapper.selectList(wrapper));
+        //客户关联紧急联系人信息查询
+        LambdaQueryWrapper<JyWorkClientLinkman> wrapper1 = new LambdaQueryWrapper<>();
+        wrapper1.eq(JyWorkClientLinkman::getClientId, id);
+        wrapper1.orderByDesc(JyWorkClientLinkman::getUpdateTime);
+        dto.setWorkClientLinkman(jyWorkClientLinkmanMapper.selectList(wrapper1));
+        //客户关联附件信息查询
+//        LambdaQueryWrapper<WorkAttachmentInfo> wrapper2 = new LambdaQueryWrapper<>();
+//        wrapper2.eq(WorkAttachmentInfo::getAttachmentId, id);
+//        wrapper2.orderByAsc(WorkAttachmentInfo::getSort);
+        dto.setWorkAttachments(SpringUtil.getBean ( IWorkAttachmentApi.class ).selectListByAttachmentId(id));
+        return dto;
+    }
+
+    /**
+     * 客户信息更新
+     * @param workClientInfosDto
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String update(JyWorkClientInfosDto workClientInfosDto) {
+        //获取当前登录人信息
+        UserDTO dto = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        //客户信息处理
+        JyWorkClientInfo workClientInfo = workClientInfosDto.getWorkClientInfo();
+        //客户行业处理
+        LambdaQueryWrapper<JyWorkClientJobTypeInfo> wrapper3 = new LambdaQueryWrapper<>();
+        wrapper3.eq(JyWorkClientJobTypeInfo::getWorkClientId, workClientInfo.getId());
+        jyWorkClientJobTypeInfoMapper.delete(wrapper3);
+        String deputy = workClientInfo.getDeputy();
+        if (StringUtils.isNotEmpty(deputy)) {
+            List<String> list = Arrays.asList(deputy.split(","));
+            list.stream().forEach(i -> {
+                JyWorkClientJobTypeInfo info = new JyWorkClientJobTypeInfo();
+                info.setWorkClientId(workClientInfo.getId());
+                info.setJobTypeId(i);
+                jyWorkClientJobTypeInfoMapper.insert(info);
+            });
+        }
+        workClientInfo.setUpdateById(dto.getId());
+        workClientInfo.setUpdateTime(new Date());
+        workClientInfo.setCompanyId(dto.getCompanyDTO().getId());
+        workClientInfo.setOfficeId(dto.getOfficeDTO().getId());
+        jyWorkClientInfoMapper.updateById(workClientInfo);
+        //开户行信息处理(先删除原有数据,再进行数据添加)
+        List<JyWorkClientBank> workClientBank = workClientInfosDto.getWorkClientBank();
+        if (CollectionUtil.isNotEmpty(workClientBank)) {
+            LambdaQueryWrapper<JyWorkClientBank> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(JyWorkClientBank::getClientId, workClientInfo.getId());
+            jyWorkClientBankMapper.delete(wrapper);
+            workClientBank.stream().forEach(i -> {
+                i.setId(UUID.randomUUID().toString().replace("-",""));
+                i.setCreateById(dto.getId());
+                i.setCreateTime(new Date());
+                i.setUpdateById(dto.getId());
+                i.setUpdateTime(new Date());
+                i.setClientId(workClientInfo.getId());
+                jyWorkClientBankMapper.insert(i);
+            });
+        }
+        //联系人信息处理
+        List<JyWorkClientLinkman> workClientLinkman = workClientInfosDto.getWorkClientLinkman();
+        if (CollectionUtil.isNotEmpty(workClientLinkman)) {
+            LambdaQueryWrapper<JyWorkClientLinkman> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(JyWorkClientLinkman::getClientId, workClientInfo.getId());
+            jyWorkClientLinkmanMapper.delete(wrapper);
+            workClientLinkman.stream().forEach(i -> {
+                i.setId(UUID.randomUUID().toString().replace("-",""));
+                i.setCreateById(dto.getId());
+                i.setCreateTime(new Date());
+                i.setUpdateById(dto.getId());
+                i.setUpdateTime(new Date());
+                i.setClientId(workClientInfo.getId());
+                jyWorkClientLinkmanMapper.insert(i);
+            });
+        }
+        //附件信息处理
+        List<WorkAttachmentInfo> workAttachments = workClientInfosDto.getWorkAttachments();
+        List<String> collect = workAttachments.stream().distinct().filter(item -> {
+            if (StringUtils.isNotBlank(item.getId())) {
+                return true;
+            }
+            return false;
+        }).map(WorkAttachmentInfo::getId).collect(Collectors.toList());
+        if (CollectionUtil.isNotEmpty(workAttachments)) {
+            if(CollectionUtil.isNotEmpty(collect)){
+                SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentIdNotInIds(workClientInfo.getId(),collect);
+//                ossService.remove(new QueryWrapper<WorkAttachmentInfo>().lambda()
+//                        .eq(WorkAttachmentInfo::getAttachmentId,workClientInfo.getId())
+//                        .notIn(WorkAttachmentInfo::getId,collect));
+            }
+            workAttachments.stream().forEach(i -> i.setAttachmentId(workClientInfo.getId()));
+            Map<String,String> map = new HashMap<>();
+            map.put("workAttachments",JSON.toJSONString(workAttachments));
+            map.put("currentToken", TokenProvider.getCurrentToken());
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).saveMsg2(map);
+        } else{
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(workClientInfo.getId());
+//            ossService.remove(new QueryWrapper<WorkAttachmentInfo>().lambda().eq(WorkAttachmentInfo::getAttachmentId,workClientInfo.getId()));
+        }
+        return "更新完成!";
+    }
+
+    /**
+     * 新建或修改  判断客户是否重复
+     * @param workClientInfosDto
+     * @return
+     */
+    public boolean haveWorkClient(JyWorkClientInfosDto workClientInfosDto){
+        if(ObjectUtil.isNotEmpty(workClientInfosDto)){
+            if(ObjectUtil.isNotEmpty(workClientInfosDto.getWorkClientInfo())){
+                if(StringUtils.isNotBlank(workClientInfosDto.getWorkClientInfo().getId())){
+                    List<JyWorkClientInfo> workClientInfos = jyWorkClientInfoMapper.selectList(new QueryWrapper<JyWorkClientInfo>().lambda()
+                            .eq(JyWorkClientInfo::getName, workClientInfosDto.getWorkClientInfo().getName())
+                            .ne(JyWorkClientInfo::getId, workClientInfosDto.getWorkClientInfo().getId())
+                    );
+                    if(CollectionUtil.isNotEmpty(workClientInfos)){
+                        return false;
+                    }
+                }else{
+                    List<JyWorkClientInfo> workClientInfos = jyWorkClientInfoMapper.selectList(new QueryWrapper<JyWorkClientInfo>().lambda()
+                            .eq(JyWorkClientInfo::getName, workClientInfosDto.getWorkClientInfo().getName())
+                    );
+                    if(CollectionUtil.isNotEmpty(workClientInfos)){
+                        return false;
+                    }
+                }
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 新建或修改  判断统一社会信用代码是否重复
+     * @param workClientInfosDto
+     * @return
+     */
+    public boolean haveUscCode(JyWorkClientInfosDto workClientInfosDto){
+        if(ObjectUtil.isNotEmpty(workClientInfosDto)){
+            if(ObjectUtil.isNotEmpty(workClientInfosDto.getWorkClientInfo())){
+                if(StringUtils.isNotBlank(workClientInfosDto.getWorkClientInfo().getId())){
+                    List<JyWorkClientInfo> workClientInfos = jyWorkClientInfoMapper.selectList(new QueryWrapper<JyWorkClientInfo>().lambda()
+                            .eq(JyWorkClientInfo::getUscCode, workClientInfosDto.getWorkClientInfo().getUscCode())
+                            .ne(JyWorkClientInfo::getId, workClientInfosDto.getWorkClientInfo().getId())
+                    );
+                    if(CollectionUtil.isNotEmpty(workClientInfos)){
+                        return false;
+                    }
+                }else{
+                    List<JyWorkClientInfo> workClientInfos = jyWorkClientInfoMapper.selectList(new QueryWrapper<JyWorkClientInfo>().lambda()
+                            .eq(JyWorkClientInfo::getUscCode, workClientInfosDto.getWorkClientInfo().getUscCode())
+                    );
+                    if(CollectionUtil.isNotEmpty(workClientInfos)){
+                        return false;
+                    }
+                }
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 根据名称模糊搜索客户信息
+     * @param name
+     * @return
+     */
+    public List<JyWorkClientInfo> findListByName(String name) {
+        LambdaQueryWrapper<JyWorkClientInfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(JyWorkClientInfo::getName, name);
+        List<JyWorkClientInfo> workClientInfos = jyWorkClientInfoMapper.selectList(wrapper);
+        return workClientInfos;
+    }
+
+    public Integer isExist(String param) {
+        return jyWorkClientInfoMapper.isExist(param);
+    }
+
+    /**
+     * 客户信息列表-组件使用
+     * @param
+     * @return
+     */
+    public IPage<JyWorkClientInfo> componentList(Page<JyWorkClientInfo> page, QueryWrapper<JyWorkClientInfo> queryWrapper) {
+        queryWrapper.eq("a.del_flag","0");
+        IPage<JyWorkClientInfo> pageList = jyWorkClientInfoMapper.findPageList(page, queryWrapper);
+        return pageList;
+    }
+
+    /**
+     * 客户信息查询-组件使用
+     * @param id
+     * @return
+     */
+    public JyWorkClientInfo componentById (String id) {
+        JyWorkClientInfo workClientInfo = jyWorkClientInfoMapper.selectById(id);
+        return workClientInfo;
+    }
+}

+ 106 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/controller/JyWorkContractController.java

@@ -0,0 +1,106 @@
+package com.jeeplus.business.workContractInfo.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+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.business.workContractInfo.domain.JyWorkContractInfo;
+import com.jeeplus.business.workContractInfo.service.JyWorkContractService;
+import com.jeeplus.business.workContractInfo.service.dto.JyWorkContractInfoDto;
+import com.jeeplus.common.utils.ResponseUtil;
+import com.jeeplus.core.query.QueryWrapperGenerator;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+//import com.jeeplus.sys.utils.TicketQueryUtils;
+
+@Slf4j
+@Api(tags ="嘉溢合同登记")
+@RestController
+@RequestMapping(value = "/jy/workContract/workContractInfo")
+public class JyWorkContractController {
+
+    @Resource
+    private JyWorkContractService jyWorkContractService;
+
+    /**
+     * 合同登记列表
+     */
+    @ApiOperation(value = "合同登记列表")
+    @GetMapping(value = "list")
+    public ResponseEntity<IPage<JyWorkContractInfo>> list(JyWorkContractInfo jyWorkContractInfo, Page<JyWorkContractInfo> page) throws Exception {
+        String primaryLinkman = jyWorkContractInfo.getClientName();
+        String[] contractDates = jyWorkContractInfo.getContractDates();
+        String contractAmount = jyWorkContractInfo.getContractAmount();
+        String[] createDates= jyWorkContractInfo.getCreateDates();
+        String statusList = jyWorkContractInfo.getStatusList();
+        String filedType = jyWorkContractInfo.getFiledType();
+        String name=jyWorkContractInfo.getName();
+        String createById=jyWorkContractInfo.getCreateById();
+        String no=jyWorkContractInfo.getNo();
+        QueryWrapper<JyWorkContractInfo> workContractInfoQueryWrapper = QueryWrapperGenerator.buildQueryCondition(jyWorkContractInfo, JyWorkContractInfo.class);
+        if (ObjectUtil.isNotEmpty(jyWorkContractInfo) && StringUtils.isNotBlank(jyWorkContractInfo.getCreateById())) {
+            workContractInfoQueryWrapper.eq("a.create_by_id", jyWorkContractInfo.getCreateById());
+        }
+        IPage<JyWorkContractInfo> list = jyWorkContractService.list(page, workContractInfoQueryWrapper, primaryLinkman, contractDates,createDates, contractAmount,name,createById, filedType,no);
+        return ResponseEntity.ok (list);
+    }
+
+    /**
+     * 合同新增/修改
+     */
+    @ApiOperation(value = "合同新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody JyWorkContractInfoDto workContractInfoDto) throws Exception{
+        String id =jyWorkContractService.saveInfo(workContractInfoDto);
+        return ResponseUtil.newInstance().add("businessTable", "jy_work_contract_info").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 客户信息删除
+     */
+    @ApiOperation(value = "合同登记删除")
+    @GetMapping(value = "remove")
+    public String remove(@RequestParam String id) {
+        return jyWorkContractService.removeById(id);
+    }
+
+    /**
+     * 合同登记查询
+     * @return
+     */
+    @ApiOperation(value = "合同登记查询")
+    @GetMapping(value = "findById")
+    public JyWorkContractInfoDto findById(@RequestParam String id) {
+        JyWorkContractInfoDto dto = jyWorkContractService.findById(id);
+        return dto;
+    }
+
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody JyWorkContractInfoDto workContractInfoDto) {
+        jyWorkContractService.updateStatusById(workContractInfoDto);
+    }
+
+    /**
+     * 归档送审
+     */
+    @ApiOperation(value = "归档送审")
+    @PostMapping(value = "saveContract")
+    public ResponseEntity<String> saveContract(@RequestBody JyWorkContractInfoDto workContractInfoDto) throws Exception{
+        String id =jyWorkContractService.saveContract(workContractInfoDto);
+        return ResponseUtil.newInstance().add("businessTable", "jy_work_contract_info").add("businessId", id).ok ("操作成功");
+    }
+
+}

+ 61 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/controller/JyWorkContractFileController.java

@@ -0,0 +1,61 @@
+package com.jeeplus.business.workContractInfo.controller;
+
+
+import com.jeeplus.business.workContractInfo.domain.JyWorkContractFile;
+import com.jeeplus.business.workContractInfo.service.JyWorkContractFileService;
+import com.jeeplus.business.workContractInfo.service.dto.JyWorkContractFileDto;
+import com.jeeplus.common.utils.ResponseUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags ="嘉溢合同登记")
+@RestController
+@RequestMapping(value = "/jy/workContract/workContractFile")
+public class JyWorkContractFileController {
+
+    @Resource
+    private JyWorkContractFileService jyWorkContractFileService;
+
+    /**
+     * 合同登记新增/修改
+     */
+    @ApiOperation(value = "合同登记归档新增/修改")
+    @PostMapping(value = "save")
+    public ResponseEntity<String> save(@RequestBody JyWorkContractFileDto workContractFileDto) throws Exception{
+        String id = jyWorkContractFileService.saveInfo(workContractFileDto);
+        return ResponseUtil.newInstance().add("businessTable", "work_contract_file").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 根据id修改状态status
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "updateStatusById")
+    public void updateStatusById(@RequestBody JyWorkContractFileDto workContractFileDto) {
+        jyWorkContractFileService.updateStatusById(workContractFileDto);
+    }
+
+    /**
+     * 根据id查询
+     */
+    @ApiOperation(value = "根据id查询")
+    @GetMapping(value = "findById")
+    public JyWorkContractFile findById(@RequestParam String id) {
+        return jyWorkContractFileService.findById(id);
+    }
+
+    /**
+     * 根据contractInfoId查询
+     */
+    @ApiOperation(value = "根据contractInfoId查询")
+    @GetMapping(value = "findByContractInfoId")
+    public JyWorkContractFile findByContractInfoId(@RequestParam String id) {
+        return jyWorkContractFileService.findByContractInfoId(id);
+    }
+}

+ 27 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/domain/JyContractParticipant.java

@@ -0,0 +1,27 @@
+package com.jeeplus.business.workContractInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 参与签约方信息
+ * @author: 王强
+ * @create: 2022-11-15 13:32
+ **/
+@Data
+@TableName(value = "jy_work_contract_participant")
+public class JyContractParticipant extends BaseEntity {
+
+    private String customerName;
+
+    private String customerNo;
+
+    private String contractInfoId;
+    @TableField(exist = false)
+    private String name;
+    @TableField(exist = false)
+    private String no;
+
+}

+ 31 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/domain/JyWorkContractFile.java

@@ -0,0 +1,31 @@
+package com.jeeplus.business.workContractInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("work_contract_file")
+public class JyWorkContractFile extends BaseEntity {
+
+    private String contractInfoId;
+
+    private String procInsId;
+
+    private String processDefinitionId;
+
+    private String fileCreateName;
+
+    private String filedType;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date filedData;
+
+    private String filedNo;
+
+    private String confirmFiledNo;
+
+}

+ 196 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/domain/JyWorkContractInfo.java

@@ -0,0 +1,196 @@
+package com.jeeplus.business.workContractInfo.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+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;
+import java.util.List;
+
+@Data
+@TableName("jy_work_contract_info")
+public class JyWorkContractInfo extends BaseEntity {
+    //合同编号(字典值)
+    public static final String BIZ_CODE = "31";
+
+    /**
+     * 客户id
+     */
+    private String clientId;
+
+    /**
+     * 客户名称
+     */
+    @Query(tableColumn = "a.client_name")
+    private String clientName;
+
+
+    /**
+     * 合同编号
+     */
+    private String no;
+
+    /**
+     * 合同名称
+     */
+    @Query(tableColumn = "a.name")
+    private String name;
+
+    /**
+     * 签订日期
+     */
+    @Query(tableColumn = "a.contract_date")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date contractDate;
+
+    /**
+     * 合同生效日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date effectiveDate;
+
+    /**
+     * 合同终止日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date closingDate;
+
+    /**
+     * 合同类型
+     */
+    private String contractType;
+    @TableField(exist = false)
+    private List<String> contractTypes;
+
+    /**
+     * 合同金额类别
+     */
+    private String contractAmountType;
+
+    /**
+     * 合同金额
+     */
+    @Query(tableColumn = "a.contract_amount")
+    private String contractAmount;
+
+    /**
+     * 对方合同编号
+     */
+    private String contractOpposite;
+
+    /**
+     * 收费标准
+     */
+    private String contractFee;
+
+    private String fees;
+
+    /**
+     * 付款摘要
+     */
+    private String paymentDescribe;
+
+    /**
+     * 合同特别条款
+     */
+    private String contractSpecial;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 归档人
+     */
+    private String filedBy;
+
+    /**
+     * 归档日期
+     */
+    private String filedDate;
+
+    /**
+     * 盒号
+     */
+    private String filedNo;
+
+
+    /**
+     * 说明
+     */
+    private String filedRemarks;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    private String processDefinitionId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 归档状态
+     */
+    @Query(tableColumn = "a.filed_type")
+    private String filedType;
+
+    /**
+     * 主委托方
+     */
+    @Query(tableColumn = "a.primary_linkman")
+    private String primaryLinkman;
+
+
+    /**
+     * 所属部门
+     */
+    private String department;
+
+
+    @TableField(exist = false)
+    private String[] contractDates;
+
+    @TableField(exist = false)
+    private String[] contractAmounts;
+
+    @TableField(exist = false)
+    private String taskId;
+
+    @TableField(exist = false)
+    private String taskFiledId;
+
+
+    @TableField(exist = false)
+    private String createId;
+
+    @TableField(exist = false)
+    private String contractFileId;
+
+    @TableField(exist = false)
+    private String statusList;
+
+    /**
+     * 数据审核人  合同归档
+     */
+    @TableField(exist = false)
+    private List<String> auditUserIdsFiled;
+
+    /**
+     * 创建时间
+     */
+    @TableField(exist = false)
+    private String[] createDates;
+
+
+
+
+
+}

+ 23 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyContractParticipantMapper.java

@@ -0,0 +1,23 @@
+package com.jeeplus.business.workContractInfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.business.workContractInfo.domain.JyContractParticipant;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2022-11-15 13:44
+ **/
+public interface JyContractParticipantMapper extends BaseMapper<JyContractParticipant> {
+
+    /**
+     * 估计infoid删除相关的参与签约方信息
+     * @param InfoId
+     */
+    void deleteFromParticipant(String InfoId);
+
+
+    List<JyContractParticipant> findByInfoId(@Param("infoID") String infoID);
+}

+ 15 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyWorkContractFileMapper.java

@@ -0,0 +1,15 @@
+package com.jeeplus.business.workContractInfo.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.business.workContractInfo.domain.JyWorkContractFile;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JyWorkContractFileMapper extends BaseMapper<JyWorkContractFile> {
+
+    void updateStatusById(@Param("id") String id, @Param("filedType")String filedType);
+    @InterceptorIgnore(tenantLine = "true")
+    JyWorkContractFile selectFileByContractInfoId (@Param("id") String id);
+}

+ 61 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/JyWorkContractInfoMapper.java

@@ -0,0 +1,61 @@
+package com.jeeplus.business.workContractInfo.mapper;
+
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+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.business.workContractInfo.domain.JyWorkContractInfo;
+import com.jeeplus.business.workContractInfo.service.dto.JyWorkContractInfoDto;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+public interface JyWorkContractInfoMapper extends BaseMapper<JyWorkContractInfo> {
+
+    IPage<JyWorkContractInfo> findPageList(Page<JyWorkContractInfo> page, @Param(Constants.WRAPPER)QueryWrapper queryWrapper);
+
+    JyWorkContractInfo findById (@Param("id") String id);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer findIsExit(@Param("id") String id, @Param("name")String name);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<WorkAttachmentInfo> findList(@Param("id") String id);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<WorkAttachmentInfo> findDtos(@Param("id") String id);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<WorkAttachmentInfoDTO> findByAttachmentIdAndFlag(@Param("attachmentId") String id,@Param("attachmentFlag") String attachmentFlag);
+
+    void updateStatusById(@Param("id") String id, @Param("filedType")String filedType);
+
+
+
+    /**
+     * 根据客户id查询合同信息
+     * @param clientId
+     * @return
+     */
+    List<JyWorkContractInfoDto> getInfoByClientId (@Param("clientId") String clientId);
+
+
+    void updateContractById(@Param("updateById")String updateById, @Param("updateTime")Date updateTime,@Param("filedType") String filedType,@Param("filedNo") String filedNo,@Param("id") String id);
+
+    /**
+     * 查询合同类型
+     * @param contractType
+     * @return
+     */
+    String findType(String contractType);
+
+    String findType2(String s);
+}

+ 11 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyContractParticipantMapper.xml

@@ -0,0 +1,11 @@
+<?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.business.workContractInfo.mapper.JyContractParticipantMapper">
+    <delete id="deleteFromParticipant">
+        delete from jy_work_contract_participant where contract_info_id = #{InfoId}
+    </delete>
+    <select id="findByInfoId" resultType="com.jeeplus.business.workContractInfo.domain.JyContractParticipant">
+        select customer_name as customerName,customer_no as customerNo from jy_work_contract_participant
+        where contract_info_id = #{infoID}
+    </select>
+</mapper>

+ 13 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractFileMapper.xml

@@ -0,0 +1,13 @@
+<?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.business.workContractInfo.mapper.JyWorkContractFileMapper">
+
+	<update id="updateStatusById">
+		UPDATE jy_work_contract_file SET filed_type = #{filedType}, filed_data = NOW()
+		WHERE del_flag = 0 AND contract_info_id = #{id}
+	</update>
+
+	<select id="selectFileByContractInfoId" resultType="com.jeeplus.business.workContractInfo.domain.JyWorkContractFile">
+		SELECT * FROM `jy_work_contract_file` WHERE del_flag = 0 AND contract_info_id = #{id}
+	</select>
+</mapper>

+ 206 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/mapper/xml/JyWorkContractInfoMapper.xml

@@ -0,0 +1,206 @@
+<?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.business.workContractInfo.mapper.JyWorkContractInfoMapper">
+
+	<select id="findPageList" resultType="com.jeeplus.business.workContractInfo.domain.JyWorkContractInfo">
+		SELECT
+			a.id,
+			c.`name` AS create_by_id,
+			a.create_time,
+			a.update_by_id,
+			a.update_time,
+			a.del_flag,
+			a.client_id,
+			a.client_name,
+			a.`no`,
+			a.`name`,
+			DATE_FORMAT(a.contract_date,'%Y-%m-%d') as contract_date,
+			a.effective_date,
+			a.closing_date,
+			a.contract_type as contractType,
+			a.contract_amount_type,
+			a.contract_amount,
+			a.contract_opposite,
+			a.contract_fee,
+			a.fees,
+			a.payment_describe,
+			a.contract_special,
+			a.remarks,
+			a.filed_by,
+			a.filed_date,
+			d.filed_no,
+			d.confirm_filed_no,
+			a.filed_remarks,
+			a.proc_ins_id,
+			a.process_definition_id,
+			a.status,
+			a.create_by_id as create_id,
+			a.filed_type,
+			e.ID_ as task_filed_id,
+			a.primary_linkman,
+			art.ID_ as taskId
+		FROM
+			jy_work_contract_info a
+			LEFT JOIN sys_user c ON a.create_by_id = c.id
+			LEFT JOIN jy_work_contract_file d ON a.id = d.contract_info_id
+			LEFT JOIN act_ru_task e ON d.proc_ins_id = e.PROC_INST_ID_
+			left join jy_work_client_info jy_ci on a.primary_linkman=jy_ci.id
+			left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+		${ew.customSqlSegment}
+		ORDER BY a.update_time DESC
+	</select>
+
+	<select id="findById" resultType="com.jeeplus.business.workContractInfo.domain.JyWorkContractInfo">
+		SELECT
+			a.id,
+			a.create_time,
+			a.update_by_id,
+			a.update_time,
+			a.del_flag,
+			a.client_id,
+			a.client_name,
+			a.no ,
+			a.name,
+			DATE_FORMAT(a.contract_date,'%Y-%m-%d') as contract_date,
+			a.effective_date,
+			a.closing_date,
+			a.contract_type as contractType,
+			a.contract_amount_type,
+			a.contract_amount,
+			a.contract_opposite,
+			a.contract_fee,
+			a.fees,
+			a.payment_describe,
+			a.contract_special,
+			a.remarks,
+			a.filed_by,
+			a.filed_date,
+			d.filed_no,
+			d.confirm_filed_no,
+			a.filed_remarks,
+			a.proc_ins_id,
+			a.process_definition_id,
+			a.status,
+			a.create_by_id as create_id,
+			a.filed_type,
+			a.primary_linkman,
+			d.filed_no,
+			d.confirm_filed_no,
+			d.filed_type,
+			so.name as department,
+			art.ID_ as taskId
+		FROM
+			jy_work_contract_info a
+			LEFT JOIN jy_work_contract_file d ON a.id = d.contract_info_id
+			left join jy_work_client_info jy_ci on a.primary_linkman=jy_ci.name
+			left join sys_office so on a.department=so.id
+			left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+		WHERE
+			a.id = #{id}
+			AND a.del_flag = 0
+	</select>
+
+	<select id="findIsExit" resultType="java.lang.Integer">
+		SELECT
+			COUNT( 0 )
+		FROM
+			work_attachment
+		WHERE
+			del_flag = 0
+			AND attachment_id = #{id}
+			AND attachment_name = #{name}
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.sys.domain.WorkAttachmentInfo">
+		SELECT * FROM work_attachment WHERE del_flag = 0 AND attachment_id = #{id}
+	</select>
+
+	<select id="findDtos" resultType="com.jeeplus.sys.domain.WorkAttachmentInfo">
+		SELECT
+			id,
+			url,
+			attachment_name AS `name`,
+			create_by_id AS `by`,
+			create_time
+		FROM
+			work_attachment
+		WHERE
+			del_flag = 0
+			AND attachment_id = #{id}
+	</select>
+
+	<select id="findByAttachmentIdAndFlag" resultType="com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO">
+		SELECT
+			id,
+			url,
+			attachment_name AS `name`,
+			create_by_id AS `by`,
+			create_time
+		FROM
+			work_attachment
+		WHERE
+			del_flag = 0
+			AND attachment_id = #{attachmentId}
+			And attachment_flag = #{attachmentFlag}
+	</select>
+
+	<update id="updateStatusById">
+		UPDATE jy_work_contract_info SET `filed_type` = #{filedType} WHERE del_flag = 0 AND id = #{id}
+	</update>
+
+
+
+	<select id="getInfoByClientId" resultType="com.jeeplus.business.workContractInfo.service.dto.JyWorkContractInfoDto">
+		SELECT
+			a.id,
+			a.client_id,
+			a.client_name,
+			a.`no`,
+			a.`name`,
+			a.contract_date,
+			a.effective_date,
+			a.closing_date,
+			a.contract_type,
+			a.contract_amount_type,
+			a.contract_amount,
+			a.contract_opposite,
+			a.contract_fee,
+			a.fees,
+			a.describes,
+			a.contract_special,
+			a.remarks,
+			a.filed_by,
+			a.filed_date,
+			a.filed_no,
+			d.confirm_filed_no,
+			a.filed_remarks,
+			a.proc_ins_id,
+			a.borrow_type,
+			a.create_time,
+			a.create_by_id,
+			a.update_time,
+			a.update_by_id,
+			a.del_flag,
+			d.id as contract_file_id,
+			d.filed_type
+		FROM
+			work_contract_info a
+			LEFT JOIN work_contract_file d ON a.id = d.contract_info_id
+		WHERE
+			a.client_id = #{clientId}
+			AND a.del_flag = 0
+	</select>
+
+	<update id="updateContractById">
+		UPDATE jy_work_contract_info SET update_By_id=#{updateById},update_time=#{updateTime}, `filed_type` = #{filedType},filed_no=#{filedNo} WHERE del_flag = 0 AND id = #{id}
+	</update>
+
+	<select id="findType" resultType="string">
+		SELECT dv.label from sys_dict_value dv LEFT JOIN sys_dict_type dt on dt.id=dv.dict_type_id where dv.`value`=#{contractType} and dt.type='jy_contract_type_up'
+	</select>
+
+	<select id="findType2" resultType="string">
+		SELECT dv.label from sys_dict_value dv LEFT JOIN sys_dict_type dt on dt.id=dv.dict_type_id where dv.`id`=#{contractType} and dt.type='jy_contract_type'
+	</select>
+
+</mapper>

+ 90 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/JyWorkContractFileService.java

@@ -0,0 +1,90 @@
+package com.jeeplus.business.workContractInfo.service;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.jeeplus.business.workContractInfo.domain.JyWorkContractFile;
+import com.jeeplus.business.workContractInfo.mapper.JyWorkContractFileMapper;
+import com.jeeplus.business.workContractInfo.service.dto.JyWorkContractFileDto;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.UserDTO;
+import org.apache.commons.lang3.StringUtils;
+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;
+
+//import com.jeeplus.sys.utils.UserUtils;
+//import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
+//import com.jeeplus.pubmodules.oss.domain.WorkAttachment;
+//import com.jeeplus.pubmodules.oss.mapper.OssServiceMapper;
+
+@Service
+public class JyWorkContractFileService {
+
+    @Resource
+    private JyWorkContractFileMapper jyWorkContractFileMapper;
+
+    public String saveInfo(JyWorkContractFileDto workContractFileDto) throws Exception {
+        if (StringUtils.isNotEmpty(workContractFileDto.getId())) {
+            JyWorkContractFile info = jyWorkContractFileMapper.selectFileByContractInfoId(workContractFileDto.getId());
+            if (info != null) {
+                return update(workContractFileDto, info.getId());
+            }
+        }
+        return add(workContractFileDto);
+    }
+
+
+    /**
+     * 合同登记新增
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String add(JyWorkContractFileDto workContractFileDto) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        String id = UUID.randomUUID().toString().replace("-", "");
+        JyWorkContractFile file = new JyWorkContractFile();
+        BeanUtils.copyProperties(workContractFileDto, file);
+        file.setId(id);
+        file.setCreateById(userDTO.getId());
+        file.setCreateTime(new Date());
+        file.setUpdateById(userDTO.getId());
+        file.setUpdateTime(new Date());
+        jyWorkContractFileMapper.insert(file);
+        return id;
+    }
+
+    /**
+     * 合同登记修改
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String update(JyWorkContractFileDto workContractFileDto, String id) {
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        JyWorkContractFile file = new JyWorkContractFile();
+        BeanUtils.copyProperties(workContractFileDto, file);
+        file.setId(id);
+        file.setUpdateById(userDTO.getId());
+        file.setUpdateTime(new Date());
+        jyWorkContractFileMapper.updateById(file);
+        return file.getId();
+    }
+
+    /**
+     * 根据id修改status
+     */
+    public void updateStatusById(JyWorkContractFileDto workContractFileDto) {
+        jyWorkContractFileMapper.updateStatusById(workContractFileDto.getId(), workContractFileDto.getFiledType());
+    }
+
+    public JyWorkContractFile findById(String id) {
+        return jyWorkContractFileMapper.selectById(id);
+    }
+
+    public JyWorkContractFile findByContractInfoId(String id) {
+        return jyWorkContractFileMapper.selectFileByContractInfoId(id);
+    }
+}

+ 507 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/JyWorkContractService.java

@@ -0,0 +1,507 @@
+package com.jeeplus.business.workContractInfo.service;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSON;
+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.google.common.base.Joiner;
+import com.google.common.collect.Lists;
+
+import com.jeeplus.assess.workContract.domain.WorkContractInfo;
+import com.jeeplus.business.workClientInfo.domain.JyWorkClientInfo;
+import com.jeeplus.business.workClientInfo.mapper.JyWorkClientInfoMapper;
+import com.jeeplus.business.workContractInfo.domain.JyContractParticipant;
+import com.jeeplus.business.workContractInfo.domain.JyWorkContractInfo;
+import com.jeeplus.business.workContractInfo.mapper.JyContractParticipantMapper;
+import com.jeeplus.business.workContractInfo.mapper.JyWorkContractInfoMapper;
+import com.jeeplus.business.workContractInfo.service.dto.JyWorkContractInfoDto;
+import com.jeeplus.common.TokenProvider;
+import com.jeeplus.flowable.feign.IFlowableApi;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.feign.IWorkAttachmentApi;
+import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
+import freemarker.template.utility.StringUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.math3.geometry.spherical.oned.ArcsSet;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.lang.reflect.Array;
+import java.util.*;
+
+//import com.jeeplus.sys.utils.UserUtils;
+//import com.jeeplus.pubmodules.serialNumTpl.service.SerialnumTplService;
+//import com.jeeplus.pubmodules.oss.domain.WorkAttachment;
+//import com.jeeplus.pubmodules.oss.mapper.OssServiceMapper;
+
+@Service
+public class JyWorkContractService {
+
+    @Resource
+    private JyWorkContractInfoMapper jyWorkContractInfoMapper;
+
+//    @Resource
+//    private OssServiceMapper ossServiceMapper;
+
+//    @Resource
+//    private SerialnumTplService serialnumTplService;
+
+    @Resource
+    private JyContractParticipantMapper jyContractParticipantMapper;
+
+    @Resource
+    private JyWorkClientInfoMapper jyWorkClientInfoMapper;
+
+    @Resource
+    private IFlowableApi flowTaskService;
+
+    public String saveInfo(JyWorkContractInfoDto workContractInfoDto) throws Exception {
+        if (StringUtils.isNotEmpty(workContractInfoDto.getId())) {
+            JyWorkContractInfo info = jyWorkContractInfoMapper.selectById(workContractInfoDto.getId());
+            if (info != null) {
+                return update(workContractInfoDto);
+            }
+        }
+        return add(workContractInfoDto);
+    }
+
+    /**
+     * 合同信息列表
+     * @param
+     * @return
+     */
+    public IPage<JyWorkContractInfo> list(Page<JyWorkContractInfo> page, QueryWrapper<JyWorkContractInfo> queryWrapper, String primaryLinkman, String[] contractDates, String[] createDates, String contractAmount,String name,String createById,String filedType,String no) {
+        queryWrapper.eq("a.del_flag","0");
+        if (contractDates != null) {
+            queryWrapper.between("a.contract_date", contractDates[0], contractDates[1]);
+        }
+        if (createDates != null) {
+            queryWrapper.between("a.create_time", createDates[0], createDates[1]);
+        }
+        if (StringUtils.isNotEmpty(contractAmount)) {
+                queryWrapper.eq("a.contract_amount", contractAmount);
+        }
+        if (StringUtils.isNotEmpty(no)){
+            queryWrapper.like("a.no",no);
+        }
+        if (StringUtils.isNotEmpty(filedType)) {
+            queryWrapper.eq("a.filed_type", filedType);
+        }
+        if (StringUtils.isNotEmpty(primaryLinkman)) {
+            queryWrapper.like("a.primary_linkman", primaryLinkman);
+        }
+        if (StringUtils.isNotEmpty(createById)) {
+            queryWrapper.eq("a.create_by_id", createById);
+        }
+        IPage<JyWorkContractInfo> pageList = jyWorkContractInfoMapper.findPageList(page, queryWrapper);
+        pageList.getRecords().stream().forEach(i -> {
+            // 合同归档
+            if (StringUtils.isNotBlank(i.getTaskFiledId()) && StringUtils.isNotBlank(i.getFiledType())) {
+                if ("2".equals(i.getFiledType())) { // “审核中”的数据要获取数据审核人
+                    i.setAuditUserIdsFiled(flowTaskService.getTaskAuditUsers(i.getTaskFiledId()));  // 获取数据审核人
+                }
+            }
+            //合同类型查询
+            StringBuffer stringBuffer = new StringBuffer();
+            String newType="";
+            if (StringUtils.isNotEmpty(i.getContractType())){
+                if (!i.getContractType().contains(",")){
+                   String type= jyWorkContractInfoMapper.findType(i.getContractType());
+                   i.setContractType(type);
+                }else {
+                    String[] split = i.getContractType().split(",");
+                    for (String s : split) {
+                        String type= jyWorkContractInfoMapper.findType2(s);
+                        stringBuffer.append(type+",");
+                        newType=stringBuffer.substring(0,stringBuffer.lastIndexOf(",")+1);
+                        i.setContractType(newType);
+                    }
+                }
+            }
+        });
+        return pageList;
+    }
+
+    /**
+     * 合同新增
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String add(JyWorkContractInfoDto workContractInfoDto) throws Exception{
+        JyWorkContractInfo info = new JyWorkContractInfo();
+
+        String currentToken = TokenProvider.getCurrentToken();
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(currentToken);
+        //合同编号生成
+        List<List<String>> contractTypes = new ArrayList<>();
+        String newType="";
+        contractTypes = workContractInfoDto.getContractTypes();
+        String contractNo="";
+        StringBuffer sb = new StringBuffer();
+        for (List<String> contractType : contractTypes) {
+            if (contractType.size()>0){
+                switch (contractType.get(0)){
+                    case "1": //环境监测
+                        contractNo=SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), JyWorkContractInfoDto.BIZ_CODE4,TokenProvider.getCurrentToken());
+                        break;
+                    case "2": //环境影响评价
+                        contractNo=SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), JyWorkContractInfoDto.BIZ_CODE3,TokenProvider.getCurrentToken());
+                        break;
+                    case "3": //水土保持
+                        contractNo=SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), JyWorkContractInfoDto.BIZ_CODE2,TokenProvider.getCurrentToken());
+                        break;
+                    case "4": //其他
+                        contractNo=SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), JyWorkContractInfoDto.BIZ_CODE1,TokenProvider.getCurrentToken());
+                        break;
+                    default:
+                        return null;
+                }
+            }
+            //判断合同类型是否有二级
+            if (contractType.size()>1){
+                sb.append(contractType.get(1)+",");
+                newType=sb.substring(0,sb.lastIndexOf(",")+1);
+            }else {
+                newType=contractType.get(0);
+            }
+        }
+
+        //生成id
+        String id = UUID.randomUUID().toString().replace("-", "");
+
+        BeanUtils.copyProperties(workContractInfoDto, info);
+
+        info.setId(id); //id
+        info.setNo(contractNo); //合同编号
+        info.setCreateById(userDTO.getId());
+        info.setCreateTime(new Date());
+        info.setUpdateById(userDTO.getId());
+        info.setUpdateTime(new Date());
+        info.setPrimaryLinkman(workContractInfoDto.getPrimaryLinkman()); //主委托人
+        info.setContractAmount(workContractInfoDto.getContractAmount()); //金额
+        info.setPaymentDescribe(workContractInfoDto.getPaymentDescribe()); //付款摘要
+        info.setEffectiveDate(workContractInfoDto.getEffectiveDate()); //开始日期
+        info.setClosingDate(workContractInfoDto.getClosingDate()); //结束日期
+        info.setContractDate(workContractInfoDto.getContractDate()); //签订日期
+        info.setContractType(newType);//合同类型
+        info.setName(workContractInfoDto.getContractName()); //合同名称
+        info.setContractOpposite(workContractInfoDto.getContractOpposite()); //对方合同编号
+        info.setDepartment(workContractInfoDto.getDepartment());//所属部门
+        info.setContractSpecial(workContractInfoDto.getContractSpecial()); //合同特别条款
+        info.setRemarks(workContractInfoDto.getRemarks()); //备注
+        jyWorkContractInfoMapper.insert(info);
+        //获取委托方并添加至委托方表中
+        JyContractParticipant participant = new JyContractParticipant();
+        if (workContractInfoDto.getCwWorkClientContactDTOList() != null){
+            if (workContractInfoDto.getCwWorkClientContactDTOList().size()>0){
+                workContractInfoDto.getCwWorkClientContactDTOList().forEach(cw->{
+                    String parId = UUID.randomUUID().toString().replace("-", "");
+                    participant.setId(parId);
+                    participant.setContractInfoId(id);
+                    participant.setCustomerName(cw.getName());
+                    participant.setCustomerNo(cw.getNo());
+                    participant.setCreateById(userDTO.getId());
+                    participant.setCreateTime(workContractInfoDto.getCreateTime());
+                    participant.setUpdateById(userDTO.getId());
+                    participant.setUpdateTime(new Date());
+                    jyContractParticipantMapper.insert(participant);
+                });
+            }
+        }
+        List<WorkAttachmentInfo> list = workContractInfoDto.getWorkAttachmentList();
+        if (CollectionUtil.isNotEmpty(list)) {
+            saveFiles(list, userDTO, id);
+        }
+        return id;
+    }
+
+    /**
+     * 合同登记修改
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public String update(JyWorkContractInfoDto workContractInfoDto) throws Exception{
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        JyWorkContractInfo info = new JyWorkContractInfo();
+        BeanUtils.copyProperties(workContractInfoDto, info);
+//        info.setNo(serialNum);
+        info.setUpdateById(userDTO.getId());
+        info.setUpdateTime(new Date());
+        jyWorkContractInfoMapper.updateById(info);
+        List<WorkAttachmentInfo> list = workContractInfoDto.getWorkAttachmentList();
+//        if (CollectionUtil.isNotEmpty(list)) {
+//            updateFiles(list, userDTO, workContractInfoDto.getId());
+//        }
+        updateFiles(list, userDTO, workContractInfoDto.getId());
+        return workContractInfoDto.getId();
+    }
+
+    /**
+     * 合同登记删除
+     */
+    public String removeById(String id) {
+        jyWorkContractInfoMapper.deleteById(id);
+        // 附件删除
+//        LambdaQueryWrapper<WorkAttachment> wrapper = new LambdaQueryWrapper<>();
+//        wrapper.eq(WorkAttachment::getAttachmentId, id);
+        SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(id);
+        return "删除完成!";
+    }
+
+    /**
+     * 合同查询
+     */
+    public JyWorkContractInfoDto findById(String id) {
+        JyWorkContractInfoDto dto = new JyWorkContractInfoDto();
+        JyWorkContractInfo info = jyWorkContractInfoMapper.findById(id);
+        if (info != null) {
+            BeanUtils.copyProperties(info, dto);
+            // 查询附件信息
+            List<WorkAttachmentInfo> dtos = jyWorkContractInfoMapper.findDtos(id);
+            if (CollectionUtil.isNotEmpty(dtos)) {
+                for (WorkAttachmentInfo i : dtos) {
+                    i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+                }
+            }
+            dto.setWorkAttachmentList(dtos);
+            dto.setContractName(info.getName());
+            dto.setId(id); //id
+            dto.setNo(info.getNo()); //合同编号
+            dto.setCreateTime(info.getCreateTime());
+            dto.setUpdateTime(info.getUpdateTime());
+            dto.setPrimaryLinkman(info.getPrimaryLinkman()); //主委托人
+            dto.setContractAmount(info.getContractAmount()); //金额
+            dto.setPaymentDescribe(info.getPaymentDescribe()); //付款摘要
+            dto.setEffectiveDate(info.getEffectiveDate()); //开始日期
+            dto.setClosingDate(info.getClosingDate()); //结束日期
+            dto.setContractDate(info.getContractDate()); //签订日期
+            dto.setTaskId(info.getTaskId());
+            dto.setDepartment(info.getDepartment());
+            //获取委托人列表
+            List<JyContractParticipant> list = new ArrayList<>();
+            List<JyContractParticipant> byInfoId = jyContractParticipantMapper.findByInfoId(id);
+            if (byInfoId.size()>0){
+                byInfoId.forEach(cw->{
+                    JyContractParticipant jyContractParticipant = new JyContractParticipant();
+                    jyContractParticipant.setName(cw.getCustomerName());
+                    jyContractParticipant.setNo(cw.getCustomerNo());
+                    list.add(jyContractParticipant);
+                });
+                dto.setCwWorkClientContactDTOList(list);
+            }
+            //合同类型查询
+            StringBuffer stringBuffer = new StringBuffer();
+            String newType="";
+            List<String> stringList = new ArrayList<>();
+            if (!info.getContractType().contains(",")){
+                String type= jyWorkContractInfoMapper.findType(info.getContractType());
+                info.setContractType(type);
+            }else {
+                String[] split = info.getContractType().split(",");
+                for (String s : split) {
+                    String type= jyWorkContractInfoMapper.findType2(s);
+                    stringBuffer.append(type+",");
+                    newType=stringBuffer.substring(0,stringBuffer.lastIndexOf(","));
+                    info.setContractType(newType);
+                    stringList.add(info.getContractType());
+                }
+            }
+            ArrayList<List<String>> jyWorkContractInfos = new ArrayList<>();
+            jyWorkContractInfos.add(stringList);
+            dto.setContractTypes(jyWorkContractInfos);
+        }
+
+        return dto;
+    }
+
+    /**
+     * 根据id修改status
+     */
+    public void updateStatusById(JyWorkContractInfoDto workContractInfoDto) {
+        jyWorkContractInfoMapper.updateStatusById(workContractInfoDto.getId(), workContractInfoDto.getFiledType());
+    }
+
+    /**
+     * 保存附件信息
+     * @param list 待保存的附件列表
+     * @param userDTO 当前登录用户
+     * @param id 关联id
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveFiles(List<WorkAttachmentInfo> list, UserDTO userDTO, String id) {
+        int j = 1;
+        for (WorkAttachmentInfo dto : list) {
+            WorkAttachmentInfo i = new WorkAttachmentInfo();
+            //包含了url、size、name
+            i.setId(UUID.randomUUID().toString().replace("-", ""));
+//            i.getCreateBy().setId(userDTO.getId());
+            i.setCreateTime(new Date());
+//            i.getUpdateBy().setId(userDTO.getId());
+            i.setUpdateTime(new Date());
+            i.setDelFlag(0);
+            i.setUrl(dto.getUrl());
+            //文件类型处理
+            List<String> strings = Arrays.asList(dto.getName().split("\\."));
+            if (CollectionUtil.isNotEmpty(strings)) {
+                i.setType(strings.get(1));
+            }
+            i.setAttachmentId(id);
+            i.setAttachmentName(dto.getName());
+            i.setAttachmentFlag("workcontract");
+            i.setFileSize(dto.getSize());
+            i.setSort(j);
+            Map<String,String> map = new HashMap<>();
+            String workAttachment = JSON.toJSONString((i));
+            String userDTOInfo = JSON.toJSONString((userDTO));
+            map.put("workAttachment",workAttachment);
+            map.put("userDTO",userDTOInfo);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+            j++;
+        }
+    }
+
+    /**
+     * 保存附件信息
+     * @param list 待保存的附件列表
+     * @param userDTO 当前登录用户
+     * @param id 关联id
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void saveFilesNew(List<WorkAttachmentInfoDTO> list, UserDTO userDTO, String id,String attachmentFlag) {
+        int j = 1;
+        for (WorkAttachmentInfoDTO dto : list) {
+            WorkAttachmentInfo i = new WorkAttachmentInfo();
+            //包含了url、size、name
+            i.setId(UUID.randomUUID().toString().replace("-", ""));
+//            i.getCreateBy().setId(userDTO.getId());
+            i.setCreateTime(new Date());
+//            i.getUpdateBy().setId(userDTO.getId());
+            i.setUpdateTime(new Date());
+            i.setDelFlag(0);
+            i.setUrl(dto.getUrl());
+            //文件类型处理
+            List<String> strings = Arrays.asList(dto.getName().split("\\."));
+            if (CollectionUtil.isNotEmpty(strings)) {
+                i.setType(strings.get(1));
+            }
+            i.setAttachmentId(id);
+            i.setAttachmentName(dto.getName());
+            i.setAttachmentFlag(attachmentFlag);
+            i.setFileSize(dto.getSize());
+            i.setSort(j);
+            Map<String,String> map = new HashMap<>();
+            String workAttachment = JSON.toJSONString((i));
+            String userDTOInfo = JSON.toJSONString((userDTO));
+            map.put("workAttachment",workAttachment);
+            map.put("userDTO",userDTOInfo);
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+            j++;
+        }
+    }
+
+    /**
+     * 修改附件信息
+     * @param list 待修改的附件列表
+     * @param userDTO 当前登录用户
+     * @param id 关联id
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void updateFiles(List<WorkAttachmentInfo> list, UserDTO userDTO, String id) {
+        int j = 1;
+        String names = new String();
+        //表中存在,但是传过来不存在,说明已删除,表中数据也要删除
+        for (WorkAttachmentInfo dto : list) {
+            names = names + "," +dto.getUrl();
+        }
+        //查询保存的附件信息
+        List<WorkAttachmentInfo> infoList = jyWorkContractInfoMapper.findList(id);
+        if (CollectionUtil.isNotEmpty(infoList)) {
+            for (WorkAttachmentInfo i : infoList) {
+                if (!names.contains(i.getUrl())) {
+                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteById(i.getId());
+                }
+            }
+        }
+        //保存信息
+        for (WorkAttachmentInfo dto : list) {
+            //判断是否存在
+            Integer isExit = jyWorkContractInfoMapper.findIsExit(id, dto.getName());
+            if (isExit == 0) {
+                WorkAttachmentInfo i = new WorkAttachmentInfo();
+                //包含了url、size、name
+                i.setId(UUID.randomUUID().toString().replace("-", ""));
+//                i.getCreateBy().setId(userDTO.getId());
+                i.setCreateTime(new Date());
+//                i.getUpdateBy().setId(userDTO.getId());
+                i.setUpdateTime(new Date());
+                i.setDelFlag(0);
+                i.setUrl(dto.getUrl());
+                //文件类型处理
+                List<String> strings = Arrays.asList(dto.getName().split("\\."));
+                if (CollectionUtil.isNotEmpty(strings)) {
+                    i.setType(strings.get(1));
+                }
+                i.setAttachmentId(id);
+                i.setAttachmentName(dto.getName());
+                i.setAttachmentFlag("workcontract");
+                i.setFileSize(dto.getSize());
+                i.setSort(j);
+                Map<String,String> map = new HashMap<>();
+                String workAttachment = JSON.toJSONString((i));
+                String userDTOInfo = JSON.toJSONString((userDTO));
+                map.put("workAttachment",workAttachment);
+                map.put("userDTO",userDTOInfo);
+                SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
+                j++;
+            }
+        }
+    }
+
+
+
+    /**
+     * 根据客户id查询信息
+     * @param clientId
+     * @return
+     */
+    public List<JyWorkContractInfoDto> getInfoByClientId(String clientId) {
+        List<JyWorkContractInfoDto> infoList = jyWorkContractInfoMapper.getInfoByClientId(clientId);
+        if (null != infoList && infoList.size()>0) {
+            for (JyWorkContractInfoDto info: infoList) {
+                // 查询附件信息
+                List<WorkAttachmentInfo> dtos = jyWorkContractInfoMapper.findDtos(info.getId());
+                if (CollectionUtil.isNotEmpty(dtos)) {
+                    for (WorkAttachmentInfo i : dtos) {
+                        i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+                    }
+                }
+            }
+        }
+        return infoList;
+    }
+
+    /**
+     * 归档送审
+     * @param workContractInfoDto
+     * @return
+     */
+    public String saveContract(JyWorkContractInfoDto workContractInfoDto) {
+        //获取当前登录人信息
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        JyWorkContractInfo info = jyWorkContractInfoMapper.findById(workContractInfoDto.getId());
+//        info.setNo(serialNum);
+        info.setUpdateById(userDTO.getId());
+        info.setUpdateTime(new Date());
+        if (userDTO.getOfficeDTO().getName().equals("办公室")){
+            info.setFiledNo(workContractInfoDto.getFiledNo());
+        }
+        jyWorkContractInfoMapper.updateContractById(info.getUpdateById(),info.getUpdateTime(),workContractInfoDto.getFiledType(),info.getFiledNo(),workContractInfoDto.getId());
+        return workContractInfoDto.getId();
+    }
+}

+ 29 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/dto/JyWorkContractFileDto.java

@@ -0,0 +1,29 @@
+package com.jeeplus.business.workContractInfo.service.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.core.service.dto.BaseDTO;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class JyWorkContractFileDto extends BaseDTO {
+
+    private String contractInfoId;
+
+    private String procInsId;
+
+    private String processDefinitionId;
+
+    private String fileCreateName;
+
+    private String filedType;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date filedData;
+
+    private String filedNo;
+
+    private String confirmFiledNo;
+
+}

+ 159 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/dto/JyWorkContractInfoDto.java

@@ -0,0 +1,159 @@
+package com.jeeplus.business.workContractInfo.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.business.workContractInfo.domain.JyContractParticipant;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import lombok.Data;
+
+import java.lang.reflect.Array;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Data
+public class JyWorkContractInfoDto extends BaseDTO {
+
+    //合同编号-其他(字典值)
+    public static final String BIZ_CODE1 = "35";
+
+    //合同编号-水土保持(字典值)
+    public static final String BIZ_CODE2 = "34";
+
+    //合同编号-环境影响评价(字典值)
+    public static final String BIZ_CODE3 = "33";
+
+    //合同编号-环境监测(字典值)
+    public static final String BIZ_CODE4 = "32";
+
+    /**
+     * 客户id
+     */
+    private String customerId;
+
+    /**
+     * 客户名称
+     */
+    private String clientName;
+
+    /**
+     * 客户编号
+     */
+    private String clientNo;
+
+    /**
+     * 合同编号
+     */
+    private String no;
+
+    /**
+     * 合同名称
+     */
+    private String contractName;
+
+    /**
+     * 签订日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date contractDate;
+
+    /**
+     * 合同生效日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date effectiveDate;
+
+    /**
+     * 合同终止日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date closingDate;
+
+    /**
+     * 所属部门
+     */
+    private String department;
+
+    /**
+     * 合同类型
+     */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private List<List<String>> contractTypes;
+    private String contractType;
+
+
+    /**
+     * 合同金额类别
+     */
+    private String contractAmountType;
+
+    /**
+     * 合同金额
+     */
+    private String contractAmount;
+
+    /**
+     * 对方合同编号
+     */
+    private String contractOpposite;
+
+    /**
+     * 收费标准
+     */
+    private String contractFee;
+
+    private String fees;
+
+    /**
+     * 付款摘要
+     */
+    private String paymentDescribe;
+
+    /**
+     * 合同特别条款
+     */
+    private String contractSpecial;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 附件信息
+     */
+    private List<WorkAttachmentInfo> workAttachmentList;
+
+    private String contractFileId;
+
+    private String filedType;
+
+    /**
+     * 主委托方
+     */
+    private String primaryLinkman;
+
+    /**
+     * 委托方
+     */
+    private String linkman;
+
+    private List<JyContractParticipant> cwWorkClientContactDTOList;
+
+    /**
+     * 盒号
+     */
+    private String filedNo;
+
+    private String updateById;
+
+    private String taskId;
+
+}

+ 102 - 0
jeeplus-modules/jeeplus-business/src/main/resources/bootstrap.yml

@@ -0,0 +1,102 @@
+# Tomcat
+server:
+  port: 9610
+  servlet:
+    context-path:
+
+#mybatis-plus配置
+#mybatis-plus:
+#  mapper-locations:
+#    - classpath*:com/jeeplus/modules/**/*Mapper.xml
+#    - classpath:/META-INF/admin-mybatis-mappings/*.xml
+#    - classpath:/META-INF/modeler-mybatis-mappings/*.xml
+#  #实体扫描,多个package用逗号或者分号分隔
+#  typeAliasesPackage: com.jeeplus.modules.**.entity
+#  configuration-properties:
+#    prefix:
+#    boolValue: TRUE
+#    blobType: BLOB
+
+# Spring
+spring:
+  main:
+    allow-bean-definition-overriding: true
+  application:
+    # 应用名称
+    name: jeeplus-business
+  boot:
+    admin:
+      client:
+        url: http://localhost:8989
+  profiles:
+    # 环境配置
+    active: pro
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: 127.0.0.1:8848
+        # 命名空间
+        namespace: ${spring.profiles.active}
+#        username: nacos
+#        password: nacos
+      config:
+        # 配置中心地址
+        server-addr: 127.0.0.1:8848
+        # 配置文件格式
+        file-extension: yml
+        # 共享配置
+        shared-configs:
+          - application.${spring.cloud.nacos.config.file-extension}
+        # 命名空间
+        namespace: ${spring.profiles.active}
+        # username: ${spring.cloud.nacos.discovery.username}
+        # password: ${spring.cloud.nacos.discovery.password}
+    sentinel:
+      transport:
+        dashboard: 127.0.0.1:8858
+  thymeleaf:
+    prefix: classpath:/templates/
+    suffix: .html
+    mode: HTML5
+    encoding: UTF-8
+#ribbon的超时时间
+ribbon:
+  ConnectTimeout: 60000 # 连接超时时间(ms)
+  ReadTimeout: 60000 # 通信超时时间(ms)
+
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          thread:
+            timeoutInMillisecond: 60000 # 熔断超时时长:60000ms
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+#oss配置
+config:
+  accessory:
+    type: minIO       #local, aliyun, minIO
+    baseDir: file
+    local:
+      location: d:\\accessory
+    aliyun:
+      aliyunUrl: http://oss.gangwaninfo.com
+      aliyunDownloadUrl: http://cdn.gangwaninfo.com
+      endpoint: http://oss-cn-hangzhou.aliyuncs.com
+      accessKeyId: LTAI5tQDWoM9c1WyJNPs86rX
+      accessKeySecret: 84dDIx4edT1n78KUOqqSmDZ35pchJv
+      bucketName: xg-pg
+    minIO:
+      endpoint:
+      accessKey:
+      secretKey:
+      bucketName:
+#阿里云文件夹路径
+aliyun_directory: attachment-file/assess
+#签章阿里云文件bucketName
+qzBucketName: xg-qz

+ 18 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/controller/DictController.java

@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -181,5 +182,22 @@ public class DictController {
         return ResponseEntity.ok ( DictUtils.getDictMap ( ) );
     }
 
+    /**
+     * 根据字典值获取合同类型
+     */
+//    @ApiLog("根据字典值获取集合")
+//    @GetMapping("type/getList")
+//    public ResponseEntity <List<DictValue>> getList(DictValue dictValue) throws Exception {
+//        List<DictValue> dictValues=dictTypeService.getList(dictValue.getValue());
+//        return ResponseEntity.ok ( dictValues );
+//    }
+
+    @ApiLog("根据字典值获取集合")
+    @GetMapping("type/getList")
+    public ResponseEntity <List<Map<String,Object>>> getListData() throws Exception {
+        List<Map<String,Object>> dictValues=dictTypeService.getListData();
+        return ResponseEntity.ok ( dictValues );
+    }
+
 
 }

+ 41 - 0
jeeplus-modules/jeeplus-system/src/main/java/com/jeeplus/sys/service/DictTypeService.java

@@ -3,6 +3,8 @@
  */
 package com.jeeplus.sys.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.jeeplus.common.constant.CacheNames;
@@ -13,13 +15,17 @@ import com.jeeplus.sys.service.dto.DictTypeDTO;
 import com.jeeplus.sys.service.dto.DictValueDTO;
 import com.jeeplus.sys.service.mapstruct.DictTypeWrapper;
 import com.jeeplus.sys.service.mapstruct.DictValueWrapper;
+import com.sun.org.apache.regexp.internal.RE;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -78,4 +84,39 @@ public class DictTypeService extends ServiceImpl <DictTypeMapper, DictType> {
         return list;
     }
 
+    /**
+     * 根据value获取集合
+     * @param value
+     * @return
+     */
+    @Cacheable(CacheNames.SYS_CACHE_DICT_MAP)
+    public List<DictValue> getList(String value) {
+        List<DictValue> dictValues=dictValueService.list(new LambdaQueryWrapper<DictValue>().eq(DictValue::getValue,value));
+        return dictValues;
+    }
+
+
+    public List<Map<String, Object>> getListData() {
+        List<Map<String, Object>> list=new ArrayList<>();
+        //首先获取合同类型的大类
+        DictTypeDTO dictTypeDTO = this.get("1706920812493086722");
+        for (DictValueDTO dictValueDTO : dictTypeDTO.getDictValueDTOList()) {
+            Map<String, Object> map=new HashMap<>();
+            map.put("value",dictValueDTO.getValue());
+            map.put("label",dictValueDTO.getLabel());
+            String id = dictValueDTO.getId();
+            List<DictValue> listChild = this.getList(id);
+            List<Map<String, String>> arrChild=new ArrayList<>();
+            for (DictValue dictValue : listChild) {
+                Map<String, String> mapChild=new HashMap<>();
+                mapChild.put("value",dictValue.getId());
+                mapChild.put("label",dictValue.getLabel());
+                arrChild.add(mapChild);
+            }
+            map.put("children",arrChild);
+            list.add(map);
+        }
+        return list;
+    }
+
 }

+ 1 - 0
jeeplus-modules/pom.xml

@@ -26,6 +26,7 @@
         <module>jeeplus-assess</module>
         <module>jeeplus-public-modules</module>
         <module>jeeplus-centrecareful</module>
+        <module>jeeplus-business</module>
     </modules>
 
 </project>