通用数据,如果是钉钉人员或者钉钉部门,增加或者修改时候先删除明细再增加明细
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
|
||||
* **/
|
||||
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;
|
||||
}
|
||||
|
||||
@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')
|
||||
</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">
|
||||
|
@ -64,5 +70,18 @@
|
|||
</trim>
|
||||
</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>
|
||||
|
||||
|
|
|
@ -173,6 +173,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
List<JSONArray> arrayList=new ArrayList<>();
|
||||
|
||||
String tableName=null;
|
||||
String tableNameDetails=null;
|
||||
//根据dbtype和dbname分组,拿到表名称和表类型
|
||||
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()
|
||||
|
@ -197,6 +198,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
//如果是2,就是明细表,根据查询出来得子表是否是传输传递得子表
|
||||
if(keyPair.getValue().equals("2")){
|
||||
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
||||
tableNameDetails=keyPair.getKey();
|
||||
if(jsonArray!= null) {
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
||||
|
@ -227,7 +229,6 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
comparisonDataId.setFields(fields);
|
||||
List<Map<String, Object>> listDataId = comparisonDao.queryComparisonPage(comparisonDataId);
|
||||
if (CollectionUtils.isNotEmpty(listDataId)) {
|
||||
//return BaseResult.getFailureMessageEntity(comparisonEntity.getDbName()+"表中已经存在data_id为:"+jsonObjectMain.getString("data_id")+"的数据");
|
||||
return updateEntity(json);
|
||||
} else {
|
||||
|
||||
|
@ -341,6 +342,18 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
//保存主表数据
|
||||
ComparisonEntity comparisonEntityOne = comparisonDao.saveComparison(comparisonEntityRule);
|
||||
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) {
|
||||
mapDetails = spliceDetailMap(comparisonEntities, mapDetails, arrayList);
|
||||
|
@ -361,8 +374,6 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
stringObjectMap.remove("table_name");
|
||||
ComparisonDetailsEntity comparisonDetailsEntityOne = comparisonDetailsDao.saveComparisonDetails(comparisonDetailsEntity);
|
||||
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);
|
||||
|
@ -420,6 +431,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
JSONObject jsonObjectMain=new JSONObject();
|
||||
JSONArray jsonArray=new JSONArray();
|
||||
List<JSONArray> arrayList=new ArrayList<>();
|
||||
String tableNameDetails=null;
|
||||
//根据dbtype和dbname分组,拿到表名称和表类型
|
||||
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()
|
||||
|
@ -438,6 +450,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
}
|
||||
if(keyPair.getValue().equals("2")){
|
||||
jsonArray= jsonObject.getJSONArray(keyPair.getKey());
|
||||
tableNameDetails=keyPair.getKey();
|
||||
if(jsonArray!= null) {
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
|
||||
|
@ -504,6 +517,17 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
//更新主表数据
|
||||
Integer integer = comparisonDao.updateComparisonByType(comparisonEntity);
|
||||
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 (arrayList != null && arrayList.size() > 0) {
|
||||
|
@ -521,8 +545,18 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
|||
comparisonDetailsEntity.setFormmainId(id);
|
||||
comparisonDetailsEntity.setMapDetails(stringObjectMap);
|
||||
comparisonDetailsEntity.setDbName(String.valueOf(stringObjectMap.get("table_name")));
|
||||
//根据dataid和fformmainId查询单个子表数据,判断有无,没有则新增,有则更新
|
||||
Map<String, Object> mapOne = comparisonDetailsDao.queryComparisonDetailsByDataId(comparisonDetailsEntity);
|
||||
//将表名称从字段中移除,不需要
|
||||
stringObjectMap.remove("table_name");
|
||||
comparisonDetailsDao.updateComparisonDetailsByType(comparisonDetailsEntity);
|
||||
if(mapOne!=null){
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue