Explorar o código

部门关联协议的开放

dongxin hai 1 ano
pai
achega
93c3afefef

+ 21 - 4
src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementDispositionController.java

@@ -6,13 +6,15 @@ import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.vo.PltAgreementDeptDispositionVo;
 import com.ydtech.modules.protocol.service.PtlAgreementDeptService;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
+import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @author wenks
@@ -34,4 +36,19 @@ public class PtlAgreementDispositionController {
         return HttpResult.ok();
     }
 
+    @PostMapping("/agreementRelation")
+    @ApiOperation("部门配置协议信息")
+    public HttpResult agreementRelation(@RequestBody PltAgreementDeptDispositionVo pltAgreementDeptDispositionVo) {
+        AssertionUtils.isFail(StringUtils.isBlank(pltAgreementDeptDispositionVo.getDeptId()), "部门id不能为空");
+        ptlAgreementDeptService.agreementRelation(pltAgreementDeptDispositionVo);
+        return HttpResult.ok();
+    }
+
+    @GetMapping("/getInfo")
+    @ApiOperation("根据部门id获取所有协议信息")
+    public HttpResult<List<PtlAgreement>> getInfo(String deptId) {
+        if (StringUtils.isBlank(deptId)) {return HttpResult.ok(new ArrayList<>());}
+        return HttpResult.ok(ptlAgreementDeptService.getInfo(deptId));
+    }
+
 }

+ 10 - 0
src/main/java/com/ydtech/modules/protocol/dao/PtlAgreementDeptMapper.java

@@ -1,7 +1,11 @@
 package com.ydtech.modules.protocol.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementDept;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @author wenks
@@ -11,6 +15,12 @@ import com.ydtech.modules.protocol.entity.po.PtlAgreementDept;
  */
 public interface PtlAgreementDeptMapper extends BaseMapper<PtlAgreementDept> {
 
+    /**
+     * 根据部门id获取关联协议信息
+     * @param deptId
+     * @return
+     */
+    List<PtlAgreement> getAgreementInfo(@Param("deptId")String deptId);
 }
 
 

+ 2 - 0
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java

@@ -263,6 +263,8 @@ public class PtlAgreement implements Serializable {
     @TableField(exist = false)
     private String name;
 
+    @TableField(exist = false)
+    private boolean Check = false;
     /**
      * 逻辑删除
      */

+ 5 - 1
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementDept.java

@@ -39,4 +39,8 @@ public class PtlAgreementDept implements Serializable {
         return deptIdList.stream().map(d -> new PtlAgreementDept(agreementId, d)).collect(Collectors.toList());
     }
 
-}
+    public static List<PtlAgreementDept> toPtlAgreementDeptList(List<String> agreementId, String deptId) {
+        return agreementId.stream().map(a -> new PtlAgreementDept(a,deptId)).collect(Collectors.toList());
+    }
+
+}

+ 8 - 2
src/main/java/com/ydtech/modules/protocol/entity/vo/PltAgreementDeptDispositionVo.java

@@ -16,10 +16,16 @@ import java.util.List;
 @ApiModel("协议配置")
 public class PltAgreementDeptDispositionVo {
 
-    @ApiModelProperty("机构id")
+    @ApiModelProperty("协议id")
     private String agreementId;
 
-    @ApiModelProperty("机构")
+    @ApiModelProperty("机构ids")
     private List<String> dept;
 
+    @ApiModelProperty("协议ids")
+    private List<String> agreementIds;
+
+    @ApiModelProperty("机构id")
+    private String deptId;
+
 }

+ 2 - 0
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementPageVo.java

@@ -77,4 +77,6 @@ public class PtlAgreementPageVo extends PageRequest {
     @ApiModelProperty("对接人")
     private String dockingPerson;
 
+    @ApiModelProperty("部门id")
+    private String deptId;
 }

+ 13 - 0
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementDeptService.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.protocol.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementDept;
 import com.ydtech.modules.protocol.entity.vo.PltAgreementDeptDispositionVo;
 import org.springframework.transaction.annotation.Transactional;
