Browse Source

实现印力新增的两个接口

lijie 3 years ago
parent
commit
15de5d4ac1

+ 3 - 0
dmp-common/src/main/java/com/persagy/dmp/config/DmpParameterStorage.java

@@ -61,6 +61,9 @@ public class DmpParameterStorage extends HandlerInterceptorAdapter {
 	public static String getGroupCode() {
 		return storage.get().groupCode;
 	}
+	public static String setGroupCode(String groupCode) {
+		return storage.get().groupCode=groupCode;
+	}
 
 	public static String getSchemaId() {
 		return storage.get().schemaId;

+ 25 - 0
dmp-model/src/main/java/com/persagy/dmp/rwd/model/GroupAndSchemaModel.java

@@ -0,0 +1,25 @@
+package com.persagy.dmp.rwd.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class GroupAndSchemaModel {
+      /**集团id,如不传则由后台生成唯一标识*/
+      private String id;
+      /**集团编码*/
+      private String code;
+      /**集团名称*/
+      private String name;
+      /**集团备注*/
+      private String remark;
+      /**集团方案id*/
+      private String schemaId;
+      /**集团方案名称*/
+      private String schemaName;
+}

+ 7 - 5
dmp-org/src/main/java/com/persagy/dmp/org/model/GroupModel.java

@@ -1,11 +1,13 @@
-package com.persagy.dmp.org.model;
+package com.persagy.dmp.rwd.model;
+
+import lombok.*;
 
-import lombok.Getter;
-import lombok.Setter;
 import java.util.Date;
 
-@Setter
-@Getter
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class GroupModel {
 
 	private String id;

+ 5 - 4
dmp-model/src/main/java/com/persagy/dmp/rwd/model/SchemaModel.java

@@ -1,10 +1,11 @@
 package com.persagy.dmp.rwd.model;
 
-import lombok.Getter;
-import lombok.Setter;
+import lombok.*;
 
-@Setter
-@Getter
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
 public class SchemaModel {
 
 	private String id;

+ 5 - 6
dmp-org/src/main/java/com/persagy/dmp/org/controller/GroupController.java

@@ -3,9 +3,8 @@ package com.persagy.dmp.org.controller;
 import com.persagy.common.criteria.JacksonCriteria;
 import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
-import com.persagy.dmp.org.model.GroupModel;
+import com.persagy.dmp.rwd.model.GroupModel;
 import com.persagy.dmp.org.service.GroupService;
-import com.persagy.dmp.org.service.InitService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -29,10 +28,10 @@ public class GroupController {
 		return mapResponse;
 	}
 
-//	@PostMapping("/update")
-//	public MapResponse update(@RequestBody GroupModel param){
-//		return service.update(param);
-//	}
+	@PostMapping("/admin/update")
+	public MapResponse update(@RequestBody GroupModel param){
+		return service.update(param);
+	}
 //
 //	@PostMapping("/delete")
 //	public MapResponse delete(@RequestBody GroupModel param){

+ 2 - 3
dmp-org/src/main/java/com/persagy/dmp/org/entity/Group.java

@@ -2,9 +2,8 @@ package com.persagy.dmp.org.entity;
 
 import lombok.Getter;
 import lombok.Setter;
-import com.persagy.dmp.org.model.GroupModel;
-import org.hibernate.annotations.GenericGenerator;
-import javax.persistence.GeneratedValue;
+import com.persagy.dmp.rwd.model.GroupModel;
+
 import javax.persistence.*;
 import java.util.Date;
 

+ 4 - 3
dmp-org/src/main/java/com/persagy/dmp/org/service/GroupService.java

@@ -8,10 +8,9 @@ import com.persagy.common.web.PagedResponse;
 import com.persagy.dmp.config.DmpParameterStorage;
 import com.persagy.dmp.org.constant.OrgConstants;
 import com.persagy.dmp.org.entity.Group;
-import com.persagy.dmp.org.entity.QDeptClassify;
 import com.persagy.dmp.org.entity.QGroup;
 import com.persagy.dmp.org.exception.OrgCURDRunTimeException;
-import com.persagy.dmp.org.model.GroupModel;
+import com.persagy.dmp.rwd.model.GroupModel;
 import com.persagy.dmp.org.repository.CompanyRepository;
 import com.persagy.dmp.org.repository.GroupRepository;
 import com.persagy.dmp.rwd.model.DmpMessage;
@@ -116,7 +115,9 @@ public class GroupService extends OrgBaseService {
 			Group entity = Group.fromModel(param);
 			entity.setUpdateUser(userId);
 			entity.setUpdateTime(new Date());
-			entity.setStatus(one.getStatus());
+			if (null==param.getStatus()){
+				entity.setStatus(one.getStatus());
+			}
 			entity.setCreateUser(one.getCreateUser());
 			entity.setCreateTime(one.getCreateTime());
 			groupRepository.save(entity);

+ 5 - 1
dmp-rwd/pom.xml

@@ -80,7 +80,11 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>-->
-
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.5.8</version>
+        </dependency>
         <!-- 注册中心 -->
         <dependency>
             <groupId>org.springframework.cloud</groupId>

+ 46 - 0
dmp-rwd/src/main/java/com/persagy/dmp/rwd/controller/GroupAndSchemaController.java

@@ -0,0 +1,46 @@
+package com.persagy.dmp.rwd.controller;
+
+import com.persagy.common.web.MapResponse;
+import com.persagy.dmp.rwd.model.GraphDefModel;
+import com.persagy.dmp.rwd.model.GroupAndSchemaModel;
+import com.persagy.dmp.rwd.service.GraphInstanceService;
+import com.persagy.dmp.rwd.service.GroupAndSchemaService;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+@RestController
+@RequestMapping("/rwd/groupAndSchema/admin/")
+public class GroupAndSchemaController {
+
+    @Autowired
+    private GroupAndSchemaService service;
+
+    /***
+     * Description: 新建集团及集团方案
+     * @param param : 请求参数
+     * @return : com.persagy.common.web.MapResponse  
+     * @author : lijie
+     * @date :2021/7/21 15:19
+     * Update By lijie 2021/7/21 15:19
+     */
+    @PostMapping("/create")
+    public MapResponse create(@RequestBody GroupAndSchemaModel param){
+        return service.create(param);
+    }
+    /***
+     * Description: 编辑集团及集团方案
+     * @param param : 请求参数
+     * @return : com.persagy.common.web.MapResponse  
+     * @author : lijie
+     * @date :2021/7/21 15:19
+     * Update By lijie 2021/7/21 15:19
+     */
+    @PostMapping("/update")
+    public MapResponse update(@RequestBody GroupAndSchemaModel param){
+        return service.update(param);
+    }
+
+}

+ 9 - 0
dmp-rwd/src/main/java/com/persagy/dmp/rwd/feign/OrgClient.java

@@ -1,7 +1,9 @@
 package com.persagy.dmp.rwd.feign;
 
 import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.MapResponse;
 import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.rwd.model.GroupModel;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -27,4 +29,11 @@ public interface OrgClient {
 													@RequestParam(name = "userId") String userId,
 													@RequestParam(name = "appId") String appId,
 													@RequestBody JacksonCriteria criteria);
+	@PostMapping("/org/group/admin/create")
+	MapResponse groupCreate(@RequestParam(name = "userId") String userId,
+							@RequestBody GroupModel groupModel);
+
+	@PostMapping("/org/group/admin/update")
+	MapResponse groupUpdate(@RequestParam(name = "userId") String userId,
+							@RequestBody GroupModel groupModel);
 }

+ 25 - 0
dmp-rwd/src/main/java/com/persagy/dmp/rwd/service/GroupAndSchemaService.java

@@ -0,0 +1,25 @@
+package com.persagy.dmp.rwd.service;
+
+import com.persagy.common.web.MapResponse;
+import com.persagy.dmp.rwd.model.GroupAndSchemaModel;
+
+public interface GroupAndSchemaService {
+    /***
+     * Description: 新建集团及集团方案
+     * @param param : 请求参数
+     * @return : com.persagy.common.web.MapResponse  
+     * @author : lijie
+     * @date :2021/7/21 14:25
+     * Update By lijie 2021/7/21 14:25
+     */
+    MapResponse create(GroupAndSchemaModel param);
+    /***
+     * Description:编辑集团及集团方案
+     * @param param : 请求参数
+     * @return : com.persagy.common.web.MapResponse  
+     * @author : lijie
+     * @date :2021/7/21 15:19
+     * Update By lijie 2021/7/21 15:19
+     */
+    MapResponse update(GroupAndSchemaModel param);
+}

+ 139 - 0
dmp-rwd/src/main/java/com/persagy/dmp/rwd/service/impl/GroupAndSchemaServiceImpl.java

@@ -0,0 +1,139 @@
+package com.persagy.dmp.rwd.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.web.MapResponse;
+import com.persagy.common.web.PagedResponse;
+import com.persagy.dmp.config.DmpParameterStorage;
+import com.persagy.dmp.rwd.config.RwdConstants;
+import com.persagy.dmp.rwd.feign.OrgClient;
+import com.persagy.dmp.rwd.model.GroupAndSchemaModel;
+import com.persagy.dmp.rwd.model.GroupModel;
+import com.persagy.dmp.rwd.model.SchemaModel;
+import com.persagy.dmp.rwd.service.BaseService;
+import com.persagy.dmp.rwd.service.GroupAndSchemaService;
+import com.persagy.dmp.rwd.service.SchemaService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Map;
+@Service
+@Slf4j
+public class GroupAndSchemaServiceImpl extends BaseService implements GroupAndSchemaService {
+
+    @Autowired
+    private OrgClient orgClient;
+    @Autowired
+    private SchemaService schemaService;
+
+    @Override
+    @Transactional
+    public MapResponse create(GroupAndSchemaModel param) {
+        // 1.创建集团
+        MapResponse response = createGroup(param);
+        if (!response.success()){
+            return response;
+        }
+        // 4.构建集团方案创建参数
+        DmpParameterStorage.setGroupCode(param.getCode());
+        MapResponse schemaResponse = schemaService.create(SchemaModel.builder()
+                .name(param.getSchemaName())
+                .id(param.getSchemaId())
+                .build());
+        // 5.处理返回结果
+        if (!schemaResponse.success()){
+            response.setFail("集团创建成功但集团方案创建失败,请通过编辑集团重新创建集团方案");
+        }
+        return response;
+    }
+    /***
+     * Description:编辑集团及集团方案
+     * @param param : 请求参数
+     * @return : com.persagy.common.web.MapResponse
+     * @author : lijie
+     * @date :2021/7/21 15:19
+     * Update By lijie 2021/7/21 15:19
+     */
+    @Override
+    public MapResponse update(GroupAndSchemaModel param) {
+        // 1.更新集团
+        MapResponse response = updateGroup(param);
+        if (!response.success()){
+            return response;
+        }
+        // 4.构建集团方案创建参数
+        DmpParameterStorage.setGroupCode(param.getCode());
+        MapResponse schemaResponse;
+        if (StrUtil.isNotBlank(param.getSchemaId())){
+            // 更新集团方案
+            schemaResponse = schemaService.update(SchemaModel.builder()
+                    .name(param.getSchemaName())
+                    .id(param.getSchemaId())
+                    .build());
+        }else {
+            // 创建集团方案
+            schemaResponse = schemaService.create(SchemaModel.builder()
+                    .name(param.getSchemaName())
+                    .id(param.getSchemaId())
+                    .build());
+        }
+        // 5.处理返回结果
+        if (!schemaResponse.success()){
+            response.setFail("集团更新成功但集团方案更新失败,请通过编辑集团重新创建/更新集团方案");
+        }
+        return response;
+    }
+
+    /***
+     * Description: 更新集团
+     * @param param : 请求参数
+     * @return : com.persagy.common.web.MapResponse
+     * @author : lijie
+     * @date :2021/7/21 15:20
+     * Update By lijie 2021/7/21 15:20
+     */
+    private MapResponse updateGroup(GroupAndSchemaModel param) {
+        MapResponse response = new MapResponse();
+        super.checkParam(response, RwdConstants.QUERY_USERID);
+        if (!response.success()) {
+            return response;
+        }
+        // 1.构建集团创建的接口参数
+        // 2.RPC调用dmp-org的创建集团接口
+        // 3.处理返回结果
+        return orgClient.groupUpdate(DmpParameterStorage.getUserId(), GroupModel.builder()
+                .id(param.getId())
+                .code(param.getCode())
+                .name(param.getName())
+                .remark(param.getRemark())
+                .build());
+    }
+
+    /***
+     * Description: 创建集团
+     * @param param : 请求参数
+     * @return : com.persagy.common.web.MapResponse
+     * @author : lijie
+     * @date :2021/7/21 15:20
+     * Update By lijie 2021/7/21 15:20
+     */
+    private MapResponse createGroup(GroupAndSchemaModel param) {
+        MapResponse response = new MapResponse();
+        super.checkParam(response, RwdConstants.QUERY_USERID);
+        if (!response.success()) {
+            return response;
+        }
+        // 1.构建集团创建的接口参数
+        // 2.RPC调用dmp-org的创建集团接口
+        // 3.处理返回结果
+        return orgClient.groupCreate(DmpParameterStorage.getUserId(), GroupModel.builder()
+                .id(param.getId())
+                .code(param.getCode())
+                .name(param.getName())
+                .remark(param.getRemark())
+                .build());
+    }
+}