From e6720f333268682d11aedb3b3308fa2f2c3a40df Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期二, 28 五月 2024 16:09:05 +0800
Subject: [PATCH] commit

---
 product-server-data-sync/src/main/java/com/product/data/sync/service/FeDataDSService.java       | 1793 +++++++++++++++++++++--------------------
 product-server-data-sync/src/main/java/com/product/data/sync/util/BusinessDataSync.java         |  646 +++++++++-----
 product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java       |   63 +
 product-server-data-sync/src/main/java/com/product/data/sync/controller/SyFeDataController.java |    2 
 product-server-data-sync/src/main/java/com/product/data/sync/util/BatchAddData.java             |   75 +
 5 files changed, 1,475 insertions(+), 1,104 deletions(-)

diff --git a/product-server-data-sync/src/main/java/com/product/data/sync/controller/SyFeDataController.java b/product-server-data-sync/src/main/java/com/product/data/sync/controller/SyFeDataController.java
index 2b59210..2c198b3 100644
--- a/product-server-data-sync/src/main/java/com/product/data/sync/controller/SyFeDataController.java
+++ b/product-server-data-sync/src/main/java/com/product/data/sync/controller/SyFeDataController.java
@@ -50,8 +50,10 @@
 				return this.error(SystemCode.SYSTEM_TABLE_NODATA.getValue(), SystemCode.SYSTEM_TABLE_NODATA.getText());
 			}
 			String uuid = syFeDataService.saveSyncFedata(fse);
