冲突处理
dev
ic_excellent 2023-07-18 15:12:46 +08:00
commit c8dc531276
7 changed files with 204 additions and 0 deletions

View File

@ -0,0 +1,51 @@
package com.api.xuanran.wang.xk_hospital.data_async.definitions;
import aiyh.utils.Util;
import aiyh.utils.excention.CustomerException;
import aiyh.utils.response_deal.entity.FieldDefinition;
import aiyh.utils.response_deal.entity.RowDefinition;
import aiyh.utils.response_deal.intfaces.RowDefinitionCallback;
import aiyh.utils.response_deal.mapper.ConfigMapper;
import aiyh.utils.tool.cn.hutool.core.util.StrUtil;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import java.util.HashMap;
import java.util.List;
/**
* <h1></h1>
*
* @author xuanran.wang
* @date 2023/7/18 11:13
*/
public class HrmDepartmentDefinition implements RowDefinitionCallback {
protected final ConfigMapper configMapper = Util.getMapper(ConfigMapper.class);
@Override
public void rowHandle(RowDefinition rowDefinition) {
}
@Override
public boolean judgmentRepetition(RowDefinition rowDefinition) {
String conditionScript = rowDefinition.getConditionScript();
String cusQuerySql = "select id from " + rowDefinition.getAssignTable() + " where " + conditionScript;
String dataId = this.configMapper.executeCusQuerySql(cusQuerySql, rowDefinition.getWhereParam(),new HashMap<>());
if(StrUtil.isBlank(dataId)){
RecordSet insertRs = new RecordSet();
char separator = weaver.general.Util.getSeparator();
//使用存储过程新增分部
String para = "" + separator + "" + separator +
"" + separator + "" + separator + "1" + separator + "";
insertRs.executeProc("HrmDepartment_Insert", para);
if (insertRs.next()) {
int depId = insertRs.getInt(1);
rowDefinition.setDataId(depId);
rowDefinition.getWhereParam().put("id", depId);
}
}
return true;
}
}

View File

@ -0,0 +1,22 @@
package com.api.xuanran.wang.xk_hospital.data_async.definitions;
import aiyh.utils.response_deal.entity.RowDefinition;
import aiyh.utils.response_deal.intfaces.RowDefinitionCallback;
/**
* <h1></h1>
*
* @author xuanran.wang
* @date 2023/7/18 11:13
*/
public class HrmresourceDefinition implements RowDefinitionCallback {
@Override
public void rowHandle(RowDefinition rowDefinition) {
}
@Override
public boolean judgmentRepetition(RowDefinition rowDefinition) {
return false;
}
}

View File

@ -0,0 +1,15 @@
package com.api.xuanran.wang.xk_hospital.data_async.entity;
/**
* <h1></h1>
*
* @author xuanran.wang
* @date 2023/7/17 16:49
*/
public class XkDataAsyncConfig {
private String modelTable;
private String configId;
private String tableType;
private String cusTable;
private String deleteInterface;
}

View File

@ -0,0 +1,15 @@
package com.api.xuanran.wang.xk_hospital.data_async.entity;
/**
* <h1></h1>
*
* @author xuanran.wang
* @date 2023/7/17 16:53
*/
public class XkDataAsyncConfigDetail {
private String interfaceField;
private int interfaceFieldType;
private String modelField;
private String cusField;
private String oaFieldType;
}

View File

@ -0,0 +1,14 @@
package com.api.xuanran.wang.xk_hospital.data_async.service;
import java.util.Map;
/**
* <h1></h1>
*
* @author xuanran.wang
* @date 2023/7/18 10:36
*/
public interface XkHospitalCommonDataAsyncService {
void async(String configCode, String type, Map<String, Object> params);
}

View File

@ -0,0 +1,39 @@
package com.api.xuanran.wang.xk_hospital.data_async.service.impl;
import aiyh.utils.response_deal.ResponseMappingDeal;
import aiyh.utils.response_deal.intfaces.RowDefinitionCallback;
import aiyh.utils.tool.cn.hutool.core.util.StrUtil;
import com.api.xuanran.wang.xk_hospital.data_async.definitions.HrmresourceDefinition;
import com.api.xuanran.wang.xk_hospital.data_async.service.XkHospitalCommonDataAsyncService;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
import java.util.Map;
/**
* <h1></h1>
*
* @author xuanran.wang
* @date 2023/7/18 11:15
*/
public class XkHospitalCommonDataAsyncServiceImpl implements XkHospitalCommonDataAsyncService {
private static final Map<String, RowDefinitionCallback> CUS_DEFINITIONS = new HashMap<>();
static {
CUS_DEFINITIONS.put("hrm", new HrmresourceDefinition());
CUS_DEFINITIONS.put("dept", new HrmresourceDefinition());
}
@Override
public void async(String configCode, String type, Map<String, Object> params){
ResponseMappingDeal deal = new ResponseMappingDeal();
if(StrUtil.isNotBlank(type)){
RowDefinitionCallback callback = CUS_DEFINITIONS.get(type);
if(null != callback){
deal.setRowCallback(callback);
}
}
deal.doResponseSync(configCode, params);
}
}

View File

@ -0,0 +1,48 @@
package xuanran.wang.xk_hospital.test;
import basetest.BaseTest;
import com.alibaba.fastjson.JSONObject;
import com.api.xuanran.wang.xk_hospital.data_async.service.XkHospitalCommonDataAsyncService;
import com.api.xuanran.wang.xk_hospital.data_async.service.impl.XkHospitalCommonDataAsyncServiceImpl;
import org.junit.Test;
import java.util.Map;
/**
* <h1></h1>
*
* @author xuanran.wang
* @date 2023/7/18 14:31
*/
public class XkHospitalTest extends BaseTest {
private final XkHospitalCommonDataAsyncService service = new XkHospitalCommonDataAsyncServiceImpl();
@Test
public void testA(){
String json = "{\n" +
"\t\"ID\":\"主键\",\n" +
"\t\"DeptCode\":\"科室代码\",\n" +
"\t\"DeptName\":\"科室名称\",\n" +
"\t\"DeptLevel\": \"科室级别int类型可为null\", \n" +
"\t\"ParentDeptCode\":\"上级科室代码\",\n" +
"\t\"IsDelete\": \"是否停用bool类型\", \n" +
"\t\"Remark\":\"备注\",\n" +
"\t\"Mapping\": [\n" +
"\t\t{\n" +
"\t\t\t\"ID\":\"主键\",\n" +
"\t\t\t\"DeptID\":\"源科室主键\",\n" +
"\t\t\t\"SourceDeptName\":\"源科室名称\",\n" +
"\t\t\t\"SystemID\":\"第三方系统主键\",\n" +
"\t\t\t\"SystemName\":\"第三方系统名称\",\n" +
"\t\t\t\"DeptCode\":\"科室代码\",\n" +
"\t\t\t\"DeptName\":\"科室名称\",\n" +
"\t\t\t\"Remark\":\"备注\",\n" +
"\t\t}\n" +
"\t]\n" +
"}\n";
Map map = JSONObject.parseObject(json, Map.class);
service.async("4bce0693734a","dept",map);
}
}