diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.java index 5766ec65..112c0d4a 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.java +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.java @@ -31,6 +31,16 @@ public class ComparisonDetailsEntity extends BaseEntity { private String filedType;//字段类型 1、BIGINT 2、DECIMAL 3、VARCHAR 4、DATETIME 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; } diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.xml b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.xml index 754cca03..4957592c 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.xml +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonDetailsEntity.xml @@ -20,7 +20,7 @@ @@ -48,19 +48,19 @@ ${key} =#{value} - 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 ${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' - and formmain_id=#{formmainId} and sts='Y' + and formmain_id=#{formmainId} and sts='Y' and (data_status='Y' or data_status='F') diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java index 6a97f2b4..1cb1b3db 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.java @@ -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; } diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.xml b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.xml index d24c345d..341e28cd 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.xml +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/entity/ComparisonEntity.xml @@ -106,7 +106,7 @@ ${key} =#{value} - where id=#{id} and sts='Y' + where id=#{id} and sts='Y' and (data_status='Y' or data_status='F') @@ -119,7 +119,7 @@ and ${key} =#{value} - and id=#{id} and sts='Y' + and id=#{id} and sts='Y' and (data_status='Y' or data_status='F') diff --git a/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java b/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java index 8445dc71..251be257 100644 --- a/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/sysnew/comparison/service/impl/ComparisonServiceImpl.java @@ -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 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 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 List>> 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 if(mapDetails.size()>0 && mapDetails!=null ){ for (List> mapDetail : mapDetails) { for (Map 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 } 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 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 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,7 +348,20 @@ public class ComparisonServiceImpl extends BaseService List>> mapDetails=new ArrayList<>();//将子表数据存到map中 if(comparisonEntities !=null && comparisonEntities.size()>0) { map=spliceMainMap(comparisonEntities,jsonObjectMain,map,comparisonEntity,comparisonDetailsEntity); - map.put("create_user_id", "c796fd9ba4c9f5ff3cc2fa41a040e443"); + + //根据data_id查询id.根据id更新主表数据,然后再根据主表id和明细表的data_id,删除明细表数据 + Map mapId=new HashMap<>(); + mapId.put("data_id",jsonObjectMain.getString("data_id")); + ComparisonEntity comparison=new ComparisonEntity(); + comparison.setDbName(comparisonEntity.getDbName()); + comparison.setMap(mapId); + List> 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"); map.put("modify_time", new Date()); @@ -353,7 +369,7 @@ public class ComparisonServiceImpl extends BaseService 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 try { List 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 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 comparisonEntity = jsonObject.toJavaObject(ComparisonEntity.class); ComparisonDetailsEntity comparisonDetailsEntity=new ComparisonDetailsEntity(); - JSONObject jsonObjectMain=jsonObject.getJSONObject("main");//获取主表数据 - if(!checkStr(jsonObjectMain.getString("id"))){ - return BaseResult.getFailureMessageEntity("删除时候主表id不能为空"); - } List comparisonEntities=new ArrayList<>(); //根据主数据编码查询表名称,字段名称等信息 10001 try { @@ -440,6 +453,25 @@ public class ComparisonServiceImpl extends BaseService logger.info("根据主数据编码查询信息错误:{}",e.getMessage()); return BaseResult.getFailureMessageEntity("删除失败"); } + JSONObject jsonObjectMain=new JSONObject(); + //根据dbtype和dbname分组,拿到表名称和表类型 + Map>> collect = comparisonEntities.stream().collect(Collectors.groupingBy(ComparisonEntity::getDbName, Collectors.groupingBy(ComparisonEntity::getDbType))); + List> keyPairs = collect.entrySet().stream() + .flatMap(e1 -> e1.getValue().keySet().stream() + .map(dbname -> new AbstractMap.SimpleEntry<>(e1.getKey(), dbname))) + .collect(Collectors.toList()); + for (Map.Entry 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 map=new HashMap<>(); if(comparisonEntities !=null && comparisonEntities.size()>0) { for (ComparisonEntity entity : comparisonEntities) { @@ -456,14 +488,27 @@ public class ComparisonServiceImpl extends BaseService } } } - comparisonEntity.setId(jsonObjectMain.getString("id")); + + //根据data_id查询主表id.根据id删除主表数据,然后再根据主表id和明细表data_id删除明细表数据 + Map mapId=new HashMap<>(); + mapId.put("data_id",jsonObjectMain.getString("data_id")); + ComparisonEntity comparison=new ComparisonEntity(); + comparison.setDbName(comparisonEntity.getDbName()); + comparison.setMap(mapId); + List> 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 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());