fix 基础表同步修改
This commit is contained in:
8
wms_pro/hd/.idea/jarRepositories.xml
generated
8
wms_pro/hd/.idea/jarRepositories.xml
generated
@@ -8,13 +8,13 @@
|
|||||||
</remote-repository>
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="central" />
|
<option name="id" value="central" />
|
||||||
<option name="name" value="Central Repository" />
|
<option name="name" value="Maven Central repository" />
|
||||||
<option name="url" value="http://121.40.234.130:8081/repository/maven-public/" />
|
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="central" />
|
<option name="id" value="central" />
|
||||||
<option name="name" value="Maven Central repository" />
|
<option name="name" value="Central Repository" />
|
||||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
<option name="url" value="http://121.40.234.130:8081/repository/maven-public/" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
<remote-repository>
|
<remote-repository>
|
||||||
<option name="id" value="jboss.community" />
|
<option name="id" value="jboss.community" />
|
||||||
|
|||||||
3
wms_pro/hd/.idea/misc.xml
generated
3
wms_pro/hd/.idea/misc.xml
generated
@@ -7,6 +7,9 @@
|
|||||||
<option name="priority" value="Medium" />
|
<option name="priority" value="Medium" />
|
||||||
<option name="excludeFilter" value="" />
|
<option name="excludeFilter" value="" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="JavaScriptSettings">
|
||||||
|
<option name="languageLevel" value="ES6" />
|
||||||
|
</component>
|
||||||
<component name="MavenProjectsManager">
|
<component name="MavenProjectsManager">
|
||||||
<option name="originalFiles">
|
<option name="originalFiles">
|
||||||
<list>
|
<list>
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ public class ExecutionController {
|
|||||||
}
|
}
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
@GetMapping("/dtl/{id}")
|
@GetMapping("/dtl/{proc_inst_id}")
|
||||||
public ResponseEntity<Object> getDtl(@PathVariable String proc_inst_id) {
|
public ResponseEntity<Object> getDtl(@PathVariable String proc_inst_id) {
|
||||||
List<ActHiExecution> list = iActHiExecutionService.list(new LambdaQueryWrapper<ActHiExecution>().eq(ActHiExecution::getProc_inst_id, proc_inst_id));
|
List<ActHiExecution> list = iActHiExecutionService.list(new LambdaQueryWrapper<ActHiExecution>().eq(ActHiExecution::getProc_inst_id, proc_inst_id));
|
||||||
JSONArray array = new JSONArray();
|
JSONArray array = new JSONArray();
|
||||||
|
|||||||
@@ -3,6 +3,9 @@ package org.nl.wms.flow_manage.flow.service.history.dao.mapper;
|
|||||||
import org.nl.wms.flow_manage.flow.service.history.dao.ActHiExecution;
|
import org.nl.wms.flow_manage.flow.service.history.dao.ActHiExecution;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 流程历史处理表 Mapper 接口
|
* 流程历史处理表 Mapper 接口
|
||||||
@@ -12,5 +15,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|||||||
* @since 2024-04-28
|
* @since 2024-04-28
|
||||||
*/
|
*/
|
||||||
public interface ActHiExecutionMapper extends BaseMapper<ActHiExecution> {
|
public interface ActHiExecutionMapper extends BaseMapper<ActHiExecution> {
|
||||||
|
/**
|
||||||
|
* 根据数据表名获取所需字段名称
|
||||||
|
*
|
||||||
|
* @param tableName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<Map<String, String>> getTableColumnNames(String tableName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.flow_manage.flow.service.history.dao.mapper.ActHiExecutionMapper">
|
<mapper namespace="org.nl.wms.flow_manage.flow.service.history.dao.mapper.ActHiExecutionMapper">
|
||||||
|
<select id="getTableColumnNames" resultType="map">
|
||||||
|
SELECT COLUMN_COMMENT AS activity_name,
|
||||||
|
COLUMN_COMMENT AS update_time,
|
||||||
|
COLUMN_COMMENT AS form_id,
|
||||||
|
COLUMN_COMMENT AS form_type,
|
||||||
|
COLUMN_COMMENT AS form_data
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE TABLE_SCHEMA = DATABASE()
|
||||||
|
AND TABLE_NAME = #{tableName}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
package org.nl.wms.pm_manage.form_data.service;
|
package org.nl.wms.pm_manage.form_data.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.github.pagehelper.Page;
|
import com.github.pagehelper.Page;
|
||||||
import org.nl.common.domain.entity.PageQuery;
|
import org.nl.common.domain.entity.PageQuery;
|
||||||
|
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||||
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
import org.nl.wms.pm_manage.form_data.service.dao.PmFormData;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery;
|
import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery;
|
||||||
@@ -22,7 +25,7 @@ public interface IPmFormDataService extends IService<PmFormData> {
|
|||||||
|
|
||||||
Integer syncFormData(String type,String dataString);
|
Integer syncFormData(String type,String dataString);
|
||||||
|
|
||||||
List<PmFormData> syncAnalyse(SyncFormMapping mapping, String dataString);
|
JSONObject mappingParse(JSONArray mappingJson, BmFormStruc one, JSONObject sourceData);
|
||||||
|
|
||||||
List<PmFormData> getByType(String from_type);
|
List<PmFormData> getByType(String from_type);
|
||||||
|
|
||||||
@@ -30,6 +33,7 @@ public interface IPmFormDataService extends IService<PmFormData> {
|
|||||||
|
|
||||||
List<PmFormDataDto> queryTree(FormDataQuery query, PageQuery page);
|
List<PmFormDataDto> queryTree(FormDataQuery query, PageQuery page);
|
||||||
|
|
||||||
|
List<PmFormData> syncAnalyse(SyncFormMapping formMapping, String sourceString);
|
||||||
|
|
||||||
Object getSonDtlFormData(String id);
|
Object getSonDtlFormData(String id);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.pm_manage.form_data.service.impl;
|
package org.nl.wms.pm_manage.form_data.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -71,7 +72,6 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
|||||||
this.saveBatch(pmFormDatas);
|
this.saveBatch(pmFormDatas);
|
||||||
return pmFormDatas.size();
|
return pmFormDatas.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PmFormData> syncAnalyse(SyncFormMapping formMapping, String sourceString) {
|
public List<PmFormData> syncAnalyse(SyncFormMapping formMapping, String sourceString) {
|
||||||
BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", formMapping.getForm_type()));
|
BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", formMapping.getForm_type()));
|
||||||
@@ -151,9 +151,8 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
|||||||
return this.list(lqw);
|
return this.list(lqw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
private JSONObject mappingParse(JSONArray mapping_json, BmFormStruc formStruc, JSONObject sourceData) {
|
public JSONObject mappingParse(JSONArray mapping_json, BmFormStruc formStruc, JSONObject sourceData) {
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(sourceData)) {
|
if (CollectionUtils.isEmpty(sourceData)) {
|
||||||
throw new BadRequestException("当前业务数据为空");
|
throw new BadRequestException("当前业务数据为空");
|
||||||
}
|
}
|
||||||
@@ -185,7 +184,7 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
private JSONObject fieldMapping(Set<String> fields, Map<String, JSONObject> fieldMapping, JSONObject sourceData) {
|
public JSONObject fieldMapping(Set<String> fields, Map<String, JSONObject> fieldMapping, JSONObject sourceData) {
|
||||||
Map<String, String> SpelMap = new HashMap<>();
|
Map<String, String> SpelMap = new HashMap<>();
|
||||||
JSONObject data = new JSONObject();
|
JSONObject data = new JSONObject();
|
||||||
for (String field : fields) {
|
for (String field : fields) {
|
||||||
@@ -210,7 +209,6 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
|||||||
}
|
}
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PmFormData> getByType(String from_type) {
|
public List<PmFormData> getByType(String from_type) {
|
||||||
Assert.notNull(from_type,"表单类型参数不能为空");
|
Assert.notNull(from_type,"表单类型参数不能为空");
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package org.nl.wms.sync_manage.controller.field_mapping;
|
package org.nl.wms.sync_manage.controller.field_mapping;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONException;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.domain.entity.PageQuery;
|
import org.nl.common.domain.entity.PageQuery;
|
||||||
@@ -73,7 +76,10 @@ public class BmExternalFieldMappingController {
|
|||||||
public ResponseEntity<Object> getTableColumnNames(@PathVariable String table_name) {
|
public ResponseEntity<Object> getTableColumnNames(@PathVariable String table_name) {
|
||||||
return new ResponseEntity<>(mappingsService.getTableColumnNames(table_name), HttpStatus.OK);
|
return new ResponseEntity<>(mappingsService.getTableColumnNames(table_name), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@GetMapping("/getTableColumnNamesdata/{table_name}")
|
||||||
|
public ResponseEntity<Object> getTableColumnNamesdata(@PathVariable String table_name) {
|
||||||
|
return new ResponseEntity<>(mappingsService.getTableColumnNamesdata(table_name), HttpStatus.OK);
|
||||||
|
}
|
||||||
@GetMapping("/getTableColumnNamesFromMapping/{table_name}")
|
@GetMapping("/getTableColumnNamesFromMapping/{table_name}")
|
||||||
public ResponseEntity<Object> getTableColumnNamesFromMapping(@PathVariable String table_name) {
|
public ResponseEntity<Object> getTableColumnNamesFromMapping(@PathVariable String table_name) {
|
||||||
return new ResponseEntity<>(mappingsService.getTableColumnNamesFromMapping(table_name), HttpStatus.OK);
|
return new ResponseEntity<>(mappingsService.getTableColumnNamesFromMapping(table_name), HttpStatus.OK);
|
||||||
@@ -88,5 +94,24 @@ public class BmExternalFieldMappingController {
|
|||||||
public ResponseEntity<Object> getExistTableName() {
|
public ResponseEntity<Object> getExistTableName() {
|
||||||
return new ResponseEntity<>(mappingsService.getExistTableName(), HttpStatus.OK);
|
return new ResponseEntity<>(mappingsService.getExistTableName(), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
@PostMapping("/syncAnalyse")
|
||||||
|
public ResponseEntity<Object> syncAnalyse(@RequestBody JSONObject form){
|
||||||
|
String fromType=form.getString("local_table_name");
|
||||||
|
JSONArray formMapping = new JSONArray();
|
||||||
|
try {
|
||||||
|
JSONObject jsonObject = new JSONObject(form.getJSONObject("mapping_json"));
|
||||||
|
for (String key : jsonObject.keySet()) {
|
||||||
|
JSONObject item = new JSONObject();
|
||||||
|
item.put("key", key);
|
||||||
|
item.put("value", jsonObject.get(key));
|
||||||
|
formMapping.add(item);
|
||||||
|
}
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
// JSONArray formMapping=form.getJSONArray("mapping_json");
|
||||||
|
String sourceString=form.getString("analyseData");
|
||||||
|
return new ResponseEntity<>(mappingsService.toJavaObject(JSONObject.class,fromType,formMapping,sourceString), HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.nl.wms.sync_manage.service.field_mapping;
|
package org.nl.wms.sync_manage.service.field_mapping;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||||
import org.nl.wms.sync_manage.service.field_mapping.dto.RequestMappingParam;
|
import org.nl.wms.sync_manage.service.field_mapping.dto.RequestMappingParam;
|
||||||
@@ -26,6 +27,13 @@ public interface IBmExternalFieldMappingService extends IService<BmExternalField
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<Map<String, String>> getTableColumnNames(String tableName);
|
List<Map<String, String>> getTableColumnNames(String tableName);
|
||||||
|
/**
|
||||||
|
* 根据数据表名获取所有字段和注释
|
||||||
|
*
|
||||||
|
* @param tableName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<Map<String, String>> getTableColumnNamesdata(String tableName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据库中所有表的名称
|
* 获取数据库中所有表的名称
|
||||||
@@ -56,6 +64,7 @@ public interface IBmExternalFieldMappingService extends IService<BmExternalField
|
|||||||
*/
|
*/
|
||||||
void updateRows(RequestMappingParam param);
|
void updateRows(RequestMappingParam param);
|
||||||
|
|
||||||
|
<T> List<T> toJavaObject(Class<T> clazz,String fromType, JSONArray formMapping, String sourceString);
|
||||||
/**
|
/**
|
||||||
* 从映射关系表中获取已配置映射关系的
|
* 从映射关系表中获取已配置映射关系的
|
||||||
*
|
*
|
||||||
@@ -63,4 +72,5 @@ public interface IBmExternalFieldMappingService extends IService<BmExternalField
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name);
|
BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package org.nl.wms.sync_manage.service.field_mapping.dao.mapper;
|
|||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.nl.wms.sync_manage.service.field_mapping.dto.RequestMappingParam;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -18,13 +19,26 @@ import java.util.Map;
|
|||||||
public interface BmExternalFieldMappingMapper extends BaseMapper<BmExternalFieldMapping> {
|
public interface BmExternalFieldMappingMapper extends BaseMapper<BmExternalFieldMapping> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据数据表名获取所有字段名称
|
* 根据数据表名获取所有字段名称和值
|
||||||
*
|
*
|
||||||
* @param tableName
|
* @param tableName
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<Map<String, String>> getTableColumnNames(@Param("tableName") String tableName);
|
List<Map<String, String>> getTableColumnNames(@Param("tableName") String tableName);
|
||||||
|
/**
|
||||||
|
* 根据数据表名获取所有字段和注释
|
||||||
|
*
|
||||||
|
* @param tableName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<Map<String, String>> getTableColumnNamesdata(String tableName);
|
||||||
|
/**
|
||||||
|
* 根据数据表名获取所有字段名称
|
||||||
|
*
|
||||||
|
* @param tableName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<String> getTablename(@Param("tableName") String tableName);
|
||||||
/**
|
/**
|
||||||
* 获取数据库中所有表的名称
|
* 获取数据库中所有表的名称
|
||||||
*
|
*
|
||||||
@@ -38,4 +52,5 @@ public interface BmExternalFieldMappingMapper extends BaseMapper<BmExternalField
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<String> getExistTableName();
|
List<String> getExistTableName();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,18 @@
|
|||||||
WHERE TABLE_SCHEMA = DATABASE()
|
WHERE TABLE_SCHEMA = DATABASE()
|
||||||
AND TABLE_NAME = #{tableName}
|
AND TABLE_NAME = #{tableName}
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getTableColumnNamesdata" resultType="map">
|
||||||
|
SELECT column_name, column_comment
|
||||||
|
FROM information_schema.columns
|
||||||
|
WHERE table_name = #{tableName}
|
||||||
|
</select>
|
||||||
|
<select id="getTablename" resultType="java.lang.String">
|
||||||
|
SELECT COLUMN_NAME AS local_field_name,
|
||||||
|
COLUMN_COMMENT AS lable
|
||||||
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
WHERE TABLE_SCHEMA = DATABASE()
|
||||||
|
AND TABLE_NAME = #{tableName}
|
||||||
|
</select>
|
||||||
<select id="getAllTableName" resultType="java.lang.String">
|
<select id="getAllTableName" resultType="java.lang.String">
|
||||||
SELECT TABLE_NAME
|
SELECT TABLE_NAME
|
||||||
FROM INFORMATION_SCHEMA.TABLES
|
FROM INFORMATION_SCHEMA.TABLES
|
||||||
|
|||||||
@@ -11,4 +11,5 @@ import lombok.Data;
|
|||||||
public class MappingDto {
|
public class MappingDto {
|
||||||
private String local_field_name;
|
private String local_field_name;
|
||||||
private String external_field_name;
|
private String external_field_name;
|
||||||
|
private String skipExpression;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,27 @@ package org.nl.wms.sync_manage.service.field_mapping.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
|
import cn.hutool.core.lang.hash.Hash;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.nl.common.domain.exception.BadRequestException;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.ListOf;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService;
|
||||||
|
import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc;
|
||||||
|
import org.nl.wms.flow_manage.flow.framework.engine.cmd.unify.Command;
|
||||||
|
import org.nl.wms.pm_manage.form_data.service.IPmFormDataService;
|
||||||
|
import org.nl.wms.pm_manage.form_data.service.impl.PmFormDataServiceImpl;
|
||||||
import org.nl.wms.sync_manage.service.field_mapping.IBmExternalFieldMappingService;
|
import org.nl.wms.sync_manage.service.field_mapping.IBmExternalFieldMappingService;
|
||||||
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
import org.nl.wms.sync_manage.service.field_mapping.dao.BmExternalFieldMapping;
|
||||||
import org.nl.wms.sync_manage.service.field_mapping.dao.mapper.BmExternalFieldMappingMapper;
|
import org.nl.wms.sync_manage.service.field_mapping.dao.mapper.BmExternalFieldMappingMapper;
|
||||||
@@ -18,10 +31,11 @@ import org.nl.wms.sync_manage.service.field_mapping.dto.RequestMappingParam;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.List;
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 同步字段映射表 服务实现类
|
* 同步字段映射表 服务实现类
|
||||||
@@ -35,11 +49,20 @@ public class BmExternalFieldMappingServiceImpl extends ServiceImpl<BmExternalFie
|
|||||||
|
|
||||||
@Autowired(required = false)
|
@Autowired(required = false)
|
||||||
private BmExternalFieldMappingMapper mappingMapper;
|
private BmExternalFieldMappingMapper mappingMapper;
|
||||||
|
@Autowired(required = false)
|
||||||
|
private PmFormDataServiceImpl pmFormDataService;
|
||||||
|
@Autowired
|
||||||
|
private IBmFormStrucService formStrucService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getTableColumnNames(String tableName) {
|
public List<Map<String, String>> getTableColumnNames(String tableName) {
|
||||||
return mappingMapper.getTableColumnNames(tableName);
|
return mappingMapper.getTableColumnNames(tableName);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public List<Map<String, String>> getTableColumnNamesdata(String tableName) {
|
||||||
|
return mappingMapper.getTableColumnNamesdata(tableName);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getAllTableName() {
|
public List<String> getAllTableName() {
|
||||||
@@ -61,8 +84,18 @@ public class BmExternalFieldMappingServiceImpl extends ServiceImpl<BmExternalFie
|
|||||||
BmExternalFieldMapping mapping = param.getBmExternalFieldMapping();
|
BmExternalFieldMapping mapping = param.getBmExternalFieldMapping();
|
||||||
List<MappingDto> dtos = param.getDtos();
|
List<MappingDto> dtos = param.getDtos();
|
||||||
Assert.notNull(dtos, "映射关系不能为空!");
|
Assert.notNull(dtos, "映射关系不能为空!");
|
||||||
Map<String, String> mappingJson = dtos.stream().collect(Collectors.toMap(MappingDto::getExternal_field_name, MappingDto::getLocal_field_name));
|
Map<String, Map<String, String>> mapOfMaps = new HashMap<>();
|
||||||
mapping.setMapping_json(JSON.toJSONString(mappingJson));
|
for(MappingDto mappingDto:dtos){
|
||||||
|
Map<String, String> map1 = new HashMap<>();
|
||||||
|
map1.put("external_field_name",mappingDto.getExternal_field_name());
|
||||||
|
if(ObjectUtil.isNotEmpty(mappingDto.getSkipExpression())) {
|
||||||
|
map1.put("skipExpression",mappingDto.getSkipExpression());
|
||||||
|
}else{
|
||||||
|
map1.put("skipExpression","");
|
||||||
|
}
|
||||||
|
mapOfMaps.put(mappingDto.getLocal_field_name(),map1);
|
||||||
|
}
|
||||||
|
mapping.setMapping_json(JSON.toJSONString(mapOfMaps));
|
||||||
mapping.setId(IdUtil.getStringId());
|
mapping.setId(IdUtil.getStringId());
|
||||||
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
||||||
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
||||||
@@ -78,16 +111,57 @@ public class BmExternalFieldMappingServiceImpl extends ServiceImpl<BmExternalFie
|
|||||||
luw.eq(BmExternalFieldMapping::getLocal_table_name, mapping.getLocal_table_name());
|
luw.eq(BmExternalFieldMapping::getLocal_table_name, mapping.getLocal_table_name());
|
||||||
List<MappingDto> dtos = param.getDtos();
|
List<MappingDto> dtos = param.getDtos();
|
||||||
mappingMapper.delete(luw);
|
mappingMapper.delete(luw);
|
||||||
if (ObjectUtil.isNotEmpty(dtos)) {
|
Map<String, Map<String, String>> mapOfMaps = new HashMap<>();
|
||||||
Map<String, String> mappingJson = dtos.stream().collect(Collectors.toMap(MappingDto::getExternal_field_name, MappingDto::getLocal_field_name));
|
for(MappingDto mappingDto:dtos){
|
||||||
mapping.setMapping_json(JSON.toJSONString(mappingJson));
|
Map<String, String> map1 = new HashMap<>();
|
||||||
|
map1.put("external_field_name",mappingDto.getExternal_field_name());
|
||||||
|
if(ObjectUtil.isNotEmpty(mappingDto.getSkipExpression())) {
|
||||||
|
map1.put("skipExpression",mappingDto.getSkipExpression());
|
||||||
|
}else{
|
||||||
|
map1.put("skipExpression","");
|
||||||
|
}
|
||||||
|
mapOfMaps.put(mappingDto.getLocal_field_name(),map1);
|
||||||
|
}
|
||||||
|
mapping.setMapping_json(JSON.toJSONString(mapOfMaps));
|
||||||
mapping.setId(IdUtil.getStringId());
|
mapping.setId(IdUtil.getStringId());
|
||||||
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
mapping.setLast_update_id(SecurityUtils.getCurrentUserId());
|
||||||
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
mapping.setLast_update_name(SecurityUtils.getCurrentNickName());
|
||||||
mapping.setLast_update_time(DateUtil.now());
|
mapping.setLast_update_time(DateUtil.now());
|
||||||
mappingMapper.insert(mapping);
|
mappingMapper.insert(mapping);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> List<T> toJavaObject(Class<T> clazz, String fromType, JSONArray formMapping, String sourceString) {
|
||||||
|
BmFormStruc one = formStrucService.getOne(new QueryWrapper<BmFormStruc>().eq("form_type", fromType));
|
||||||
|
if (one == null) {
|
||||||
|
throw new BadRequestException("当前表单无配置信息" + fromType);
|
||||||
}
|
}
|
||||||
|
JSONObject sourceData = JSONObject.parseObject(sourceString);
|
||||||
|
if (StringUtils.isNotEmpty(one.getConvert_json())) {
|
||||||
|
sourceData = sourceData.getJSONObject(one.getConvert_json());
|
||||||
|
}
|
||||||
|
JSONArray mapping_arr = new JSONArray();
|
||||||
|
for (int i = 0; i < formMapping.size(); i++) {
|
||||||
|
JSONObject item = formMapping.getJSONObject(i);
|
||||||
|
String value = item.getString("key");
|
||||||
|
JSONObject mappingJson = item.getJSONObject("value");
|
||||||
|
String skipExpression = mappingJson.getString("skipExpression");
|
||||||
|
String mapping_field = mappingJson.getString("external_field_name");
|
||||||
|
mapping_arr.add(new JSONObject(MapOf.of("value",value,"skipExpression",skipExpression,"mapping_field",mapping_field)));
|
||||||
|
|
||||||
|
}
|
||||||
|
Map<String, JSONObject> fieldMapping = mapping_arr.stream().collect(HashMap::new, (formMap, o) -> {
|
||||||
|
JSONObject item = (JSONObject) o;
|
||||||
|
formMap.put(item.getString("value"), item);
|
||||||
|
}, HashMap::putAll);
|
||||||
|
List<String> fields= mappingMapper.getTablename(fromType);
|
||||||
|
Set<String> set = new HashSet<>();
|
||||||
|
set.addAll(fields);
|
||||||
|
JSONObject target = pmFormDataService.fieldMapping(set,fieldMapping,sourceData);
|
||||||
|
T data = target.toJavaObject(clazz);
|
||||||
|
return ListOf.of(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name) {
|
public BmExternalFieldMapping getTableColumnNamesFromMapping(String table_name) {
|
||||||
@@ -95,17 +169,25 @@ public class BmExternalFieldMappingServiceImpl extends ServiceImpl<BmExternalFie
|
|||||||
lqw.eq(BmExternalFieldMapping::getLocal_table_name, table_name);
|
lqw.eq(BmExternalFieldMapping::getLocal_table_name, table_name);
|
||||||
BmExternalFieldMapping mapping = mappingMapper.selectOne(lqw);
|
BmExternalFieldMapping mapping = mappingMapper.selectOne(lqw);
|
||||||
String mapping_json = mapping.getMapping_json();
|
String mapping_json = mapping.getMapping_json();
|
||||||
|
List<String> mapping_json1=mappingMapper.getTablename(table_name);
|
||||||
if (StrUtil.isNotBlank(mapping_json)) {
|
if (StrUtil.isNotBlank(mapping_json)) {
|
||||||
Map<String, String> map = JSON.parseObject(mapping_json, Map.class);
|
List<MappingDto> list1 = new ArrayList<>();
|
||||||
List<MappingDto> list = new ArrayList<>();
|
JSONObject jsonObject = JSONObject.parseObject(mapping_json);
|
||||||
map.forEach((key, value) -> {
|
for (int i = 0; i < mapping_json1.size(); i++) {
|
||||||
MappingDto dto = new MappingDto();
|
MappingDto mappingDto=new MappingDto();
|
||||||
dto.setExternal_field_name(key);
|
mappingDto.setLocal_field_name(mapping_json1.get(i));
|
||||||
dto.setLocal_field_name(value);
|
if (jsonObject.getJSONObject(mapping_json1.get(i)) != null){
|
||||||
list.add(dto);
|
mappingDto.setExternal_field_name(jsonObject.getJSONObject(mapping_json1.get(i)).getString("external_field_name"));
|
||||||
});
|
mappingDto.setSkipExpression(jsonObject.getJSONObject(mapping_json1.get(i)).getString("skipExpression"));
|
||||||
mapping.setDtos(list);
|
} else {
|
||||||
|
mappingDto.setExternal_field_name("");
|
||||||
|
mappingDto.setSkipExpression("");
|
||||||
|
}
|
||||||
|
list1.add(mappingDto);
|
||||||
|
}
|
||||||
|
mapping.setDtos(list1);
|
||||||
}
|
}
|
||||||
return mapping;
|
return mapping;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,13 @@ export function getTableColumnNames(params) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getTableColumnNamesdata(params) {
|
||||||
|
return request({
|
||||||
|
url: 'api/externalFieldMapping/getTableColumnNamesdata/' + params,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function getAllTableName() {
|
export function getAllTableName() {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/externalFieldMapping/getAllTableName',
|
url: 'api/externalFieldMapping/getAllTableName',
|
||||||
@@ -68,6 +75,20 @@ export function updateRows(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function tableColumns(params) {
|
||||||
|
return request({
|
||||||
|
url: '/api/bmFormStruc/tableColumns/' + params,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
export function syncAnalyse(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/externalFieldMapping/syncAnalyse',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
add,
|
add,
|
||||||
edit,
|
edit,
|
||||||
@@ -75,7 +96,10 @@ export default {
|
|||||||
addRows,
|
addRows,
|
||||||
updateRows,
|
updateRows,
|
||||||
getAllTableName,
|
getAllTableName,
|
||||||
|
tableColumns,
|
||||||
getTableColumnNames,
|
getTableColumnNames,
|
||||||
getExistTableName,
|
getExistTableName,
|
||||||
getTableColumnNamesFromMapping
|
getTableColumnNamesFromMapping,
|
||||||
|
syncAnalyse,
|
||||||
|
getTableColumnNamesdata
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,38 @@
|
|||||||
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog
|
||||||
|
:close-on-click-modal="false"
|
||||||
|
title="表单同步测试"
|
||||||
|
:visible.sync="syncShow"
|
||||||
|
width="800px"
|
||||||
|
@close="syncAnalyseCannel"
|
||||||
|
>
|
||||||
|
<el-form ref="form" :model="syncForm" :rules="rules" size="mini" label-width="50px">
|
||||||
|
<el-form-item label="表单:" prop="occupystruct_qty">
|
||||||
|
<el-input v-model="syncForm.local_table_name" disabled :precision="0" style="width: 150px;" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="测试数据" prop="analyseData">
|
||||||
|
<el-input v-model="syncForm.analyseData" type="textarea" :precision="0" style="width: 650px;" />
|
||||||
|
</el-form-item> </el-form>
|
||||||
|
<el-table
|
||||||
|
v-if="AAA"
|
||||||
|
ref="table1"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="receivedData"
|
||||||
|
size="mini"
|
||||||
|
style="width: 100%;"
|
||||||
|
@selection-change="crud.selectionChangeHandler"
|
||||||
|
>
|
||||||
|
|
||||||
|
<el-table-column v-for="(item, index) in dataList" :key="item.COLUMN_NAME" :label="item.COLUMN_COMMENT" width="160">
|
||||||
|
<template slot-scope="scope">{{ scope.row[item.COLUMN_NAME] }}</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button :loading="crud.cu === 2" type="primary" @click="syncAnalyseSubmit">同步解析</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table
|
<el-table
|
||||||
ref="table"
|
ref="table"
|
||||||
@@ -139,6 +171,7 @@
|
|||||||
{{ dict.label.external_system[scope.row.external_system] }}
|
{{ dict.label.external_system[scope.row.external_system] }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="mapping_json" label="映射关系" show-overflow-tooltip />
|
<el-table-column prop="mapping_json" label="映射关系" show-overflow-tooltip />
|
||||||
<el-table-column prop="last_update_name" label="更新人" />
|
<el-table-column prop="last_update_name" label="更新人" />
|
||||||
<el-table-column prop="last_update_time" label="更新时间" width="150" />
|
<el-table-column prop="last_update_time" label="更新时间" width="150" />
|
||||||
@@ -148,6 +181,14 @@
|
|||||||
:data="scope.row"
|
:data="scope.row"
|
||||||
:permission="permission"
|
:permission="permission"
|
||||||
/>
|
/>
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
icon="el-icon-download"
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
@click="syncTest(scope.row)"
|
||||||
|
>同步测试</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@@ -168,6 +209,7 @@ import udOperation from '@crud/UD.operation.vue'
|
|||||||
import pagination from '@crud/Pagination.vue'
|
import pagination from '@crud/Pagination.vue'
|
||||||
import AddDialog from './AddDialog'
|
import AddDialog from './AddDialog'
|
||||||
import EditDialog from './EditDialog'
|
import EditDialog from './EditDialog'
|
||||||
|
import fieldMapping from './fieldMapping'
|
||||||
|
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
id: null,
|
id: null,
|
||||||
@@ -203,15 +245,21 @@ export default {
|
|||||||
return {
|
return {
|
||||||
tableNameList: [],
|
tableNameList: [],
|
||||||
fieldNameList: [],
|
fieldNameList: [],
|
||||||
|
dataList: [],
|
||||||
dataTypeList: [],
|
dataTypeList: [],
|
||||||
|
syncForm: {},
|
||||||
addShow: false,
|
addShow: false,
|
||||||
editShow: false,
|
editShow: false,
|
||||||
permission: {},
|
permission: {},
|
||||||
|
receivedData: [],
|
||||||
|
AAA: false,
|
||||||
|
|
||||||
rules: {
|
rules: {
|
||||||
position_code: [
|
position_code: [
|
||||||
{ required: true, message: '缓存线位置编码不能为空', trigger: 'blur' }
|
{ required: true, message: '缓存线位置编码不能为空', trigger: 'blur' }
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
syncShow: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@@ -241,11 +289,42 @@ export default {
|
|||||||
this.$refs.editRef.setForm(row)
|
this.$refs.editRef.setForm(row)
|
||||||
this.editShow = true
|
this.editShow = true
|
||||||
},
|
},
|
||||||
|
syncTest(row) {
|
||||||
|
this.syncShow = true
|
||||||
|
this.syncForm = row
|
||||||
|
fieldMapping.getTableColumnNamesFromMapping(row.local_table_name).then(res => {
|
||||||
|
this.viewMstCols = res.item
|
||||||
|
if (res.dtl_item != null) {
|
||||||
|
this.hasDtl = true
|
||||||
|
this.viewDtlCols = res.dtl_item
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
syncAnalyseSubmit() {
|
||||||
|
this.AAA = true
|
||||||
|
console.log(this.syncForm)
|
||||||
|
crudFieldMapping.getTableColumnNamesdata(this.syncForm.local_table_name).then(res => {
|
||||||
|
this.dataList = res
|
||||||
|
console.log(this.dataList)
|
||||||
|
})
|
||||||
|
fieldMapping.syncAnalyse(this.syncForm).then(res => {
|
||||||
|
this.crud.notify('解析成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
this.receivedData = res
|
||||||
|
})
|
||||||
|
},
|
||||||
querytable() {
|
querytable() {
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
},
|
},
|
||||||
querytable1() {
|
querytable1() {
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
|
},
|
||||||
|
syncAnalyseCannel() {
|
||||||
|
this.syncForm = {}
|
||||||
|
this.viewMst = [],
|
||||||
|
this.viewDtl = [],
|
||||||
|
this.hasDtl = false,
|
||||||
|
this.viewMstCols = {},
|
||||||
|
this.viewDtlCols = {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user