From 9729d04588727e332ae7d5e7fa90cef986254d21 Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Tue, 7 Sep 2021 09:51:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../da/slrs/DataSync/DataSyncController.java | 143 ++++++++++++++++++ .../sarInstitution/dao/TsInstitutionDao.java | 3 + .../service/ITsInstitutionService.java | 2 + .../impl/TsInstitutionServiceImpl.java | 5 + .../sarInstitution/TsInstitutionMapper.xml | 4 + .../adc/da/sync/service/SyncUserService.java | 4 +- .../java/com/adc/da/sys/dao/OrgEODao.java | 2 + .../java/com/adc/da/sys/entity/OrgEO.java | 2 + .../mybatis/mapper/sys/OrgEOMapper.xml | 3 + 9 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java new file mode 100644 index 00000000..b7cefcd3 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/DataSync/DataSyncController.java @@ -0,0 +1,143 @@ +package com.adc.da.slrs.DataSync; + +import com.adc.da.slrs.sarInstitution.entity.TsInstitution; +import com.adc.da.slrs.sarInstitution.service.ITsInstitutionService; +import com.adc.da.slrs.sarInstitution.service.impl.TsInstitutionServiceImpl; +import com.adc.da.slrs.sarPosition.entity.TsPosition; +import com.adc.da.slrs.sarPosition.service.ITsPositionService; +import com.adc.da.slrs.sarPosition.service.impl.TsPositionServiceImpl; +import com.adc.da.slrs.sarUser.entity.TsUser; +import com.adc.da.slrs.sarUser.service.ITsUserService; +import com.adc.da.slrs.sarUser.service.impl.TsUserServiceImpl; +import com.adc.da.sync.service.SyncUserService; +import com.adc.da.sys.dao.OrgEODao; +import com.adc.da.sys.entity.OrgEO; +import com.adc.da.sys.entity.UserOrgEO; +import com.adc.da.sys.service.IOrgEOService; +import com.adc.da.sys.service.impl.OrgEOServiceImpl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.sql.Timestamp; +import java.util.*; + +@RestController +@Api(description = "|SarStandPutTime|") +@RequestMapping("/DataSync") +public class DataSyncController { + + @Autowired + ITsPositionService tsPositionService; + @Autowired + ITsUserService tsUserService; + @Autowired + ITsInstitutionService tsInstitutionService; + + + @ApiOperation("同步用户数据") + @PostMapping("/importUserData") + public String importUserData() throws Exception { + SyncUserService syncUserService = new SyncUserService(); + List res = syncUserService.syncFotonUser(); + //存放岗位信息 + Map positionMap = new HashMap<>(); + Map useDistinct = new HashMap<>(); + + List positions = tsPositionService.getPosition(new TsPosition()); + if (!positions.isEmpty()) { + positions.forEach(tsPosition -> { + positionMap.put(tsPosition.getName(), tsPosition.getId()); + }); + } + for (String s : res) { + //获取到所有用户数据 + List tsUsers = new ArrayList<>(); + + JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results")); + jsonArray.forEach(object -> { + JSONObject jsonObject = JSONObject.parseObject(object.toString()); + //先获取岗位以及岗位id + TsUser tsUser = new TsUser(); + UserOrgEO userOrgEO = new UserOrgEO(); + //设置岗位 + if (null != jsonObject.getString("title")) { + if (null == positionMap.get(jsonObject.getString("title"))) { + TsPosition tsPosition = new TsPosition(); + tsPosition.setId(String.valueOf(UUID.randomUUID())); + tsPosition.setName(jsonObject.getString("title")); + tsPositionService.addPosition(tsPosition); + //放入岗位的map集合中 + positionMap.put(tsPosition.getName(), tsPosition.getId()); + //放入类中 + tsUser.setPositionName(tsPosition.getName()); + tsUser.setPositionId(tsPosition.getId()); + } else { + tsUser.setPositionName(jsonObject.getString("title").trim()); + tsUser.setPositionId(positionMap.get(jsonObject.getString("title").trim())); + } + } + //设置其他数据 + Timestamp createTime = new Timestamp(new Date().getTime()); + tsUser.setState(jsonObject.getString("userStatus")); + tsUser.setUname(null!=jsonObject.getString("name")?jsonObject.getString("name"):""); + tsUser.setValidFlag("0"); + tsUser.setDisableFlag("0"); + tsUser.setCreationTime(createTime); + tsUser.setUserId(jsonObject.getString("userid")); + tsUser.setAccount(jsonObject.getString("userid")); + tsUser.setInstitutionId(null!=jsonObject.getString("orgNumber")?jsonObject.getString("orgNumber"):"" ); + tsUser.setInstitutionName(null!=jsonObject.getString("orgName")?jsonObject.getString("orgName"):"" ); + if (null == useDistinct.get(jsonObject.getString("userid"))) { + tsUsers.add(tsUser); + + } + useDistinct.put(tsUser.getUserId(),tsUser.getUserId()); + }); + tsUserService.saveBatch(tsUsers); + } + + return "1"; + } + + @ApiOperation("同步组织机构") + @PostMapping("/importOrgData") + public String importOrgData() throws Exception { + SyncUserService syncUserService = new SyncUserService(); + List res = syncUserService.syncFotonOrg(); + + //获取到所有用户数据 + List strings=new ArrayList<>(); + + tsInstitutionService.clearData(); + for (String s : res) { + JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results")); + jsonArray.forEach(object -> { + JSONObject jsonObject = JSONObject.parseObject(object.toString()); + strings.add(jsonObject.getString("parentOrgNumber")); + }); + } + for (String s : res) { + List tsInstitutions = new ArrayList<>(); + JSONArray jsonArray = JSONArray.parseArray(JSONObject.parseObject(s.toString()).getString("results")); + jsonArray.forEach(object -> { + JSONObject jsonObject = JSONObject.parseObject(object.toString()); + TsInstitution tsInstitution=new TsInstitution(); + tsInstitution.setId(jsonObject.getString("orgNumber")); + tsInstitution.setName(jsonObject.getString("orgName")); + tsInstitution.setHasChild(strings.contains(jsonObject.getString("orgNumber"))?"1":"0"); + tsInstitution.setParentId(jsonObject.getString("parentOrgNumber")); + tsInstitutions.add(tsInstitution); + }); + tsInstitutionService.saveBatch(tsInstitutions); + } + return "1"; + } + + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java index 8b8d2ee3..dcc7ff49 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/dao/TsInstitutionDao.java @@ -59,4 +59,7 @@ public interface TsInstitutionDao extends BaseMapper { @Select("select * from ts_institution order by rand() limit 1") TsInstitution selectRand(); + + int clearData(); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java index 688cc318..8350d452 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/ITsInstitutionService.java @@ -42,4 +42,6 @@ public interface ITsInstitutionService extends IService { * @return */ public List getFirst(); + + int clearData(); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java index 2e3c47cd..57e64d77 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarInstitution/service/impl/TsInstitutionServiceImpl.java @@ -213,4 +213,9 @@ public class TsInstitutionServiceImpl extends ServiceImpl + + + delete from ts_institution + diff --git a/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java b/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java index 6c8336df..760f65cd 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java +++ b/adc-da-sys/src/main/java/com/adc/da/sync/service/SyncUserService.java @@ -21,7 +21,7 @@ public class SyncUserService { public static void main(String[] args) throws Exception { SyncUserService syncUserService=new SyncUserService(); - syncUserService.syncFotonOrg(); + syncUserService.syncFotonUser(); } /** @@ -50,7 +50,7 @@ public class SyncUserService { json.add(rs); JSONObject responseStr = JSON.parseObject(rs); - + System.out.println(rs); if (responseStr.containsKey("cookie")) { try { JSONArray entries = responseStr.getJSONArray("cookie"); diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/dao/OrgEODao.java b/adc-da-sys/src/main/java/com/adc/da/sys/dao/OrgEODao.java index 2cec8f1a..8057fe85 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/dao/OrgEODao.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/dao/OrgEODao.java @@ -162,4 +162,6 @@ public interface OrgEODao extends BaseMapper { public OrgEO getOrgParentInfoOrgId(OrgEO orgEO); public List getOrgRootTree(); + + int clearData(); } diff --git a/adc-da-sys/src/main/java/com/adc/da/sys/entity/OrgEO.java b/adc-da-sys/src/main/java/com/adc/da/sys/entity/OrgEO.java index 2d961ec6..cf336364 100644 --- a/adc-da-sys/src/main/java/com/adc/da/sys/entity/OrgEO.java +++ b/adc-da-sys/src/main/java/com/adc/da/sys/entity/OrgEO.java @@ -1,6 +1,7 @@ package com.adc.da.sys.entity; import com.adc.da.base.entity.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -13,6 +14,7 @@ import java.util.List; * 日期: 2018-09-03
* 版权所有:版权归北京卡达克数据技术中心所有。
*/ +@TableName(value = "ts_org") public class OrgEO extends BaseEntity implements Serializable { @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/adc-da-sys/src/main/resources/mybatis/mapper/sys/OrgEOMapper.xml b/adc-da-sys/src/main/resources/mybatis/mapper/sys/OrgEOMapper.xml index 062104ed..2d64c352 100644 --- a/adc-da-sys/src/main/resources/mybatis/mapper/sys/OrgEOMapper.xml +++ b/adc-da-sys/src/main/resources/mybatis/mapper/sys/OrgEOMapper.xml @@ -762,6 +762,9 @@ AND parent_idS IS NOT NULL + + delete from TS_ORG +