+
 			return OK();
 		} catch (BaseException e) {
+			e.printStackTrace();
 			SpringMVCContextHolder.getSystemLogger().error(e);
 			return this.error(e);
 		} catch (Exception e) {
diff --git a/product-server-data-sync/src/main/java/com/product/data/sync/service/FeDataDSService.java b/product-server-data-sync/src/main/java/com/product/data/sync/service/FeDataDSService.java
index 2470002..5afad7a 100644
--- a/product-server-data-sync/src/main/java/com/product/data/sync/service/FeDataDSService.java
+++ b/product-server-data-sync/src/main/java/com/product/data/sync/service/FeDataDSService.java
@@ -45,245 +45,256 @@
 @Component
 public class FeDataDSService extends AbstractBaseService {
 
-    @Autowired
-    public BaseDao baseDao;
-    @Autowired
-    private UserService userService;
-    @Autowired
-    private CodeService codeService;
-    @Autowired
-    private SystemOrgLevelsService systemOrgLevelsService;
+	@Autowired
+	public BaseDao baseDao;
+	@Autowired
+	private UserService userService;
+	@Autowired
+	private CodeService codeService;
+	@Autowired
+	private SystemOrgLevelsService systemOrgLevelsService;
 
-    @Autowired
-    public FunctionSynchrService functionSynchrService;
-    @Autowired
-    FileManagerService fileManagerService;
+	@Autowired
+	public FunctionSynchrService functionSynchrService;
+	@Autowired
+	FileManagerService fileManagerService;
 
-    //涓存椂鏂囦欢璺緞
-    private static String TSPath = Global.getSystemConfig("new.filePackage","");
-    private static String testString = "^(\\d{0,4}`)|(\\d{0,3}\\^\\d{0,4}`)";
-    private static String startWith = "FE#ENC#";
-    private int[] intPosition = new int[64];
-    //鎴戜滑浜у搧鐨勫姛鑳芥潈闄�
-    private String[] functionCode = {"001-004-000-000","001-004-000-001","001-004-000-002","001-004-000-003","001-004-000-004",
-            "001-006-006-000","001-006-002-000","001-006-000-000","001-006-001-000",
-            "001-006-001-001","001-006-000-001", "001-006-002-001" ,"001-006-002-002","001-006-004-000",
-            "001-006-003-000","001-006-002-003","001-006-003-001","001-006-003-002","001-006-003-003",
-            "001-006-004-001","001-006-003-004","001-006-003-005","001-006-003-006","001-006-006-001",
-            "001-006-008-000","001-006-008-001","001-006-008-002", "001-006-008-003","001-006-008-004",
-            "001-006-008-005","001-006-008-006", "001-006-000-003", "001-006-011-000","001-006-011-001",
-            "001-008-001-001","001-008-001-000","001-008-001-003"};
+	//涓存椂鏂囦欢璺緞
+	private static String TSPath = Global.getSystemConfig("new.filePackage", "");
+	private static String testString = "^(\\d{0,4}`)|(\\d{0,3}\\^\\d{0,4}`)";
+	private static String startWith = "FE#ENC#";
+	private int[] intPosition = new int[64];
+	//鎴戜滑浜у搧鐨勫姛鑳芥潈闄�
+	private String[] functionCode = {"001-004-000-000", "001-004-000-001", "001-004-000-002", "001-004-000-003", "001-004-000-004",
+			"001-006-006-000", "001-006-002-000", "001-006-000-000", "001-006-001-000",
+			"001-006-001-001", "001-006-000-001", "001-006-002-001", "001-006-002-002", "001-006-004-000",
+			"001-006-003-000", "001-006-002-003", "001-006-003-001", "001-006-003-002", "001-006-003-003",
+			"001-006-004-001", "001-006-003-004", "001-006-003-005", "001-006-003-006", "001-006-006-001",
+			"001-006-008-000", "001-006-008-001", "001-006-008-002", "001-006-008-003", "001-006-008-004",
+			"001-006-008-005", "001-006-008-006", "001-006-000-003", "001-006-011-000", "001-006-011-001",
+			"001-008-001-001", "001-008-001-000", "001-008-001-003"};
 
-    private Integer sort = 0;
-    //鍏徃鍜岄儴闂╩ap   key 涓哄叕鍙告垨閮ㄩ棬鍏ㄧО
-    Map<String, FieldSetEntity> institutionMap = Maps.newHashMap();
-    public Connection getJDBC() throws SQLException, ClassNotFoundException {
-        //鑾峰彇jdbc杩炴帴
+	private Integer sort = 0;
+	//鍏徃鍜岄儴闂╩ap   key 涓哄叕鍙告垨閮ㄩ棬鍏ㄧО
+	Map<String, FieldSetEntity> institutionMap = Maps.newHashMap();
+
+	public Connection getJDBC() throws SQLException, ClassNotFoundException {
+		//鑾峰彇jdbc杩炴帴
 //        String diver = "oracle.jdbc.driver.OracleDriver";
 //        String url = "jdbc:oracle:thin:@10.0.0.21:1521:orcl";
 //        return DataManipulationUtils.getConnection(diver, url, "FE_BASE5", "fe123");
-        //鑾峰彇jdbc杩炴帴
-        String diver = Global.getSystemConfig("data.synchronism.function.jdbc.diver", "");
-        String url = Global.getSystemConfig("data.synchronism.function.jdbc.url", "");
-        String name = Global.getSystemConfig("data.synchronism.function.jdbc.name", "");
-        String password = Global.getSystemConfig("data.synchronism.function.jdbc.password", "");
-        return DataManipulationUtils.getConnection(diver, url, name, password);
-    }
+		//鑾峰彇jdbc杩炴帴
+		String diver = Global.getSystemConfig("data.synchronism.function.jdbc.diver", "");
+		String url = Global.getSystemConfig("data.synchronism.function.jdbc.url", "");
+		String name = Global.getSystemConfig("data.synchronism.function.jdbc.name", "");
+		String password = Global.getSystemConfig("data.synchronism.function.jdbc.password", "");
+		return DataManipulationUtils.getConnection(diver, url, name, password);
+	}
 
 
-    public String FEDataMigration(){
-        String clientUUID = "";
-        try {
-            //admin鍒濆鍖栧鎴峰強瑙掕壊
-            clientUUID = this.initializeClients();
-            //鍚屾鍏徃閮ㄩ棬
-            this.syncDepartmentCompany();
-            //灏佽鍏徃閮ㄩ棬map
-            this.packInstitutionMap();
-            //鍚屾宀椾綅绛夌骇鍜屽矖浣�
-            this.synchronousPost();
-            //鍚屾瑙掕壊
-            this.synchronousRole();
-            //鍚屾绠$悊鍛�
-            this.syncManager(clientUUID);
-            //鍚屾浜哄憳
-            this.addEmployees(clientUUID);
-        } catch (SQLException e) {
-            e.printStackTrace();
-        } catch (ClassNotFoundException e) {
-            e.printStackTrace();
-        }
-        return clientUUID;
-    }
+	public String FEDataMigration() {
+		String clientUUID = "";
+		try {
+			//admin鍒濆鍖栧鎴峰強瑙掕壊
+			clientUUID = this.initializeClients();
+			//鍚屾鍏徃閮ㄩ棬
+			this.syncDepartmentCompany();
+			//灏佽鍏徃閮ㄩ棬map
+			this.packInstitutionMap();
+			//鍚屾宀椾綅绛夌骇鍜屽矖浣�
+			this.synchronousPost();
+//            //鍚屾瑙掕壊
+//            this.synchronousRole();
+			//鍚屾绠$悊鍛�
+//			this.syncManager(clientUUID);
+			//鍚屾浜哄憳
+			this.addEmployees(clientUUID);
+		} catch (SQLException e) {
+			logger.error("FEDataMigration", e);
+			e.printStackTrace();
+		} catch (ClassNotFoundException e) {
+			logger.error("FEDataMigration", e);
+			e.printStackTrace();
+		}
+		return clientUUID;
+	}
 
-    /**
-     * 	鍒濆鍖栧鎴峰強瀹㈡埛瑙掕壊(淇敼瀹㈡埛涓篎E鐨勫鎴峰悕绉�)
-     * @return
-     * @throws SQLException
-     * @throws ClassNotFoundException
-     */
-    public String initializeClients() throws SQLException, ClassNotFoundException {
-        FieldSetEntity grouoFs = null;
-        Connection conn = this.getJDBC();
-        try {
-            grouoFs = BaseDaoServiceImpl.getFieldSet(conn, "fe_base5.SYS_GROUP", "SG10=1", new Object[]{});
-        } catch (Exception e) {
-            DataManipulationUtils.close(null, null, conn);
-            throw e;
-        }
-        //鏌ヨ鍘熷鎴�  鏀逛负瑗垮畞
-        FieldSetEntity tableFs = baseDao.getFieldSetEntityByFilter("product_sys_clients", " client_code = ? ", new String[]{"001"},false);
-        if (tableFs==null) {
+	/**
+	 * 鍒濆鍖栧鎴峰強瀹㈡埛瑙掕壊(淇敼瀹㈡埛涓篎E鐨勫鎴峰悕绉�)
+	 *
+	 * @return
+	 * @throws SQLException
+	 * @throws ClassNotFoundException
+	 */
+	public String initializeClients() throws SQLException, ClassNotFoundException {
+		FieldSetEntity grouoFs = null;
+		Connection conn = this.getJDBC();
+		try {
+			grouoFs = BaseDaoServiceImpl.getFieldSet(conn, "fe_base5.SYS_GROUP", "SG10=1", new Object[]{});
+		} catch (Exception e) {
+			DataManipulationUtils.close(null, null, conn);
+			throw e;
+		}
+		//鏌ヨ鍘熷鎴�  鏀逛负瑗垮畞
+		FieldSetEntity tableFs = baseDao.getFieldSetEntityByFilter("product_sys_clients", " client_code = ? ", new String[]{"001"}, false);
+		if (tableFs == null) {
 			throw new BaseException("500", "瀹㈡埛琛ㄦ病鏈�001鐨勬暟鎹�");
 		}
-        //鍘熷鎴峰悕绉�
-        String clientName = tableFs.getString("client_name");
-        tableFs.setValue("client_name", grouoFs.getString("sg01"));
-        String clientUUID = tableFs.getUUID();
-        //鏌ヨ鍘熷鎴风殑瑙掕壊  鏀逛负瑗垮畞
-        FieldSetEntity roleFs = baseDao.getFieldSetEntityByFilter("product_sys_role", " role_name = ? ", new String[]{clientName}, false);
-        roleFs.setValue("role_name", grouoFs.getString("sg01"));
-        //淇敼瑙掕壊
-        baseDao.update(roleFs);
-        //淇敼瀹㈡埛
+		//鍘熷鎴峰悕绉�
+		String clientName = tableFs.getString("client_name");
+		tableFs.setValue("client_name", grouoFs.getString("sg01"));
+		String clientUUID = tableFs.getUUID();
+		//鏌ヨ鍘熷鎴风殑瑙掕壊  鏀逛负瑗垮畞
+		FieldSetEntity roleFs = baseDao.getFieldSetEntityByFilter("product_sys_role", " role_name = ? ", new String[]{clientName}, false);
+		roleFs.setValue("role_name", grouoFs.getString("sg01"));
+		//淇敼瑙掕壊
+		baseDao.update(roleFs);
+		//淇敼瀹㈡埛
 //        tableFs.setCodeFieldUpdateFlat("client_code", true);
-        baseDao.update(tableFs);
-        return clientUUID;
-    }
+		baseDao.update(tableFs);
+		return clientUUID;
+	}
 
-    /**
-     * 鍚屾鍗曚綅绠$悊鍛�
-     */
-    public void syncManager(String clientUUID) throws SQLException, ClassNotFoundException {
-        Connection conn = this.getJDBC();
-        DataTableEntity managerData;
-        try {
-            //鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
-            StringBuffer sql = new StringBuffer();
-            sql.append(" SELECT A.*,REPLACE(REPLACE(REPLACE(A.SU03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''),  ")
-                    .append(" '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/'),'/','>') ASU03 FROM  ")
-                    .append(" FE_BASE5.SYS_USERS A WHERE A.SU31 = 2 ");
-            //浜哄憳鏁版嵁
-            managerData = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
-            this.syncManager(managerData, clientUUID);
-        } catch (Exception e) {
-            throw e;
-        }
-    }
+	/**
+	 * 鍚屾鍗曚綅绠$悊鍛�
+	 */
+	public void syncManager(String clientUUID) throws SQLException, ClassNotFoundException {
+		Connection conn = this.getJDBC();
+		DataTableEntity managerData;
+		try {
+			//鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
+			StringBuffer sql = new StringBuffer();
+			sql.append(" SELECT A.*,REPLACE(REPLACE(REPLACE(A.SU03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''),  ")
+					.append(" '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/'),'/','>') ASU03 FROM  ")
+					.append(" FE_BASE5.SYS_USERS A WHERE A.SU31 = 2 ");
+			//浜哄憳鏁版嵁
+			managerData = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
+			this.syncManager(managerData, clientUUID);
+		} catch (Exception e) {
+			throw e;
+		}
+	}
 
-    /**
-     *  鍚屾绠$悊鍛�
-     * @param managerData 绠$悊鍛樼敤鎴锋暟鎹�
-     */
-    public void syncManager(DataTableEntity managerData,String clientUUID){
-        if(!BaseUtil.dataTableIsEmpty(managerData)) {
-            for (int i = 0; i < managerData.getRows(); i++) {
-                FieldSetEntity userFs = new FieldSetEntity();
-                FieldSetEntity fse = managerData.getFieldSetEntity(i);
-                userFs.setTableName("product_sys_users");
-                String su01 = fse.getString("su01");
-                userFs.setValue("user_name", su01);
-                userFs.setValue("user_account",su01);
-                userFs.setValue("gender", 1);
-                userFs.setValue("user_pwd", userService.createPassWord(su01, "123"));
-                userFs.setValue("is_manager", 1);
-                userFs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
-                userFs.setValue("created_utc_datetime", new Date());
-                userFs.setValue("status", 1);
+	/**
+	 * 鍚屾绠$悊鍛�
+	 *
+	 * @param managerData 绠$悊鍛樼敤鎴锋暟鎹�
+	 */
+	public void syncManager(DataTableEntity managerData, String clientUUID) {
+		if (!BaseUtil.dataTableIsEmpty(managerData)) {
+			for (int i = 0; i < managerData.getRows(); i++) {
+				FieldSetEntity userFs = new FieldSetEntity();
+				FieldSetEntity fse = managerData.getFieldSetEntity(i);
+				userFs.setTableName("product_sys_users");
+				String su01 = fse.getString("su01");
+				userFs.setValue("user_name", su01);
+				userFs.setValue("user_account", su01);
+				userFs.setValue("gender", 1);
+				userFs.setValue("user_pwd", userService.createPassWord(su01, "123"));
+				userFs.setValue("is_manager", 1);
+				userFs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
+				userFs.setValue("created_utc_datetime", new Date());
+				userFs.setValue("status", 1);
 
-                //鏂板绠$悊鍛�
-                String usersUUID = baseDao.add(userFs);
-                FieldSetEntity users = baseDao.getFieldSetEntity("product_sys_users", usersUUID, false);
-                FieldSetEntity managerFs = new FieldSetEntity();
-                managerFs.setTableName("product_sys_org_manager");
-                managerFs.setValue("user_id", users.getString("user_id"));
-                //浼佷笟绠$悊鍛�
-                managerFs.setValue("manager_type", "2");
-                managerFs.setValue("role_uuids", "eabb00f3-2118-4165-967b-a7d88f472f67-notchange");
-                managerFs.setValue("is_used", 1);
-                managerFs.setValue("clients_uuid", clientUUID);
-                managerFs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
-                managerFs.setValue("created_utc_datetime", new Date());
-                //閲嶆柊缁勮鍚庣殑缁勭粐鍏ㄧО
-                String uuid = this.getSuperiorCompanyUuid(fse.getString("asu03"));
-                managerFs.setValue("org_level_uuid", uuid);
-                baseDao.add(managerFs);
-            }
+				//鏂板绠$悊鍛�
+				String usersUUID = baseDao.add(userFs);
+				FieldSetEntity users = baseDao.getFieldSetEntity("product_sys_users", usersUUID, false);
+				FieldSetEntity managerFs = new FieldSetEntity();
+				managerFs.setTableName("product_sys_org_manager");
+				managerFs.setValue("user_id", users.getString("user_id"));
+				//浼佷笟绠$悊鍛�
+				managerFs.setValue("manager_type", "2");
+				managerFs.setValue("role_uuids", "eabb00f3-2118-4165-967b-a7d88f472f67-notchange");
+				managerFs.setValue("is_used", 1);
+				managerFs.setValue("clients_uuid", clientUUID);
+				managerFs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id());
+				managerFs.setValue("created_utc_datetime", new Date());
+				//閲嶆柊缁勮鍚庣殑缁勭粐鍏ㄧО
+				String uuid = this.getSuperiorCompanyUuid(fse.getString("asu03"));
+				managerFs.setValue("org_level_uuid", uuid);
+				baseDao.add(managerFs);
+			}
 
-        }
-    }
+		}
+	}
 
 
-    /**
-     * 鍚屾鍏徃閮ㄩ棬
-     */
-    public void syncDepartmentCompany() throws SQLException, ClassNotFoundException {
+	/**
+	 * 鍚屾鍏徃閮ㄩ棬
+	 */
+	public void syncDepartmentCompany() throws SQLException, ClassNotFoundException {
 
-    	//鍚屾缁勭粐鏈烘瀯鏁版嵁瀛樻斁闆嗗悎
-        DataTableEntity groupLeadersFs;
-        Connection conn = this.getJDBC();
-        try {
-            StringBuffer sql = new StringBuffer();
-            sql.append("SELECT A.*,REPLACE(REPLACE(A.SG03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''), '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/') ASG03 FROM ( ")
-                   .append( "SELECT * FROM FE_BASE5.SYS_GROUP WHERE length(SG10) > 3 or SG10 = '001'  ORDER BY SG10) A ORDER BY SG10");
-            //鑾峰彇闇�瑕佸悓姝ョ殑缁勭粐鏈烘瀯
-            groupLeadersFs = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
-        } catch (Exception e) {
-            throw e;
-        }
-        DataManipulationUtils.close(null, null, conn);
-        
-        //鍒涘缓椤剁骇鍏徃
-        //鑾峰彇FE椤剁骇鍏徃
-        FieldSetEntity topCompanies = groupLeadersFs.getFieldSetEntity(0);
-        //鑾峰彇浜у搧001椤剁骇鍏徃
-        FieldSetEntity field = baseDao.getFieldSetEntityByFilter("product_sys_org_levels", " org_level_code = 001 ", null,false);
-        //鏇存柊鍏徃鍚嶇О锛屽叕鍙哥煭缂栫爜锛屽叕鍙告帓搴�
-        field.setValue("org_level_name", topCompanies.getString("sg01"));
-        field.setValue("org_level_shortcode",  topCompanies.getString("sg10"));
-        field.setValue("sequence",  topCompanies.getString("sg00"));
+		//鍚屾缁勭粐鏈烘瀯鏁版嵁瀛樻斁闆嗗悎
+		DataTableEntity groupLeadersFs;
+		Connection conn = this.getJDBC();
+		try {
+			StringBuffer sql = new StringBuffer();
+			sql.append("SELECT A.*,REPLACE(REPLACE(A.SG03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''), '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/') ASG03 FROM ( ")
+					.append("SELECT * FROM FE_BASE5.SYS_GROUP WHERE length(SG10) > 3 or SG10 = '001'  ORDER BY SG10) A ORDER BY SG10");
+			//鑾峰彇闇�瑕佸悓姝ョ殑缁勭粐鏈烘瀯
+			groupLeadersFs = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
+		} catch (Exception e) {
+			throw e;
+		}
+		DataManipulationUtils.close(null, null, conn);
+
+		//鍒涘缓椤剁骇鍏徃
+		//鑾峰彇FE椤剁骇鍏徃
+		FieldSetEntity topCompanies = groupLeadersFs.getFieldSetEntity(0);
+		//鑾峰彇浜у搧001椤剁骇鍏徃
+		FieldSetEntity field = baseDao.getFieldSetEntityByFilter("product_sys_org_levels", " org_level_code = 001 ", null, false);
+		//鏇存柊鍏徃鍚嶇О锛屽叕鍙哥煭缂栫爜锛屽叕鍙告帓搴�
+		field.setValue("org_level_name", topCompanies.getString("sg01"));
+		field.setValue("org_level_shortcode", topCompanies.getString("sg10"));
+		field.setValue("sequence", topCompanies.getString("sg00"));
 //      field.setCodeFieldUpdateFlat("org_level_code", true);
-        
-        //浜嬬墿璋冪敤锛屼繚瀛樺叕鍙镐俊鎭�
-        ISystemOrgLevelsService service=(ISystemOrgLevelsService) getProxyInstance(systemOrgLevelsService);
-        service.updateCompany(field);
-        
+
+		//浜嬬墿璋冪敤锛屼繚瀛樺叕鍙镐俊鎭�
+		ISystemOrgLevelsService service = (ISystemOrgLevelsService) getProxyInstance(systemOrgLevelsService);
+		service.updateCompany(field);
+
 //        FieldSetEntity topField = this.addCompany(topCompanies,null, null);
-        institutionMap.put(field.getString("org_level_all"),field);
-        
-        //閬嶅巻fe鏋舵瀯鏁版嵁 瀛樺叆缁勭粐鏋舵瀯淇℃伅琛�
-        for (int i = 1; i < groupLeadersFs.getRows(); i++) {
-        	
-            FieldSetEntity levelFs = groupLeadersFs.getFieldSetEntity(i);
-            //鑾峰彇FE琛ㄧ粍缁囨満鏋勫叏绉�
-            String asg03 = levelFs.getString("asg03");
-            //鎴彇涓轰笂绾у叕鍙哥浉鍚岀殑鍏ㄧО
-            String level_all = asg03.substring(0,asg03.lastIndexOf("/"));
-            //鏇挎崲涓轰竴鏍风殑绗﹀彿鏂逛究瀵规瘮
-            level_all = level_all.replace("/", ">");
-            //鑾峰彇涓婄骇鍏徃鎴栭儴闂�
-            FieldSetEntity fieldSet = institutionMap.get(level_all);
-            //涓婄骇鍏徃uuid
-            String org_level_uuid = this.getSuperiorCompanyUuid(level_all);
-            if(fieldSet == null){
-                throw new BaseException("涓婄骇涓虹┖","鏃犳硶鑾峰彇涓婄骇code");
-            }
-            if(org_level_uuid == null){
-                throw new BaseException("涓婄骇鍏徃涓虹┖","涓婄骇鍏徃uuid");
-            }
-            //涓婄骇鍏徃code
-            String org_level_code = fieldSet.getString("org_level_code");
-            FieldSetEntity fse;
+		institutionMap.put(field.getString("org_level_all"), field);
+
+		//閬嶅巻fe鏋舵瀯鏁版嵁 瀛樺叆缁勭粐鏋舵瀯淇℃伅琛�
+		for (int i = 1; i < groupLeadersFs.getRows(); i++) {
+
+			FieldSetEntity levelFs = groupLeadersFs.getFieldSetEntity(i);
+			//鑾峰彇FE琛ㄧ粍缁囨満鏋勫叏绉�
+			String asg03 = levelFs.getString("asg03");
+			String levelAll = asg03.replaceAll("/", ">");
+			levelFs = baseDao.getFieldSetByFilter("product_sys_org_levels", "org_level_all=?", new Object[]{levelAll}, false);
+			if (levelFs != null && !StringUtils.isEmpty(levelFs.getUUID())) {
+				institutionMap.put(levelFs.getString("org_level_all"), levelFs);
+				continue;
+			}
+			//鎴彇涓轰笂绾у叕鍙哥浉鍚岀殑鍏ㄧО
+			String level_all = asg03.substring(0, asg03.lastIndexOf("/"));
+			//鏇挎崲涓轰竴鏍风殑绗﹀彿鏂逛究瀵规瘮
+			level_all = level_all.replace("/", ">");
+			//鑾峰彇涓婄骇鍏徃鎴栭儴闂�
+			FieldSetEntity fieldSet = institutionMap.get(level_all);
+			//涓婄骇鍏徃uuid
+			String org_level_uuid = this.getSuperiorCompanyUuid(level_all);
+			if (fieldSet == null) {
+				throw new BaseException("涓婄骇涓虹┖", "鏃犳硶鑾峰彇涓婄骇code");
+			}
+			if (org_level_uuid == null) {
+				throw new BaseException("涓婄骇鍏徃涓虹┖", "涓婄骇鍏徃uuid");
+			}
+			//涓婄骇鍏徃code
+			String org_level_code = fieldSet.getString("org_level_code");
+			FieldSetEntity fse;
 //            levelFs.setCodeFieldUpdateFlat("org_level_code", true);
-            //杩涘叆鏂板鍏徃鏂规硶
-            if(levelFs.getInteger("sg14") == 1){
-                fse = this.addCompany(levelFs,org_level_code,org_level_uuid);
-            //杩涘叆鏂板閮ㄩ棬鏂规硶
-            }else {
-                fse = this.addDepartment(levelFs, org_level_code, org_level_uuid);
-            }
-            institutionMap.put(fse.getString("org_level_all"), fse);
-        }
+			//杩涘叆鏂板鍏徃鏂规硶
+			if (levelFs.getInteger("sg14") == 1) {
+				fse = this.addCompany(levelFs, org_level_code, org_level_uuid);
+				//杩涘叆鏂板閮ㄩ棬鏂规硶
+			} else {
+				fse = this.addDepartment(levelFs, org_level_code, org_level_uuid);
+			}
+			institutionMap.put(fse.getString("org_level_all"), fse);
+		}
 
 //        //鍒涘缓瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�涓嬮儴闂紙鍔炲叕瀹わ級
 //        FieldSetEntity fse = new FieldSetEntity();
@@ -295,374 +306,395 @@
 //        FieldSetEntity fieldSet = institutionMap.get("瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�");
 //        FieldSetEntity fs = this.addDepartment(fse,fieldSet.getString("org_level_code"), fieldSet.getUUID());
 //        institutionMap.put(fs.getString("org_level_all"), fs);
-    }
+	}
 
-    /**
-     * 鍚屾宀椾綅鍜屽矖浣嶇瓑绾�
-     */
-    public void synchronousPost() throws SQLException, ClassNotFoundException {
+	/**
+	 * 鍚屾宀椾綅鍜屽矖浣嶇瓑绾�
+	 */
+	public void synchronousPost() throws SQLException, ClassNotFoundException {
 
-        Connection conn = this.getJDBC();
-        DataTableEntity groupLeadersFs;
-        try {
-            //鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
-            StringBuffer sql = new StringBuffer();
-            sql.append(" SELECT SR00,SR01,SR02,SR10, SR15, ")
-                    .append(" REPLACE(REPLACE(REPLACE(SR03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''),  ")
-                    .append(" '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/'),'/','>') ASR03 FROM fe_base5.SYS_ROLE  ");
-            //1涓哄叕鍙�
-            groupLeadersFs = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
-        } catch (Exception e) {
+		Connection conn = this.getJDBC();
+		DataTableEntity groupLeadersFs;
+		try {
+			//鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
+			StringBuffer sql = new StringBuffer();
+			sql.append(" SELECT SR00,SR01,SR02,SR10, SR15, ")
+					.append(" REPLACE(REPLACE(REPLACE(SR03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''),  ")
+					.append(" '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/'),'/','>') ASR03 FROM fe_base5.SYS_ROLE  ");
+			//1涓哄叕鍙�
+			groupLeadersFs = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
+		} catch (Exception e) {
 
-            throw e;
-        }
-        DataManipulationUtils.close(null, null, conn);
-        //鍚屾宀椾綅绛夌骇
-        this.postGrades(groupLeadersFs);
-        this.addPost(groupLeadersFs);
-    }
+			throw e;
+		}
+		DataManipulationUtils.close(null, null, conn);
+		//鍚屾宀椾綅绛夌骇
+		this.postGrades(groupLeadersFs);
+		this.addPost(groupLeadersFs);
+	}
 
-    /**
-     * 鍚屾瑙掕壊
-     */
-    public void synchronousRole()throws  SQLException, ClassNotFoundException{
-        Connection conn = this.getJDBC();
-        DataTableEntity roleData;
-        try {
-            //鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
-            StringBuffer sql = new StringBuffer();
-            sql.append(" select * from fe_base5.SYS_POPEDOM_TEMPLET a left join fe_base5.SYS_POPEDOM_TEMP_SUB b on  a.SPT00=b.STS01 ");
-            //浜哄憳鏁版嵁
-            roleData = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
+	/**
+	 * 鍚屾瑙掕壊
+	 */
+	public void synchronousRole() throws SQLException, ClassNotFoundException {
+		Connection conn = this.getJDBC();
+		DataTableEntity roleData;
+		try {
+			//鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
+			StringBuffer sql = new StringBuffer();
+			sql.append(" select * from fe_base5.SYS_POPEDOM_TEMPLET a left join fe_base5.SYS_POPEDOM_TEMP_SUB b on  a.SPT00=b.STS01 ");
+			//浜哄憳鏁版嵁
+			roleData = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
 
-        } catch (Exception e) {
-            throw e;
-        }
-        DataManipulationUtils.close(null, null, conn);
-        this.synchronousRole(roleData);
+		} catch (Exception e) {
+			throw e;
+		}
+		DataManipulationUtils.close(null, null, conn);
+		this.synchronousRole(roleData);
 
-    }
+	}
 
-    /**
-     * 鍒濆鍖栧熀鏈潈闄�
-     */
-    public void packageButton(String role_uuid){
-        StringBuffer sql = new StringBuffer();
-        String tricodeIn = BaseUtil.buildQuestionMarkFilter("tricode", this.functionCode, true);
-        sql.append(" SELECT function_uuid,group_concat(uuid SEPARATOR ',') button_uuid FROM  product_sys_function_buttons WHERE function_uuid IN ( ")
-                .append(" SELECT uuid FROM product_sys_functions WHERE ")
-                .append(tricodeIn).append(" ) GROUP BY function_uuid ");
-        DataTableEntity dataTableEntity = baseDao.listTable(sql.toString(),new String[]{});
-        for (int i = 0; i < dataTableEntity.getRows(); i++) {
-            FieldSetEntity fieldSetEntity = new FieldSetEntity();
-            fieldSetEntity.setTableName("product_sys_function_permission");
-            fieldSetEntity.setValue("function_uuid", dataTableEntity.getString(i,"function_uuid"));
-            fieldSetEntity.setValue("button_uuid", dataTableEntity.getString(i,"button_uuid"));
-            fieldSetEntity.setValue("role_uuid", role_uuid);
-            baseDao.add(fieldSetEntity);
-        }
-    }
+	/**
+	 * 鍒濆鍖栧熀鏈潈闄�
+	 */
+	public void packageButton(String role_uuid) {
+		StringBuffer sql = new StringBuffer();
+		String tricodeIn = BaseUtil.buildQuestionMarkFilter("tricode", this.functionCode, true);
+		sql.append(" SELECT function_uuid,group_concat(uuid SEPARATOR ',') button_uuid FROM  product_sys_function_buttons WHERE function_uuid IN ( ")
+				.append(" SELECT uuid FROM product_sys_functions WHERE ")
+				.append(tricodeIn).append(" ) GROUP BY function_uuid ");
+		DataTableEntity dataTableEntity = baseDao.listTable(sql.toString(), new String[]{});
+		for (int i = 0; i < dataTableEntity.getRows(); i++) {
+			FieldSetEntity fieldSetEntity = new FieldSetEntity();
+			fieldSetEntity.setTableName("product_sys_function_permission");
+			fieldSetEntity.setValue("function_uuid", dataTableEntity.getString(i, "function_uuid"));
+			fieldSetEntity.setValue("button_uuid", dataTableEntity.getString(i, "button_uuid"));
+			fieldSetEntity.setValue("role_uuid", role_uuid);
+			baseDao.add(fieldSetEntity);
+		}
+	}
 
-    /**
-     * 鍚屾浜哄憳
-     */
-    public void addEmployees(String clientUUID) throws SQLException, ClassNotFoundException {
+	/**
+	 * 鍚屾浜哄憳
+	 */
+	public void addEmployees(String clientUUID) throws SQLException, ClassNotFoundException {
 
-        Connection conn = this.getJDBC();
-        DataTableEntity personnelData;
-        try {
-            //鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
-            StringBuffer sql = new StringBuffer();
+		Connection conn = this.getJDBC();
+		DataTableEntity personnelData;
+		try {
+			//鑾峰彇宀椾綅 淇敼/ 涓�> 鏂逛究閫傞厤鎴戜滑鏁版嵁琛�
+			StringBuffer sql = new StringBuffer();
 //            sql.append(" SELECT A.*,REPLACE(REPLACE(REPLACE(A.SU03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''),  ")
 //                    .append(" '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/'),'/','>') ASU03 FROM  ")
 //                    .append(" FE_BASE5.SYS_USERS A WHERE A.SU39 is not null and A.SU35 is not null AND A.SU03 IS NOT NULL ");
-            sql.append(" SELECT A.*,REPLACE(REPLACE(REPLACE(A.SU03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''),  ")
-            .append(" '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/'),'/','>') ASU03 FROM  ")
-            .append(" FE_BASE5.SYS_USERS A WHERE SU39 IS NOT NULL");
-            //浜哄憳鏁版嵁
-            personnelData = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
-        } catch (Exception e) {
-            throw e;
-        }
-        DataManipulationUtils.close(null, null, conn);
-        this.addEmployees(personnelData,clientUUID);
-    }
+			sql.append(" SELECT A.*,REPLACE(REPLACE(REPLACE(A.SU03, '/瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�', ''),  ")
+					.append(" '瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/灞�灞炲悇鍗曚綅/','瑗垮畞甯備綇鎴夸繚闅滃拰鎴夸骇绠$悊灞�/'),'/','>') ASU03 FROM  ")
+					.append(" FE_BASE5.SYS_USERS A WHERE SU39 IS NOT NULL");
+			//浜哄憳鏁版嵁
+			personnelData = BaseDaoServiceImpl.getDataTable(conn, sql.toString(), new Object[]{});
+		} catch (Exception e) {
+			throw e;
+		}
+		DataManipulationUtils.close(null, null, conn);
+		this.addEmployees(personnelData, clientUUID);
+	}
 
-    /**
-     * 閫掑綊鑾峰彇涓婄骇鍏徃uuid
-     * @param level_all 涓婄骇鍏徃鍏ㄧО
-     * @return 淇濆瓨鍚庤繑鍥炰繚瀛樺悗鐨� fse
-     */
-    public String getSuperiorCompanyUuid(String level_all){
-        FieldSetEntity fieldSet = institutionMap.get(level_all);
-        if(fieldSet == null){
-            return null;
-        }
-        //涓婄骇涓哄叕鍙�
-        if("0".equals(fieldSet.getString("org_level_type"))){
-            return fieldSet.getUUID();
-        }else {
-            Integer index = level_all.lastIndexOf(">");
-            if(index == -1){
-                return null;
-            }
-            level_all = level_all.substring(0,index);
-            return this.getSuperiorCompanyUuid(level_all);
-        }
-    }
+	/**
+	 * 閫掑綊鑾峰彇涓婄骇鍏徃uuid
+	 *
+	 * @param level_all 涓婄骇鍏徃鍏ㄧО
+	 * @return 淇濆瓨鍚庤繑鍥炰繚瀛樺悗鐨� fse
+	 */
+	public String getSuperiorCompanyUuid(String level_all) {
+		FieldSetEntity fieldSet = institutionMap.get(level_all);
+		if (fieldSet == null) {
+			return null;
+		}
+		//涓婄骇涓哄叕鍙�
+		if ("0".equals(fieldSet.getString("org_level_type"))) {
+			return fieldSet.getUUID();
+		} else {
+			Integer index = level_all.lastIndexOf(">");
+			if (index == -1) {
+				return null;
+			}
+			level_all = level_all.substring(0, index);
+			return this.getSuperiorCompanyUuid(level_all);
+		}
+	}
 
 
-    /**
-     * 淇濆瓨鍏徃
-     * @param fse 鍏徃fes
-     * @param code_parent 鍏徃涓婄骇code
-     * @return 淇濆瓨鍚庤繑鍥炰繚瀛樺悗鐨� fse
-     */
-    public FieldSetEntity addCompany(FieldSetEntity fse, String code_parent, String org_level_uuid){
-        FieldSetEntity levelsFs = new FieldSetEntity();
-        levelsFs.setTableName("product_sys_org_levels");
-        //閮ㄩ棬鍚嶇О,,
-        levelsFs.setValue("org_level_name", fse.getString("sg01"));
+	/**
+	 * 淇濆瓨鍏徃
+	 *
+	 * @param fse         鍏徃fes
+	 * @param code_parent 鍏徃涓婄骇code
+	 * @return 淇濆瓨鍚庤繑鍥炰繚瀛樺悗鐨� fse
+	 */
+	public FieldSetEntity addCompany(FieldSetEntity fse, String code_parent, String org_level_uuid) {
+		FieldSetEntity levelsFs = new FieldSetEntity();
+		levelsFs.setTableName("product_sys_org_levels");
+		//閮ㄩ棬鍚嶇О,,
+		levelsFs.setValue("org_level_name", fse.getString("sg01"));
 
-        //鍏徃娈电紪鐮�
-        levelsFs.setValue("org_level_shortcode",  fse.getString("sg10"));
-        //鍏徃鎺掑簭
-        levelsFs.setValue("sequence", ++sort);
-        //鏀惧叆涓婄骇code  鐢熸垚code
-        levelsFs.setValue("org_level_code_parent", code_parent);
-        //涓婄骇鍏徃uuid
-        levelsFs.setValue("org_level_uuid", org_level_uuid);
-        ISystemOrgLevelsService service=(ISystemOrgLevelsService) getProxyInstance(systemOrgLevelsService);
+		//鍏徃娈电紪鐮�
+		levelsFs.setValue("org_level_shortcode", fse.getString("sg10"));
+		//鍏徃鎺掑簭
+		levelsFs.setValue("sequence", ++sort);
+		//鏀惧叆涓婄骇code  鐢熸垚code
+		levelsFs.setValue("org_level_code_parent", code_parent);
+		//涓婄骇鍏徃uuid
+		levelsFs.setValue("org_level_uuid", org_level_uuid);
+		ISystemOrgLevelsService service = (ISystemOrgLevelsService) getProxyInstance(systemOrgLevelsService);
 //        levelsFs.setCodeFieldUpdateFlat("org_level_code", true);
-        service.addCompany(levelsFs);
-        return levelsFs;
-    }
+		service.addCompany(levelsFs);
+		return levelsFs;
+	}
 
-    /**
-     * 淇濆瓨閮ㄩ棬
-     * @param fse 鍏徃fes
-     * @param code_parent 鍏徃涓婄骇code
-     * @return 淇濆瓨鍚庤繑鍥炰繚瀛樺悗鐨� fse
-     */
-    public FieldSetEntity addDepartment(FieldSetEntity fse, String code_parent, String org_level_uuid){
-        FieldSetEntity levelsFs = new FieldSetEntity();
-        levelsFs.setTableName("product_sys_org_levels");
-        //閮ㄩ棬鍚嶇О,,
-        levelsFs.setValue("org_level_name", fse.getString("sg01"));
-        //閮ㄩ棬缂栫爜
-        levelsFs.setValue("org_level_shortcode",  fse.getString("sg10"));
-        //鍏徃鎺掑簭
-        levelsFs.setValue("sequence", fse.getString("sg00"));
-        //鏀惧叆涓婄骇code  鐢熸垚code
-        levelsFs.setValue("org_level_code_parent", code_parent);
-        //涓婄骇鍏徃uuid
-        levelsFs.setValue("org_level_uuid", org_level_uuid);
-        ISystemOrgLevelsService service=(ISystemOrgLevelsService) getProxyInstance(systemOrgLevelsService);
+	/**
+	 * 淇濆瓨閮ㄩ棬
+	 *
+	 * @param fse         鍏徃fes
+	 * @param code_parent 鍏徃涓婄骇code
+	 * @return 淇濆瓨鍚庤繑鍥炰繚瀛樺悗鐨� fse
+	 */
+	public FieldSetEntity addDepartment(FieldSetEntity fse, String code_parent, String org_level_uuid) {
+		FieldSetEntity levelsFs = new FieldSetEntity();
+		levelsFs.setTableName("product_sys_org_levels");
+		//閮ㄩ棬鍚嶇О,,
+		levelsFs.setValue("org_level_name", fse.getString("sg01"));
+		//閮ㄩ棬缂栫爜
+		levelsFs.setValue("org_level_shortcode", fse.getString("sg10"));
+		//鍏徃鎺掑簭
+		levelsFs.setValue("sequence", fse.getString("sg00"));
+		//鏀惧叆涓婄骇code  鐢熸垚code
+		levelsFs.setValue("org_level_code_parent", code_parent);
+		//涓婄骇鍏徃uuid
+		levelsFs.setValue("org_level_uuid", org_level_uuid);
+		ISystemOrgLevelsService service = (ISystemOrgLevelsService) getProxyInstance(systemOrgLevelsService);
 //        levelsFs.setCodeFieldUpdateFlat("org_level_code", true);
-        service.addDepartment(levelsFs);
-        return levelsFs;
-    }
-    /**
-     * 灏佽鍏徃閮ㄩ棬鍏ㄧО Map
-     */
-    public void packInstitutionMap()throws BaseException {
-      DataTableEntity dataTableEntity = baseDao.listTable("SELECT * FROM product_sys_org_levels WHERE org_level_code like ? ", new String[]{"%001%"});
-      if(!BaseUtil.dataTableIsEmpty(dataTableEntity)) {
-          for (int i = 0; i < dataTableEntity.getRows(); i++) {
-              FieldSetEntity fieldSetEntity = dataTableEntity.getFieldSetEntity(i);
-              String org_level_all = fieldSetEntity.getString("org_level_all");
-              institutionMap.put(org_level_all, fieldSetEntity);
-          }
-      }else {
-          throw new BaseException("鏈煡璇㈠埌鍗曚綅閮ㄩ棬鏁版嵁", "鏈煡璇㈠埌鍗曚綅閮ㄩ棬鏁版嵁");
-      }
-    }
+		service.addDepartment(levelsFs);
+		return levelsFs;
+	}
 
-    /**
-     * 鍚屾瑙掕壊
-     */
-    public void synchronousRole(DataTableEntity data){
-        for (int i = 0; i < data.getRows(); i++) {
-            FieldSetEntity rolesFs = data.getFieldSetEntity(i);
-            String sts02s = rolesFs.getString("sts02");
-            FieldSetEntity levelsField = baseDao.getFieldSetEntityByFilter("product_sys_org_levels", " org_level_shortcode = ? ", new String[]{sts02s}, false);
-            //鏈変簺瑙掕壊鍏宠仈鐨勫崟浣嶆垨閮ㄩ棬宸茬粡琚垹闄ゆ帀,浣嗘槸瑙掕壊杩樹繚鐣欎粬鐨勭紪鐮�   鐩存帴璺宠繃
-            if(levelsField == null){
-                continue;
-            }
-            FieldSetEntity lxRoleFs = new FieldSetEntity();
-            lxRoleFs.setTableName("product_sys_role");
-            lxRoleFs.setValue("org_level_uuid",levelsField.getUUID());
-            lxRoleFs.setValue("role_name", rolesFs.getString("spt01"));
-            lxRoleFs.setValue("role_description", rolesFs.getString("spt02"));
-            lxRoleFs.setValue("is_used", 1);
-            lxRoleFs.setValue("sequence", rolesFs.getInteger("spt00"));
-            this.userAndTime(lxRoleFs);
-            String role_uuid = baseDao.add(lxRoleFs);
+	/**
+	 * 灏佽鍏徃閮ㄩ棬鍏ㄧО Map
+	 */
+	public void packInstitutionMap() throws BaseException {
+		DataTableEntity dataTableEntity = baseDao.listTable("SELECT * FROM product_sys_org_levels WHERE org_level_code like ? ", new String[]{"%001%"});
+		if (!BaseUtil.dataTableIsEmpty(dataTableEntity)) {
+			for (int i = 0; i < dataTableEntity.getRows(); i++) {
+				FieldSetEntity fieldSetEntity = dataTableEntity.getFieldSetEntity(i);
+				String org_level_all = fieldSetEntity.getString("org_level_all");
+				institutionMap.put(org_level_all, fieldSetEntity);
+			}
+		} else {
+			throw new BaseException("鏈煡璇㈠埌鍗曚綅閮ㄩ棬鏁版嵁", "鏈煡璇㈠埌鍗曚綅閮ㄩ棬鏁版嵁");
+		}
+	}
 
-            //璇ヨ鑹插垵濮嬪寲鏉冮檺
-            this.packageButton(role_uuid);
-        }
-    }
-
-    /**
-     * 娣诲姞鐢ㄦ埛鍜屽憳宸�
-     */
-    public void addEmployees(DataTableEntity data,String clientUUID){
-        //fe 浜哄憳id 瀵瑰簲  userid
-        JSONObject idUserMap = new JSONObject();
-        //鑾峰彇瀹㈡埛uuid
-        FieldSetEntity fieldSetEntity = baseDao.getFieldSetEntityByFilter("product_sys_org_levels", " org_level_code = ? ", new String[]{"001"}, false);
-        String client_uuid = fieldSetEntity.getString("client_uuid");
-
-        Map<String, FieldSetEntity> staffsMap = Maps.newHashMap();
-        for (int i = 0; i < data.getRows(); i++) {
-            FieldSetEntity userFs = data.getFieldSetEntity(i);
-            FieldSetEntity usersFs = new FieldSetEntity();
-            //鍒涘缓 user 鏁版嵁
-            usersFs.setTableName("product_sys_users");
-            //鐢ㄦ埛鍚�
-            usersFs.setValue("user_name", userFs.getString("su02"));
-            //鎻忚堪
-            usersFs.setValue("user_account", userFs.getString("su01"));
-            //閭
-            usersFs.setValue("user_primary_email", userFs.getString("su11"));
-            //鎬у埆杞崲
-            String su16 = userFs.getString("su16");
-            String sex = null;
-            if (su16 != null) {
-                sex = su16.equals("鐢�") ? "0" : "1";
-            }
-            usersFs.setValue("gender", sex);
-            //鐢ㄦ埛鐢佃瘽
-            usersFs.setValue("user_mobile_number", userFs.getString("su10"));
-            //鍐呯嚎鐢佃瘽
-            usersFs.setValue("inside_phone", userFs.getString("su13"));
-            //鍦板潃
-            usersFs.setValue("contact_address", userFs.getString("su18"));
-            //鍒濆鍖栫敤鎴峰瘑鐮�
-            usersFs.setValue("user_pwd", userService.createPassWord(userFs.getString("su01"), "123"));
-            //鏄惁鏄鐞嗗憳 0:鍚� 1:鏄�
-            usersFs.setValue("is_manager", 0);
-            //鍔炲叕鐢佃瘽
-            usersFs.setValue("office_phone", userFs.getString("su09"));
-            this.userAndTime(usersFs);
-            //鐘舵��  0锛氱鐢�   1锛氭甯�
-            usersFs.setValue("status",  userFs.getString("su08"));
-            //绛惧悕
-            String su23 = userFs.getString("su23");
-            if (!BaseUtil.strIsNull(su23)) {
-                    usersFs.setValue("user_signature", this.signatureAndThumbnail(su23, clientUUID,"user_signature"));
-            }
-            //澶村儚
-            String su28 = userFs.getString("su28");
-            if (!BaseUtil.strIsNull(su28)) {
-                usersFs.setValue("thumbnail_img", this.signatureAndThumbnail(su28, clientUUID,"thumbnail_img"));
-            }
-
-            String usersUUID = baseDao.add(usersFs);
-            FieldSetEntity users = baseDao.getFieldSetEntity("product_sys_users", usersUUID, false);
-            //fe鐢ㄦ埛id  鍏宠仈绯荤粺琛�"product_sys_users锛塽ser_id
-            idUserMap.put(userFs.getString("su00"), users.getString("user_id"));
-
-            if (BaseUtil.strIsNull(userFs.getString("su03")) || BaseUtil.strIsNull(userFs.getString("su35")) || BaseUtil.strIsNull(userFs.getString("su39"))) {
+	/**
+	 * 鍚屾瑙掕壊
+	 */
+	public void synchronousRole(DataTableEntity data) {
+		for (int i = 0; i < data.getRows(); i++) {
+			FieldSetEntity rolesFs = data.getFieldSetEntity(i);
+			String sts02s = rolesFs.getString("sts02");
+			FieldSetEntity levelsField = baseDao.getFieldSetEntityByFilter("product_sys_org_levels", " org_level_shortcode = ? ", new String[]{sts02s}, false);
+			//鏈変簺瑙掕壊鍏宠仈鐨勫崟浣嶆垨閮ㄩ棬宸茬粡琚垹闄ゆ帀,浣嗘槸瑙掕壊杩樹繚鐣欎粬鐨勭紪鐮�   鐩存帴璺宠繃
+			if (levelsField == null) {
 				continue;
 			}
-            
-            FieldSetEntity staffsFs = new FieldSetEntity();
-            //鍛樺伐琛�
-            staffsFs.setTableName("product_sys_staffs");
-            //鐢ㄦ埛琛╥d
-            staffsFs.setValue("user_id", users.getString("user_id"));
-            //鏄剧ず鍚嶇О
-            staffsFs.setValue("show_name", userFs.getString("su02"));
-            //鍛樺伐鍚�
-            staffsFs.setValue("given_name", userFs.getString("su02"));
-            //鍛樺伐濮�
-            staffsFs.setValue("family_name", userFs.getString("su02"));
-            //閭
-            staffsFs.setValue("email_address", userFs.getString("su11"));
-            //绉诲姩鐢佃瘽
-            staffsFs.setValue("mobile_phone", userFs.getString("su10"));
-            //鍔炲叕鐢佃瘽
-            staffsFs.setValue("office_telephone", userFs.getString("su09"));
+			FieldSetEntity lxRoleFs = new FieldSetEntity();
+			lxRoleFs.setTableName("product_sys_role");
+			lxRoleFs.setValue("org_level_uuid", levelsField.getUUID());
+			lxRoleFs.setValue("role_name", rolesFs.getString("spt01"));
+			lxRoleFs.setValue("role_description", rolesFs.getString("spt02"));
+			lxRoleFs.setValue("is_used", 1);
+			lxRoleFs.setValue("sequence", rolesFs.getInteger("spt00"));
+			this.userAndTime(lxRoleFs);
+			String role_uuid = baseDao.add(lxRoleFs);
 
-            //鍛樺伐鎬у埆
-            staffsFs.setValue("sex",  sex);
-            //鍛樺伐閭
-            String su11 = userFs.getString("su11");
-            //閭涓虹┖鍏堣1
-            if(BaseUtil.strIsNull(su11)){
-                su11 = "1";
-            }
-            staffsFs.setValue("staff_email", su11);
-            //鐘舵�侊細0鍑嗗鍏ヨ亴   1璇曠敤   2鍑嗗杞   3鍦ㄨ亴   4鍋滆亴   5鍑嗗绂昏亴   6绂昏亴   7閫�浼�
-            staffsFs.setValue("staff_status", 3);
+			//璇ヨ鑹插垵濮嬪寲鏉冮檺
+			this.packageButton(role_uuid);
+		}
+	}
 
-            staffsFs.setValue("client_uuid", client_uuid);
-            //閲嶆柊缁勮鍚庣殑缁勭粐鍏ㄧО
-            FieldSetEntity fieldSet = institutionMap.get(userFs.getString("asu03"));
-            String uuid = this.getSuperiorCompanyUuid(userFs.getString("asu03"));
-            //鍏徃uuid
-            staffsFs.setValue("org_level_uuid", uuid);
-            //閮ㄩ棬uuid
-            staffsFs.setValue("dept_uuid", fieldSet.getUUID());
-            
-            if (null == userFs.getString("su34")) {
-                //宀椾綅uuid
-                staffsFs.setValue("job_post_uuid", 1);
-                //宀椾綅绛夌骇uuid
-                staffsFs.setValue("job_post_grade_uuid",1);
-            } else {
-                //閫氳繃宀椾綅id鏌ヨ宀椾綅
-                String su34 = userFs.getString("su34");
-                FieldSetEntity fsePosts = baseDao.getFieldSetEntityByFilter("product_sys_job_posts", " sequence = ? ", new Integer[]{Integer.parseInt(su34)}, false);
-                if(fsePosts != null) {
-                    staffsFs.setValue("job_post_uuid", fsePosts.getUUID());
-                    staffsFs.setValue("job_post_grade_uuid", fsePosts.getString("job_post_grades_uuid"));
-                }else {
-                    throw new BaseException("鏈煡璇㈠埌宀椾綅","鏈煡璇㈠埌宀椾綅");
-                }
-            }
-            //su35鍏宠仈鏉冮檺id,  鍏宠仈澶氫釜閫楀彿鍒嗛殧
-            String su35 = userFs.getString("su35");
-            String[] su35s = null;
-            if(!BaseUtil.strIsNull(su35)){
-                su35s = su35.split(",");
-                for (int j = 0; j < su35s.length; j++) {
-                  FieldSetEntity fse = baseDao.getFieldSetEntityByFilter("product_sys_role", " sequence = ? ", new Integer[]{Integer.parseInt(su35s[j])}, false);
-                    su35s[j] = fse.getUUID();
-                }
-            }
-            //鐩村睘棰嗗
-            String su40 = userFs.getString("su40");
-            //涓虹┖灏辨斁绌�
-            if(BaseUtil.strIsNull(su40)){
-                su40 = "";
-            }else {
-                //澶氫釜鐩村睘棰嗗   灏卞彇绗竴涓�
-                if(su40.contains(",")){
-                    su40 = su40.substring(0,su40.indexOf(","));
-                }
-            }
-            staffsFs.setValue("direct_leader_code",su40);
-            if(su35s != null) {
-                staffsFs.setValue("role_uuids", StringUtils.join(su35s, ","));
-            }
-            //鍛樺伐涓婁笅绾х紪鐮�
-            staffsFs.setValue("leader_tricode", codeService.createFixCode(CmnConst.PRODUCT_SYS_STAFFS, CmnConst.LEADER_TRICODE, ""));
-            //鍛樺伐缂栫爜  鍛樺伐鍘熸湰id   瀛樹负缂栫爜
-            staffsFs.setValue("tricode",codeService.createFixCode(CmnConst.PRODUCT_SYS_STAFFS, CmnConst.TRICODE, fieldSet.getString("org_level_code")));
-            String su00 = userFs.getString("su00");
-            staffsFs.setValue("sequence", su00);
-            staffsFs.setValue("remark", su00);
-            this.userAndTime(staffsFs);
-            baseDao.add(staffsFs);
-            staffsMap.put(su00, staffsFs);
-        }
-        //sql淇敼鐩村睘棰嗗
-        baseDao.executeUpdate(" UPDATE product_sys_staffs a INNER JOIN product_sys_staffs b ON a.remark = b.direct_leader_code SET b.direct_leader_code = a.tricode ");
-        //寰幆鍚屾鐩村睘棰嗗,  鑻ユ湁涓や釜鐩村睘棰嗗  鍙彇绗竴涓�
+	/**
+	 * 娣诲姞鐢ㄦ埛鍜屽憳宸�
+	 */
+	public void addEmployees(DataTableEntity data, String clientUUID) {
+		//fe 浜哄憳id 瀵瑰簲  userid
+		JSONObject idUserMap = new JSONObject();
+		//鑾峰彇瀹㈡埛uuid
+		FieldSetEntity fieldSetEntity = baseDao.getFieldSetEntityByFilter("product_sys_org_levels", " org_level_code = ? ", new String[]{"001"}, false);
+		String client_uuid = fieldSetEntity.getString("client_uuid");
+
+		Map<String, FieldSetEntity> staffsMap = Maps.newHashMap();
+		for (int i = 0; i < data.getRows(); i++) {
+			FieldSetEntity userFs = data.getFieldSetEntity(i);
+			FieldSetEntity usersFs = new FieldSetEntity();
+			//鍒涘缓 user 鏁版嵁
+			usersFs.setTableName("product_sys_users");
+			//鐢ㄦ埛鍚�
+			usersFs.setValue("user_name", userFs.getString("su02"));
+			//鎻忚堪
+			usersFs.setValue("user_account", userFs.getString("su01"));
+			FieldSetEntity fieldSetByFilter = baseDao.getFieldSetByFilter("product_sys_users", "user_account=?", new Object[]{userFs.getString("su01")}, false);
+			if (!FieldSetEntity.isEmpty(fieldSetByFilter)) {
+				fieldSetByFilter.setValue("status", userFs.getString("su08"));
+				//绛惧悕
+				String su23 = userFs.getString("su23");
+				if (!BaseUtil.strIsNull(su23)) {
+					usersFs.setValue("user_signature", this.signatureAndThumbnail(su23, clientUUID, "user_signature"));
+				}
+				//澶村儚
+				String su28 = userFs.getString("su28");
+				if (!BaseUtil.strIsNull(su28)) {
+					usersFs.setValue("thumbnail_img", this.signatureAndThumbnail(su28, clientUUID, "thumbnail_img"));
+				}
+				baseDao.executeUpdate("update product_sys_staffs set staff_status=? where user_id=?", new Object[]{userFs.getString("su08"), fieldSetByFilter.getString("user_id")});
+				baseDao.saveFieldSetEntity(fieldSetByFilter);
+				continue;
+			}
+			//閭
+			usersFs.setValue("user_primary_email", userFs.getString("su11"));
+			//鎬у埆杞崲
+			String su16 = userFs.getString("su16");
+			String sex = null;
+			if (su16 != null) {
+				sex = su16.equals("鐢�") ? "0" : "1";
+			}
+			usersFs.setValue("gender", sex);
+			//鐢ㄦ埛鐢佃瘽
+			usersFs.setValue("user_mobile_number", userFs.getString("su10"));
+			//鍐呯嚎鐢佃瘽
+			usersFs.setValue("inside_phone", userFs.getString("su13"));
+			//鍦板潃
+			usersFs.setValue("contact_address", userFs.getString("su18"));
+			//鍒濆鍖栫敤鎴峰瘑鐮�
+			usersFs.setValue("user_pwd", userService.createPassWord(userFs.getString("su01"), "123"));
+			//鏄惁鏄鐞嗗憳 0:鍚� 1:鏄�
+			usersFs.setValue("is_manager", 0);
+			//鍔炲叕鐢佃瘽
+			usersFs.setValue("office_phone", userFs.getString("su09"));
+			this.userAndTime(usersFs);
+			//鐘舵��  0锛氱鐢�   1锛氭甯�
+			usersFs.setValue("status", userFs.getString("su08"));
+			//绛惧悕
+			String su23 = userFs.getString("su23");
+			if (!BaseUtil.strIsNull(su23)) {
+				usersFs.setValue("user_signature", this.signatureAndThumbnail(su23, clientUUID, "user_signature"));
+			}
+			//澶村儚
+			String su28 = userFs.getString("su28");
+			if (!BaseUtil.strIsNull(su28)) {
+				usersFs.setValue("thumbnail_img", this.signatureAndThumbnail(su28, clientUUID, "thumbnail_img"));
+			}
+
+			String usersUUID = baseDao.add(usersFs);
+			FieldSetEntity users = baseDao.getFieldSetEntity("product_sys_users", usersUUID, false);
+			//fe鐢ㄦ埛id  鍏宠仈绯荤粺琛�"product_sys_users锛塽ser_id
+			idUserMap.put(userFs.getString("su00"), users.getString("user_id"));
+
+			if (BaseUtil.strIsNull(userFs.getString("su03")) || BaseUtil.strIsNull(userFs.getString("su35")) || BaseUtil.strIsNull(userFs.getString("su39"))) {
+				continue;
+			}
+
+			FieldSetEntity staffsFs = new FieldSetEntity();
+			//鍛樺伐琛�
+			staffsFs.setTableName("product_sys_staffs");
+			//鐢ㄦ埛琛╥d
+			staffsFs.setValue("user_id", users.getString("user_id"));
+			//鏄剧ず鍚嶇О
+			staffsFs.setValue("show_name", userFs.getString("su02"));
+			//鍛樺伐鍚�
+			staffsFs.setValue("given_name", userFs.getString("su02"));
+			//鍛樺伐濮�
+			staffsFs.setValue("family_name", userFs.getString("su02"));
+			//閭
+			staffsFs.setValue("email_address", userFs.getString("su11"));
+			//绉诲姩鐢佃瘽
+			staffsFs.setValue("mobile_phone", userFs.getString("su10"));
+			//鍔炲叕鐢佃瘽
+			staffsFs.setValue("office_telephone", userFs.getString("su09"));
+
+			//鍛樺伐鎬у埆
+			staffsFs.setValue("sex", sex);
+			//鍛樺伐閭
+			String su11 = userFs.getString("su11");
+			//閭涓虹┖鍏堣1
+			if (BaseUtil.strIsNull(su11)) {
+				su11 = "1";
+			}
+			staffsFs.setValue("staff_email", su11);
+			//鐘舵�侊細0鍑嗗鍏ヨ亴   1璇曠敤   2鍑嗗杞   3鍦ㄨ亴   4鍋滆亴   5鍑嗗绂昏亴   6绂昏亴   7閫�浼�
+			staffsFs.setValue("staff_status", 3);
+
+			staffsFs.setValue("client_uuid", client_uuid);
+			//閲嶆柊缁勮鍚庣殑缁勭粐鍏ㄧО
+			FieldSetEntity fieldSet = institutionMap.get(userFs.getString("asu03"));
+			String uuid = this.getSuperiorCompanyUuid(userFs.getString("asu03"));
+			//鍏徃uuid
+			staffsFs.setValue("org_level_uuid", uuid);
+			//閮ㄩ棬uuid
+			staffsFs.setValue("dept_uuid", fieldSet.getUUID());
+
+			if (null == userFs.getString("su34")) {
+				//宀椾綅uuid
+				staffsFs.setValue("job_post_uuid", 1);
+				//宀椾綅绛夌骇uuid
+				staffsFs.setValue("job_post_grade_uuid", 1);
+			} else {
+				//閫氳繃宀椾綅id鏌ヨ宀椾綅
+				String su34 = userFs.getString("su34");
+				FieldSetEntity fsePosts = baseDao.getFieldSetEntityByFilter("product_sys_job_posts", " sequence = ? ", new Integer[]{Integer.parseInt(su34)}, false);
+				if (fsePosts != null) {
+					staffsFs.setValue("job_post_uuid", fsePosts.getUUID());
+					staffsFs.setValue("job_post_grade_uuid", fsePosts.getString("job_post_grades_uuid"));
+				} else {
+					throw new BaseException("鏈煡璇㈠埌宀椾綅", "鏈煡璇㈠埌宀椾綅");
+				}
+			}
+			//su35鍏宠仈鏉冮檺id,  鍏宠仈澶氫釜閫楀彿鍒嗛殧
+			String su35 = userFs.getString("su35");
+			String[] su35s = null;
+			if (!BaseUtil.strIsNull(su35)) {
+				su35s = su35.split(",");
+				for (int j = 0; j < su35s.length; j++) {
+					FieldSetEntity fse = baseDao.getFieldSetEntityByFilter("product_sys_role", " sequence = ? ", new Integer[]{Integer.parseInt(su35s[j])}, false);
+					su35s[j] = fse.getUUID();
+				}
+			}
+			//鐩村睘棰嗗
+			String su40 = userFs.getString("su40");
+			//涓虹┖灏辨斁绌�
+			if (BaseUtil.strIsNull(su40)) {
+				su40 = "";
+			} else {
+				//澶氫釜鐩村睘棰嗗   灏卞彇绗竴涓�
+				if (su40.contains(",")) {
+					su40 = su40.substring(0, su40.indexOf(","));
+				}
+			}
+			staffsFs.setValue("direct_leader_code", su40);
+			if (su35s != null) {
+				staffsFs.setValue("role_uuids", StringUtils.join(su35s, ","));
+			}
+			//鍛樺伐涓婁笅绾х紪鐮�
+			staffsFs.setValue("leader_tricode", codeService.createFixCode(CmnConst.PRODUCT_SYS_STAFFS, CmnConst.LEADER_TRICODE, ""));
+			//鍛樺伐缂栫爜  鍛樺伐鍘熸湰id   瀛樹负缂栫爜
+			staffsFs.setValue("tricode", codeService.createFixCode(CmnConst.PRODUCT_SYS_STAFFS, CmnConst.TRICODE, fieldSet.getString("org_level_code")));
+			String su00 = userFs.getString("su00");
+			staffsFs.setValue("sequence", su00);
+			staffsFs.setValue("remark", su00);
+			this.userAndTime(staffsFs);
+			baseDao.add(staffsFs);
+			staffsMap.put(su00, staffsFs);
+		}
+		//sql淇敼鐩村睘棰嗗
+		baseDao.executeUpdate(" UPDATE product_sys_staffs a INNER JOIN product_sys_staffs b ON a.remark = b.direct_leader_code SET b.direct_leader_code = a.tricode ");
+		//寰幆鍚屾鐩村睘棰嗗,  鑻ユ湁涓や釜鐩村睘棰嗗  鍙彇绗竴涓�
 //        for(String su00 : staffsMap.keySet()){
 //            FieldSetEntity staffsFs = staffsMap.get(su00);
 //            //鑾峰彇鐩村睘棰嗗
@@ -687,242 +719,268 @@
 //                }
 //            }
 //        }
-    }
+	}
 
-    public String signatureAndThumbnail(String su,String clientUUID, String field){
-        try {
-            String[] path = su.split("=");
-            String filePath = path[1];
-            String fileName = StringUtils.isEmpty(filePath) ? "" : filePath.substring(filePath.lastIndexOf("/") + 1);
-            String newPath = this.TSPath + File.separator + fileName;
-            File isField = new File(newPath);
-            //濡傛灉宸茬粡鏈夎鏂囦欢   鏀瑰彉鏂囦欢鐩綍
-            Integer fileNum = 0;
-            while (isField.exists()) {
-                fileNum++;
-                newPath = this.TSPath + fileNum + File.separator + fileName;
-                isField = new File(newPath);
-            }
-            //澶嶅埗鍒颁复鏃剁洰褰曚笅
-            if (this.copyFile(filePath, newPath)) {
-                RequestParameterEntity rpe = new RequestParameterEntity();
-                Map<String, File> fileMap = Maps.newHashMap();
-                //閫氳繃璺緞鑾峰彇File
-                File file = new File(newPath);
-                //鏂囦欢鍚�  鏂囦欢file
-                fileMap.put(fileName, file);
-                FieldSetEntity fieldSet = new FieldSetEntity();
-                FieldMetaEntity f = new FieldMetaEntity();
-                f.setTableName(new String[]{"product_sys_users"});
-                fieldSet.setMeta(f);
-                fieldSet.setValue(field, fileName);
-                fieldSet.setValue("~field_name~", field);
-                //鏀惧叆瀹㈡埛uuid
-                fieldSet.setValue("client_uuid", clientUUID);
-                rpe.setFiles(fileMap);
-                rpe.setFormData(fieldSet);
-                try {
-                    FieldSetEntity fileFse = fileManagerService.uploadFile(rpe);
-                    return fileFse.getString(field);
-                } catch (Exception e) {
-                    e.getStackTrace();
-                    SpringMVCContextHolder.getSystemLogger().error(e);
-                }
-            }
-        }catch (Exception e){
-            e.getStackTrace();
-        }
-        return null;
-    }
+	public String signatureAndThumbnail(String su, String clientUUID, String field) {
+		try {
+			String[] path = su.split("=");
+			String filePath = path[1];
+			String fileName = StringUtils.isEmpty(filePath) ? "" : filePath.substring(filePath.lastIndexOf("/") + 1);
+			String newPath = this.TSPath + File.separator + fileName;
+			File isField = new File(newPath);
+			//濡傛灉宸茬粡鏈夎鏂囦欢   鏀瑰彉鏂囦欢鐩綍
+			Integer fileNum = 0;
+			while (isField.exists()) {
+				fileNum++;
+				newPath = this.TSPath + fileNum + File.separator + fileName;
+				isField = new File(newPath);
+			}
+			//澶嶅埗鍒颁复鏃剁洰褰曚笅
+			if (this.copyFile(filePath, newPath)) {
+				RequestParameterEntity rpe = new RequestParameterEntity();
+				Map<String, File> fileMap = Maps.newHashMap();
+				//閫氳繃璺緞鑾峰彇File
+				File file = new File(newPath);
+				//鏂囦欢鍚�  鏂囦欢file
+				fileMap.put(fileName, file);
+				FieldSetEntity fieldSet = new FieldSetEntity();
+				FieldMetaEntity f = new FieldMetaEntity();
+				f.setTableName(new String[]{"product_sys_users"});
+				fieldSet.setMeta(f);
+				fieldSet.setValue(field, fileName);
+				fieldSet.setValue("~field_name~", field);
+				//鏀惧叆瀹㈡埛uuid
+				fieldSet.setValue("client_uuid", clientUUID);
+				rpe.setFiles(fileMap);
+				rpe.setFormData(fieldSet);
+				try {
+					FieldSetEntity fileFse = fileManagerService.uploadFile(rpe);
+					return fileFse.getString(field);
+				} catch (Exception e) {
+					e.getStackTrace();
+					SpringMVCContextHolder.getSystemLogger().error(e);
+				}
+			}
+		} catch (Exception e) {
+			e.getStackTrace();
+		}
+		return null;
+	}
 
-    /**
-     * 娣诲姞宀椾綅
-     */
-    public void addPost(DataTableEntity data){
-        DataTableEntity dataTableEntity = new DataTableEntity();
-        dataTableEntity.getMeta().setTableName(new String[]{"product_sys_job_posts"});
-        for (int i = 0; i < data.getRows(); i++) {
-            FieldSetEntity fieldSetEntity = data.getFieldSetEntity(i);
-            FieldSetEntity field = new FieldSetEntity();
-            field.setTableName("product_sys_job_posts");
-            field.setValue("is_used", 1);
-            field.setValue("job_post_name", fieldSetEntity.getString("sr01"));
-            field.setValue("job_post_description", fieldSetEntity.getString("sr02"));
-            //閫氳繃鍏ㄧО鑾峰彇鍗曚綅鍜岄儴闂╱uid
-            String org_level_all = fieldSetEntity.getString("asr03");
-            FieldSetEntity fieldSetEntity1 = institutionMap.get(org_level_all);
-            //鍏徃uuid
-            String org_level_uuid = this.getSuperiorCompanyUuid(org_level_all);
-            field.setValue("org_level_uuid",org_level_uuid);
-            //鏈烘瀯绫诲瀷  0 鍏徃  1閮ㄩ棬
-            String orgLevelType = fieldSetEntity1.getString("org_level_type");
-            //鏌ヨ宀椾綅绛夌骇
-            String sr15 = fieldSetEntity.getString("sr15");
-            FieldSetEntity fieldSet = baseDao.getFieldSetEntityByFilter("product_sys_job_post_grades", " org_level_uuid = ? and  job_grade_class = ? ", new String[]{org_level_uuid,sr15},false);
-            //宀椾綅绛夌骇
-            String postGradesUuid = fieldSet.getUUID();
-            field.setValue("job_post_grades_uuid", postGradesUuid);
-            //鎺掑簭鏆傛椂瀛樺矖浣峣d  鏂逛究浜哄憳鏌ヨ鍒板矖浣峣d
-            Integer sequence = fieldSetEntity.getInteger("sr00");
-            field.setValue("sequence",sequence);
-            this.userAndTime(field);
-            String org_uuid = fieldSetEntity1.getUUID();
-            String code = fieldSetEntity1.getString("org_level_code");
-            //0涓哄叕鍙�  鑻ヤ负鍏徃灏卞垱寤哄涓浉鍚屽矖浣嶆潵鍏宠仈鍏徃涓嬫墍鏈夐儴闂�
-            if("0".equals(orgLevelType)){
-              DataTableEntity dataTable = baseDao.listTable("product_sys_org_levels", " org_level_type = 1 and org_level_uuid = ? ", new String[]{org_uuid});
-              if(!BaseUtil.dataTableIsEmpty(dataTable)) {
-                  for (int j = 0; j < dataTable.getRows(); j++) {
-                      field.setValue("dept_uuid",dataTable.getString(j, "uuid"));
-                      field.remove("uuid");
-                      //閫氳繃鏂板鏂规硶娣诲姞宀椾綅
-                      String uuid = baseDao.add(field);
-                      //娣诲姞宀椾綅涓庡矖浣嶇瓑绾у叧绯绘槧灏勬暟鎹〃
-                      FieldSetEntity postsAndClass = new FieldSetEntity();
-                      postsAndClass.setTableName("product_sys_job_posts_grades_mapping");
-                      //宀椾綅绛夌骇uuid
-                      postsAndClass.setValue("job_grade_uuid", postGradesUuid);
-                      //宀椾綅uuid
-                      postsAndClass.setValue("job_post_uuid", uuid);
-                      this.userAndTime(postsAndClass);
-                      baseDao.add(postsAndClass);
-                  }
-              }else {
-                  //鍗曚綅涓嬭嫢娌℃湁閮ㄩ棬  鍒涘缓涓�涓櫄鎷熼儴闂�
-                  FieldSetEntity departmentFse = new FieldSetEntity();
-                  departmentFse.setTableName("product_sys_org_levels");
-                  //閮ㄩ棬鍚嶇О
-                  departmentFse.setValue("sg01", fieldSetEntity1.getString("org_level_name") + "涓嬮儴闂�");
-                  //閮ㄩ棬缂栫爜
-                  departmentFse.setValue("sg10", fieldSetEntity1.getString("org_level_shortcode") + "01");
-                  //鎺掑簭
-                  departmentFse.setValue("sg00", fieldSetEntity1.getString("sequence") + "01");
-                  //淇濆瓨鍚庣殑閮ㄩ棬
-                  FieldSetEntity newDeptFse = this.addDepartment(departmentFse,code,org_uuid);
-                  //鏀惧叆閮ㄩ棬uuid
-                  field.setValue("dept_uuid",newDeptFse.getUUID());
-                  //閫氳繃鏂板鏂规硶娣诲姞宀椾綅
-                  String uuid = baseDao.add(field);
-                  //娣诲姞宀椾綅涓庡矖浣嶇瓑绾у叧绯绘槧灏勬暟鎹〃
-                  FieldSetEntity postsAndClass = new FieldSetEntity();
-                  postsAndClass.setTableName("product_sys_job_posts_grades_mapping");
-                  //宀椾綅绛夌骇uuid
-                  postsAndClass.setValue("job_grade_uuid", postGradesUuid);
-                  //宀椾綅uuid
-                  postsAndClass.setValue("job_post_uuid", uuid);
-                  this.userAndTime(postsAndClass);
-                  baseDao.add(postsAndClass);
-              }
-              //1涓洪儴闂�
-            }else{
-                field.setValue("dept_uuid",org_uuid);
-                //閫氳繃鏂板鏂规硶娣诲姞宀椾綅
-                String uuid = baseDao.add(field);
-                //娣诲姞宀椾綅涓庡矖浣嶇瓑绾у叧绯绘槧灏勬暟鎹〃
-                FieldSetEntity postsAndClass = new FieldSetEntity();
-                postsAndClass.setTableName("product_sys_job_posts_grades_mapping");
-                //宀椾綅绛夌骇uuid
-                postsAndClass.setValue("job_grade_uuid", postGradesUuid);
-                //宀椾綅uuid
-                postsAndClass.setValue("job_post_uuid", uuid);
-                this.userAndTime(postsAndClass);
-                baseDao.add(postsAndClass);
-            }
-        }
-    }
+	/**
+	 * 娣诲姞宀椾綅
+	 */
+	public void addPost(DataTableEntity data) {
+		DataTableEntity dataTableEntity = new DataTableEntity();
+		dataTableEntity.getMeta().setTableName(new String[]{"product_sys_job_posts"});
+		for (int i = 0; i < data.getRows(); i++) {
+			FieldSetEntity fieldSetEntity = data.getFieldSetEntity(i);
+			FieldSetEntity field = new FieldSetEntity();
+			field.setTableName("product_sys_job_posts");
+			field.setValue("is_used", 1);
+			field.setValue("job_post_name", fieldSetEntity.getString("sr01"));
+			field.setValue("job_post_description", fieldSetEntity.getString("sr02"));
+			//閫氳繃鍏ㄧО鑾峰彇鍗曚綅鍜岄儴闂╱uid
+			String org_level_all = fieldSetEntity.getString("asr03");
+			FieldSetEntity fieldSetEntity1 = institutionMap.get(org_level_all);
+			//鍏徃uuid
+			String org_level_uuid = this.getSuperiorCompanyUuid(org_level_all);
+			field.setValue("org_level_uuid", org_level_uuid);
+			//鍒ゆ柇绯荤粺涓槸鍚︽湁璇ヨ鑹�
 
-    /**
-     * 娣诲姞鍒涘缓浜哄拰鍒涘缓鏃堕棿
-     * @param fieldSetEntity
-     */
-    public void userAndTime(FieldSetEntity fieldSetEntity){
-        fieldSetEntity.setValue("created_by",SpringMVCContextHolder.getCurrentUserId());
-        fieldSetEntity.setValue("created_utc_datetime",new Date());
-    }
-    /**
-     * 娣诲姞宀椾綅绛夌骇
-     */
-    public void postGrades(DataTableEntity data){
-        //鍏徃uuid 宀椾綅灞傜骇闆�
-        Map<String,String> postHierarchyMap = Maps.newHashMap();
-        //閫氳繃鍏徃uuid鏉ュ垝鍒嗗矖浣嶇瓑绾�
-        for (int i = 0; i < data.getRows(); i++) {
-           FieldSetEntity fieldSetEntity = data.getFieldSetEntity(i);
-            FieldSetEntity field = new FieldSetEntity();
-            field.setTableName("product_sys_job_post_grades");
-            //宀椾綅灞傜骇  瓒婂皬绛夌骇瓒婂ぇ
-            String sr15 = fieldSetEntity.getString("sr15");
-            //杞崲鍚庨儴闂ㄦ垨鍏徃鍏ㄧО
-            String dcName = fieldSetEntity.getString("asr03");
-            //鑾峰彇鍏徃鐨剈uid
-            String companyUuid = this.getSuperiorCompanyUuid(dcName);
-            String value = postHierarchyMap.get(companyUuid);
-            if(!BaseUtil.strIsNull(value)){
-                if(value.contains(sr15)) {
-                    continue;
-                }else {
-                    postHierarchyMap.put(companyUuid, value+","+sr15);
-                }
-            }else {
-                postHierarchyMap.put(companyUuid, sr15);
-            }
-            FieldSetEntity levelsSet = baseDao.getFieldSetEntity("product_sys_org_levels",companyUuid,false);
-            //鍏徃鍚嶇О
-            String levelName = levelsSet.getString("org_level_name");
-            //涓婄骇鍏徃uuid
-            field.setValue("org_level_uuid",companyUuid);
-            //宀椾綅绛夌骇
-            field.setValue("job_grade_class", sr15);
-            field.setValue("is_used", 1);
-            //鍚嶇О
-            field.setValue("job_grade_name",sr15+"绾у矖浣�");
-            //绾у埆鐭紪鐮�
-            field.setValue("job_grade_shortcode", sr15);
-            //璇存槑
-            field.setValue("remark", levelName+"涓嬬殑"+sr15+"绾у矖浣�");
-            field.setValue("sequence", sr15);
-            this.userAndTime(field);
-            baseDao.add(field);
-        }
-    }
-    /** 澶嶅埗鍗曚釜鏂囦欢
-     * @param oldPath String 鍘熸枃浠惰矾寰� 濡傦細c:/fqf.txt
-     * @param newPath String 澶嶅埗鍚庤矾寰� 濡傦細f:/fqf.txt
-     * @return boolean
-     */
-    public Boolean copyFile(String oldPath, String newPath) {
-        Boolean status = false;
-        try {
-            BufferedInputStream in = FileUtil.getInputStream(oldPath);
-            BufferedOutputStream out = FileUtil.getOutputStream(newPath);
-            IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE);
-            status = true;
-            out.close();
-            in.close();
-        }catch (Exception e){
-            e.getStackTrace();
-        }finally {
-            return status;
-        }
-    }
 
-    /** 鍒犻櫎鍗曚釜鏂囦欢
-     * @param   fileName    琚垹闄ゆ枃浠剁殑鏂囦欢鍚�
-     * @return 鍗曚釜鏂囦欢鍒犻櫎鎴愬姛杩斿洖true,鍚﹀垯杩斿洖false
-     */
-    public Boolean deleteFile(String fileName){
-        File file = new File(fileName);
-        if(file.isFile()){
-            file.delete();
-            System.out.println("鍒犻櫎鍗曚釜鏂囦欢"+fileName+"鎴愬姛锛�");
-            return true;
-        }else{
-            System.out.println("鍒犻櫎鍗曚釜鏂囦欢"+fileName+"澶辫触锛�");
-            return false;
-        }
-    }
+			//鏈烘瀯绫诲瀷  0 鍏徃  1閮ㄩ棬
+			String orgLevelType = fieldSetEntity1.getString("org_level_type");
+			//鏌ヨ宀椾綅绛夌骇
+			String sr15 = fieldSetEntity.getString("sr15");
+			FieldSetEntity fieldSet = baseDao.getFieldSetEntityByFilter("product_sys_job_post_grades", " org_level_uuid = ? and  job_grade_class = ? ", new String[]{org_level_uuid, sr15}, false);
+			//宀椾綅绛夌骇
+			String postGradesUuid = fieldSet.getUUID();
+			field.setValue("job_post_grades_uuid", postGradesUuid);
+			//鎺掑簭鏆傛椂瀛樺矖浣峣d  鏂逛究浜哄憳鏌ヨ鍒板矖浣峣d
+			Integer sequence = fieldSetEntity.getInteger("sr00");
+			field.setValue("sequence", sequence);
+			this.userAndTime(field);
+			String org_uuid = fieldSetEntity1.getUUID();
+			String code = fieldSetEntity1.getString("org_level_code");
+			//0涓哄叕鍙�  鑻ヤ负鍏徃灏卞垱寤哄涓浉鍚屽矖浣嶆潵鍏宠仈鍏徃涓嬫墍鏈夐儴闂�
+			if ("0".equals(orgLevelType)) {
+				DataTableEntity dataTable = baseDao.listTable("product_sys_org_levels", " org_level_type = 1 and org_level_uuid = ? ", new String[]{org_uuid});
+				if (!BaseUtil.dataTableIsEmpty(dataTable)) {
+					for (int j = 0; j < dataTable.getRows(); j++) {
+						field.setValue("dept_uuid", dataTable.getString(j, "uuid"));
+						field.remove("uuid");
+						FieldSetEntity fieldSetByFilter = baseDao.getFieldSetByFilter("product_sys_job_posts", " job_post_name = ? and org_level_uuid = ?  and dept_uuid=?", new String[]{fieldSetEntity.getString("sr01"), org_level_uuid, field.getString("dept_uuid")}, false);
+						if (fieldSetByFilter != null && !StringUtils.isEmpty(fieldSetByFilter.getUUID())) {
+							continue;
+						}
+						//閫氳繃鏂板鏂规硶娣诲姞宀椾綅
+						String uuid = baseDao.add(field);
+						//娣诲姞宀椾綅涓庡矖浣嶇瓑绾у叧绯绘槧灏勬暟鎹〃
+						FieldSetEntity postsAndClass = new FieldSetEntity();
+						postsAndClass.setTableName("product_sys_job_posts_grades_mapping");
+						//宀椾綅绛夌骇uuid
+						postsAndClass.setValue("job_grade_uuid", postGradesUuid);
+						//宀椾綅uuid
+						postsAndClass.setValue("job_post_uuid", uuid);
+						this.userAndTime(postsAndClass);
+						baseDao.add(postsAndClass);
+					}
+				} else {
+					//鍗曚綅涓嬭嫢娌℃湁閮ㄩ棬  鍒涘缓涓�涓櫄鎷熼儴闂�
+					String orgLevelName = fieldSetEntity1.getString("org_level_name") + "涓嬮儴闂�";
+					FieldSetEntity newDeptFse = baseDao.getFieldSetByFilter("product_sys_org_levels", "org_level_name = ? and org_level_type = 1 and org_level_uuid = ?", new String[]{orgLevelName, org_uuid}, false);
+					if (FieldSetEntity.isEmpty(newDeptFse)) {
+						FieldSetEntity departmentFse = new FieldSetEntity();
+						departmentFse.setTableName("product_sys_org_levels");
+						//閮ㄩ棬鍚嶇О
+						departmentFse.setValue("sg01", fieldSetEntity1.getString("org_level_name") + "涓嬮儴闂�");
+						//閮ㄩ棬缂栫爜
+						departmentFse.setValue("sg10", fieldSetEntity1.getString("org_level_shortcode") + "01");
+						//鎺掑簭
+						departmentFse.setValue("sg00", fieldSetEntity1.getString("sequence") + "01");
+						//淇濆瓨鍚庣殑閮ㄩ棬
+						newDeptFse = this.addDepartment(departmentFse, code, org_uuid);
+					}
+					//鏀惧叆閮ㄩ棬uuid
+					field.setValue("dept_uuid", newDeptFse.getUUID());
+					FieldSetEntity fieldSetByFilter = baseDao.getFieldSetByFilter("product_sys_job_posts", " job_post_name = ? and org_level_uuid = ?  and dept_uuid=?", new String[]{fieldSetEntity.getString("sr01"), org_level_uuid, field.getString("dept_uuid")}, false);
+					if (fieldSetByFilter != null && !StringUtils.isEmpty(fieldSetByFilter.getUUID())) {
+						continue;
+					}
+					//閫氳繃鏂板鏂规硶娣诲姞宀椾綅
+					String uuid = baseDao.add(field);
+					//娣诲姞宀椾綅涓庡矖浣嶇瓑绾у叧绯绘槧灏勬暟鎹〃
+					FieldSetEntity postsAndClass = new FieldSetEntity();
+					postsAndClass.setTableName("product_sys_job_posts_grades_mapping");
+					//宀椾綅绛夌骇uuid
+					postsAndClass.setValue("job_grade_uuid", postGradesUuid);
+					//宀椾綅uuid
+					postsAndClass.setValue("job_post_uuid", uuid);
+					this.userAndTime(postsAndClass);
+					baseDao.add(postsAndClass);
+				}
+				//1涓洪儴闂�
+			} else {
+				field.setValue("dept_uuid", org_uuid);
+				FieldSetEntity fieldSetByFilter = baseDao.getFieldSetByFilter("product_sys_job_posts", " job_post_name = ? and org_level_uuid = ?  and dept_uuid=?", new String[]{fieldSetEntity.getString("sr01"), org_level_uuid, field.getString("dept_uuid")}, false);
+				if (fieldSetByFilter != null && !StringUtils.isEmpty(fieldSetByFilter.getUUID())) {
+					continue;
+				}
+				//閫氳繃鏂板鏂规硶娣诲姞宀椾綅
+				String uuid = baseDao.add(field);
+				//娣诲姞宀椾綅涓庡矖浣嶇瓑绾у叧绯绘槧灏勬暟鎹〃
+				FieldSetEntity postsAndClass = new FieldSetEntity();
+				postsAndClass.setTableName("product_sys_job_posts_grades_mapping");
+				//宀椾綅绛夌骇uuid
+				postsAndClass.setValue("job_grade_uuid", postGradesUuid);
+				//宀椾綅uuid
+				postsAndClass.setValue("job_post_uuid", uuid);
+				this.userAndTime(postsAndClass);
+				baseDao.add(postsAndClass);
+			}
+		}
+	}
 
-    public static void main(String[] args) {
+	/**
+	 * 娣诲姞鍒涘缓浜哄拰鍒涘缓鏃堕棿
+	 *
+	 * @param fieldSetEntity
+	 */
+	public void userAndTime(FieldSetEntity fieldSetEntity) {
+		fieldSetEntity.setValue("created_by", SpringMVCContextHolder.getCurrentUserId());
+		fieldSetEntity.setValue("created_utc_datetime", new Date());
+	}
+
+	/**
+	 * 娣诲姞宀椾綅绛夌骇
+	 */
+	public void postGrades(DataTableEntity data) {
+		//鍏徃uuid 宀椾綅灞傜骇闆�
+		Map<String, String> postHierarchyMap = Maps.newHashMap();
+		//閫氳繃鍏徃uuid鏉ュ垝鍒嗗矖浣嶇瓑绾�
+		for (int i = 0; i < data.getRows(); i++) {
+			FieldSetEntity fieldSetEntity = data.getFieldSetEntity(i);
+			FieldSetEntity field = new FieldSetEntity();
+			field.setTableName("product_sys_job_post_grades");
+			//宀椾綅灞傜骇  瓒婂皬绛夌骇瓒婂ぇ
+			String sr15 = fieldSetEntity.getString("sr15");
+			//杞崲鍚庨儴闂ㄦ垨鍏徃鍏ㄧО
+			String dcName = fieldSetEntity.getString("asr03");
+			//鑾峰彇鍏徃鐨剈uid
+			String companyUuid = this.getSuperiorCompanyUuid(dcName);
+			String value = postHierarchyMap.get(companyUuid);
+			if (!BaseUtil.strIsNull(value)) {
+				if (value.contains(sr15)) {
+					continue;
+				} else {
+					postHierarchyMap.put(companyUuid, value + "," + sr15);
+				}
+			} else {
+				postHierarchyMap.put(companyUuid, sr15);
+			}
+			FieldSetEntity levelsSet = baseDao.getFieldSetEntity("product_sys_org_levels", companyUuid, false);
+			//鍏徃鍚嶇О
+			String levelName = levelsSet.getString("org_level_name");
+			//涓婄骇鍏徃uuid
+			field.setValue("org_level_uuid", companyUuid);
+			//宀椾綅绛夌骇
+			field.setValue("job_grade_class", sr15);
+			field.setValue("is_used", 1);
+			//鍚嶇О
+			field.setValue("job_grade_name", sr15 + "绾у矖浣�");
+			//绾у埆鐭紪鐮�
+			field.setValue("job_grade_shortcode", sr15);
+			//璇存槑
+			field.setValue("remark", levelName + "涓嬬殑" + sr15 + "绾у矖浣�");
+			field.setValue("sequence", sr15);
+			this.userAndTime(field);
+			baseDao.add(field);
+		}
+	}
+
+	/**
+	 * 澶嶅埗鍗曚釜鏂囦欢
+	 *
+	 * @param oldPath String 鍘熸枃浠惰矾寰� 濡傦細c:/fqf.txt
+	 * @param newPath String 澶嶅埗鍚庤矾寰� 濡傦細f:/fqf.txt
+	 * @return boolean
+	 */
+	public Boolean copyFile(String oldPath, String newPath) {
+		Boolean status = false;
+		try {
+			BufferedInputStream in = FileUtil.getInputStream(oldPath);
+			BufferedOutputStream out = FileUtil.getOutputStream(newPath);
+			IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE);
+			status = true;
+			out.close();
+			in.close();
+		} catch (Exception e) {
+			e.getStackTrace();
+		} finally {
+			return status;
+		}
+	}
+
+	/**
+	 * 鍒犻櫎鍗曚釜鏂囦欢
+	 *
+	 * @param fileName 琚垹闄ゆ枃浠剁殑鏂囦欢鍚�
+	 * @return 鍗曚釜鏂囦欢鍒犻櫎鎴愬姛杩斿洖true, 鍚﹀垯杩斿洖false
+	 */
+	public Boolean deleteFile(String fileName) {
+		File file = new File(fileName);
+		if (file.isFile()) {
+			file.delete();
+			System.out.println("鍒犻櫎鍗曚釜鏂囦欢" + fileName + "鎴愬姛锛�");
+			return true;
+		} else {
+			System.out.println("鍒犻櫎鍗曚釜鏂囦欢" + fileName + "澶辫触锛�");
+			return false;
+		}
+	}
+
+	public static void main(String[] args) {
 //        File file = new File("D:\\filePackage\\瑗垮畞甯備綇鎴夸繚闅滃拰鎴垮眿绠$悊灞�闇�姹傛暣鐞哣1.0.docx");
 //        File file2 = new File("D:\\filePackage\\瑗垮畞甯備綇鎴夸繚闅滃拰鎴垮眿绠$悊.docx");
 //        System.out.println(file.exists());
@@ -930,88 +988,85 @@
 //        FeDataDSService feDataDSService = new FeDataDSService();
 //        feDataDSService.copyFile("D:\\OA\\FEGOV\\Media\\2021\\12\\15\\20211215401901\\1`FE#ENC#DA126AF35BB8E57F55C2429BDF7DC7240DF6CC6E227B0B8E", "D:\\filePackage\\????????????????????????.doc");
 //        feDataDSService.getFilesFolder("D:\\OA\\FEGOV\\Media\\2021\\12\\15\\20211215401901");
-    }
+	}
 
-    /**
-     * 鑾峰彇鏂囦欢鍚嶇О  鏈�鏂颁慨鏀规椂闂� map
-     * @param path
-     * @return
-     */
-    public Map<String, String> getFilesFolder(String path){
-        File file = new File(path);		//鑾峰彇鍏秄ile瀵硅薄
-        File[] fs = file.listFiles();
-        if(fs == null){
-            logger.info("鏈壘鍒伴檮浠剁洿鎺ヨ繑鍥瀗ull");
-            return null;
-        }
-        Map<String, String> fileTimeName = Maps.newHashMap();
-        for(File f:fs)
-        {
-            if(f.isFile())
-            {
-                String fileName = f.toString().replace(path+"\\","");
-                fileTimeName.put(this.set_fileInfo(f.toString()),fileName);
-            }
-        }
-        return fileTimeName;
-    }
+	/**
+	 * 鑾峰彇鏂囦欢鍚嶇О  鏈�鏂颁慨鏀规椂闂� map
+	 *
+	 * @param path
+	 * @return
+	 */
+	public Map<String, String> getFilesFolder(String path) {
+		File file = new File(path);        //鑾峰彇鍏秄ile瀵硅薄
+		File[] fs = file.listFiles();
+		if (fs == null) {
+			logger.info("鏈壘鍒伴檮浠剁洿鎺ヨ繑鍥瀗ull");
+			return null;
+		}
+		Map<String, String> fileTimeName = Maps.newHashMap();
+		for (File f : fs) {
+			if (f.isFile()) {
+				String fileName = f.toString().replace(path + "\\", "");
+				fileTimeName.put(this.set_fileInfo(f.toString()), fileName);
+			}
+		}
+		return fileTimeName;
+	}
 
-    /**
-     * 鑾峰彇鏂囦欢鏈�杩戜慨鏀规椂闂�
-     * @param file_name 鏂囦欢鍏ㄨ矾寰�
-     * @return
-     */
-    public String set_fileInfo(String file_name)
-    {
-        Path path = Paths.get(file_name);
-        BasicFileAttributeView basicview = Files.getFileAttributeView(path, BasicFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
-        BasicFileAttributes attr;
-        String time = null;
-        try
-        {
+	/**
+	 * 鑾峰彇鏂囦欢鏈�杩戜慨鏀规椂闂�
+	 *
+	 * @param file_name 鏂囦欢鍏ㄨ矾寰�
+	 * @return
+	 */
+	public String set_fileInfo(String file_name) {
+		Path path = Paths.get(file_name);
+		BasicFileAttributeView basicview = Files.getFileAttributeView(path, BasicFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
+		BasicFileAttributes attr;
+		String time = null;
+		try {
 
-            attr = basicview.readAttributes();
-            //鍒涘缓鏃堕棿
-            Date CreateTimeDate= new Date(attr.creationTime().toMillis());
-            //涓婃淇敼鏃堕棿 *
-            Date lastmodfiyTimeDate=new Date(attr.lastModifiedTime().toMillis());
-            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            time = df.format(lastmodfiyTimeDate);
-        } catch (Exception e)
-        {
-            e.printStackTrace();
-        }
-        return time;
-    }
+			attr = basicview.readAttributes();
+			//鍒涘缓鏃堕棿
+			Date CreateTimeDate = new Date(attr.creationTime().toMillis());
+			//涓婃淇敼鏃堕棿 *
+			Date lastmodfiyTimeDate = new Date(attr.lastModifiedTime().toMillis());
+			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+			time = df.format(lastmodfiyTimeDate);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return time;
+	}
 
-    public void clearJobList(){
-      DataTableEntity dataTableEntity = baseDao.listTable("product_sys_flow_node","  default_posts is not null AND default_posts != '' ",new String[]{});
-        for (int i = 0; i < dataTableEntity.getRows(); i++) {
-           FieldSetEntity fse = dataTableEntity.getFieldSetEntity(i);
-           String default_posts = fse.getString("default_posts");
-           if(!BaseUtil.strIsNull(default_posts)){
-               String[] postUuids = default_posts.split(",");
-               Set<String> postSet = Sets.newHashSet();
+	public void clearJobList() {
+		DataTableEntity dataTableEntity = baseDao.listTable("product_sys_flow_node", "  default_posts is not null AND default_posts != '' ", new String[]{});
+		for (int i = 0; i < dataTableEntity.getRows(); i++) {
+			FieldSetEntity fse = dataTableEntity.getFieldSetEntity(i);
+			String default_posts = fse.getString("default_posts");
+			if (!BaseUtil.strIsNull(default_posts)) {
+				String[] postUuids = default_posts.split(",");
+				Set<String> postSet = Sets.newHashSet();
 //             Set<String> postSet = Arrays.stream(postUuids).collect(Collectors.toSet());
-               for (int j = 0; j < postUuids.length; j++) {
-                 DataTableEntity staffsData = baseDao.listTable("product_sys_staffs","  job_post_uuid = ? ",new String[]{postUuids[j]});
-                 //鏈変汉灏变繚鐣欏矖浣島uid
-                   if(!BaseUtil.dataTableIsEmpty(staffsData)){
-                       postSet.add(postUuids[j]);
-                   }
-               }
-               if(postSet.size() > 0){
-                   fse.setValue("default_posts", StringUtils.join(postSet, ","));
-               }else {
-                   fse.setValue("default_posts", null);
-               }
-               baseDao.update(fse);
-           }
-        }
-        //娓呯┖澶氫綑鐨勫矖浣嶆暟鎹�
-        baseDao.executeUpdate("DELETE FROM product_sys_job_posts WHERE uuid not in (SELECT job_post_uuid FROM product_sys_staffs);");
-        //宀椾綅鍏宠仈
-        baseDao.executeUpdate("DELETE FROM product_sys_job_posts_grades_mapping WHERE job_post_uuid not in (SELECT job_post_uuid FROM product_sys_staffs);");
-    }
+				for (int j = 0; j < postUuids.length; j++) {
+					DataTableEntity staffsData = baseDao.listTable("product_sys_staffs", "  job_post_uuid = ? ", new String[]{postUuids[j]});
+					//鏈変汉灏变繚鐣欏矖浣島uid
+					if (!BaseUtil.dataTableIsEmpty(staffsData)) {
+						postSet.add(postUuids[j]);
+					}
+				}
+				if (postSet.size() > 0) {
+					fse.setValue("default_posts", StringUtils.join(postSet, ","));
+				} else {
+					fse.setValue("default_posts", null);
+				}
+				baseDao.update(fse);
+			}
+		}
+		//娓呯┖澶氫綑鐨勫矖浣嶆暟鎹�
+		baseDao.executeUpdate("DELETE FROM product_sys_job_posts WHERE uuid not in (SELECT job_post_uuid FROM product_sys_staffs);");
+		//宀椾綅鍏宠仈
+		baseDao.executeUpdate("DELETE FROM product_sys_job_posts_grades_mapping WHERE job_post_uuid not in (SELECT job_post_uuid FROM product_sys_staffs);");
+	}
 
 }
diff --git a/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java b/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java
index 1b806e4..4a62f39 100644
--- a/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java
+++ b/product-server-data-sync/src/main/java/com/product/data/sync/service/SyFeDataService.java
@@ -23,6 +23,7 @@
 import com.product.data.sync.config.SystemCode;
 import com.product.data.sync.service.ide.ISyFeDataService;
 import com.product.data.sync.service.media.GdMediaUtil;
+import com.product.data.sync.util.BatchAddData;
 import com.product.data.sync.util.BusinessDataSync;
 import com.product.data.sync.util.DataManipulationUtils;
 import com.product.file.service.FileManagerService;
@@ -101,6 +102,8 @@
 
 	//宸插悓姝ヨ〃缁撴瀯
 	private JSONObject dataTableObject = new JSONObject();
+	@Autowired
+	private BatchAddData batchAddData;
 
 	public Boolean isStr(String str) {
 		boolean a = false;
@@ -112,22 +115,28 @@
 		return a;
 	}
 
+
+	private Set<String> clearTable = new HashSet<>();
+
 	//鍏憡绠$悊1  绯荤粺鍙傛暟  闂嵎绠$悊  鑰冨嫟绠$悊  杞﹁締绠$悊  鍗忓悓鍔炲叕
 	@Override
 	public String saveSyncFedata(FieldSetEntity fs) throws SQLException, ClassNotFoundException {
 		//鍚屾缁勭粐鏋舵瀯
 		DataTableEntity dataTableEntity = baseDao.listTable("product_sys_users");
-		String clientUUID = "remark";
-		if (dataTableEntity.getRows() < 10) {
+		String clientUUID = "4d4679ed-c4c3-41b8-abfe-451a66fd4043";
+//		if (dataTableEntity.getRows() < 10) {
 //			//杩佺Щ缁勭粐鏋舵瀯
-//			String uuid = feDataDSService.FEDataMigration();
-//			if (!BaseUtil.strIsNull(uuid)) {
-//				clientUUID = uuid;
-//			}
+		String uuid = feDataDSService.FEDataMigration();
+		if (!BaseUtil.strIsNull(uuid)) {
+			clientUUID = uuid;
 		}
+//		}
 		//灏佽涓よ竟浜哄憳鍏宠仈鍜岄儴闂ㄥ叧鑱�
-//        packageDepartmentPersonnel();
+		packageDepartmentPersonnel();
 		String tricode_fun = Global.getSystemConfig("data.synchronism.function", "").replaceAll(" ", "");
+		if (StringUtils.isEmpty(tricode_fun)) {
+			tricode_fun = fs.getString("function_code");
+		}
 		if (BaseUtil.strIsNull(tricode_fun)) {
 			return null;
 		}
@@ -227,8 +236,8 @@
 				//杩囨护arr涓殑null骞惰浆涓哄瓧绗︿覆鐢ㄩ�楀彿鍒嗛殧
 				defaultPosts = Arrays.stream(arr).filter(Objects::nonNull).collect(Collectors.joining(","));
 			}
-			if(!StringUtils.isEmpty(defaultUsers)){
-				arr=defaultUsers.split(",");
+			if (!StringUtils.isEmpty(defaultUsers)) {
+				arr = defaultUsers.split(",");
 				for (int j = 0; j < arr.length; j++) {
 					String uid = arr[j];
 					String uuid = userMapping.get(uid);
@@ -246,6 +255,7 @@
 			node.setValue("default_depts", defaultDepts);
 
 		}
+
 		baseDao.update(nodes);
 	}
 
@@ -254,18 +264,25 @@
 //        String[] tricode_funs = fs.getString("tricode_fun").split(",");
 		//灏佽鏈骇鍝侀渶璧嬫潈闄愮殑鎸夐挳uuid
 //        this.packageButton();
-//        Connection conn = functionSynchrService.getConnection(fs);
+//        ConnectionInterface conn = functionSynchrService.getConnection(fs);
 		//閫氳繃绾跨▼寰幆娣诲姞鍔熻兘淇℃伅
 		ExecutorService exec = Executors.newCachedThreadPool();
+		List<Set<String>> clearAttachmentSets = new ArrayList<>();
 		for (int i = 0; i < tricode_funs.length; i++) {
 			//鑾峰彇jdbc杩炴帴
 			BusinessDataSync async = new BusinessDataSync(tricode_funs[i]);
 			async.setBaseDao(baseDao);
+			async.setClearTable(clearTable);
 			async.setFileManagerService(fileManagerService);
 			async.setSystemMenusService(systemMenusService);
 			async.setFeDataDSService(feDataDSService);
 			async.setGdMediaUtil(gdMediaUtil);
 			async.setClientUUID(clientUUID);
+			async.setBatchAddData(batchAddData);
+			Set<String> clearAttachment = async.getClearAttachment();
+			if (clearAttachment != null) {
+				clearAttachmentSets.add(clearAttachment);
+			}
 			Thread t = new Thread(async);
 			//璋冪敤绾跨▼run鏂规硶
 			exec.submit(t);
@@ -310,6 +327,7 @@
 			}
 		}
 		systemMenusService.initSystemMenu();
+		//鍚屾
 		System.out.println("=================鍚屾鎴愬姛===============");
 
 		return "OK";
@@ -2424,7 +2442,7 @@
 			//鍚屾娑堟伅
 			try {
 				this.synchronizingProcessMessages(conn, tricode_funs, stateMap);
-			} catch (BaseException e) {
+			} catch (Exception e) {
 				e.printStackTrace();
 			}
 			//婧愭暟鎹甶d 涓� 鏈暟鎹畊uid 鍏宠仈
@@ -2779,7 +2797,7 @@
 	/**
 	 * 鍚屾娴佺▼娑堟伅琛�
 	 */
-	public void synchronizingProcessMessages(Connection conn, String tricode_funs, Map<String, String> stateMap) throws SQLException {
+	public void synchronizingProcessMessages(Connection conn, String tricode_funs, Map<String, String> stateMap) throws Exception {
 		DataTableEntity OrlDt = null;
 		try {
 			StringBuffer sql = new StringBuffer();
@@ -2795,6 +2813,8 @@
 		String id = null;
 		String message_uuid = null;
 		String state = null;
+		DataTableEntity dt = new DataTableEntity();
+		DataTableEntity dt1 = new DataTableEntity();
 		for (int i = 0; i < OrlDt.getRows(); i++) {
 			FieldSetEntity fs = OrlDt.getFieldSetEntity(i);
 			//娴佺▼鑺傜偣id
@@ -2853,7 +2873,10 @@
 				} else if ("2".equals(state)) {
 					message.setValue("url", "1621321824686868oKWL726?uuid=" + source_uuid);
 				}
-				message_uuid = baseDao.add(message);
+
+				message_uuid = UUID.randomUUID().toString();
+				message.setValue("uuid", message_uuid);
+				dt1.addFieldSetEntity(message);
 			}
 
 			FieldSetEntity message_user = new FieldSetEntity();
@@ -2884,8 +2907,20 @@
 				}
 			}
 			message_user.setValue("user_id", user_id);
-			baseDao.add(message_user);
+//			baseDao.add(message_user);
+			dt.addFieldSetEntity(message_user);
+
+			if (dt1.getRows() > 50000) {
+				batchAddData.add(dt1);
+				dt1 = new DataTableEntity();
+			}
+			if (dt.getRows() > 50000) {
+				batchAddData.add(dt);
+				dt = new DataTableEntity();
+			}
 		}
+		batchAddData.add(dt1);
+		batchAddData.add(dt);
 	}
 
 
diff --git a/product-server-data-sync/src/main/java/com/product/data/sync/util/BatchAddData.java b/product-server-data-sync/src/main/java/com/product/data/sync/util/BatchAddData.java
new file mode 100644
index 0000000..e09fd62
--- /dev/null
+++ b/product-server-data-sync/src/main/java/com/product/data/sync/util/BatchAddData.java
@@ -0,0 +1,75 @@
+package com.product.data.sync.util;
+
+import cn.hutool.core.lang.UUID;
+import com.product.common.lang.StringUtils;
+import com.product.core.cache.DataPoolCacheImpl;
+import com.product.core.connection.ConnectionManager;
+import com.product.core.entity.DataTableEntity;
+import com.product.core.entity.FieldMetaEntity;
+import com.product.core.entity.FieldSetEntity;
+import com.product.datasource.dao.Dao;
+import com.product.datasource.dao.impl.MysqlDaoImpl;
+import com.product.util.BaseUtil;
+import org.springframework.stereotype.Service;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Service
+public class BatchAddData {
+
+
+	public void add(DataTableEntity dt) throws Exception {
+		Dao dao = new MysqlDaoImpl(() -> ConnectionManager.getConnection());
+		if (DataTableEntity.isEmpty(dt)) {
+			return;
+		}
+		FieldMetaEntity meta = dt.getMeta();
+		String tableName = dt.getTableName().toString();
+		//鍦ㄧ紦瀛樿〃涓幏鍙栬琛ㄧ殑鎵�鏈夊瓧娈�
+//        DataPoolCacheImpl.getInstance().getCacheData("")
+		FieldSetEntity tableMeta = BaseUtil.getSingleInfoByCache("鎵�鏈夎〃淇℃伅", new String[]{tableName});
+		String tableUuid = tableMeta.getString("uuid");
+		//琛ㄥ瓧娈�
+		DataTableEntity fieldTableMeta = DataPoolCacheImpl.getInstance().getCacheData("鎵�鏈夊瓧娈典俊鎭苟鎸夎〃鍒嗙粍", new String[]{tableUuid});
+
+		List<String> fields = new ArrayList<>();
+		for (int i = 0; i < fieldTableMeta.getRows(); i++) {
+			FieldSetEntity fieldMeta = fieldTableMeta.getFieldSetEntity(i);
+			String fieldType = fieldMeta.getString("field_type");
+			String fieldName = fieldMeta.getString("field_name");
+			if (!"pk".equalsIgnoreCase(fieldType)) {
+				fields.add(fieldName);
+			}
+		}
+		DataTableEntity addDt = new DataTableEntity();
+		List<DataTableEntity> addDtList = new ArrayList<>();
+		for (int i = 0; i < dt.getRows(); i++) {
+			if(FieldSetEntity.isEmpty(dt.getFieldSetEntity(i))){
+				continue;
+			}
+			if (i == 5000) {
+				addDtList.add(addDt);
+				addDt = new DataTableEntity();
+			}
+			FieldSetEntity ff = new FieldSetEntity(tableName);
+			for (String field : fields) {
+				ff.setValue(field, dt.getObject(i, field));
+			}
+			if (StringUtils.isEmpty(ff.getString("uuid"))) {
+				ff.setValue("uuid", UUID.randomUUID().toString());
+				dt.setFieldValue(i, "uuid", ff.getString("uuid"));
+			}
+			addDt.addFieldSetEntity(ff);
+		}
+		addDtList.add(addDt);
+		for (DataTableEntity dataTableEntity : addDtList) {
+			dao.addBatch(dataTableEntity);
+		}
+		dao.closeConnection();
+	}
+}
diff --git a/product-server-data-sync/src/main/java/com/product/data/sync/util/BusinessDataSync.java b/product-server-data-sync/src/main/java/com/product/data/sync/util/BusinessDataSync.java
index f9fde2a..b71aaa0 100644
--- a/product-server-data-sync/src/main/java/com/product/data/sync/util/BusinessDataSync.java
+++ b/product-server-data-sync/src/main/java/com/product/data/sync/util/BusinessDataSync.java
@@ -1,6 +1,8 @@
 package com.product.data.sync.util;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.map.MapUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
@@ -8,6 +10,8 @@
 import com.google.common.collect.Sets;
 import com.product.admin.service.SystemMenusService;
 import com.product.common.lang.StringUtils;
+import com.product.core.cache.DataPoolCacheImpl;
+import com.product.core.cache.DataPoolRefreshCache;
 import com.product.core.config.Global;
 import com.product.core.connection.ConnectionManager;
 import com.product.core.dao.BaseDao;
@@ -36,6 +40,8 @@
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 /**
  * Copyright LX
@@ -48,8 +54,9 @@
  */
 public class BusinessDataSync extends AbstractBaseService implements Runnable {
 	private static Logger logger = LoggerFactory.getLogger(SyFeDataService.class);
-	@Autowired
 	public BaseDao baseDao;
+
+	BatchAddData batchAddData;
 
 	@Override
 	public BaseDao getBaseDao() {
@@ -61,7 +68,6 @@
 		this.baseDao = baseDao;
 	}
 
-	@Autowired
 	FileManagerService fileManagerService;
 
 	public FileManagerService getFileManagerService() {
@@ -72,7 +78,6 @@
 		this.fileManagerService = fileManagerService;
 	}
 
-	@Autowired
 	SystemMenusService systemMenusService;
 
 	public SystemMenusService getSystemMenusService() {
@@ -83,7 +88,6 @@
 		this.systemMenusService = systemMenusService;
 	}
 
-	@Autowired
 	private FeDataDSService feDataDSService;
 
 	public FeDataDSService getFeDataDSService() {
@@ -103,6 +107,11 @@
 
 	public void setGdMediaUtil(GdMediaUtil gdMediaUtil) {
 		this.gdMediaUtil = gdMediaUtil;
+	}
+
+
+	public void setBatchAddData(BatchAddData batchAddData) {
+		this.batchAddData = batchAddData;
 	}
 
 	//鍏徃fe id 瀵瑰簲 浜у搧uuid
@@ -144,7 +153,14 @@
 //    private List<String> funTable = Lists.newArrayList("FE_APP5.PUB_NOTICE","FE_BASE5.RESEARCH_TOPIC","FE_APP5.APP_KQLRB","FE_BASE5.SYS_COLLABORATIVE","FE_APP5.BS_MEETING_FLOW");
 	private List<String> funTable = Lists.newArrayList("FE_APP5.PUB_NOTICE", "FE_BASE5.RESEARCH_TOPIC", "FE_APP5.APP_KQLRB", "FE_BASE5.SYS_COLLABORATIVE", "FE_APP5.BS_MEETING_FLOW");
 
+	private Set<String> clearTable = new HashSet<>();
+
+
 	private String clientUUID;
+
+	public void setClearTable(Set<String> clearTable) {
+		this.clearTable = clearTable;
+	}
 
 	public String getClientUUID() {
 		return clientUUID;
@@ -159,9 +175,45 @@
 
 	public BusinessDataSync(String tricode_funs) {
 		this.tricode_funs = tricode_funs;
+		this.functionUuid = this.feFunctionCodeByFunctionUuid.get(tricode_funs.trim().replace("mvc", "").replaceAll(",", ""));
 	}
 
 	public String TSPath = Global.getSystemConfig("new.filePackage", "");
+
+
+	private String functionUuid;
+
+
+	public Set<String> getClearAttachment() {
+		return clearAttachment;
+	}
+
+
+	Map<String, String> feFunctionCodeByFunctionUuid = MapUtil
+			.builder("035-411-000", "f7c4dd7d-3e17-4f67-b1cb-b36704f3f896")//浼氳瀹ょ敵璇�
+			.put("006-009-000", "ed86d09a-23be-4d8c-8cb2-be8622fe50f4")//鍙戝竷鍏憡
+			.put("001-006-000", "df981440-327c-4c9f-9395-f98ad067986e")//鏀舵枃绠$悊
+			.put("001-011-000", "0245268a-8da3-47d5-aab1-4dd85b162904")//鑷敱琛屾枃
+			.put("019-021-000", "8a7c615a-1c4c-4eca-8d83-f04415128267")//鍔炲叕鐢ㄥ搧棰嗙敤琛�
+			.put("021-012-000", "a3222fac-6203-407b-92c7-3aa2d459c62b")//鍙戞枃瀛愯〃鍗�
+			.put("021-016-000", "39358718-fe36-44c3-832d-74fae9487922")//宸ヤ綔浜哄憳鍑哄樊锛堝煿璁級瀹℃壒鍗�
+			.put("019-018-000", "243e5c53-72d7-4419-85cf-acc09db68756")//鍏姟鎺ュ緟瀹℃壒
+			.put("019-017-000", "d7e76a76-5650-4499-a941-23faf64ca3c8")//鍔炲叕瀹ょ敤鍝侀噰璐崟
+			.put("001-012-000", "18cbe376-1d7a-4d0c-bd6f-6fd4c5390474")//瑗垮畞甯傛埧浜х鐞嗗眬鍙戞枃绋跨焊
+			.put("600-008-000", "1d0b60d3-6497-4600-aafb-189ac1c1cdf0")//琛屾斂澶勭綒浜嬪厛鍛婄煡涔�
+			.put("600-009-000", "9c5b0b79-e801-4a03-a3fa-19974b6c1e67")//琛屾斂澶勭綒涓嶄簣
+			.put("600-010-000", "409673e2-bdc3-46f0-adeb-067be4938618")//琛屾斂澶勭綒鍚瘉鍛婄煡涔�
+			.put("600-011-000", "19fda013-4950-44e9-b276-2ecbdae1fa55")//琛屾斂澶勭綒鍚瘉閫氱煡涔�
+			.put("600-012-000", "64876b1a-d13d-492c-a488-2f243a837486")//琛屾斂澶勭綒涓嶄簣鍚瘉閫氱煡涔�
+			.put("600-013-000", "540a3469-5d6f-41b7-807e-0ac44f46303a")//琛屾斂澶勭綒鍐冲畾涔�
+			.put("600-014-000", "5509387d-de73-4a66-a42a-fbeff23fd3f0")//璋冩煡缁堢粨鎶ュ憡
+			.put("600-015-000", "3c9f9d0a-5a5e-465c-9433-b5541cc7a075")//琛屾斂妗堜欢绔嬫瀹℃壒琛�
+			.put("600-016-000", "8c7c34c5-5dca-4544-a6e4-0fbb7b80eb1f")//琛屾斂澶勭綒鍌憡涔�
+			.put("019-023-000", "8c9d0806-28ba-43b4-b2cf-dcb81a10ce65")//琛屾斂鎵ф硶瀹℃壒琛�
+			.put("601-001-000", "")//鑰冨嫟褰曞叆
+			.put("019-025-000", "30cea2ef-92b1-46c1-8785-5d34755ee803")//鍔炲叕缁忚垂浣跨敤瀹℃壒鍗�
+			.put("003-006-000", "6e587365-8ebd-4ab5-bade-dd3b1bf640f8")//鍗忓悓鍔炲叕
+			.map();
 
 	public Boolean isStr(String str) {
 		boolean a = false;
@@ -220,6 +272,36 @@
 			throw e;
 		}
 		String sf28 = Orlfs.getString("sf28");
+		//鏌ヨ鏈郴缁熶腑鐨勫姛鑳絬uid
+		String feFunctionName = Orlfs.getString("sf02");
+		//SF09
+		String functionId = Orlfs.getString("sf00");
+
+		DataTableEntity dataTable = BaseDaoServiceImpl.getDataTable(conn, "select * from WF_MODEL where WM05=(SELECT SF09 FROM SYS_FACE WHERE SF00 IN (\n" +
+				"\n" +
+				"select SP04 FROM SYS_PAGE where sp01='001-012-000' and sp04 !='0' and sp04!=' ' GROUP BY SP04\n" +
+				") AND SF09 IS NOT NULL AND  LENGTH(SF09)>0 AND SF09!=' ' and ROWNUM=1)", new Object[]{});
+//		if (!DataTableEntity.isEmpty(dataTable)) {
+//			String feFlowTitle = dataTable.getString(0, "wm01");
+//			String feTable = dataTable.getString(0, "wm04").split("\\.")[1];
+//
+//			//鏈郴缁熻〃鍚�
+//			String tableName = this.originalTable.getString(feTable);
+//			if (StringUtils.isEmpty(tableName)) {
+//				//杞崲涓轰骇鍝佽〃鍚�
+//				tableName = feTable.toLowerCase();
+//			}
+//			FieldSetEntity existFlow = baseDao.getFieldSetEntityByFilter("product_sys_flow_model", "title = ? or table_uuid=?", new Object[]{feFlowTitle, tableName}, false);
+//			if (!FieldSetEntity.isEmpty(existFlow)) {
+//				//鎷挎祦绋媢uid鎵緈vcpage
+//				String flowUuid = existFlow.getString("type_code");
+//				FieldSetEntity mvcPage = baseDao.getFieldSetEntityByFilter("product_sys_mvc_page", "flow_uuid = ?", new Object[]{flowUuid}, false);
+//				if (!FieldSetEntity.isEmpty(mvcPage)) {
+//					functionUuid = mvcPage.getString("function_uuid");
+//				}
+//			}
+//		}
+
 		//鍔熻兘濡傛灉鏈叧鑱斿熀纭�琛� 鏌ヨ娴佺▼琛�
 		if (BaseUtil.strIsNull(sf28) || sf28.indexOf(".") == -1) {
 			FieldSetEntity modelFse;
@@ -249,96 +331,10 @@
 		} catch (Exception e) {
 			e.getStackTrace();
 			SpringMVCContextHolder.getSystemLogger().error(e);
+			logger.error("synchronizeTablesData", e);
 		}
 
 		return sf28;
-	}
-
-	/**
-	 * 鍚屾鍏憡琛ㄦ暟鎹�
-	 *
-	 * @param conn
-	 * @param tableName
-	 * @throws SQLException
-	 */
-	private void syncNotice(Connection conn, String tableName) throws SQLException {
-		//鍒ゆ柇鏄惁鏄凡缁忓悓姝ヨ繃鐨勮〃
-		DataTableEntity dataTable = baseDao.listTable("product_oa_announcement");
-		if (!BaseUtil.dataTableIsEmpty(dataTable)) {
-			return;
-		}
-		DataTableEntity noticeDt = null;
-		try {
-			noticeDt = BaseDaoServiceImpl.getDataTable(conn, tableName, "", new Object[]{});
-		} catch (Exception e) {
-			DataManipulationUtils.close(null, null, conn);
-			throw e;
-		}
-		for (int i = 0; i < noticeDt.getRows(); i++) {
-			FieldSetEntity feFs = noticeDt.getFieldSetEntity(i);
-			FieldSetEntity fs = new FieldSetEntity();
-			fs.setTableName("product_oa_announcement");
-			fs.setValue("title", feFs.getString("title"));
-			fs.setValue("content", feFs.getString("content"));
-			fs.setValue("type", feFs.getString("notice_category"));
-			fs.setValue("annex", feFs.getString("annex"));
-			DataTableEntity accessoryData = new DataTableEntity();
-			FieldSetEntity accessoryFs = new FieldSetEntity("temp");
-			accessoryFs.setValue("si02", "attachment");
-			accessoryFs.setValue("si04", "ANNEX");
-			accessoryData.addFieldSetEntity(accessoryFs);
-			if (!BaseUtil.dataTableIsEmpty(accessoryData)) {
-				try {
-					Map<String, List<String>> stringListMap = this.synchronizationAttachments(conn, accessoryData, fs, "product_oa_announcement", "annex");
-					fs.setValue("annex", CollectionUtil.join(stringListMap.get("annex"), ","));
-				} catch (Exception e) {
-					e.printStackTrace();
-				}
-
-			}
-			//Set 杞崲涓哄瓧绗︿覆閫楀彿鍒嗛殧
-			//鍐欐柟娉曞垽鏂槸澶氫汉杩樻槸閮ㄩ棬锛岃嫢鏄儴闂ㄨ浆鎹负浜�
-			fs.setValue("extent", this.getUserIds(conn, feFs.getString("receivers")));
-			fs.setValue("expiration_date", feFs.getDate("displayed_date"));
-			fs.setValue("status", feFs.getString("is_reminded"));
-			fs.setValue("publish_status", feFs.getString("status"));
-			String publisher = this.userIdJson.getString(feFs.getString("publisher"));
-			if (BaseUtil.strIsNull(publisher)) {
-				continue;
-			}
-			fs.setValue("created_by", publisher);
-			fs.setValue("created_utc_datetime", feFs.getDate("publish_date"));
-
-			String uuid = baseDao.add(fs);
-//            //閲嶆柊鑾峰彇jdbc杩炴帴
-//            Connection connection = null;
-//            try {
-//                connection = this.getJDBC();
-//            } catch (ClassNotFoundException e) {
-//                e.printStackTrace();
-//            }
-			DataTableEntity subFeFs = getSubDt(conn, "FE_APP5.PUB_NOTICE_RECEIVER", "NOTICE_ID", feFs.getString("id"));
-			DataTableEntity subData = new DataTableEntity();
-			FieldMetaEntity f = new FieldMetaEntity();
-			f.setTableName(new String[]{"product_oa_announcement_role"});
-			subData.setMeta(f);
-			for (int j = 0; j < subFeFs.getRows(); j++) {
-				FieldSetEntity fsSubFe = subFeFs.getFieldSetEntity(j);
-				FieldSetEntity fsSub = new FieldSetEntity();
-				fsSub.setTableName("product_oa_announcement_role");
-				String userId = userIdJson.getString(fsSubFe.getString("receiver"));
-				if (null == userId) {
-					continue;
-				}
-				//鑾峰彇鎵�灞為儴闂�
-				fsSub.setValue("user_id", userId);
-				fsSub.setValue("status", fsSubFe.getString("readed"));
-				fsSub.setValue("announcement_uuid", uuid);
-				subData.addFieldSetEntity(fsSub);
-			}
-			baseDao.add(subData);
-//            DataManipulationUtils.close(null, null, connection);
-		}
 	}
 
 	/**
@@ -403,6 +399,93 @@
 			throw new BaseException(e.getMessage(), e.toString());
 		}
 		return StringUtils.join(extentArr, ",");
+	}
+
+	/**
+	 * 鍚屾鍏憡琛ㄦ暟鎹�
+	 *
+	 * @param conn
+	 * @param tableName
+	 * @throws SQLException
+	 */
+	private void syncNotice(Connection conn, String tableName) throws SQLException {
+		//鍒ゆ柇鏄惁鏄凡缁忓悓姝ヨ繃鐨勮〃
+		DataTableEntity dataTable = baseDao.listTable("product_oa_announcement");
+		if (!BaseUtil.dataTableIsEmpty(dataTable)) {
+			return;
+		}
+		DataTableEntity noticeDt = null;
+		try {
+			noticeDt = BaseDaoServiceImpl.getDataTable(conn, tableName, "", new Object[]{});
+		} catch (Exception e) {
+			DataManipulationUtils.close(null, null, conn);
+			throw e;
+		}
+		for (int i = 0; i < noticeDt.getRows(); i++) {
+			FieldSetEntity feFs = noticeDt.getFieldSetEntity(i);
+			FieldSetEntity fs = new FieldSetEntity();
+			fs.setTableName("product_oa_announcement");
+			fs.setValue("title", feFs.getString("title"));
+			fs.setValue("content", feFs.getString("content"));
+			fs.setValue("type", feFs.getString("notice_category"));
+			fs.setValue("annex", feFs.getString("annex"));
+			DataTableEntity accessoryData = new DataTableEntity();
+			FieldSetEntity accessoryFs = new FieldSetEntity("temp");
+			accessoryFs.setValue("si02", "attachment");
+			accessoryFs.setValue("si04", "ANNEX");
+			accessoryData.addFieldSetEntity(accessoryFs);
+			if (!BaseUtil.dataTableIsEmpty(accessoryData)) {
+				try {
+					Map<String, List<String>> stringListMap = this.synchronizationAttachments(conn, accessoryData, fs, "product_oa_announcement", "annex");
+					fs.setValue("annex", CollectionUtil.join(stringListMap.get("annex"), ","));
+				} catch (Exception e) {
+					e.printStackTrace();
+				}
+
+			}
+			//Set 杞崲涓哄瓧绗︿覆閫楀彿鍒嗛殧
+			//鍐欐柟娉曞垽鏂槸澶氫汉杩樻槸閮ㄩ棬锛岃嫢鏄儴闂ㄨ浆鎹负浜�
+			fs.setValue("extent", this.getUserIds(conn, feFs.getString("receivers")));
+			fs.setValue("expiration_date", feFs.getDate("displayed_date"));
+			fs.setValue("status", feFs.getString("is_reminded"));
+			fs.setValue("publish_status", feFs.getString("status"));
+			String publisher = this.userIdJson.getString(feFs.getString("publisher"));
+			if (BaseUtil.strIsNull(publisher)) {
+				continue;
+			}
+			fs.setValue("created_by", publisher);
+			fs.setValue("created_utc_datetime", feFs.getDate("publish_date"));
+
+			String uuid = baseDao.add(fs);
+//            //閲嶆柊鑾峰彇jdbc杩炴帴
+//            ConnectionInterface connection = null;
+//            try {
+//                connection = this.getJDBC();
+//            } catch (ClassNotFoundException e) {
+//                e.printStackTrace();
+//            }
+			DataTableEntity subFeFs = getSubDt(conn, "FE_APP5.PUB_NOTICE_RECEIVER", "NOTICE_ID", feFs.getString("id"));
+			DataTableEntity subData = new DataTableEntity();
+			FieldMetaEntity f = new FieldMetaEntity();
+			f.setTableName(new String[]{"product_oa_announcement_role"});
+			subData.setMeta(f);
+			for (int j = 0; j < subFeFs.getRows(); j++) {
+				FieldSetEntity fsSubFe = subFeFs.getFieldSetEntity(j);
+				FieldSetEntity fsSub = new FieldSetEntity();
+				fsSub.setTableName("product_oa_announcement_role");
+				String userId = userIdJson.getString(fsSubFe.getString("receiver"));
+				if (null == userId) {
+					continue;
+				}
+				//鑾峰彇鎵�灞為儴闂�
+				fsSub.setValue("user_id", userId);
+				fsSub.setValue("status", fsSubFe.getString("readed"));
+				fsSub.setValue("announcement_uuid", uuid);
+				subData.addFieldSetEntity(fsSub);
+			}
+			baseDao.add(subData);
+//            DataManipulationUtils.close(null, null, connection);
+		}
 	}
 
 	/**
@@ -726,20 +809,21 @@
 	 * @return
 	 * @throws SQLException
 	 */
-	private void syncFunTable(Connection conn, String tableName) throws SQLException {
+	private void syncFunTable(Connection conn, String tableName) throws Exception {
 		//鍏憡琛�
 		if (tableName.equals("FE_APP5.PUB_NOTICE")) {
 			//涓や釜琛ㄥ缓绔嬪叧鑱�
 			this.originalTable.put("PUB_NOTICE", "product_oa_announcement");
 			syncNotice(conn, tableName);
 			//淇敼宸插悓姝ラ檮浠� 娣诲姞 module_uuid function_uuid
-			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"036ccacd-47da-4f6e-9cf7-972211717e6e", "ed86d09a-23be-4d8c-8cb2-be8622fe50f4", "product_oa_announcement"});
+//			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"036ccacd-47da-4f6e-9cf7-972211717e6e", "ed86d09a-23be-4d8c-8cb2-be8622fe50f4", "product_oa_announcement"});
 		}
 		//鑰冨嫟琛� 闇�鍚屾鍏宠仈鏁版嵁濡傝鍋囪〃 澶栧嚭琛�
 		if (tableName.equals("FE_APP5.APP_KQLRB")) {
 			this.originalTable.put("APP_KQLRB", "product_oa_punch_record");
 			this.originalTable.put("PLEASELEAVE", "product_oa_ask_for_leave");
 			this.originalTable.put("FT_1_WCDJB00", "product_oa_business_trip");
+
 			//鍚屾鑰冨嫟
 			this.synchronousClock(conn);
 			System.out.println("=================鑰冨嫟鍚屾鎴愬姛===============");
@@ -751,11 +835,11 @@
 			this.syncCcooperates(conn, tableName);
 			//鍗忓悓妯℃澘鏁版嵁
 			this.syncCollaborativeTemplate(conn);
-			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"127c3f55-a7b4-4a77-a097-a65ba95b76f0", "6e587365-8ebd-4ab5-bade-dd3b1bf640f8", "product_oa_cooperates"});
-
-			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"127c3f55-a7b4-4a77-a097-a65ba95b76f0", "6e587365-8ebd-4ab5-bade-dd3b1bf640f8", "product_oa_cooperate_flow_node"});
-
-			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"127c3f55-a7b4-4a77-a097-a65ba95b76f0", "6e587365-8ebd-4ab5-bade-dd3b1bf640f8", "product_oa_cooperate_flow_reply"});
+//			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"127c3f55-a7b4-4a77-a097-a65ba95b76f0", "6e587365-8ebd-4ab5-bade-dd3b1bf640f8", "product_oa_cooperates"});
+//
+//			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"127c3f55-a7b4-4a77-a097-a65ba95b76f0", "6e587365-8ebd-4ab5-bade-dd3b1bf640f8", "product_oa_cooperate_flow_node"});
+//
+//			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{"127c3f55-a7b4-4a77-a097-a65ba95b76f0", "6e587365-8ebd-4ab5-bade-dd3b1bf640f8", "product_oa_cooperate_flow_reply"});
 			System.out.println("=================鍗忓悓鍔炲叕鍚屾鎴愬姛===============");
 		}
 		//浼氳鍚屾
