通用数据,如果是钉钉人员或者钉钉部门,增加或者修改时候先删除明细再增加明细
This commit is contained in:
parent
e6c17411c6
commit
8777a09e1c
|
@ -48,4 +48,24 @@ public interface IComparisonDetailsDao extends IBaseDao<ComparisonDetailsEntity,
|
||||||
* @Date 2024/5/9 15:34
|
* @Date 2024/5/9 15:34
|
||||||
* **/
|
* **/
|
||||||
List<Map<String,Object>> queryComparisonDetailsPage(ComparisonDetailsEntity comparisonDetailsEntity);
|
List<Map<String,Object>> queryComparisonDetailsPage(ComparisonDetailsEntity comparisonDetailsEntity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 根据dataid和fformmainId查询单个子表数据
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2024-11-05 14:02
|
||||||
|
* **/
|
||||||
|
Map<String,Object> queryComparisonDetailsByDataId(ComparisonDetailsEntity comparisonDetailsEntity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 删除通用数据,当data_id没有且是随机生成的时候,
|
||||||
|
* @Param
|
||||||
|
* @Return
|
||||||
|
* @Author hecan
|
||||||
|
* @Date 2024-11-05 17:17
|
||||||
|
* **/
|
||||||
|
Integer deleteComparisonDetailsByFormmainId(ComparisonDetailsEntity comparisonDetailsEntity);
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,5 +42,16 @@ public class ComparisonDetailsDaoImpl extends MybatisGenericDao<ComparisonDetail
|
||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String,Object> queryComparisonDetailsByDataId(ComparisonDetailsEntity comparisonDetailsEntity) {
|
||||||
|
return (Map<String,Object>)super.selectOne("queryComparisonDetailsByDataId", comparisonDetailsEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer deleteComparisonDetailsByFormmainId(ComparisonDetailsEntity comparisonDetailsEntity) {
|
||||||
|
int delete = super.delete(getSqlIdPrifx() + "deleteComparisonDetailsByFormmainId", comparisonDetailsEntity);
|
||||||
|
return delete;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,12 @@
|
||||||
where formmain_id=#{formmainId} and sts='Y' and (data_status='Y' or data_status='F')
|
where formmain_id=#{formmainId} and sts='Y' and (data_status='Y' or data_status='F')
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!--根据dataid和fformmainId查询单个子表数据-->
|
||||||
|
<select id="queryComparisonDetailsByDataId" resultType="java.util.Map"
|
||||||
|
parameterType="com.hzya.frame.sysnew.comparison.entity.ComparisonDetailsEntity">
|
||||||
|
select * from ${dbName}
|
||||||
|
where formmain_id=#{formmainId} and data_id=#{dataId} and sts='Y' and (data_status='Y' or data_status='F')
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<insert id="saveComparisonDetails" parameterType = "java.util.Map">
|
<insert id="saveComparisonDetails" parameterType = "java.util.Map">
|
||||||
|
@ -64,5 +70,18 @@
|
||||||
</trim>
|
</trim>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<!-- 多条件逻辑删除 -->
|
||||||
|
<update id="deleteComparisonDetailsByFormmainId" parameterType = "java.util.Map" >
|
||||||
|
update
|
||||||
|
${dbName}
|
||||||
|
set modify_time = now(),modify_user_id = #{modify_user_id}, data_status= 'N',sts='N'
|
||||||
|
<trim prefix="where" prefixOverrides="and">
|
||||||
|
<!--<foreach collection="mapDetails.entrySet()" item="value" index="key">
|
||||||
|
${key} =#{value}
|
||||||
|
</foreach>-->
|
||||||
|
and formmain_id=#{formmainId} and sts='Y' and (data_status='Y' or data_status='F')
|
||||||
|
</trim>
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
||||||
|
|
|
@ -173,6 +173,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
List<JSONArray> arrayList=new ArrayList<>();
|
List<JSONArray> arrayList=new ArrayList<>();
|
||||||
|
|
||||||
String tableName=null;
|
String tableName=null;
|
||||||
|
String tableNameDetails=null;
|
||||||
//根据dbtype和dbname分组,拿到表名称和表类型
|
//根据dbtype和dbname分组,拿到表名称和表类型
|
||||||
Map<String, Map<String, List<ComparisonEntity>>> collect = comparisonEntities.stream().collect(Collectors.groupingBy(ComparisonEntity::getDbName, Collectors.groupingBy(ComparisonEntity::getDbType)));
|
Map<String, Map<String, List<ComparisonEntity>>> collect = comparisonEntities.stream().collect(Collectors.groupingBy(ComparisonEntity::getDbName, Collectors.groupingBy(ComparisonEntity::getDbType)));
|
||||||
List<Map.Entry<String, String>> keyPairs = collect.entrySet().stream()
|
List<Map.Entry<String, String>> keyPairs = collect.entrySet().stream()
|
||||||
|
@ -197,6 +198,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
//如果是2,就是明细表,根据查询出来得子表是否是传输传递得子表
|
//如果是2,就是明细表,根据查询出来得子表是否是传输传递得子表
|
||||||
if(keyPair.getValue().equals("2")){
|
if(keyPair.getValue().equals("2")){
|
||||||
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
||||||
|
tableNameDetails=keyPair.getKey();
|
||||||
if(jsonArray!= null) {
|
if(jsonArray!= null) {
|
||||||
for (int i = 0; i < jsonArray.size(); i++) {
|
for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
||||||
|
@ -227,7 +229,6 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
comparisonDataId.setFields(fields);
|
comparisonDataId.setFields(fields);
|
||||||
List<Map<String, Object>> listDataId = comparisonDao.queryComparisonPage(comparisonDataId);
|
List<Map<String, Object>> listDataId = comparisonDao.queryComparisonPage(comparisonDataId);
|
||||||
if (CollectionUtils.isNotEmpty(listDataId)) {
|
if (CollectionUtils.isNotEmpty(listDataId)) {
|
||||||
//return BaseResult.getFailureMessageEntity(comparisonEntity.getDbName()+"表中已经存在data_id为:"+jsonObjectMain.getString("data_id")+"的数据");
|
|
||||||
return updateEntity(json);
|
return updateEntity(json);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
@ -341,6 +342,18 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
//保存主表数据
|
//保存主表数据
|
||||||
ComparisonEntity comparisonEntityOne = comparisonDao.saveComparison(comparisonEntityRule);
|
ComparisonEntity comparisonEntityOne = comparisonDao.saveComparison(comparisonEntityRule);
|
||||||
jsonObjectList.put(comparisonEntityOne.getDbName(), map);
|
jsonObjectList.put(comparisonEntityOne.getDbName(), map);
|
||||||
|
|
||||||
|
//根据formmain_id删除子表数据,之后再新增,注:这种情况只有data_id没有并且随时会变的时候才使用
|
||||||
|
//钉钉部门主数据编码和钉钉人员主数据编码
|
||||||
|
if(jsonObject.getString("mdmCode").equals("10015") || jsonObject.getString("mdmCode").equals("10016")) {
|
||||||
|
ComparisonDetailsEntity comparisonDetails = new ComparisonDetailsEntity();
|
||||||
|
comparisonDetails.setDbName(tableNameDetails);
|
||||||
|
comparisonDetails.setFormmainId(uuid);
|
||||||
|
comparisonDetails.setModify_user_id("c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||||
|
comparisonDetailsDao.deleteComparisonDetailsByFormmainId(comparisonDetails);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//保存子表数据
|
//保存子表数据
|
||||||
if (arrayList != null && arrayList.size() > 0) {
|
if (arrayList != null && arrayList.size() > 0) {
|
||||||
mapDetails = spliceDetailMap(comparisonEntities, mapDetails, arrayList);
|
mapDetails = spliceDetailMap(comparisonEntities, mapDetails, arrayList);
|
||||||
|
@ -361,8 +374,6 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
stringObjectMap.remove("table_name");
|
stringObjectMap.remove("table_name");
|
||||||
ComparisonDetailsEntity comparisonDetailsEntityOne = comparisonDetailsDao.saveComparisonDetails(comparisonDetailsEntity);
|
ComparisonDetailsEntity comparisonDetailsEntityOne = comparisonDetailsDao.saveComparisonDetails(comparisonDetailsEntity);
|
||||||
comparisonEntityOne.setComparisonDetailsEntity(comparisonDetailsEntityOne);
|
comparisonEntityOne.setComparisonDetailsEntity(comparisonDetailsEntityOne);
|
||||||
//保存操作日志
|
|
||||||
//controlsLogDaoimpl.saveControlsLog(uuidDetail,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),comparisonDetailsEntity.getDbName()+"_option_log");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jsonObjectList.put(comparisonDetailsEntity.getDbName(), mapDetails);
|
jsonObjectList.put(comparisonDetailsEntity.getDbName(), mapDetails);
|
||||||
|
@ -420,6 +431,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
JSONObject jsonObjectMain=new JSONObject();
|
JSONObject jsonObjectMain=new JSONObject();
|
||||||
JSONArray jsonArray=new JSONArray();
|
JSONArray jsonArray=new JSONArray();
|
||||||
List<JSONArray> arrayList=new ArrayList<>();
|
List<JSONArray> arrayList=new ArrayList<>();
|
||||||
|
String tableNameDetails=null;
|
||||||
//根据dbtype和dbname分组,拿到表名称和表类型
|
//根据dbtype和dbname分组,拿到表名称和表类型
|
||||||
Map<String, Map<String, List<ComparisonEntity>>> collect = comparisonEntities.stream().collect(Collectors.groupingBy(ComparisonEntity::getDbName, Collectors.groupingBy(ComparisonEntity::getDbType)));
|
Map<String, Map<String, List<ComparisonEntity>>> collect = comparisonEntities.stream().collect(Collectors.groupingBy(ComparisonEntity::getDbName, Collectors.groupingBy(ComparisonEntity::getDbType)));
|
||||||
List<Map.Entry<String, String>> keyPairs = collect.entrySet().stream()
|
List<Map.Entry<String, String>> keyPairs = collect.entrySet().stream()
|
||||||
|
@ -438,6 +450,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
}
|
}
|
||||||
if(keyPair.getValue().equals("2")){
|
if(keyPair.getValue().equals("2")){
|
||||||
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
||||||
|
tableNameDetails=keyPair.getKey();
|
||||||
if(jsonArray!= null) {
|
if(jsonArray!= null) {
|
||||||
for (int i = 0; i < jsonArray.size(); i++) {
|
for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
||||||
|
@ -504,6 +517,17 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
//更新主表数据
|
//更新主表数据
|
||||||
Integer integer = comparisonDao.updateComparisonByType(comparisonEntity);
|
Integer integer = comparisonDao.updateComparisonByType(comparisonEntity);
|
||||||
jsonObjectList.put(comparisonEntity.getDbName(),map);
|
jsonObjectList.put(comparisonEntity.getDbName(),map);
|
||||||
|
|
||||||
|
//根据formmain_id删除子表数据,之后再新增,注:这种情况只有data_id没有并且随时会变的时候才使用
|
||||||
|
//钉钉人员主数据编码和钉钉部门主数据编码
|
||||||
|
if(jsonObject.getString("mdmCode").equals("10015") || jsonObject.getString("mdmCode").equals("10016")) {
|
||||||
|
ComparisonDetailsEntity comparisonDetails = new ComparisonDetailsEntity();
|
||||||
|
comparisonDetails.setDbName(tableNameDetails);
|
||||||
|
comparisonDetails.setFormmainId(id);
|
||||||
|
comparisonDetails.setModify_user_id("c796fd9ba4c9f5ff3cc2fa41a040e443");
|
||||||
|
comparisonDetailsDao.deleteComparisonDetailsByFormmainId(comparisonDetails);
|
||||||
|
}
|
||||||
|
|
||||||
if (integer>0) {
|
if (integer>0) {
|
||||||
//保存子表数据
|
//保存子表数据
|
||||||
if (arrayList != null && arrayList.size() > 0) {
|
if (arrayList != null && arrayList.size() > 0) {
|
||||||
|
@ -521,8 +545,18 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
comparisonDetailsEntity.setFormmainId(id);
|
comparisonDetailsEntity.setFormmainId(id);
|
||||||
comparisonDetailsEntity.setMapDetails(stringObjectMap);
|
comparisonDetailsEntity.setMapDetails(stringObjectMap);
|
||||||
comparisonDetailsEntity.setDbName(String.valueOf(stringObjectMap.get("table_name")));
|
comparisonDetailsEntity.setDbName(String.valueOf(stringObjectMap.get("table_name")));
|
||||||
|
//根据dataid和fformmainId查询单个子表数据,判断有无,没有则新增,有则更新
|
||||||
|
Map<String, Object> mapOne = comparisonDetailsDao.queryComparisonDetailsByDataId(comparisonDetailsEntity);
|
||||||
|
//将表名称从字段中移除,不需要
|
||||||
stringObjectMap.remove("table_name");
|
stringObjectMap.remove("table_name");
|
||||||
|
if(mapOne!=null){
|
||||||
comparisonDetailsDao.updateComparisonDetailsByType(comparisonDetailsEntity);
|
comparisonDetailsDao.updateComparisonDetailsByType(comparisonDetailsEntity);
|
||||||
|
}else{
|
||||||
|
stringObjectMap.put("id", UUIDLong.longUUID());
|
||||||
|
stringObjectMap.put("formmain_id", id);
|
||||||
|
stringObjectMap.put("create_time", new Date());
|
||||||
|
comparisonDetailsDao.saveComparisonDetails(comparisonDetailsEntity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
jsonObjectList.put(comparisonDetailsEntity.getDbName(),mapDetails);
|
jsonObjectList.put(comparisonDetailsEntity.getDbName(),mapDetails);
|
||||||
|
|
Loading…
Reference in New Issue