1
0

2 Commitit da9d975a1b ... 48d593bd01

Tekijä SHA1 Viesti Päivämäärä
  zhonghui 48d593bd01 Merge remote-tracking branch 'origin/master' 3 vuotta sitten
  zhonghui 4f27f2a4c3 修改代码 3 vuotta sitten

+ 46 - 0
boman-modules/boman-system/src/main/java/com/boman/system/controller/SysDeptController.java

@@ -1,7 +1,13 @@
 package com.boman.system.controller;
 
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+
+import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -190,4 +196,44 @@ public class SysDeptController extends BaseController
         }
         return toAjax(deptService.deleteDeptById(id));
     }
+
+
+    @GetMapping("/moveData/{limit}/{offset}")
+    public String moveYmjzData(@PathVariable("limit") int limit, @PathVariable("offset") int offset) throws Exception {
+//        List<String> idCardList = mapper.listIdCard(limit, offset);
+        List<JSONObject> ymjzList = deptService.syncData();
+        int moveData = 0;
+        StringBuilder stringBuilder = new StringBuilder();
+        List<String> enpty = new ArrayList<>();
+        for (int i = 0; i < ymjzList.size(); i++) {
+            JSONObject ymjz = ymjzList.get(i);
+            String idCard = ymjz.getString("id_card");
+            Long deptId = ymjz.getLong("dept_id");
+            String sql = "";
+            if(deptId == null) {
+                enpty.add(idCard);
+            }else {
+                sql = String.format("UPDATE vaccine_info set dept_id = %s where id_card = '%s'; -- %s \r\n", deptId, idCard, i);
+                stringBuilder.append(sql);
+            }
+
+
+            System.err.println("count: " + i + ", " + sql);
+            moveData++;
+        }
+        File file = new File("E:\\\\work\\vainfo.sql");
+//        File file = new File("//home//vainfo_update.sql");
+        if (!file.exists()) {
+            file.createNewFile();
+        }
+
+        FileWriter fileWriter = new FileWriter(file, true);
+        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
+        bufferedWriter.write(stringBuilder.toString());
+        bufferedWriter.close();
+        for (String s : enpty) {
+            System.out.println(s);
+        }
+        return "循环了 " + moveData + " 条";
+    }
 }

+ 57 - 0
boman-modules/boman-system/src/main/java/com/boman/system/mapper/SyncMapper.java

@@ -0,0 +1,57 @@
+package com.boman.system.mapper;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.InsertProvider;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.SelectProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+import java.util.Map;
+
+public interface SyncMapper {
+    Logger LOGGER = LoggerFactory.getLogger(SyncMapper.class);
+
+    @SelectProvider(type = SqlProvider.class, method = "selectBySql")
+    List<JSONObject> selectBySql(@Param("sql") String sql);
+
+    @SelectProvider(type = SqlProvider.class, method = "selectCount")
+    int selectCount(@Param("sql") String sql);
+
+
+    @InsertProvider(type = SqlProvider.class, method = "updateData")
+    int updateData(@Param("jsonObject") JSONObject jsonObject, @Param("key") String key);
+
+    class SqlProvider {
+
+        public String selectBySql(Map<String, Object> para) {
+            return (String) para.get("sql");
+        }
+
+        public String selectCount(Map<String, Object> para) {
+            return (String) para.get("sql");
+        }
+
+
+        public String updateData(Map<String, Object> para) {
+            JSONObject jsonObject = (JSONObject) para.get("jsonObject");
+            String key = (String) para.get("key");
+            String tableName = "vaccine_info";
+            StringBuilder stringBuilder = new StringBuilder();
+            stringBuilder.append("update ").append(tableName).append(" set ");
+            for(String column : jsonObject.keySet()) {
+                if(StringUtils.isNotEmpty((String) jsonObject.get(column))) {
+                    stringBuilder.append(column).append(" = ").append("'").append(jsonObject.get(column)).append("'").append(",");
+                }
+            }
+            String sql = stringBuilder.toString();
+            sql = sql.substring(0, sql.lastIndexOf(","));
+            stringBuilder.append(" where id_card = ").append("''" + key + "");
+            sql += " where id_card = '" + key + "'";
+
+            return sql;
+        }
+    }
+}

+ 3 - 0
boman-modules/boman-system/src/main/java/com/boman/system/service/ISysDeptService.java

@@ -2,6 +2,7 @@ package com.boman.system.service;
 
 import java.util.List;
 
+import com.alibaba.fastjson.JSONObject;
 import com.boman.domain.SysDept;
 import com.boman.system.domain.vo.TreeSelect;
 
@@ -123,4 +124,6 @@ public interface ISysDeptService
      * @return com.boman.domain.dto.AjaxResult
      */
     List<SysDept> listChildrenDepts(Long deptId);
+
+    public List<JSONObject> syncData() throws Exception;
 }

+ 126 - 1
boman-modules/boman-system/src/main/java/com/boman/system/service/impl/SysDeptServiceImpl.java

@@ -3,7 +3,9 @@ package com.boman.system.service.impl;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import com.alibaba.fastjson.JSONObject;
 import com.boman.common.core.utils.obj.ObjectUtils;
+import com.boman.system.mapper.SyncMapper;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -18,6 +20,8 @@ import com.boman.system.mapper.SysDeptMapper;
 import com.boman.system.mapper.SysRoleMapper;
 import com.boman.system.service.ISysDeptService;
 