@@ -799,7 +883,7 @@
 	 * @param conn
 	 * @throws SQLException
 	 */
-	private void synchronousClock(Connection conn) throws SQLException {
+	private void synchronousClock(Connection conn) throws Exception {
 		//鍚屾璇峰亣 PLEASELEAVE
 		DataTableEntity pleaseleave = null;
 		try {
@@ -867,8 +951,15 @@
 				fieldSetEntity.setValue("id", leaveFse.getInteger("pl00"));
 				//PL11	璇蜂紤鍋囧紑濮嬫椂闂�            fill_in_time	濉崟鏃堕棿
 				String pl11 = leaveFse.getString("pl11");
-				fieldSetEntity.setValue("fill_in_time", pl11);
 				//PL11	璇蜂紤鍋囧紑濮嬫椂闂�                 start_time	寮�濮嬫椂闂�
+				if (!StringUtils.isEmpty(pl11)) {
+					//鍒ゆ柇鏄惁涓烘棩鏈熸牸寮�
+					fieldSetEntity.setValue("fill_in_time", DateUtil.parse(pl11).toJdkDate());
+					fieldSetEntity.setValue("start_time", fieldSetEntity.getObject("fill_in_time"));
+				} else {
+					fieldSetEntity.setValue("fill_in_time", pl11);
+					fieldSetEntity.setValue("start_time", pl11);
+				}
 				fieldSetEntity.setValue("start_time", pl11);
 				//PL15	璇蜂紤鍋囩粨鏉熸椂闂�                end_time	缁撴潫鏃堕棿
 				String pl15 = leaveFse.getString("pl15");
@@ -879,7 +970,12 @@
 						pl15 = pl11;
 					}
 				}
-				fieldSetEntity.setValue("end_time", pl15);
+				if (!StringUtils.isEmpty(pl15)) {
+					//鍒ゆ柇鏄惁涓烘棩鏈熸牸寮�
+					fieldSetEntity.setValue("fill_in_time", DateUtil.parse(pl15).toJdkDate());
+				} else {
+					fieldSetEntity.setValue("end_time", pl15);
+				}
 				//PL12	璇蜂紤鍋囧ぉ鏁� day	璇峰亣澶╂暟
 				fieldSetEntity.setValue("day", leaveFse.getString("pl12"));
 				//PL09	璇蜂紤鍋囧師鍥� cause	璇峰亣鍘熷洜
@@ -1026,12 +1122,25 @@
 		FieldSetEntity fieldSetEntity = new FieldSetEntity();
 		fieldSetEntity.setTableName("product_oa_ask_for_leave");
 		String f1w08 = fse.getString("f1w08");
-		//f1w08	璇蜂紤鍋囧紑濮嬫椂闂�    fill_in_time	濉崟鏃堕棿
-		fieldSetEntity.setValue("fill_in_time", f1w08);
-		//f1w08	璇蜂紤鍋囧紑濮嬫椂闂�                 start_time	寮�濮嬫椂闂�
-		fieldSetEntity.setValue("start_time", f1w08);
-		//f1w09	璇蜂紤鍋囩粨鏉熸椂闂�                end_time	缁撴潫鏃堕棿
-		fieldSetEntity.setValue("end_time", fse.getString("f1w09"));
+		if (!StringUtils.isEmpty(f1w08)) {
+			//鍒ゆ柇鏄惁涓烘棩鏈熸牸寮�
+			//f1w08	璇蜂紤鍋囧紑濮嬫椂闂�    fill_in_time	濉崟鏃堕棿
+			fieldSetEntity.setValue("fill_in_time", DateUtil.parse(f1w08).toJdkDate());
+			//f1w08	璇蜂紤鍋囧紑濮嬫椂闂�                 start_time	寮�濮嬫椂闂�
+			fieldSetEntity.setValue("start_time", fieldSetEntity.getObject("fill_in_time"));
+		} else {
+			//f1w08	璇蜂紤鍋囧紑濮嬫椂闂�    fill_in_time	濉崟鏃堕棿
+			fieldSetEntity.setValue("fill_in_time", f1w08);
+			//f1w08	璇蜂紤鍋囧紑濮嬫椂闂�                 start_time	寮�濮嬫椂闂�
+			fieldSetEntity.setValue("start_time", f1w08);
+		}
+		String f1w09 = fse.getString("f1w09");
+		if (!StringUtils.isEmpty(f1w09)) {
+			//鍒ゆ柇鏄惁涓烘棩鏈熸牸寮�
+			fieldSetEntity.setValue("end_time", DateUtil.parse(f1w09).toJdkDate());
+		} else {
+			fieldSetEntity.setValue("end_time", fse.getString("f1w09"));
+		}
 		//day	璇蜂紤鍋囧ぉ鏁� day	璇峰亣澶╂暟
 		fieldSetEntity.setValue("day", fse.getString("day"));
 		//f1w06	璇蜂紤鍋囧師鍥� cause	璇峰亣鍘熷洜
@@ -1205,7 +1314,7 @@
 	 *
 	 * @param clockDt 澶栧嚭data鏁版嵁
 	 */
-	private void synchronousClock(DataTableEntity clockDt) throws SQLException {
+	private void synchronousClock(DataTableEntity clockDt) throws Exception {
 		//鍚屾鑰冨嫟鏁版嵁
 		if (!BaseUtil.dataTableIsEmpty(clockDt)) {
 			DataTableEntity dataTableEntity = new DataTableEntity();
@@ -1263,11 +1372,11 @@
 				fieldSetEntity.setValue("time_four_result", fse.getString("xwkqjg"));
 //                String xwkqjg = fse.getString("xwkqjg");
 				dataTableEntity.addFieldSetEntity(fieldSetEntity);
-				if (dataTableEntity.getRows() == 1000) {
-					baseDao.add(dataTableEntity);
-					dataTableEntity = new DataTableEntity();
-					dataTableEntity.setMeta(f);
-				}
+//				if (dataTableEntity.getRows() == 1000) {
+//					baseDao.add(dataTableEntity);
+//					dataTableEntity = new DataTableEntity();
+//					dataTableEntity.setMeta(f);
+//				}
 				//璇蜂紤鍋囨斁鍒拌鍋囪〃閲岄潰
 //                switch (xwkqjg){
 //                        //姝e父
@@ -1303,7 +1412,8 @@
 //                }
 			}
 			if (!BaseUtil.dataTableIsEmpty(dataTableEntity)) {
-				baseDao.add(dataTableEntity);
+//				baseDao.add(dataTableEntity);
+				batchAddData.add(dataTableEntity);
 			}
 		}
 	}
@@ -2090,7 +2200,7 @@
 	/**
 	 * 鍚屾鍗忓悓娴佺▼娑堟伅琛�
 	 */
-	public void syncCollaborativeNews(DataTableEntity OrlDt, Map<String, String[]> stateMap, String tableName) {
+	public void syncCollaborativeNews(DataTableEntity OrlDt, Map<String, String[]> stateMap, String tableName) throws Exception {
 		String id = null;
 		String message_uuid = null;
 		String[] state = null;
@@ -2098,6 +2208,7 @@
 		FieldMetaEntity f = new FieldMetaEntity();
 		f.setTableName(new String[]{"product_sys_message_user"});
 		dataTableEntity.setMeta(f);
+		DataTableEntity dt1 = new DataTableEntity();
 		for (int i = 0; i < OrlDt.getRows(); i++) {
 			FieldSetEntity fs = OrlDt.getFieldSetEntity(i);
 			//娴佺▼鑺傜偣id
@@ -2151,7 +2262,9 @@
 
 				//鏌ョ湅璇︽儏
 				message.setValue("url", state[1]);
-				message_uuid = baseDao.add(message);
+				dt1.addFieldSetEntity(message);
+				message_uuid = UUID.randomUUID().toString();
+				message.setValue("uuid", message_uuid);
 			}
 
 			FieldSetEntity message_user = new FieldSetEntity();
@@ -2181,8 +2294,17 @@
 			}
 			message_user.setValue("user_id", user_id);
 			dataTableEntity.addFieldSetEntity(message_user);
+			if (dt1.getRows() > 50000) {
+				batchAddData.add(dt1);
+				dt1 = new DataTableEntity();
+			}
+			if (dataTableEntity.getRows() > 50000) {
+				batchAddData.add(dataTableEntity);
+				dataTableEntity = new DataTableEntity();
+			}
 		}
-		baseDao.add(dataTableEntity);
+		batchAddData.add(dt1);
+		batchAddData.add(dataTableEntity);
 	}
 
 	/**
@@ -2918,7 +3040,7 @@
 //            fs.setValue("script_method", buttonsFs.getString("se14"));
 			//璺敱鍚嶇О
 			fs.setValue("route_name", BaseUtil.getPageCode());
-
+			fs.setValue("terminal_type", 1);
 			String uuid = baseDao.add(fs);
 			//09涓洪�佸姙鎸夐挳
 			if ("09".equals(buttonsFs.getString("se12")) && !BaseUtil.strIsNull(buttonsFs.getString("se14"))) {
@@ -3185,7 +3307,7 @@
 			e.printStackTrace();
 		}
 		//淇敼宸插悓姝ラ檮浠� 娣诲姞 module_uuid function_uuid
-		baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{moduleUUID, funUUID, table});
+//		baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{moduleUUID, funUUID, table});
 		String sf05 = funFs.getString("sf05");
 		//鑾峰彇jdbc杩炴帴
 		Connection conn = this.getJDBC();
@@ -3352,6 +3474,8 @@
 		}
 	}
 
+	private Set<String> clearAttachment = new HashSet<>();
+
 	/**
 	 * 杩佺Щ涓氬姟鏁版嵁琛�
 	 *
@@ -3376,8 +3500,8 @@
 			SpringMVCContextHolder.getSystemLogger().error(e);
 			throw e;
 		}
-		Map<String, String> map = null;
-		Boolean syncAttachments = false;
+		Map<String, String> map;
+		Boolean syncAttachments;
 		DataTableEntity accessoryData;
 		//鏄惁鏄柊琛�
 		if (isNew) {
@@ -3393,24 +3517,20 @@
 					this.attachmentValue = this.attachmentValue + accessoryData.getString(i, "si04") + ",";
 				}
 				this.attachmentValue = "," + this.attachmentValue;
+			} else {
+				syncAttachments = false;
 			}
 			//鍚屾琛ㄧ粨鏋�  鍙婂瓧娈典俊鎭�
 			map = this.syncTableField(conn, Orlfs, sf28s, subField);
-			//鍒锋柊table 琛�
-//                DataPoolCacheImpl.getInstance().cacheDataByTable("product_sys_datamodel_table");;
-			//鍒锋柊field 琛�
-//                DataPoolCacheImpl.getInstance().cacheDataByTable("product_sys_datamodel_field");
-//                try {
-//                    Thread.sleep(7000);
-//                } catch (InterruptedException e) {
-//                    e.printStackTrace();
-//                    SpringMVCContextHolder.getSystemLogger().error(e);
-//                }
-//            } else {
-//                return;
-//            }
-
+			//娓呯┖琛ㄦ暟鎹�
+			String clearTableName = Orlfs.getString("st03").toLowerCase();
+			if (!clearTable.contains(clearTableName)) {
+				baseDao.executeUpdate("truncate table " + clearTableName);
+				clearTable.add(clearTableName);
+			}
 		} else {
+			map = null;
+			syncAttachments = false;
 			//宸叉湁琛�
 			this.syncFunTable(conn, sf28s[0] + '.' + sf28s[1]);
 			return;
@@ -3425,59 +3545,90 @@
 			SpringMVCContextHolder.getSystemLogger().error(e);
 			throw e;
 		}
-
+		//鍒涘缓10涓浐瀹氱嚎绋�
+		DataTableEntity dt = new DataTableEntity();
 		//涓氬姟琛� fe鐨刬d  瀵瑰簲UUID
 		for (int i = 0; i < dataDt.getRows(); i++) {
+			//灏嗗惊鐜腑鐨勬暟鎹斁鍏ョ嚎绋嬫睜
 			FieldSetEntity dataFs = dataDt.getFieldSetEntity(i);
-			FieldSetEntity tableFs = new FieldSetEntity();
-			tableFs.setTableName(this.originalTable.getString(taName));
-			//key 涓烘湰琛ㄥ瓧娈�   value 涓烘暟鎹簮瀛楁
-			for (String key : map.keySet()) {
-				//鍗曞叧鑱旂殑鐢ㄦ埛user_id
-				if ("USER".equals(fieldTypeJson.getString(key))) {
-					tableFs.setValue(key, userIdJson.getString(dataFs.getString(map.get(key))));
-					//鍗曞叧鑱旂殑缁勭粐鏋舵瀯uuid
-				} else if ("GROUP".equals(fieldTypeJson.getString(key))) {
-					tableFs.setValue(key, groupJson.get(dataFs.getString(map.get(key))));
-					//澶氶�夌粍缁囨灦鏋�  杞崲涓虹敤鎴穟ser_ids
-				} else if ("USERSGROUPS".equals(fieldTypeJson.getString(map.get(key)))) {
-					tableFs.setValue(key, this.getUserIds(conn, dataFs.getString(map.get(key))));
-				} else {
-					//鏄惁鏈夊瓧娈靛叧鑱斾富琛�
-					if (subField != null && subField.equals(map.get(key))) {
-						//琛ㄥ悕鍔犱笅鏍� 鍞竴
-						tableFs.setValue(key, pxMap.getString(masterTableName + dataFs.getString(map.get(key))));
+
+			try {
+				FieldSetEntity tableFs = new FieldSetEntity();
+				tableFs.setTableName(this.originalTable.getString(taName));
+				//key 涓烘湰琛ㄥ瓧娈�   value 涓烘暟鎹簮瀛楁
+				for (String key : map.keySet()) {
+					//鍗曞叧鑱旂殑鐢ㄦ埛user_id
+					if ("USER".equals(fieldTypeJson.getString(key))) {
+						tableFs.setValue(key, userIdJson.getString(dataFs.getString(map.get(key))));
+						//鍗曞叧鑱旂殑缁勭粐鏋舵瀯uuid
+					} else if ("GROUP".equals(fieldTypeJson.getString(key))) {
+						tableFs.setValue(key, groupJson.get(dataFs.getString(map.get(key))));
+						//澶氶�夌粍缁囨灦鏋�  杞崲涓虹敤鎴穟ser_ids
+					} else if ("USERSGROUPS".equals(fieldTypeJson.getString(map.get(key)))) {
+						tableFs.setValue(key, this.getUserIds(conn, dataFs.getString(map.get(key))));
 					} else {
+						//鏄惁鏈夊瓧娈靛叧鑱斾富琛�
+						if (subField != null && subField.equals(map.get(key))) {
+							//琛ㄥ悕鍔犱笅鏍� 鍞竴
+							tableFs.setValue(key, pxMap.getString(masterTableName + dataFs.getString(map.get(key))));
+						} else {
+							tableFs.setValue(key, dataFs.getString(map.get(key)));
+						}
+					}
+					if (StringUtils.isEmpty(tableFs.getString(key))) {
+
 						tableFs.setValue(key, dataFs.getString(map.get(key)));
 					}
-				}
-				if(StringUtils.isEmpty(tableFs.getString(key))){
-					tableFs.setValue(key,dataFs.getString(map.get(key)));
-				}
-			}
-			if("bgyplyb".equals(tableFs.getTableName()) && "1208".equals(dataFs.getString("bg00"))){
-				System.out.println(1);
-			}
-			//鍚屾闄勪欢
-			if (syncAttachments) {
-				Map<String, List<String>> fileMaps = this.synchronizationAttachments(conn, accessoryData, dataFs, tableFs.getTableName(), null);
-				if (fileMaps.size() > 0) {
-					for (String fieldName : fileMaps.keySet()) {
-						List<String> value = fileMaps.get(fieldName);
-						tableFs.setValue(fieldName, StringUtils.join(value, ","));
+					if (tableFs.getTableName().equalsIgnoreCase("sfgl")) {
+						tableFs.setValue("is_print", "0");
 					}
 				}
-			}
-			String uuid = "";
-			try {
-				uuid = baseDao.add(tableFs);
-			} catch (BaseException e) {
+				if ("bgyplyb".equals(tableFs.getTableName()) && "1208".equals(dataFs.getString("bg00"))) {
+					System.out.println(1);
+				}
+				//鍚屾闄勪欢
+				if (syncAttachments) {
+					Map<String, List<String>> fileMaps = this.synchronizationAttachments(conn, accessoryData, dataFs, tableFs.getTableName(), null);
+					if (fileMaps.size() > 0) {
+						for (String fieldName : fileMaps.keySet()) {
+							List<String> value = fileMaps.get(fieldName);
+							tableFs.setValue(fieldName, StringUtils.join(value, ","));
+						}
+					}
+				}
+				String uuid = UUID.randomUUID().toString();
+				try {
+					tableFs.setValue("uuid", uuid);
+//				uuid = baseDao.add(tableFs);
+					if (StringUtils.isEmpty(tableFs.getString("created_by"))) {
+						tableFs.setValue("created_by", 1);
+						tableFs.setValue("created_utc_datetime", new Date());
+					}
+					if ("fwgz".equalsIgnoreCase(tableFs.getTableName())) {
+						tableFs.setValue("print_sign", tableFs.getString("fw22"));
+					}
+					dt.addFieldSetEntity(tableFs);
+				} catch (BaseException e) {
+					e.printStackTrace();
+					SpringMVCContextHolder.getSystemLogger().error(e);
+					logger.error("syncTable", e);
+					throw e;
+				} catch (Exception e) {
+					e.printStackTrace();
+					SpringMVCContextHolder.getSystemLogger().error(e);
+					logger.error("syncTable", e);
+					throw e;
+				}
+				synchronized (pxMap) {
+					//琛ㄥ敮涓�id  瀵瑰簲uuid
+					pxMap.put(taName + dataFs.getString(this.pk), uuid);
+				}
+			} catch (Exception e) {
 				e.printStackTrace();
-				SpringMVCContextHolder.getSystemLogger().error(e);
 			}
-			//琛ㄥ敮涓�id  瀵瑰簲uuid
-			pxMap.put(taName + dataFs.getString(this.pk), uuid);
 		}
+		//鎵归噺鎻掑叆鏁版嵁
+		batchAddData.add(dt);
 		//鍚屾瀹屼竴寮犺〃鏁版嵁鍚庢竻绌簀son鏁版嵁
 		fieldTypeJson.clear();
 		DataTableEntity subTble = null;
@@ -3489,13 +3640,19 @@
 			SpringMVCContextHolder.getSystemLogger().error(e);
 			throw e;
 		}
-		for (int i = 0; i < subTble.getRows(); i++) {
-			FieldSetEntity sf = subTble.getFieldSetEntity(i);
-			String a[] = {sf.getString("st02"), sf.getString("st03"), taName};
-			if (isStr(sf.getString("st02") + "\\." + sf.getString("st03"))) {
-				isNew = false;
+		try {
+			for (int i = 0; i < subTble.getRows(); i++) {
+				FieldSetEntity sf = subTble.getFieldSetEntity(i);
+				String a[] = {sf.getString("st02"), sf.getString("st03"), taName};
+				if (isStr(sf.getString("st02") + "\\." + sf.getString("st03"))) {
+					isNew = false;
+				}
+				this.syncTable(a, isNew, sf.getString("sf01").toLowerCase(), conn);
 			}
-			this.syncTable(a, isNew, sf.getString("sf01").toLowerCase(), conn);
+		} catch (Exception e) {
+			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			logger.error("syncTable", e);
 		}
 	}
 
@@ -3620,6 +3777,7 @@
 							fieldSetEntity.setMeta(f);
 							fieldSetEntity.setValue(field, name);
 							fieldSetEntity.setValue("~field_name~", field);
+							fieldSetEntity.setValue("function_uuid", this.functionUuid);
 							//鏀惧叆瀹㈡埛uuid
 							fieldSetEntity.setValue("client_uuid", this.clientUUID);
 							rpe.setFiles(fileMap);
@@ -3630,6 +3788,7 @@
 							} catch (Exception e) {
 								e.getStackTrace();
 								SpringMVCContextHolder.getSystemLogger().error(e);
+								logger.error("synchronizationAttachments", e);
 							}
 						}
 					}
@@ -3690,6 +3849,7 @@
 					fieldSetEntity.setValue("~field_name~", field);
 					//鏀惧叆瀹㈡埛uuid
 					fieldSetEntity.setValue("client_uuid", this.clientUUID);
+					fieldSetEntity.setValue("function_uuid", this.functionUuid);
 					rpe.setFiles(fileMap);
 					rpe.setFormData(fieldSetEntity);
 					try {
@@ -3953,6 +4113,7 @@
 		} catch (Exception e) {
 			DataManipulationUtils.close(null, null, conn);
 			SpringMVCContextHolder.getSystemLogger().error(e);
+			e.printStackTrace();
 			throw e;
 		}
 		if (Orlfs == null) {
@@ -4000,6 +4161,7 @@
 			} catch (Exception e) {
 				e.getStackTrace();
 				SpringMVCContextHolder.getSystemLogger().error(e);
+				logger.error("syncModel", e);
 			}
 
 		}
@@ -4017,21 +4179,30 @@
 		modelFs.setValue("created_by", created_by);
 		modelFs.setValue("created_utc_datetime", new Date());
 		String modelUuid = null;
-		FieldSetEntity existFlow = baseDao.getFieldSetEntityByFilter("product_sys_flow_model", "title = ?", new Object[]{flowTitle}, false);
-		if (!FieldSetEntity.isEmpty(existFlow) && !flag) {
-			return existFlow.getString("type_code");
-		}
+		FieldSetEntity existFlow = baseDao.getFieldSetEntityByFilter("product_sys_flow_model", "title = ? or table_uuid=?", new Object[]{flowTitle, this.originalTable.getString(wm04s[1])}, false);
+//		if (!FieldSetEntity.isEmpty(existFlow) && !flag) {
+//			return existFlow.getString("type_code");
+//		}
 		try {
 			if (!FieldSetEntity.isEmpty(existFlow)) {
 				FieldSetEntity mvcPageFse = baseDao.getFieldSetEntityByFilter("product_sys_mvc_page", " flow_uuid = ?", new String[]{wm05}, false);
 				typeCode = existFlow.getString("type_code");
 				modelFs = existFlow;
 				modelUuid = existFlow.getString("uuid");
+//				functionUuid = mvcPageFse.getString("function_uuid");
 			} else {
+				if (modelFs.getString("table_uuid").equalsIgnoreCase("APP_ADMINISTRATIVE_CASES") || modelFs.getString("table_uuid").equalsIgnoreCase("APP_FINAL_SURVEY_REPORT")) {
+					modelFs.setValue("module_uuid", "7070362e-6010-4b53-b773-b68b209ad67e");
+
+				}
 				modelUuid = baseDao.add(modelFs);
+
 			}
 		} catch (Exception e) {
 			e.printStackTrace();
+			SpringMVCContextHolder.getSystemLogger().error(e);
+			logger.error("syncModel", e);
+			return typeCode;
 		}
 
 		FieldSetEntity mvcPageFse = baseDao.getFieldSetEntityByFilter("product_sys_mvc_page", " flow_uuid = ?", new String[]{wm05}, false);
@@ -4070,10 +4241,12 @@
 					this.synchronizingProcessMessages(conn, tricode_funs, stateMap);
 				} catch (BaseException e) {
 					e.printStackTrace();
+					logger.error(e.getMessage(), e);
 					SpringMVCContextHolder.getSystemLogger().error(e);
 				}
 			} catch (Exception e) {
 				e.getStackTrace();
+				logger.error("syncModel", e);
 				SpringMVCContextHolder.getSystemLogger().error(e);
 			}
 		}
@@ -4370,7 +4543,7 @@
 	 * @return
 	 * @throws SQLException
 	 */
