From c007f0ca1785db093d48f4846cda82fe8e955765 Mon Sep 17 00:00:00 2001
From: kimi <kimi42345@gmail.com>
Date: 星期三, 27 五月 2020 09:59:29 +0800
Subject: [PATCH] merage

---
 src/main/java/com/highdatas/mdm/controller/MaintainFieldController.java |  140 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 136 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/controller/MaintainFieldController.java b/src/main/java/com/highdatas/mdm/controller/MaintainFieldController.java
index 151b11f..4aae26e 100644
--- a/src/main/java/com/highdatas/mdm/controller/MaintainFieldController.java
+++ b/src/main/java/com/highdatas/mdm/controller/MaintainFieldController.java
@@ -1,21 +1,153 @@
 package com.highdatas.mdm.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.highdatas.mdm.entity.Maintain;
+import com.highdatas.mdm.entity.MaintainField;
+import com.highdatas.mdm.entity.MenuMapping;
+import com.highdatas.mdm.mapper.TableInfoMapper;
+import com.highdatas.mdm.pojo.CodeMsg;
+import com.highdatas.mdm.pojo.Result;
+import com.highdatas.mdm.service.IMaintainFieldService;
+import com.highdatas.mdm.service.IMaintainService;
+import com.highdatas.mdm.service.IMenuMappingService;
+import com.highdatas.mdm.service.ISysFieldService;
+import com.highdatas.mdm.util.Constant;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RestController;
+import java.text.MessageFormat;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
  *  鍓嶇鎺у埗鍣�
  * </p>
- *
+ * @description 瀛楁鐗堟湰鎺ュ彛
  * @author kimi
  * @since 2020-03-06
  */
 @RestController
 @RequestMapping("/maintainField")
 public class MaintainFieldController {
+    @Autowired
+    IMaintainService maintainService;
+    @Autowired
+    IMaintainFieldService maintainFieldService;
+    @Autowired
+    ISysFieldService fieldService;
+    @Autowired
+    TableInfoMapper tableInfoMapper;
+    @Autowired
+    IMenuMappingService menuMappingService;
+
+    /**
+     *
+     * @description:  閫氳繃涓婚鑾峰彇瀛楁鐗堟湰鍒楄〃
+     * @param menuId 涓婚id
+     * @return: 瀛楁鐗堟湰鍒楄〃
+     *
+     */
+    @RequestMapping(value = "/getMaintainListByMenu/{menuId}", method = RequestMethod.GET)
+    public Result getMaintainListByTable(@PathVariable String menuId)  {
+        //鑾峰彇menumapping 淇℃伅
+        MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("menu_id", menuId).orderBy("create_time"));
+        if (menuMapping == null){
+            return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED);
+        }
+        //鑾峰彇琛ㄥ悕
+        String tableName = menuMapping.getTableName();
+
+        //鑾峰彇瀛楁鐗堟湰list
+        JSONArray array = maintainFieldService.getMaintainListByTable(tableName);
+        return Result.success(array);
+    }
+
+    /**
+     *
+     * @description:  鑾峰彇瀛楁鐗堟湰id鏌愪釜鐗堟湰涓嬬殑璁板綍
+     * @param id 瀛楁鐗堟湰id
+     * @return: 鏌愪釜鐗堟湰涓嬬殑璁板綍
+     *
+     */
+    @RequestMapping(value = "/getMaintainListByMaintainField/{id}", method = RequestMethod.GET)
+    public Result getMaintainListByMaintainField(@PathVariable String id, @RequestParam String tableName)  {
+        //鑾峰彇瀛楁鐗堟湰id鏌愪釜鐗堟湰涓嬬殑璁板綍
+        List<Maintain> maintainList = maintainFieldService.getMaintainListByMaintainField(id, tableName);
+        return Result.success(maintainList);
+    }
+
+    /**
+     *
+     * @description:  閫氳繃琛ㄥ悕鑾峰彇鏌愪釜鐗堟湰涓嬬殑璁板綍
+     * @param tableName 琛ㄥ悕
+     * @return: 鏌愪釜鐗堟湰涓嬬殑璁板綍
+     *
+     */
+    @RequestMapping(value = "/getMaintainListByTable/{tableName}", method = RequestMethod.GET)
+    public Result deleteModel(@PathVariable String tableName)  {
+        //閫氳繃琛ㄥ悕鑾峰彇瀛楁鐗堟湰list
+        List<MaintainField> maintainFieldList = maintainFieldService.selectList(new EntityWrapper<MaintainField>().eq("table_name", tableName).orderBy("order_no"));
+        int preOrderNo = -1;
+        HashMap<String, List<Maintain>> resultMap = new HashMap<>();
+        if (maintainFieldList.size() == 0) {
+            //鏃犺褰曞垯涓烘湁鏂扮殑瀛楁鐗堟湰锛� 浠呬负榛樿鐗堟湰
+            List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().orderBy("order_no"));
+            resultMap.put(Constant.Default, maintainList);
+            return Result.success(resultMap);
+        }
+        for (MaintainField maintainField : maintainFieldList) {
+            String maintainId = maintainField.getMaintainId();
+            //绛涢�夋帀鏁版嵁閿欒鐨勬暟鎹�
+            if (StringUtils.isEmpty(maintainId)) {
+                continue;
+            }
+            Maintain maintain = maintainService.selectById(maintainId);
+            if (maintain == null) {
+                continue;
+            }
+            Integer orderNo = maintain.getOrderNo();
+            //鑾峰彇鏌愪釜瀛楁鐗堟湰瀵瑰簲鐨勬暟鎹増鏈�
+            List<Maintain> maintainList = maintainService.selectList(new EntityWrapper<Maintain>().ge("order_no", preOrderNo).le("order_no", orderNo));
+            resultMap.put(maintainField.getId(), maintainList);
+            preOrderNo = orderNo;
+        }
+        Set<String> keySet = resultMap.keySet();
+        JSONArray array = new JSONArray();
+        for (String s : keySet) {
+            List<Maintain> maintainList = resultMap.get(s);
+            Maintain max = maintainList.stream().max(new Comparator<Maintain>() {
+                @Override
+                public int compare(Maintain o1, Maintain o2) {
+                    return o1.getOrderNo() - o2.getOrderNo();
+                }
+            }).get();
+            //By 瀛楁鐗堟湰 鑾峰彇鏈�灏忕殑鏁版嵁鐗堟湰
+            Maintain min = maintainList.stream().min(new Comparator<Maintain>() {
+                @Override
+                public int compare(Maintain o1, Maintain o2) {
+                    return o1.getOrderNo() - o2.getOrderNo();
+                }
+            }).get();
+            //By 瀛楁鐗堟湰 鑾峰彇鏈�灏忕殑鏁版嵁鐗堟湰
+            JSONObject object = new JSONObject();
+            object.fluentPut("maintainFieldId", s);
+            //鍒檝ersion涓烘鏁版嵁鐗堟湰涓嬫敮鎸佺殑鏁版嵁鐗堟湰鑼冨洿
+            object.fluentPut("version", MessageFormat.format(Constant.extent, min.getVersion(), max.getVersion()));
+
+            array.add(object);
+        }
+        return Result.success(array);
+    }
+
+
+
+
 
 }

--
Gitblit v1.8.0