+import javax.annotation.Resource;
+
 /**
  * 部门管理 服务实现
  * 
@@ -350,7 +354,7 @@ public class SysDeptServiceImpl implements ISysDeptService
      */
     @Override
     public List<SysDept> listChildrenDepts(Long deptId) {
-        List<SysDept> allDepts = selectDeptList(new SysDept());
+        List<SysDept> allDepts = selectDepts(new SysDept());
         SysDept sysDept = ObjectUtils.filterOne(allDepts, dept -> deptId.equals(dept.getId()));
         List<SysDept> returnData = Lists.newArrayListWithCapacity(16);
         List<SysDept> sysDepts = recursionChildrenDepts(allDepts, sysDept, returnData);
@@ -373,4 +377,125 @@ public class SysDeptServiceImpl implements ISysDeptService
         return returnData;
     }
 
+    @Override
+    public List<JSONObject> syncData() throws Exception {
+        List<JSONObject> datas = new ArrayList<>();
+        try{
+            SysDept sysDept = new SysDept();
+            // 所有层级数据
+            List<TreeSelect> depts = this.getDepts(sysDept);
+            // 乡镇
+            List<TreeSelect> regionDept = this.getRegionDept(depts);
+            Map<String, Long> regionMap = new HashMap<>();
+            for (TreeSelect treeSelect : regionDept) {
+                regionMap.put(treeSelect.getLabel(), treeSelect.getId());
+            }
+            // 村
+            Map<String, Long> repeatVillageMap = new HashMap<>();
+            List<TreeSelect> villegeDept = this.getVillegeDept(depts, repeatVillageMap);
+            Map<String, Long> villegeMap = new HashMap<>();
+
+
+            for (TreeSelect treeSelect : villegeDept) {
+                String deptName = treeSelect.getLabel();
+                Long deptId = treeSelect.getId();
+                if(villegeMap.containsKey(deptName)) {
+                    System.out.println(deptName);
+                }
+                villegeMap.put(deptName, deptId);
+            }
+
+            List<JSONObject> vaccInfos = this.getVaccInfo();
+            for (JSONObject vanninfo : vaccInfos) {
+                String idCard = vanninfo.getString("zjhm");
+                String dz = vanninfo.getString("hjdxz");
+                JSONObject update = new JSONObject();
+                update.put("id_card", idCard);
+                // 先判断村数据是否存在,如果村存在,则直接获取村的id,反之获取乡镇id
+                Long deptId = this.getVillegeDeptId(dz, villegeMap, repeatVillageMap);
+                if(deptId == null) {
+                    deptId = this.getRegionDeptId(dz, regionMap);
+                }
+                update.put("dept_id", deptId);
+                System.out.println(update.toJSONString());
+                datas.add(update);
+            }
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+        return datas;
+    }
+
+    @Resource
+    private SyncMapper syncMapper;
+
+    private List<JSONObject> getVaccInfo() {
+        String sql = "select * from hj_hj";
+        List<JSONObject> objs = syncMapper.selectBySql(sql);
+        return objs;
+    }
+
+    private List<TreeSelect> getDepts(SysDept dept) {
+        return buildDeptTreeSelect(this.selectDepts(dept));
+    }
+
+    private List<TreeSelect> getRegionDept(List<TreeSelect> depts) {
+        return depts.get(0).getChildren();
+    }
+
+    private List<TreeSelect> getVillegeDept(List<TreeSelect> depts, Map<String, Long> repeatVillageMap) {
+        List<TreeSelect> villegs = new ArrayList<>();
+        List<TreeSelect> regions = depts.get(0).getChildren();
+        for (TreeSelect region : regions) {
+            if(region.getLabel().equals("王河镇") || region.getLabel().equals("五庙乡")
+                    || region.getLabel().equals("黄铺镇") || region.getLabel().equals("水吼镇") ) {
+                List<TreeSelect> vills = region.getChildren();
+                for (TreeSelect vill : vills) {
+                    if(vill.getLabel().equals("和平村") || vill.getLabel().equals("红光村")) {
+                        repeatVillageMap.put(region.getLabel() + vill.getLabel(), vill.getId());
+                    }else{
+                        villegs.add(vill);
+                    }
+                }
+            }else {
+                villegs.addAll(region.getChildren());
+            }
+
+        }
+
+        return villegs;
+    }
+
+    private Long getRegionDeptId(String dz, Map<String, Long> villegeMap) {
+        for (String deptName : villegeMap.keySet()) {
+            if(dz.contains(deptName)) {
+                return villegeMap.get(deptName);
+            }
+        }
+        return null;
+
+    }
+
+    private Long getVillegeDeptId(String dz, Map<String, Long> villegeMap, Map<String, Long>  repeatVillageMap) {
+        if(dz.contains("和平村") || dz.contains("红光村")) {
+            if(dz.contains("黄铺镇" + "和平村")) {
+                return repeatVillageMap.get("黄铺镇" + "和平村");
+            }else if(dz.contains("水吼镇" + "和平村")){
+                return repeatVillageMap.get("水吼镇" + "和平村");
+            }else if(dz.contains("王河镇" + "红光村")) {
+                return repeatVillageMap.get("王河镇" + "红光村");
+            }else if(dz.contains("五庙乡" + "红光村")){
+                return repeatVillageMap.get("五庙乡" + "红光村");
+            }
+        }else{
+            for (String deptName : villegeMap.keySet()) {
+                if(dz.contains(deptName)) {
+                    return villegeMap.get(deptName);
+                }
+            }
+        }
+
+        return null;
+
+    }
 }