This commit is contained in:
lvleigang 2024-06-25 14:12:24 +08:00
commit 465ede3d79
5 changed files with 93 additions and 28 deletions

View File

@ -31,6 +31,16 @@ public class ComparisonDetailsEntity extends BaseEntity {
private String filedType;//字段类型 1BIGINT 2DECIMAL 3VARCHAR 4DATETIME
private String formmainId;//上级id
private String dataId;//第三方主键id
public String getDataId() {
return dataId;
}
public void setDataId(String dataId) {
this.dataId = dataId;
}
public String getFormmainId() {
return formmainId;
}

View File

@ -20,7 +20,7 @@
<select id="queryComparisonDetailsPage" resultType="java.util.Map"
parameterType="com.hzya.frame.sysnew.comparison.entity.ComparisonDetailsEntity">
select * from ${dbName}
where formmain_id=#{formmainId} and sts='Y'
where formmain_id=#{formmainId} and sts='Y' and (data_status='Y' or data_status='F')
</select>
@ -48,19 +48,19 @@
${key} =#{value}
</foreach>
</set>
where id=#{id} and sts='Y'
where data_id=#{dataId} and formmain_id= #{formmainId} and sts='Y' and (data_status='Y' or data_status='F')
</update>
<!-- 多条件逻辑删除 -->
<update id="deleteComparisonDetails" parameterType = "java.util.Map" >
update
${dbName}
set sts= 'N' ,modify_time = now(),modify_user_id = #{modify_user_id}, data_status= 'N',delete_status='0'
set modify_time = now(),modify_user_id = #{modify_user_id}, data_status= '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 formmain_id=#{formmainId} and sts='Y' and (data_status='Y' or data_status='F')
</trim>
</update>

View File

@ -44,6 +44,16 @@ public class ComparisonEntity extends BaseEntity {
private String listType;//显示类型列表
private String viewType;//显示类型显示
private String dataId;//第三方主键id
public String getDataId() {
return dataId;
}
public void setDataId(String dataId) {
this.dataId = dataId;
}
public String getAddType() {
return addType;
}

View File

@ -106,7 +106,7 @@
${key} =#{value}
</foreach>
</set>
where id=#{id} and sts='Y'
where id=#{id} and sts='Y' and (data_status='Y' or data_status='F')
</update>
@ -119,7 +119,7 @@
<foreach collection="map.entrySet()" item="value" index="key">
and ${key} =#{value}
</foreach>
and id=#{id} and sts='Y'
and id=#{id} and sts='Y' and (data_status='Y' or data_status='F')
</trim>
</update>

View File

@ -18,6 +18,7 @@ import com.hzya.frame.sysnew.comparison.dao.IComparisonDetailsDao;
import com.hzya.frame.sysnew.comparison.entity.ComparisonDetailsEntity;
import com.hzya.frame.sysnew.comparison.entity.ComparisonEntity;
import com.hzya.frame.sysnew.comparison.service.IComparisonService;
import com.hzya.frame.uuid.UUIDLong;
import com.hzya.frame.uuid.UUIDUtils;
import com.hzya.frame.web.entity.BaseResult;
import com.hzya.frame.web.entity.JsonResultEntity;
@ -165,8 +166,8 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
String main = jsonObject.getString(keyPair.getKey());
if(main!=null){
jsonObjectMain = JSONObject.parseObject(main);
if(!checkStr(jsonObjectMain.getString("id"))){
return BaseResult.getFailureMessageEntity("新增时候主表id不能为空");
if(!checkStr(jsonObjectMain.getString("data_id"))){
return BaseResult.getFailureMessageEntity("新增时候主表data_id不能为空");
}
}
}
@ -177,8 +178,8 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
jsonObjectDetails.put("table_name", keyPair.getKey());
if(!checkStr(jsonObjectDetails.getString("id"))){
return BaseResult.getFailureMessageEntity("新增时候明细id不能为空");
if(!checkStr(jsonObjectDetails.getString("data_id"))){
return BaseResult.getFailureMessageEntity("新增时候明细data_id不能为空");
}
}
arrayList.add(jsonArray);
@ -190,6 +191,8 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
List<List<Map<String, Object>>> mapDetails = new ArrayList<>();//将子表数据存到map中
if (comparisonEntities != null && comparisonEntities.size() > 0) {
map = spliceMainMap(comparisonEntities, jsonObjectMain, map, comparisonEntity, comparisonDetailsEntity);
String uuid= String.valueOf(UUIDLong.longUUID());
map.put("id", uuid);
map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
map.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
map.put("org_id", "0");
@ -246,8 +249,8 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
if(mapDetails.size()>0 && mapDetails!=null ){
for (List<Map<String, Object>> mapDetail : mapDetails) {
for (Map<String, Object> stringObjectMap : mapDetail) {
stringObjectMap.put("id", stringObjectMap.get("id"));
stringObjectMap.put("formmain_id", jsonObjectMain.getString("id"));
stringObjectMap.put("id", UUIDLong.longUUID());
stringObjectMap.put("formmain_id", uuid);
stringObjectMap.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
stringObjectMap.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
stringObjectMap.put("org_id", "0");
@ -271,7 +274,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
}
list.add(jsonObjectList);
//保存操作日志
controlsLogDaoimpl.saveControlsLog(jsonObjectMain.getString("id"),jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),comparisonEntityRule.getDbName()+"_option_log");
controlsLogDaoimpl.saveControlsLog(uuid,jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口新增",jsonObject.getString("optionName"),comparisonEntityRule.getDbName()+"_option_log");
return BaseResult.getSuccessMessageEntity("保存成功", list);
} catch (Exception e) {
logger.info("保存通用数据时候错误:{}", e.getMessage());
@ -322,8 +325,8 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
String main = jsonObject.getString(keyPair.getKey());
if(main!=null){
jsonObjectMain = JSONObject.parseObject(main);
if(!checkStr(jsonObjectMain.getString("id"))){
return BaseResult.getFailureMessageEntity("更新时候主表id不能为空");
if(!checkStr(jsonObjectMain.getString("data_id"))){
return BaseResult.getFailureMessageEntity("更新时候主表data_id不能为空");
}
}
}
@ -332,8 +335,8 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
if(jsonArray!= null) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObjectDetails = jsonArray.getJSONObject(i);
if(!checkStr(jsonObjectDetails.getString("id"))){
return BaseResult.getFailureMessageEntity("更新明细表时候明细表id不能为空");
if(!checkStr(jsonObjectDetails.getString("data_id"))){
return BaseResult.getFailureMessageEntity("更新明细表时候明细表data_id不能为空");
}
jsonObjectDetails.put("table_name", keyPair.getKey());
}
@ -345,6 +348,19 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
List<List<Map<String,Object>>> mapDetails=new ArrayList<>();//将子表数据存到map中
if(comparisonEntities !=null && comparisonEntities.size()>0) {
map=spliceMainMap(comparisonEntities,jsonObjectMain,map,comparisonEntity,comparisonDetailsEntity);
//根据data_id查询id.根据id更新主表数据,然后再根据主表id和明细表的data_id,删除明细表数据
Map<String,Object> mapId=new HashMap<>();
mapId.put("data_id",jsonObjectMain.getString("data_id"));
ComparisonEntity comparison=new ComparisonEntity();
comparison.setDbName(comparisonEntity.getDbName());
comparison.setMap(mapId);
List<Map<String,Object>> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparison);
if(CollectionUtils.isEmpty(comparisonEntitiePages)){
return BaseResult.getFailureMessageEntity("根据data_id查询id数据为空请检查data_id");
}
String id = String.valueOf(comparisonEntitiePages.get(0).get("id"));
map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
map.put("modify_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443");
map.put("org_id", "0");
@ -353,7 +369,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
map.put("data_status","F");//数据状态
map.put("update_status","0");//修改状态
comparisonEntity.setMap(map);
comparisonEntity.setId(jsonObjectMain.getString("id"));
comparisonEntity.setId(id);
/*//生成单据规则
comparisonEntity.setRulePrefix(jsonObject.getString("rulePrefix"));
try {
@ -367,7 +383,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
try {
List<JSONObject> jsonObjects=new ArrayList<>();
JSONObject jsonObjectList=new JSONObject();
//保存主表数据
//更新主表数据
Integer integer = comparisonDao.updateComparisonByType(comparisonEntity);
jsonObjectList.put(comparisonEntity.getDbName(),map);
if (integer>0) {
@ -382,7 +398,8 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
stringObjectMap.put("modify_time", new Date());
stringObjectMap.put("sts", "Y");
stringObjectMap.put("data_status","F");//数据状态
comparisonDetailsEntity.setId(String.valueOf(stringObjectMap.get("id")));
comparisonDetailsEntity.setDataId(String.valueOf(stringObjectMap.get("data_id")));
comparisonDetailsEntity.setFormmainId(id);
comparisonDetailsEntity.setMapDetails(stringObjectMap);
comparisonDetailsEntity.setDbName(String.valueOf(stringObjectMap.get("table_name")));
stringObjectMap.remove("table_name");
@ -425,10 +442,6 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
}
ComparisonEntity comparisonEntity = jsonObject.toJavaObject(ComparisonEntity.class);
ComparisonDetailsEntity comparisonDetailsEntity=new ComparisonDetailsEntity();
JSONObject jsonObjectMain=jsonObject.getJSONObject("main");//获取主表数据
if(!checkStr(jsonObjectMain.getString("id"))){
return BaseResult.getFailureMessageEntity("删除时候主表id不能为空");
}
List<ComparisonEntity> comparisonEntities=new ArrayList<>();
//根据主数据编码查询表名称字段名称等信息 10001
try {
@ -440,6 +453,25 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
logger.info("根据主数据编码查询信息错误:{}",e.getMessage());
return BaseResult.getFailureMessageEntity("删除失败");
}
JSONObject jsonObjectMain=new JSONObject();
//根据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()
.flatMap(e1 -> e1.getValue().keySet().stream()
.map(dbname -> new AbstractMap.SimpleEntry<>(e1.getKey(), dbname)))
.collect(Collectors.toList());
for (Map.Entry<String, String> keyPair : keyPairs) {
if(keyPair.getValue().equals("1")){
String main = jsonObject.getString(keyPair.getKey());
if(main!=null){
jsonObjectMain = JSONObject.parseObject(main);
if(!checkStr(jsonObjectMain.getString("data_id"))){
return BaseResult.getFailureMessageEntity("更新时候主表data_id不能为空");
}
}
}
}
Map<String,Object> map=new HashMap<>();
if(comparisonEntities !=null && comparisonEntities.size()>0) {
for (ComparisonEntity entity : comparisonEntities) {
@ -456,14 +488,27 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
}
}
}
comparisonEntity.setId(jsonObjectMain.getString("id"));
//根据data_id查询主表id.根据id删除主表数据然后再根据主表id和明细表data_id删除明细表数据
Map<String,Object> mapId=new HashMap<>();
mapId.put("data_id",jsonObjectMain.getString("data_id"));
ComparisonEntity comparison=new ComparisonEntity();
comparison.setDbName(comparisonEntity.getDbName());
comparison.setMap(mapId);
List<Map<String,Object>> comparisonEntitiePages = comparisonDao.queryComparisonPage(comparison);
if(CollectionUtils.isEmpty(comparisonEntitiePages)){
return BaseResult.getFailureMessageEntity("根据data_id查询id数据为空请检查data_id");
}
String id = String.valueOf(comparisonEntitiePages.get(0).get("id"));
comparisonEntity.setId(id);
comparisonEntity.setModify_user_id("c796fd9ba4c9f5ff3cc2fa41a040e443");
comparisonEntity.setMap(map);
try {
Integer integer = comparisonDao.deleteComparison(comparisonEntity);
if(integer>0){
if(comparisonDetailsEntity.getDbName()!=null){
comparisonDetailsEntity.setFormmainId(jsonObjectMain.getString("id"));
comparisonDetailsEntity.setFormmainId(id);
comparisonDetailsEntity.setModify_user_id("c796fd9ba4c9f5ff3cc2fa41a040e443");
comparisonDetailsDao.deleteComparisonDetails(comparisonDetailsEntity);
// controlsLogDaoimpl.saveControlsLog(comparisonDetailsEntity.getId(),jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口删除",jsonObject.getString("optionName"),comparisonEntity.getDbName()+"_option_log");
@ -471,7 +516,7 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
controlsLogDaoimpl.saveControlsLog(comparisonEntity.getId(),jsonObject.getString("appName"),jsonObject.getString("appCode"),jsonObject.toJSONString(),"接口删除",jsonObject.getString("optionName"),comparisonEntity.getDbName()+"_option_log");
return BaseResult.getSuccessMessageEntity("删除成功",integer);
}else{
return BaseResult.getFailureMessageEntity("删除失败","请查看id是否在表中存在");
return BaseResult.getFailureMessageEntity("删除失败","请查看data_id是否在表中存在");
}
}catch (Exception e){
logger.info("删除通用数据数据错误:{}",e.getMessage());