同步优化

dev
wangxuanran 2023-07-20 13:03:20 +08:00
parent 9658ce154f
commit 0de7a593e9
6 changed files with 71 additions and 4 deletions

View File

@ -62,6 +62,9 @@ public class InsertOrUpdateState extends State{
String conditionScript = Util.sbc2dbcCase(rowDefinition.getConditionScript());
String cusQuerySql = "select id from " + rowDefinition.getAssignTable() + " where " + conditionScript;
String dataId = this.configMapper.executeCusQuerySql(cusQuerySql, rowDefinition.getWhereParam(),new HashMap<>());
if(StrUtil.isNotBlank(dataId)){
rowDefinition.setDataId(Util.getIntValue(dataId, -1));
}
return StrUtil.isNotBlank(dataId);
}

View File

@ -97,6 +97,7 @@ public class InsertSate extends State{
}
rowDefinitionList.forEach(item ->{
item.getUpdateParam().put("mainid",mainId);
item.getWhereParam().put("mainid",mainId);
});
if(mainDetailMap.containsKey(key)){
TableDefinition tableDefinition = mainDetailMap.get(key);

View File

@ -16,7 +16,7 @@ public abstract class State {
protected final ConfigMapper configMapper = Util.getMapper(ConfigMapper.class);
/** 日志对象 */
protected final Logger logger = Util.getLogger();
protected final Logger logger = Util.getLogger("json_util");
/** 上下文对象 */
protected TableDefinition context;

View File

@ -83,6 +83,12 @@ public class UpdateState extends State {
return;
}
detailTableMap.forEach((key,value) ->{
if(item.getDataId() > 0){
for (RowDefinition rowDefinition : value.getRowDefinitionList()) {
rowDefinition.getUpdateParam().put("mainid", item.getDataId());
rowDefinition.getWhereParam().put("mainid", item.getDataId());
}
}
if(mainDetailMap.containsKey(key)){
mainDetailMap.get(key).getRowDefinitionList().addAll(value.getRowDefinitionList());
}else {

View File

@ -2,6 +2,7 @@ package com.api.xuanran.wang.xk_hospital.data_async.definitions.table;
import aiyh.utils.Util;
import aiyh.utils.excention.CustomerException;
import aiyh.utils.response_deal.constant.ResponseConfigConstant;
import aiyh.utils.response_deal.entity.RowDefinition;
import aiyh.utils.response_deal.entity.TableDefinition;
import aiyh.utils.response_deal.intfaces.TableDefinitionCallback;
@ -13,6 +14,7 @@ import weaver.matrix.MatrixUtil;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@ -29,7 +31,18 @@ public class HrmDepartmentTableDefinition extends XkHospitalCommonDefinition imp
@Override
public void tableHandle(TableDefinition tableDefinition) {
if(ResponseConfigConstant.DETAIL_TABLE == tableDefinition.getMainOrDetail()){
List<RowDefinition> list = tableDefinition.getRowDefinitionList();
if(CollectionUtils.isEmpty(list)){
return;
}
for (RowDefinition rowDefinition : list) {
Object mainId = rowDefinition.getUpdateParam().remove("mainid");
if(!Objects.isNull(mainId)){
rowDefinition.getUpdateParam().put("id", mainId);
}
}
}
}
@Override

View File

@ -53,8 +53,8 @@ public class XkHospitalTest extends BaseTest {
String json = "{\n" +
"\t\"ID\":\"1\",\n" +
"\t\"EmplCode\":\"TEST1\",\n" +
"\t\"EmplName\":\"测试人员1\",\n" +
"\t\"EmplCode\":\"TEST10\",\n" +
"\t\"EmplName\":\"测试人员10\",\n" +
"\t\"EmplType\":\"人员类型代码\",\n" +
"\t\"EmplTypeCaption\":\"人员类型名称\",\n" +
"\t\"Gender\":\"男\",\n" +
@ -70,4 +70,48 @@ public class XkHospitalTest extends BaseTest {
Util.null2DefaultStr(null,"");
service.async("4bce0693734c","hrm",map);
}
@Test
public void testC(){
String json = "{\n" +
"\t\"ID\":\"主键\",\n" +
"\t\"GroupID\":\"test_yl_01\",\n" +
"\t\"GroupCode\":\"test_yl_dm_03\",\n" +
"\t\"GroupName\":\"医疗组名称1\",\n" +
"\t\"DeptCode\":\"test03\",\n" +
"\t\"DeptName\":\"测试科室03\",\n" +
"\t\"WardCode\":\"病区代码\",\n" +
"\t\"WardName\":\"病区名称\",\n" +
"\t\"Ward_BedNumber\":\"病区床位数int类型\",\n" +
"\t\"IsDelete\":\"是否停用bool类型\",\n" +
"\t\"Remark\":\"备注\",\n" +
"\t\"Wards\":[\t\n" +
"\t\t{\t\t\t\n" +
"\t\t\t\"ID\":\"1\",\n" +
"\t\t\t\"WardCode\":\"bq_01\",\n" +
"\t\t\t\"WardName\":\"病区名称01_2_3\"\n" +
"\t\t},{\t\t\t\n" +
"\t\t\t\"ID\":\"2\",\n" +
"\t\t\t\"WardCode\":\"bq_03\",\n" +
"\t\t\t\"WardName\":\"病区名称02_1_3\"\n" +
"\t\t}\n" +
"\t],\n" +
"\t\"WardHeads\":[\n" +
"\t\t{\n" +
"\t\t\t\"ID\":\"1\",\n" +
"\t\t\t\"EmplCode\":\"TEST10\",\n" +
"\t\t\t\"EmplName\":\"傻逼01\",\n" +
"\t\t\t\"Category\":\"人员分组,当人员为主治和住院医师时使用\"\n" +
"\t\t},{\n" +
"\t\t\t\"ID\":\"2\",\n" +
"\t\t\t\"EmplCode\":\"TEST10\",\n" +
"\t\t\t\"EmplName\":\"傻逼02\",\n" +
"\t\t\t\"Category\":\"人员分组,当人员为主治和住院医师时使用\"\n" +
"\t\t}\n" +
"\t]\n" +
"}\n";
Map map = JSONObject.parseObject(json, Map.class);
Util.null2DefaultStr(null,"");
service.async("4bce0693734d","common", map);
}
}