-	public Map<String, String> syncDetail(String tricode_funs, Connection conn, JSONObject UUIDMap, String tableName, String modelUUID, Map<String, FieldSetEntity> taskFseMap) throws SQLException {
+	public Map<String, String> syncDetail(String tricode_funs, Connection conn, JSONObject UUIDMap, String tableName, String modelUUID, Map<String, FieldSetEntity> taskFseMap) throws Exception {
 		tableName = tableName.split("\\.")[1];
 		OrgIdUUIDmap = Maps.newHashMap();
 		DataTableEntity OrlDt = null;
@@ -4390,6 +4563,8 @@
 		FieldMetaEntity f = new FieldMetaEntity();
 		f.setTableName(new String[]{"product_sys_flow_detail"});
 		DetailData.setMeta(f);
+		DataTableEntity dt = new DataTableEntity();
+
 		for (int i = 0; i < OrlDt.getRows(); i++) {
 			FieldSetEntity Orlfs = OrlDt.getFieldSetEntity(i);
 			FieldSetEntity DetailFs = new FieldSetEntity();
@@ -4495,10 +4670,15 @@
 			}
 			//鍏宠仈娴佺▼浠诲姟琛�
 			DetailFs.setValue("task_uuid", taskFse.getUUID());
-			baseDao.add(DetailFs);
+			String uuid = UUID.randomUUID().toString();
+			DetailFs.setValue("uuid", uuid);
+			DetailFs.setValue("~type~", "add");
+//			baseDao.add(DetailFs);
+			dt.addFieldSetEntity(DetailFs);
 			OrgIdUUIDmap.put(wi00, DetailFs);
 			stateMap.put(wi00, nodeState);
 		}
+		batchAddData.add(dt);
 		return stateMap;
 	}
 
