Ver código fonte

环评,会议室预约

sangwenwei 1 ano atrás
pai
commit
59e43d4106
28 arquivos alterados com 1091 adições e 9 exclusões
  1. 1 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/JeeplusBusinessApplication.java
  2. 99 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/controller/MeetingRoomController.java
  3. 90 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/domain/MeetingRoom.java
  4. 24 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/MeetingRoomMapper.java
  5. 86 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/xml/MeetingRoomMapper.xml
  6. 157 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/MeetingRoomService.java
  7. 90 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/dto/MeetingRoomDTO.java
  8. 32 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/controller/JyProjectController.java
  9. 17 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProject.java
  10. 48 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProjectEiaQualification.java
  11. 27 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProjectEiaQualificationFile.java
  12. 10 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/JyProjectEiaQualificationFileMapper.java
  13. 15 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/JyProjectEiaQualificationMapper.java
  14. 38 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/JyProjectEiaQualificationMapper.xml
  15. 16 3
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/ProjectListMapper.xml
  16. 118 3
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/JyProjectService.java
  17. 5 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectDTO.java
  18. 56 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectEiaQualificationDTO.java
  19. 15 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/mapstruct/JyProjectEiaQualificationWrapper.java
  20. 12 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/controller/SignetController.java
  21. 10 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java
  22. 2 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/JyWorkClientLinkmanMapper.java
  23. 1 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/xml/JyWorkClientInfoMapper.xml
  24. 17 2
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/xml/JyWorkClientLinkmanMapper.xml
  25. 10 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/controller/JyWorkContractController.java
  26. 6 0
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/JyWorkContractService.java
  27. 2 1
      jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/dto/JyWorkContractInfoDto.java
  28. 87 0
      jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/JyProjectEiaQualificationListener.java

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

@@ -3,6 +3,7 @@ package com.jeeplus.business;
 import com.jeeplus.core.annotation.JeeplusCloudApplication;
 import org.springframework.boot.SpringApplication;
 import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.ComponentScan;
 
 /**
  * 嘉溢合同项目模块

+ 99 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/controller/MeetingRoomController.java

@@ -0,0 +1,99 @@
+package com.jeeplus.business.meetingRoom.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.jeeplus.business.meetingRoom.domain.MeetingRoom;
+import com.jeeplus.business.meetingRoom.service.MeetingRoomService;
+import com.jeeplus.business.meetingRoom.service.dto.MeetingRoomDTO;
+import com.jeeplus.common.utils.ResponseUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Api(tags ="嘉溢会议室预约")
+@RestController
+@RequestMapping(value = "/meetingRoom")
+public class MeetingRoomController {
+
+    @Autowired
+    private MeetingRoomService meetingRoomService;
+
+
+    /**
+     * 会议室列表
+     */
+    @ApiOperation(value = "会议室列表")
+    @GetMapping(value = "/list")
+    public ResponseEntity<IPage<MeetingRoom>> findPageList(MeetingRoom meetingRoom, Page<MeetingRoom> page) throws Exception {
+       IPage<MeetingRoom> iPage= meetingRoomService.findPageList(meetingRoom,page);
+       return ResponseEntity.ok(iPage);
+    }
+
+
+    /**
+     * 会议室添加/修改
+     */
+    @ApiOperation(value = "会议室添加/修改")
+    @PostMapping(value = "/saveForm")
+    public ResponseEntity saveForm(@RequestBody MeetingRoomDTO meetingRoomDTO){
+        String id=meetingRoomService.saveForm(meetingRoomDTO);
+        return ResponseUtil.newInstance().add("businessTable","jy_meeting_room").add("businessId",id).ok("操作成功");
+    }
+
+    /**
+     * 根据id查询会议室信息
+     */
+    @ApiOperation(value = "根据id查询会议室信息")
+    @GetMapping(value = "/findById")
+    public ResponseEntity<MeetingRoomDTO> findById(@RequestParam String id){
+        MeetingRoomDTO roomDTO=meetingRoomService.findById(id);
+        return ResponseEntity.ok(roomDTO);
+    }
+
+    /**
+     * 根据id修改状态status
+     * @param
+     */
+    @ApiOperation(value = "根据id修改状态status")
+    @PostMapping(value = "/updateStatusById")
+    public void updateStatusById(String id,String status) {
+        meetingRoomService.updateStatusById(id,status);
+    }
+
+    /**
+     * 根据会议开始时间查询最近结束的会议时间
+     */
+    @ApiOperation(value = "根据会议开始时间查询最近结束的会议时间")
+    @GetMapping(value = "/checkTime")
+    public Boolean checkTime(@RequestParam String startTime) throws ParseException {
+        Boolean check=meetingRoomService.checkTime(startTime);
+        return check;
+    }
+
+    /**
+     * 根据id删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id删除")
+    @GetMapping(value = "/deleteById")
+    public ResponseEntity<String> deleteById(@RequestParam String id){
+        String s = meetingRoomService.deleteById(id);
+        return ResponseEntity.ok(s);
+    }
+
+
+
+
+
+
+
+}

+ 90 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/domain/MeetingRoom.java

@@ -0,0 +1,90 @@
+package com.jeeplus.business.meetingRoom.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 lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@TableName("jy_meeting_room")
+public class MeetingRoom extends BaseEntity {
+
+    private String id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 会议开始,结束时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date startTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date endTime;
+
+    /**
+     * 会议时长
+     */
+    private Integer duration;
+
+    /**
+     * 会议说明
+     */
+    private String remarks;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    /**
+     * 流程信息
+     */
+    private String processDefinitionId;
+    private String taskId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+
+    /**
+     * 创建时间
+     */
+    @TableField(exist = false)
+    private String[] meetingDates;
+
+    /**
+     * 创建人
+     */
+    @TableField(exist = false)
+    private String createName;
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createDate;
+
+    /**
+     * 部门
+     */
+    @TableField(exist = false)
+    private String officeId;
+    @TableField(exist = false)
+    private String officeName;
+
+    private static final long serialVersionUID = 1L;
+
+
+
+
+
+
+}