@@ -55,4 +56,16 @@ public interface PtlAgreementDeptService extends IService<PtlAgreementDept> {
         saveBatchDept(agreementId, dept);
     }
 
+    /**
+     * 部门关联协议
+     * @param pltAgreementDeptDispositionVo
+     */
+    void agreementRelation(PltAgreementDeptDispositionVo pltAgreementDeptDispositionVo);
+
+    /**
+     * 根据部门id获取所有协议信息
+     * @param deptId
+     * @return
+     */
+    List<PtlAgreement> getInfo(String deptId);
 }

+ 33 - 0
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementDeptServiceImpl.java

@@ -1,9 +1,13 @@
 package com.ydtech.modules.protocol.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.druid.sql.visitor.functions.If;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.protocol.dao.PtlAgreementDeptMapper;
+import com.ydtech.modules.protocol.entity.po.PtlAgreement;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementDept;
 import com.ydtech.modules.protocol.entity.vo.PltAgreementDeptDispositionVo;
 import com.ydtech.modules.protocol.service.PtlAgreementDeptService;
@@ -50,6 +54,35 @@ public class PtlAgreementDeptServiceImpl extends ServiceImpl<PtlAgreementDeptMap
         }
     }
 
+    @Override
+    @Transactional
+    public void agreementRelation(PltAgreementDeptDispositionVo pltAgreementDeptDispositionVo) {
+        // 删除所有部门关联的协议
+        LambdaQueryWrapper<PtlAgreementDept> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(PtlAgreementDept::getDeptId, pltAgreementDeptDispositionVo.getDeptId());
+        remove(lambdaQueryWrapper);
+
+        // 批量新增
+        List<String> ids = pltAgreementDeptDispositionVo.getAgreementIds();
+        if(CollUtil.isNotEmpty(ids)){
+            List<PtlAgreementDept> ptlAgreementDeptList = PtlAgreementDept.toPtlAgreementDeptList(ids, pltAgreementDeptDispositionVo.getDeptId());
+            saveBatch(ptlAgreementDeptList);
+        }
+    }
+
+    @Override
+    public List<PtlAgreement> getInfo(String deptId) {
+        List<PtlAgreement> agreementList = this.baseMapper.getAgreementInfo(deptId);
+        if (CollUtil.isNotEmpty(agreementList)) {
+            for (PtlAgreement ptlAgreement : agreementList) {
+                ptlAgreement.setName(ptlAgreement.getAgreementName()
+                        + (StrUtil.isNotBlank(ptlAgreement.getBusinessDescription())? "-"+ptlAgreement.getBusinessDescription() : "")
+                        + (StrUtil.isNotBlank(ptlAgreement.getJobDescription())? "-"+ptlAgreement.getJobDescription() : ""));
+            }
+        }
+        return agreementList;
+    }
+
     private LambdaQueryWrapper<PtlAgreementDept> byAgreementId(String agreementId) {
         LambdaQueryWrapper<PtlAgreementDept> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(PtlAgreementDept::getAgreementId, agreementId);

+ 16 - 0
src/main/resources/mapper/modules/protocol/PtlAgreementDeptMapper.xml

@@ -12,4 +12,20 @@
     <sql id="Base_Column_List">
         agreement_id,dept_id
     </sql>
+    <select id="getAgreementInfo" resultType="com.ydtech.modules.protocol.entity.po.PtlAgreement">
+        SELECT
+            b.id,
+            b.agreement_code as agreementCode,
+            b.agreement_name as agreementName,
+            b.business_description as businessDescription,
+            b.job_description as jobDescription
+        FROM ptl_agreement_dept as a
+        LEFT JOIN ptl_agreement as b ON a.agreement_id = b.id
+        <where>
+            <if test="deptId != null and deptId != ''">
+                a.dept_id = #{deptId}
+            </if>
+        </where>
+
+    </select>
 </mapper>