@@ -4511,7 +4691,7 @@
 	 * @param stateMap
 	 * @throws SQLException
 	 */
-	public void synchronizingProcessMessages(Connection conn, String tricode_funs, Map<String, String> stateMap) throws SQLException {
+	public void synchronizingProcessMessages(Connection conn, String tricode_funs, Map<String, String> stateMap) throws Exception {
 		try {
 			StringBuffer sql = new StringBuffer();
 			sql.append(" SELECT * FROM FE_BASE5.MESSAGEINFOR WHERE ME14 IN ( ")
@@ -4533,7 +4713,7 @@
 	/**
 	 * 鍚屾娴佺▼娑堟伅琛�
 	 */
-	public void synchronizingProcessMessages(DataTableEntity OrlDt, Map<String, String> stateMap, String tableName) {
+	public void synchronizingProcessMessages(DataTableEntity OrlDt, Map<String, String> stateMap, String tableName) throws Exception {
 		String id = null;
 		String message_uuid = null;
 		String state = null;
@@ -4541,6 +4721,7 @@
 		FieldMetaEntity f = new FieldMetaEntity();
 		f.setTableName(new String[]{"product_sys_message"});
 		dataTableEntity.setMeta(f);
+		DataTableEntity dt1 = new DataTableEntity();
 		for (int i = 0; i < OrlDt.getRows(); i++) {
 			FieldSetEntity fs = OrlDt.getFieldSetEntity(i);
 			//娴佺▼鑺傜偣id
@@ -4602,7 +4783,9 @@
 				} else if ("2".equals(state)) {
 					message.setValue("url", "1621321824686868oKWL726?uuid=" + source_uuid);
 				}
-				message_uuid = baseDao.add(message);
+				message_uuid = UUID.randomUUID().toString();
+				message.setValue("uuid", message_uuid);
+				dt1.addFieldSetEntity(message);
 			}
 
 			FieldSetEntity message_user = new FieldSetEntity();
@@ -4634,14 +4817,23 @@
 			}
 			message_user.setValue("user_id", user_id);
 			dataTableEntity.addFieldSetEntity(message_user);
-			if (dataTableEntity.getRows() == 1000) {
-				baseDao.add(dataTableEntity);
+//			if (dataTableEntity.getRows() == 1000) {
+//				baseDao.add(dataTableEntity);
+//				dataTableEntity = new DataTableEntity();
+//				dataTableEntity.setMeta(f);
+//			}
+			if (dt1.getRows() > 50000) {
+				batchAddData.add(dt1);
+				dt1 = new DataTableEntity();
+			}
+			if (dataTableEntity.getRows() > 50000) {
+				batchAddData.add(dataTableEntity);
 				dataTableEntity = new DataTableEntity();
-				dataTableEntity.setMeta(f);
 			}
 		}
+		batchAddData.add(dt1);
 		if (!BaseUtil.dataTableIsEmpty(dataTableEntity)) {
-			baseDao.add(dataTableEntity);
+			batchAddData.add(dataTableEntity);
 		}
 	}
 
@@ -4708,7 +4900,7 @@
 	 * @return
 	 * @throws SQLException
 	 */
-	public Map<String, FieldSetEntity> syncTask(String tricode_funs, Connection conn, String modelUUID) throws SQLException, BaseException {
+	public Map<String, FieldSetEntity> syncTask(String tricode_funs, Connection conn, String modelUUID) throws Exception {
 		DataTableEntity OrlDt = null;
 		try {
 			OrlDt = BaseDaoServiceImpl.getDataTable(conn, "fe_base5.WF_TASK", "WT13=(SELECT se16  FROM fe_base5.SYS_EVENT where se01=? and se08 = 1)", new Object[]{tricode_funs
@@ -4719,7 +4911,7 @@
 			throw e;
 		}
 		Map<String, FieldSetEntity> map = Maps.newHashMap();
-
+		DataTableEntity dt = new DataTableEntity();
 		for (int i = 0; i < OrlDt.getRows(); i++) {
 			FieldSetEntity Orlfs = OrlDt.getFieldSetEntity(i);
 			FieldSetEntity taskFs = new FieldSetEntity();
@@ -4761,9 +4953,15 @@
 			taskFs.setValue("record_uuid", record_uuid);
 			taskFs.setValue("created_by", id);
 			taskFs.setValue("created_utc_datetime", wt09);
-			baseDao.add(taskFs);
+			taskFs.setValue("uuid", UUID.randomUUID().toString());
+//			baseDao.add(taskFs);
+			dt.addFieldSetEntity(taskFs);
 			map.put(Orlfs.getString("wt00"), taskFs);
 		}
+
+		batchAddData.add(dt);
+
+
 		return map;
 	}
 
@@ -5128,9 +5326,11 @@
 			conn = this.getJDBC();
 		} catch (SQLException e) {
 			e.printStackTrace();
+			logger.error("run", e);
 			SpringMVCContextHolder.getSystemLogger().error(e);
 		} catch (ClassNotFoundException e) {
 			e.printStackTrace();
+			logger.error("run", e);
 			SpringMVCContextHolder.getSystemLogger().error(e);
 		}
 		String moduleUUID = null;
@@ -5152,9 +5352,7 @@
 					//琛ㄥ悕鏌ヨ鍔熻兘
 					FieldSetEntity fse = baseDao.getFieldSetBySQL("SELECT a.* FROM product_sys_functions a LEFT JOIN product_sys_datamodel_table b on a.table_uuid = b.uuid WHERE b.table_name = ?", new String[]{tableName.toLowerCase()}, false);
 					moduleUUID = this.getMoudleByFunctionTricode(fse.getString(CmnConst.TRICODE));
-					String functionUuid = fse.getUUID();
 					//淇敼宸插悓姝ラ檮浠� 娣诲姞 module_uuid function_uuid
-					baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{moduleUUID, functionUuid, tableName.toLowerCase()});
 					//鍚屾娴佺▼
 					this.syncFlow(conn, moduleUUID, sf28);
 				}
@@ -5162,49 +5360,54 @@
 			} catch (SQLException e) {
 				e.printStackTrace();
 				SpringMVCContextHolder.getSystemLogger().error(e);
+				logger.error("run", e);
 			}
 		} else {
 			try {
 				//鍚屾琛ㄥ拰琛ㄦ暟鎹�
 				sf28 = this.synchronizeTablesData(conn, this.tricode_funs);
 			} catch (SQLException e) {
+				logger.error("run", e);
 				e.printStackTrace();
 				SpringMVCContextHolder.getSystemLogger().error(e);
 			}
 			String table_name = sf28.split("\\.")[1];
 			String myTableName = this.originalTable.getString(table_name);
 			if (!isStr(sf28)) {
-				//鍚屾mvc
-				try {
-					moduleUUID = this.synchronizationModuleName(conn, this.tricode_funs, sf28);
-				} catch (SQLException e) {
-					e.printStackTrace();
-					SpringMVCContextHolder.getSystemLogger().error(e);
-				}
-			} else {
-				//宸叉湁鍔熻兘鐨勮〃灏变笉鍚屾mvc  鏌ヨ璇ュ姛鑳界殑妯″潡uuid
-				StringBuffer sql = new StringBuffer();
-				sql.append(" tricode = (\n")
-						.append("SELECT tricode_parent FROM product_sys_functions a LEFT JOIN \n")
-						.append("product_sys_datamodel_table b on a.table_uuid = b.uuid \n")
-						.append("WHERE b.table_name = ? GROUP BY tricode_parent\n")
-						.append(") AND function_type_uuid = 0");
-
-				FieldSetEntity fieldSetEntity = baseDao.getFieldSetEntityByFilter("product_sys_functions", sql.toString(), new String[]{myTableName}, false);
-				moduleUUID = fieldSetEntity.getUUID();
+				System.out.println(1);
 			}
+//            if (!isStr(sf28)) {
+//                //鍚屾mvc
+//                try {
+//                    moduleUUID = this.synchronizationModuleName(conn, this.tricode_funs, sf28);
+//                } catch (SQLException e) {
+//                    e.printStackTrace();
+//                    SpringMVCContextHolder.getSystemLogger().error(e);
+//                }
+//            } else {
+			//宸叉湁鍔熻兘鐨勮〃灏变笉鍚屾mvc  鏌ヨ璇ュ姛鑳界殑妯″潡uuid
+			StringBuffer sql = new StringBuffer();
+			sql.append(" tricode = (\n")
+					.append("SELECT tricode_parent FROM product_sys_functions a LEFT JOIN \n")
+					.append("product_sys_datamodel_table b on a.table_uuid = b.uuid \n")
+					.append("WHERE b.table_name = ? GROUP BY tricode_parent\n")
+					.append(") AND function_type_uuid = 0");
+
+			FieldSetEntity fieldSetEntity = baseDao.getFieldSetEntityByFilter("product_sys_functions", sql.toString(), new String[]{myTableName}, false);
+			moduleUUID = fieldSetEntity.getUUID();
+//            }
 			if (!isStr(sf28)) {
 				this.syncFlow(conn, moduleUUID, sf28);
 			}
 			//琛ㄥ悕鏌ヨ鍔熻兘
 			FieldSetEntity fse = baseDao.getFieldSetBySQL("SELECT a.* FROM product_sys_functions a LEFT JOIN product_sys_datamodel_table b on a.table_uuid = b.uuid WHERE b.table_name = ?", new String[]{myTableName}, false);
-			String functionUuid = fse.getUUID();
 			//淇敼宸插悓姝ラ檮浠� 娣诲姞 module_uuid function_uuid
-			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{moduleUUID, functionUuid, myTableName});
+//			baseDao.executeUpdate(" UPDATE product_sys_attachments SET module_uuid = ?, function_uuid = ? WHERE attachment_data_table = ? AND function_uuid is null ", new String[]{moduleUUID, functionUuid, myTableName});
 		}
 		try {
 			DataManipulationUtils.close(null, null, conn);
 		} catch (SQLException e) {
+			logger.error("run", e);
 			e.printStackTrace();
 			SpringMVCContextHolder.getSystemLogger().error(e);
 		}
@@ -5232,6 +5435,7 @@
 		} catch (SQLException e) {
 			e.printStackTrace();
 			SpringMVCContextHolder.getSystemLogger().error(e);
+			logger.error("syncFlow", e);
 		}
 		//鍒濆鍖栬彍鍗曠紦瀛�
 //        systemMenusService.initSystemMenu();

--
Gitblit v1.9.2