+ 24 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/MeetingRoomMapper.java

@@ -0,0 +1,24 @@
+package com.jeeplus.business.meetingRoom.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.meetingRoom.domain.MeetingRoom;
+import com.jeeplus.business.meetingRoom.service.dto.MeetingRoomDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+
+@Mapper
+public interface MeetingRoomMapper extends BaseMapper<MeetingRoom> {
+    IPage<MeetingRoom> findPageList(Page<MeetingRoom> page, @Param(Constants.WRAPPER) QueryWrapper<MeetingRoom> meetingRoomQueryWrapper);
+
+    MeetingRoomDTO findById(@Param("id") String id);
+
+    void updateStatusById(@Param("id")String id, @Param("status")String status);
+
+    MeetingRoom checkTime(@Param("startTime")Date date);
+}

+ 86 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/mapper/xml/MeetingRoomMapper.xml

@@ -0,0 +1,86 @@
+<?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.meetingRoom.mapper.MeetingRoomMapper">
+
+    <select id="findPageList" resultType="com.jeeplus.business.meetingRoom.domain.MeetingRoom">
+        select
+            a.id,
+            a.create_by_id,
+            su.name as createName,
+            a.title,
+            a.start_time,
+            a.duration,
+            a.remarks,
+            a.create_time as createDate,
+            a.status,
+            so.id as officeId,
+            so.name as officeName,
+            a.proc_ins_id as procInsId ,
+            a.process_definition_id as processDefinitionId,
+            art.ID_ as task_id
+        from
+            jy_meeting_room a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = 0
+        left join sys_office so on su.office_id = so.id
+        left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+        ${ew.customSqlSegment}
+        ORDER BY a.create_time DESC
+    </select>
+
+    <select id="findById" resultType="com.jeeplus.business.meetingRoom.service.dto.MeetingRoomDTO">
+        select
+            a.id,
+            a.create_by_id,
+            su.name as createName,
+            a.title,
+            a.start_time,
+            a.duration,
+            a.remarks,
+            a.create_time as createDate,
+            a.status,
+            so.id as officeId,
+            so.name as officeName,
+            a.proc_ins_id as procInsId ,
+            a.process_definition_id as processDefinitionId,
+            art.ID_ as task_id
+        from
+            jy_meeting_room a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = 0
+        left join sys_office so on su.office_id = so.id
+        left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+        where a.id=#{id}
+    </select>
+
+    <update id="updateStatusById">
+        update jy_meeting_room set status=#{status} where id=#{id}
+    </update>
+
+    <select id="checkTime" resultType="com.jeeplus.business.meetingRoom.domain.MeetingRoom">
+        select
+             a.id,
+            a.create_by_id,
+            su.name as createName,
+            a.title,
+            a.start_time,
+            a.end_time,
+            a.duration,
+            a.remarks,
+            a.create_time as createDate,
+            a.status,
+            so.id as officeId,
+            so.name as officeName,
+            a.proc_ins_id as procInsId ,
+            a.process_definition_id as processDefinitionId,
+            art.ID_ as task_id
+        from
+            jy_meeting_room a
+        left join sys_user su on a.create_by_id = su.id and su.del_flag = 0
+        left join sys_office so on su.office_id = so.id
+        left join act_ru_task art ON a.proc_ins_id = art.PROC_INST_ID_
+        where (a.end_time &lt;= #{startTime} or a.end_time &gt;= #{startTime}) and a.del_flag =0
+        order by a.end_time DESC limit 1
+    </select>
+
+</mapper>

+ 157 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/MeetingRoomService.java

@@ -0,0 +1,157 @@
+package com.jeeplus.business.meetingRoom.service;
+
+import cn.hutool.core.bean.BeanUtil;
+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.meetingRoom.domain.MeetingRoom;
+import com.jeeplus.business.meetingRoom.mapper.MeetingRoomMapper;
+import com.jeeplus.business.meetingRoom.service.dto.MeetingRoomDTO;
+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.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Service
+public class MeetingRoomService {
+
+    @Autowired
+    private MeetingRoomMapper meetingRoomMapper;
+
+
+    /**
+     * 会议室列表查询
+     * @param meetingRoom
+     * @param page
+     * @return
+     */
+    public IPage<MeetingRoom> findPageList(MeetingRoom meetingRoom, Page<MeetingRoom> page) throws Exception {
+        QueryWrapper<MeetingRoom> meetingRoomQueryWrapper = QueryWrapperGenerator.buildQueryCondition(meetingRoom, MeetingRoom.class);
+        if (ObjectUtil.isNotEmpty(meetingRoomQueryWrapper) && StringUtils.isNotBlank(meetingRoom.getCreateById())){
+            meetingRoomQueryWrapper.eq("a.create_by_id",meetingRoom.getCreateById());
+        }
+        meetingRoomQueryWrapper.eq("a.del_flag",0);
+        //会议开始时间
+        if (meetingRoom.getMeetingDates() != null && meetingRoom.getMeetingDates().length >0){
+            meetingRoomQueryWrapper.between("a.start_time",meetingRoom.getMeetingDates()[0],meetingRoom.getMeetingDates()[1]);
+        }
+        //标题
+        if (StringUtils.isNotBlank(meetingRoom.getTitle())){
+            meetingRoomQueryWrapper.like("a.title",meetingRoom.getTitle());
+        }
+        //发起人部门
+        if (StringUtils.isNotBlank(meetingRoom.getOfficeId())){
+            meetingRoomQueryWrapper.eq("so.id",meetingRoom.getOfficeId());
+        }
+        IPage<MeetingRoom> iPage=meetingRoomMapper.findPageList(page,meetingRoomQueryWrapper);
+
+        return iPage;
+    }
+
+    /**
+     * 会议室新增或修改
+     * @param meetingRoomDTO
+     * @return
+     */
+    public String saveForm(MeetingRoomDTO meetingRoomDTO) {
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        //创建会议室对象并进行复制
+        MeetingRoom meetingRoom = new MeetingRoom();
+        BeanUtil.copyProperties(meetingRoomDTO,meetingRoom);
+        meetingRoom.setStartTime(meetingRoomDTO.getStartTime());// 会议开始时间
+        meetingRoom.setTitle(meetingRoomDTO.getTitle()); //标题
+        Integer timeLong=0;
+        //会议时长计算
+        if (meetingRoomDTO.getDuration()==30){
+            timeLong=30*60;
+        }
+        if (meetingRoomDTO.getDuration()==1 || meetingRoomDTO.getDuration()==2 || meetingRoomDTO.getDuration()==3){
+            timeLong=meetingRoomDTO.getDuration()*60*60;
+        }
+         //会议时长
+        meetingRoom.setDuration(meetingRoomDTO.getDuration());
+        meetingRoom.setRemarks(meetingRoomDTO.getRemarks()); //会议说明
+        meetingRoom.setCreateById(userDTO.getId());
+        meetingRoom.setCreateTime(new Date());
+        meetingRoom.setUpdateById(userDTO.getId());
+        meetingRoom.setUpdateTime(new Date());
+        meetingRoom.setDelFlag(0);
+        //会议结束时间
+        Date endDate = new Date(meetingRoomDTO.getStartTime().getTime() + (timeLong * 1000));
+        meetingRoom.setEndTime(endDate);
+
+        if (StringUtils.isNotBlank(meetingRoomDTO.getId())){
+            meetingRoomMapper.updateById(meetingRoom);
+        }else {
+            meetingRoomMapper.insert(meetingRoom);
+        }
+        return meetingRoom.getId();
+
+    }
+
+    /**
+     * 根据id查询
+     * @param id
+     * @return
+     */
+    public MeetingRoomDTO findById(String id) {
+        MeetingRoomDTO roomDTO= meetingRoomMapper.findById(id);
+        return roomDTO;
+    }
+
+    /**
+     * 根据id修改状态
+     * @param id
+     * @param status
+     */
+    public void updateStatusById(String id, String status) {
+        meetingRoomMapper.updateStatusById(id,status);
+    }
+
+    /**
+     * 根据会议开始时间查询最近结束的会议时间
+     * @param startTime
+     * @return
+     */
+    public Boolean checkTime(String startTime) throws ParseException {
+        //格式化输入的开始时间
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+        Date date = simpleDateFormat.parse(startTime);
+
+        MeetingRoom meetingRoom=meetingRoomMapper.checkTime(date);
+
+        if (ObjectUtil.isNotEmpty(meetingRoom)){
+            //判断上一个会议结束的时间在新的开始时间之前还是之后
+            if (meetingRoom.getEndTime().after(date)){
+                return false;
+            }else {
+                //将上一个会议往后顺延30分钟,然后在判断顺延后的时间与新的开始时间大小
+                Long endTime=meetingRoom.getEndTime().getTime()+30*60*1000;
+                Long time=date.getTime();
+                if (endTime>=time){
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 根据id删除
+     * @param id
+     * @return
+     */
+    public String deleteById(String id) {
+        meetingRoomMapper.deleteById(id);
+        return "删除成功";
+    }
+}

+ 90 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/meetingRoom/service/dto/MeetingRoomDTO.java

@@ -0,0 +1,90 @@
+package com.jeeplus.business.meetingRoom.service.dto;
+
+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.service.dto.BaseDTO;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class MeetingRoomDTO extends BaseDTO {
+
+    private String id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 会议开始,结束时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date startTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")
+    private Date endTime;
+
+    /**
+     * 会议时长
+     */
+    private Integer duration;
+
+    /**
+     * 会议说明
+     */
+    private String remarks;
+
+    /**
+     * 流程id
+     */
+    private String procInsId;
+
+    /**
+     * 流程信息
+     */
+    private String processDefinitionId;
+    private String taskId;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+
+    /**
+     * 创建时间
+     */
+    @TableField(exist = false)
+    private String[] meetingDates;
+
+    /**
+     * 创建人
+     */
+    @TableField(exist = false)
+    private String createName;
+    @TableField(exist = false)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createDate;
+
+    /**
+     * 部门
+     */
+    @TableField(exist = false)
+    private String officeId;
+    @TableField(exist = false)
+    private String officeName;
+
+    private static final long serialVersionUID = 1L;
+
+
+
+
+
+
+}

+ 32 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/controller/JyProjectController.java

@@ -517,6 +517,38 @@ public class JyProjectController {
         return ResponseEntity.ok(s);
     }
 
+    /**
+     * 根据id查询环评资质信息
+     */
+    @ApiOperation(value = "根据id查询环评资质信息")
+    @GetMapping(value = "/findByIdEia")
+    public ResponseEntity<JyProjectEiaQualificationDTO> findByIdEia(@RequestParam String id){
+        JyProjectEiaQualificationDTO dto = jyProjectService.findByIdEia(id);
+        return ResponseEntity.ok(dto);
+    }
+
+    /**
+     * 新增/修改环评资质
+     */
+    @ApiOperation(value = "新增/修改环评资质")
+    @PostMapping(value = "/saveFormEia")
+    public ResponseEntity saveFormEia(@RequestBody JyProjectEiaQualificationDTO jyProjectEiaQualificationDTO) throws Exception{
+        String id = jyProjectService.saveFormEia(jyProjectEiaQualificationDTO);
+        return ResponseUtil.newInstance().add("businessTable", "jy_project_eia_qualification").add("businessId", id).ok ("操作成功");
+    }
+
+    /**
+     * 根据id修改环评状态值status
+     * @param dto
+     * @return
+     */
+    @ApiOperation(value = "根据id修改环评状态值status")
+    @PostMapping(value = "/updateStatusByEiaId")
+    public ResponseEntity<String> updateStatusByEiaId(@RequestBody JyProjectEiaQualificationDTO dto) {
+        String s = jyProjectService.updateStatusByEiaId(dto);
+        return ResponseEntity.ok(s);
+    }
+
 
 
 

+ 17 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProject.java

@@ -126,6 +126,12 @@ public class JyProject extends BaseEntity implements Serializable {
      * 项目负责人
      */
     private String projectLeader;
+
+    /**
+     * 环评资质状态
+     */
+    private String eiaStatus;
+
     /**
      * 创建时间
      */
@@ -301,6 +307,17 @@ public class JyProject extends BaseEntity implements Serializable {
     private String taskIdArchive;
 
 
+    /**
+     * 环评资质
+     */
+    @TableField(exist = false)
+    private String eiaId;
+    @TableField(exist = false)
+    private String procInsIdEia;
+    @TableField(exist = false)
+    private String taskIdEia;
+
+
 
 
 

+ 48 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProjectEiaQualification.java

@@ -0,0 +1,48 @@
+package com.jeeplus.business.project.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import lombok.Data;
+
+import java.util.List;
+/**
+ * 嘉溢-环评项目资质
+ */
+
+@Data
+@TableName("jy_project_eia_qualification")
+public class JyProjectEiaQualification extends BaseEntity {
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 登记状态
+     */
+    private String status;
+
+    /*
+    流程id
+     */
+    private String procInsId;
+    private String processDefinitionId;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentInfo> fileList;
+
+    private static final long serialVersionUID = 1L;
+
+
+}

+ 27 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/domain/JyProjectEiaQualificationFile.java

@@ -0,0 +1,27 @@
+package com.jeeplus.business.project.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.core.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 嘉溢-环评项目资质-附件
+ * @TableName cw_project_report_archive_file
+ */
+@Data
+@TableName("jy_project_eia_qualification_file")
+public class JyProjectEiaQualificationFile extends BaseEntity {
+
+
+    /**
+     * 文件id
+     */
+    private String workAttachmentId;
+
+    /**
+     * 文件类型
+     */
+    private String fileType;
+
+    private static final long serialVersionUID = 1L;
+}

+ 10 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/JyProjectEiaQualificationFileMapper.java

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

+ 15 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/JyProjectEiaQualificationMapper.java

@@ -0,0 +1,15 @@
+package com.jeeplus.business.project.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jeeplus.business.project.domain.JyProjectEiaQualification;
+import com.jeeplus.business.project.service.dto.JyProjectEiaQualificationDTO;
+import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface JyProjectEiaQualificationMapper extends BaseMapper<JyProjectEiaQualification> {
+    JyProjectEiaQualificationDTO findById(@Param("id") String id);
+
+    List<WorkAttachmentInfoDTO> findDtos(@Param("id")String id);
+}

+ 38 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/JyProjectEiaQualificationMapper.xml

@@ -0,0 +1,38 @@
+<?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.project.mapper.JyProjectEiaQualificationMapper">
+    <select id="findById" resultType="com.jeeplus.business.project.service.dto.JyProjectEiaQualificationDTO">
+        select
+            id,
+            project_id,
+            status,
+            remarks,
+            proc_ins_id,
+            process_definition_id
+        from jy_project_eia_qualification
+        where id=#{id}
+    </select>
+
+    <select id="findDtos" resultType="com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO">
+        select
+            wa.id,
+			wa.url,
+			wa.attachment_name AS `name`,
+			wa.create_by_id AS `by`,
+			wa.create_time,
+			peqf.file_type as jyFileType
+		from
+		    work_attachment wa
+		left join  jy_project_eia_qualification_file peqf on wa.id = peqf.work_attachment_id
+		where
+		    wa.del_flag = 0
+			AND wa.attachment_id = #{id}
+    </select>
+
+
+
+
+
+</mapper>

+ 16 - 3
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/mapper/xml/ProjectListMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.jeeplus.business.project.mapper.JyProjectMapper">
 
    <select id="findContractPageList" resultType="com.jeeplus.business.workContractInfo.domain.JyWorkContractInfo">
-       SELECT
+       SELECT distinct
        a.id,
        a.create_time,
        a.update_by_id,
@@ -44,7 +44,7 @@
             jy_work_contract_info a
             LEFT JOIN sys_user b ON a.create_by_id = b.id
             left join jy_work_client_info ci on ci.name= a.primary_linkman
-            left join jy_work_client_linkman cl on ci.id=cl.client_id
+            left join jy_work_client_linkman cl on ci.id=cl.client_id and cl.del_flag = 0
         WHERE
             a.del_flag = 0
             and a.filed_type != 1
@@ -98,6 +98,7 @@
            b.name AS create_by_id,
            art.ID_ as taskId,
            wci.primary_linkman as primaryLinkman,
+           wci.contract_type_first as contractTypeFirst,
            pa1.status as firstInstanceStatus,
            pa1.id as auditId1,
            pa1.proc_ins_id as procInsId1,
@@ -118,7 +119,11 @@
            par.status as reviewStatus,
            par.id as archiveId,
            par.proc_ins_id as procInsIdArchive,
-           art5.ID_ as task_id_archive
+           art5.ID_ as task_id_archive,
+           peq.status as eiaStatus,
+           peq.id as EiaId,
+           peq.proc_ins_id as procInsIdEia,
+           art6.ID_ as task_id_Eia
         FROM
             jy_project_record a
             LEFT JOIN sys_user b ON a.create_by_id = b.id
@@ -136,6 +141,8 @@
             LEFT JOIN act_ru_task art4 ON po.proc_ins_id = art4.PROC_INST_ID_
             left join jy_project_archive par on a.id=par.project_id
             LEFT JOIN act_ru_task art5 ON par.proc_ins_id = art5.PROC_INST_ID_
+            left join jy_project_eia_qualification peq on a.id=peq.project_id
+            LEFT JOIN act_ru_task art6 ON peq.proc_ins_id = art6.PROC_INST_ID_
             ${ew.customSqlSegment}
             ORDER BY a.create_time DESC
     </select>
@@ -205,6 +212,10 @@
            par.id as archiveId,
            par.proc_ins_id as procInsIdArchive,
            art5.ID_ as task_id_archive,
+           peq.status as eiaStatus,
+           peq.id as EiaId,
+           peq.proc_ins_id as procInsIdEia,
+           art6.ID_ as task_id_Eia,
            so.name as auditOffice
         FROM
             jy_project_record a
@@ -224,6 +235,8 @@
             LEFT JOIN act_ru_task art4 ON po.proc_ins_id = art4.PROC_INST_ID_
             left join jy_project_archive par on a.id=par.project_id
             LEFT JOIN act_ru_task art5 ON par.proc_ins_id = art5.PROC_INST_ID_
+            left join jy_project_eia_qualification peq on a.id=peq.project_id
+            LEFT JOIN act_ru_task art6 ON peq.proc_ins_id = art6.PROC_INST_ID_
         where a.id = #{id}
     </select>
 

+ 118 - 3
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/JyProjectService.java

@@ -15,6 +15,7 @@ import com.jeeplus.business.project.mapper.*;
 import com.jeeplus.business.project.service.dto.*;
 import com.jeeplus.business.project.service.mapstruct.JyProjectArchiveWrapper;
 import com.jeeplus.business.project.service.mapstruct.JyProjectAuditWrapper;
+import com.jeeplus.business.project.service.mapstruct.JyProjectEiaQualificationWrapper;
 import com.jeeplus.business.project.service.mapstruct.JyProjectOutInstanceWrapper;
 import com.jeeplus.business.useSeal.domain.Signet;
 import com.jeeplus.business.useSeal.mapper.SignetMapper;
@@ -104,6 +105,12 @@ public class JyProjectService {
     @Autowired
     private JyProjectArchiveFileMapper jyProjectArchiveFileMapper;
 
+    @Autowired
+    private JyProjectEiaQualificationMapper jyProjectEiaQualificationMapper;
+
+    @Autowired
+    private JyProjectEiaQualificationFileMapper jyProjectEiaQualificationFileMapper;
+
 
     /**
      * 项目登记列表
@@ -366,6 +373,13 @@ public class JyProjectService {
         jyProjectArchive.setStatus("0");
         jyProjectArchiveMapper.insert(jyProjectArchive);
 
+        //环评项目资质
+        JyProjectEiaQualification jyProjectEiaQualification = new JyProjectEiaQualification();
+        jyProjectEiaQualification.setProjectId(jyProject.getId());
+        jyProjectEiaQualification.setStatus("0");
+        jyProjectEiaQualificationMapper.insert(jyProjectEiaQualification);
+
+
         // 保存附件信息
         if (CollectionUtils.isNotEmpty(dto.getFiles())) {
             saveFiles(dto.getFiles(), userDTO, id);
@@ -522,10 +536,16 @@ public class JyProjectService {
         }
         // 查询联系人列表
         ArrayList<JyWorkClientLinkman> jyWorkClientLinkmen = new ArrayList<>();
-        JyWorkClientLinkman jyWorkClientLinkman = jyWorkClientLinkmanMapper.selectById(info.getClient());
+        JyWorkClientLinkman jyWorkClientLinkman = jyWorkClientLinkmanMapper.selectByClientId(info.getClient());
         if (ObjectUtil.isNotEmpty(jyWorkClientLinkman)){
             jyWorkClientLinkmen.add(jyWorkClientLinkman);
             jyProjectDTO.setClientList(jyWorkClientLinkmen);
+        }else {
+            JyWorkClientLinkman jyWorkClientLinkman1=jyWorkClientLinkmanMapper.selectByClientName(info.getClientName());
+            if (ObjectUtil.isNotEmpty(jyWorkClientLinkman1)){
+                jyWorkClientLinkmen.add(jyWorkClientLinkman1);
+                jyProjectDTO.setClientList(jyWorkClientLinkmen);
+            }
         }
         // 查询成员列表
         LambdaQueryWrapper<JyProjectMembers> memberWrapper = new LambdaQueryWrapper<>();
@@ -770,8 +790,10 @@ public class JyProjectService {
         jyProjectAuditMapper.update(jyProjectAudit,new QueryWrapper<JyProjectAudit>().lambda().eq(JyProjectAudit::getId,jyProjectAudit.getId()));
         //修改逾期完成的校审状态
         JyProjectAuditDTO byIdAudit = jyProjectAuditMapper.findByIdAudit(dto.getId());
-        if (byIdAudit.getExceedTimeStatus().equals("1") && dto.getStatus().equals("5")){
-            jyProjectAuditMapper.updateStatus2(byIdAudit.getId());
+        if (byIdAudit.getAuditLevel().equals("1")){
+            if (byIdAudit.getExceedTimeStatus().equals("1") && dto.getStatus().equals("5")){
+                jyProjectAuditMapper.updateStatus2(byIdAudit.getId());
+            }
         }
         return "操作成功";
     }
@@ -1672,4 +1694,97 @@ public class JyProjectService {
         jyProjectArchiveMapper.update(jyProjectArchive,new QueryWrapper<JyProjectArchive>().lambda().eq(JyProjectArchive::getId,jyProjectArchive.getId()) );
         return "操作成功";
     }
+
+    /**
+     * 查询环评资质信息
+     * @param id
+     * @return
+     */
+    public JyProjectEiaQualificationDTO findByIdEia(String id) {
+        //根据id获取环评资质信息
+        JyProjectEiaQualificationDTO jyProjectEiaQualificationDTO=jyProjectEiaQualificationMapper.findById(id);
+
+        if (null != jyProjectEiaQualificationDTO){
+            List<WorkAttachmentInfoDTO> fileList =Lists.newArrayList();
+            // 查询附件信息
+            List<WorkAttachmentInfoDTO> files = jyProjectEiaQualificationMapper.findDtos(id);
+            if (CollectionUtils.isNotEmpty(files)) {
+                for (WorkAttachmentInfoDTO i : files) {
+                    i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
+                }
+            }
+            fileList.addAll(files);
+            jyProjectEiaQualificationDTO.setFileList(fileList);
+            //获取项目信息
+            JyProjectDTO byId = findById(jyProjectEiaQualificationDTO.getProjectId());
+            jyProjectEiaQualificationDTO.setJyProjectList(byId);
+        }
+        return jyProjectEiaQualificationDTO;
+    }
+
+    /*
+    新增/修改环评资质
+     */
+    public String saveFormEia(JyProjectEiaQualificationDTO jyProjectEiaQualificationDTO) {
+        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        //代码转化,将dto中的对象赋到实体类中
+        JyProjectEiaQualification jyProjectEiaQualification = JyProjectEiaQualificationWrapper.INSTANCE.toEntity(jyProjectEiaQualificationDTO);
+        //获取审核信息
+        JyProjectOutinstanceDTO byId = jyProjectOutinstanceMapper.findById(jyProjectEiaQualification.getId());
+        if (ObjectUtil.isNotEmpty(byId)){
+            if (StringUtils.isNotBlank(jyProjectEiaQualification.getRemarks())){
+                jyProjectEiaQualification.setRemarks(jyProjectEiaQualificationDTO.getRemarks());
+            }
+        }
+        if (StringUtils.isNotBlank(jyProjectEiaQualification.getId())){
+            jyProjectEiaQualificationMapper.updateById(jyProjectEiaQualification);
+        }else{
+            jyProjectEiaQualificationMapper.insert(jyProjectEiaQualification);
+        }
+        //附件
+        if (ObjectUtil.isNotEmpty(jyProjectEiaQualificationDTO)) {
+            SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(jyProjectEiaQualificationDTO.getId());
+            AtomicInteger sort = new AtomicInteger(1);
+            jyProjectEiaQualificationDTO.getFileList().stream().forEach(item->{
+                //保存附件信息
+                WorkAttachmentInfo workAttachmentDto = new WorkAttachmentInfo();
+                workAttachmentDto.setName(item.getName());
+                workAttachmentDto.setSize(item.getSize());
+                workAttachmentDto.setUrl(item.getUrl());
+                Map<String,String> map = new HashMap<>();
+                String workAttachmentDtoInfo = JSON.toJSONString(workAttachmentDto);
+                String userDTOInfo = JSON.toJSONString(userDTO);
+                String attachmentId = jyProjectEiaQualificationDTO.getId();
+                String attachmentFlag = "jyProjectEia";
+                String sortInfo = Integer.toString(sort.get());
+                map.put("workAttachmentDtoInfo",workAttachmentDtoInfo);
+                map.put("userDTOInfo",userDTOInfo);
+                map.put("attachmentId",attachmentId);
+                map.put("attachmentFlag",attachmentFlag);
+                map.put("sortInfo",sortInfo);
+                String fileId = SpringUtil.getBean ( IWorkAttachmentApi.class ).saveFile(map);
+                sort.getAndIncrement();
+
+                //保存附件类型
+                JyProjectEiaQualificationFile jyProjectEiaQualificationFile = new JyProjectEiaQualificationFile();
+                jyProjectEiaQualificationFile.setFileType(item.getJyFileType());
+                jyProjectEiaQualificationFile.setWorkAttachmentId(fileId);
+                jyProjectEiaQualificationFileMapper.insert(jyProjectEiaQualificationFile);
+            });
+        }
+        return jyProjectEiaQualification.getId();
+    }
+
+    /**
+     * 根据id修改环评资质状态
+     * @param dto
+     * @return
+     */
+    public String updateStatusByEiaId(JyProjectEiaQualificationDTO dto) {
+        JyProjectEiaQualification jyProjectEiaQualification = new JyProjectEiaQualification();
+        jyProjectEiaQualification.setId(dto.getId());
+        jyProjectEiaQualification.setStatus(dto.getStatus());
+        jyProjectEiaQualificationMapper.update(jyProjectEiaQualification,new QueryWrapper<JyProjectEiaQualification>().lambda().eq(JyProjectEiaQualification::getId,jyProjectEiaQualification.getId()) );
+        return "操作成功";
+    }
 }

+ 5 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectDTO.java

@@ -270,4 +270,9 @@ public class JyProjectDTO extends BaseEntity implements Serializable {
     @TableField(exist = false)
     private String taskIdReports;
 
+    /**
+     * 环评资质状态
+     */
+    private String eiaStatus;
+
 }

+ 56 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/dto/JyProjectEiaQualificationDTO.java

@@ -0,0 +1,56 @@
+package com.jeeplus.business.project.service.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.jeeplus.business.workContractInfo.service.dto.JyWorkContractInfoDto;
+import com.jeeplus.core.domain.BaseEntity;
+import com.jeeplus.core.service.dto.BaseDTO;
+import com.jeeplus.sys.domain.WorkAttachmentInfo;
+import com.jeeplus.sys.service.dto.WorkAttachmentInfoDTO;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 嘉溢-环评项目资质
+ */
+
+@Data
+
+public class JyProjectEiaQualificationDTO extends BaseDTO {
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 登记状态
+     */
+    private String status;
+
+    /*
+    流程id
+     */
+    private String procInsId;
+    private String processDefinitionId;
+
+    /**
+     * 备注
+     */
+    private String remarks;
+
+    /**
+     * 附件信息
+     */
+    @TableField(exist = false)
+    private List<WorkAttachmentInfoDTO> fileList;
+
+    private JyProjectDTO jyProjectList;
+
+    private JyWorkContractInfoDto jyWorkContractInfoList;
+
+    private static final long serialVersionUID = 1L;
+
+
+}

+ 15 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/project/service/mapstruct/JyProjectEiaQualificationWrapper.java

@@ -0,0 +1,15 @@
+package com.jeeplus.business.project.service.mapstruct;
+
+import com.jeeplus.business.project.domain.JyProjectArchive;
+import com.jeeplus.business.project.domain.JyProjectEiaQualification;
+import com.jeeplus.business.project.service.dto.JyProjectArchiveDTO;
+import com.jeeplus.business.project.service.dto.JyProjectEiaQualificationDTO;
+import com.jeeplus.core.mapstruct.EntityWrapper;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+import org.mapstruct.factory.Mappers;
+
+@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, uses = {})
+public interface JyProjectEiaQualificationWrapper extends EntityWrapper<JyProjectEiaQualificationDTO, JyProjectEiaQualification> {
+    JyProjectEiaQualificationWrapper INSTANCE= Mappers.getMapper(JyProjectEiaQualificationWrapper.class);
+}

+ 12 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/controller/SignetController.java

@@ -101,6 +101,18 @@ public class SignetController {
 
     }
 
+    /**
+     * 根据id删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id删除")
+    @GetMapping(value = "/deleteById")
+    public ResponseEntity<String> deleteById(@RequestParam String id){
+        String s = signetService.deleteById(id);
+        return ResponseEntity.ok(s);
+    }
+
 
 
 

+ 10 - 0
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/useSeal/service/SignetService.java

@@ -499,4 +499,14 @@ public class SignetService {
 
 
     }
+
+    /**
+     * 根据id删除
+     * @param id
+     * @return
+     */
+    public String deleteById(String id) {
+        signetMapper.deleteById(id);
+        return "删除成功";
+    }
 }

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

@@ -9,4 +9,6 @@ import org.apache.ibatis.annotations.Param;
 @Mapper
 public interface JyWorkClientLinkmanMapper extends BaseMapper<JyWorkClientLinkman> {
     JyWorkClientLinkman selectByClientId(@Param("client") String client);
+
+    JyWorkClientLinkman selectByClientName(@Param("clientName")String clientName);
 }

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

@@ -156,5 +156,6 @@
 			email
 		from jy_work_client_linkman
 		where client_id=#{LinkmanId}
+		order by update_time DESC limit 1
 	</select>
 </mapper>

+ 17 - 2
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workClientInfo/mapper/xml/JyWorkClientLinkmanMapper.xml

@@ -4,7 +4,7 @@
     <select id="selectByClientId" resultType="com.jeeplus.business.workClientInfo.domain.JyWorkClientLinkman">
         select
             id,
-            name,
+            name as clientName,
             office,
             position,
             qq,
@@ -13,7 +13,22 @@
             email
         from
             jy_work_client_linkman
-        where client_id=#{client} and del_flag=0 LIMIT 1
+        where id=#{client} and del_flag=0 LIMIT 1
+    </select>
+
+    <select id="selectByClientName" resultType="com.jeeplus.business.workClientInfo.domain.JyWorkClientLinkman">
+        select
+            id,
+            name as clientName,
+            office,
+            position,
+            qq,
+            link_phone,
+            link_mobile,
+            email
+        from
+            jy_work_client_linkman
+        where name=#{clientName} and del_flag=0 LIMIT 1
     </select>
 
 

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

@@ -105,4 +105,14 @@ public class JyWorkContractController {
         return ResponseUtil.newInstance().add("businessTable", "jy_work_contract_info").add("businessId", id).ok ("操作成功");
     }
 
+    /**
+     * 删除
+     */
+    @ApiOperation(value = "根据id删除")
+    @GetMapping(value = "/deleteById")
+    public ResponseEntity<String> deleteById(@RequestParam String id){
+        String s = jyWorkContractService.deleteById(id);
+        return ResponseEntity.ok(s);
+    }
+
 }

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

@@ -507,4 +507,10 @@ public class JyWorkContractService {
         jyWorkContractInfoMapper.updateContractById(info.getUpdateById(),info.getUpdateTime(),workContractInfoDto.getFiledType(),info.getFiledNo(),workContractInfoDto.getId());
         return workContractInfoDto.getId();
     }
+
+    public String deleteById(String id) {
+        jyWorkContractInfoMapper.deleteById(id);
+        SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(id);
+        return "合同删除成功";
+    }
 }

+ 2 - 1
jeeplus-modules/jeeplus-business/src/main/java/com/jeeplus/business/workContractInfo/service/dto/JyWorkContractInfoDto.java

@@ -9,13 +9,14 @@ import com.jeeplus.core.service.dto.BaseDTO;
 import com.jeeplus.sys.domain.WorkAttachmentInfo;
 import lombok.Data;
 
+import java.io.Serializable;
 import java.lang.reflect.Array;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
 @Data
-public class JyWorkContractInfoDto extends BaseDTO {
+public class JyWorkContractInfoDto extends BaseDTO implements Serializable {
 
     //合同编号-其他(字典值)
     public static final String BIZ_CODE1 = "35";

+ 87 - 0
jeeplus-modules/jeeplus-flowable/src/main/java/com/jeeplus/modules/flowable/listener/JyProjectEiaQualificationListener.java

@@ -0,0 +1,87 @@
+package com.jeeplus.modules.flowable.listener;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.jeeplus.flowable.model.ActRuTaskInfo;
+import com.jeeplus.flowable.model.Flow;
+import com.jeeplus.flowable.service.FlowTaskService;
+import com.jeeplus.flowable.service.MyNoticeService;
+import com.jeeplus.sys.feign.IUserApi;
+import com.jeeplus.sys.service.dto.OfficeDTO;
+import com.jeeplus.sys.service.dto.UserDTO;
+import lombok.SneakyThrows;
+import org.flowable.engine.RuntimeService;
+import org.flowable.engine.delegate.DelegateExecution;
+import org.flowable.engine.delegate.ExecutionListener;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.List;
+
+@Component("JyProjectEiaQualificationListener")
+public class JyProjectEiaQualificationListener implements ExecutionListener {
+
+    @SneakyThrows
+    public void notify(DelegateExecution delegateExecution) {
+        String eventName = delegateExecution.getEventName ( );
+        System.out.println("--------- delegateExecution -----------" + delegateExecution);
+
+        if ( "start".equals ( eventName ) ) {
+            System.out.println ( "start=========" );
+        } else if ( "end".equals ( eventName ) ) {
+            //根据这里的 delegateExecution的id去act_ru_task表中查该流程的数据 对应表中的EXECUTION_ID_
+            ActRuTaskInfo task = SpringUtil.getBean(MyNoticeService.class).getTaskInfoByID(delegateExecution.getId());
+
+            if (null != task) {
+                List<Flow> flows = SpringUtil.getBean(FlowTaskService.class).historicTaskList(task.getProcInstId());
+                //根据PROC_DEF_ID_去act_re_deployment中查询流程的名称
+                String substring = task.getProcDefId().substring(0, task.getProcDefId().indexOf(":"));
+                String actName = SpringUtil.getBean(FlowTaskService.class).getActNameByDefId(substring);
+
+                String titleName = "";
+                // 根据流程定义ID查询流程实例
+                ProcessInstance processInstance = SpringUtil.getBean(RuntimeService.class).createProcessInstanceQuery()
+                        .processInstanceId(task.getProcInstId())
+                        .singleResult();
+
+                if (processInstance != null) {
+                    // 获取流程实例标题变量名(假设标题存储在名为"title"的变量中)
+                    String titleVariableName = "title";
+
+                    // 查询流程实例的标题变量
+                    Object title = SpringUtil.getBean(RuntimeService.class).getVariable(processInstance.getId(), titleVariableName);
+
+                    if (title != null) {
+                        titleName = title.toString();
+                    } else {
+                        // 如果标题变量不存在或者没有值,可以返回默认标题
+                        titleName = "";
+                    }
+                }
+                Flow flow = new Flow();
+                for (int i=0;i<flows.size();i++){
+                    if (flows.get(i).getComment().getMessage().equals("发起流程")){
+                        flow = flows.get(i);
+                    }
+                }
+
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+                //获取执行人id
+                UserDTO dto = SpringUtil.getBean(IUserApi.class).getById(flow.getAssigneeId());
+                if(null != dto){
+                    //给发起人发送通知
+                        SpringUtil.getBean(MyNoticeService.class).add(task.getProcInstId(),titleName,task.getProcDefId(),actName,
+                                dto.getName(),format.format(flow.getHistIns().getEndTime()),
+                                dto.getName(),dto.getId(),dto.getId());
+                }
+
+            }
+
+            System.out.println ( "end=========" );
+        } else if ( "take".equals ( eventName ) ) {//连线监听
+            System.out.println ( "take=========" );
+        }
+
+    }
+}