From 00282d1b30619433b7bd3c7669a85930c9a2e46e Mon Sep 17 00:00:00 2001 From: chenlw <874313221@qq.com> Date: Wed, 21 Dec 2016 09:57:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=9C=A8=E8=BF=9B=E8=A1=8C=E6=8A=BD?= =?UTF-8?q?=E5=8F=96=E3=80=81=E6=B1=87=E6=80=BB=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=AE=B0=E5=BD=95=E4=B8=8D=E5=BA=94=E8=AF=A5=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=88=A0=E9=99=A4=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CheckoutController.java | 39 ++++++++++-- .../controller/DataModelController.java | 29 ++++++++- .../service/impl/CheckoutServiceImpl.java | 3 +- .../impl/OracleExtractServiceImpl.java | 5 ++ .../service/thread/ThreadExtractOracle.java | 10 +++ .../thread/ThreadExtractStandardOracle.java | 20 ++++-- .../ThreadExtractStandardSqlServer.java | 6 ++ .../platform/utils/CacheSetCantDelete.java | 61 +++++++++++++++++++ 8 files changed, 160 insertions(+), 13 deletions(-) create mode 100644 src/com/platform/utils/CacheSetCantDelete.java diff --git a/src/com/platform/controller/CheckoutController.java b/src/com/platform/controller/CheckoutController.java index 2776bbb7..00ead0f8 100644 --- a/src/com/platform/controller/CheckoutController.java +++ b/src/com/platform/controller/CheckoutController.java @@ -1,5 +1,6 @@ package com.platform.controller; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.ResponseBody; import com.base.BaseController; import com.platform.entities.CheckoutEntity; import com.platform.entities.PreDataInfo; +import com.platform.service.DataInfoService; import com.platform.service.ICheckoutService; +import com.platform.utils.CacheSetCantDelete; /** 信息系统--校验 * @author chen @@ -32,6 +35,12 @@ public class CheckoutController extends BaseController { @Resource(name = "checkoutService") private ICheckoutService checkoutService; + /** + * 数据管理业务层 + */ + @Resource(name = "dataInfoService") + private DataInfoService dataInfoService; + /** * 信息系统--校验--查看所有系统的 标准表情况 * @return @@ -143,15 +152,35 @@ public class CheckoutController extends BaseController { @RequestMapping("/deleteList") public ModelMap deleteList(@RequestBody List form, HttpServletRequest req, HttpServletResponse res) throws Exception { ModelMap modelMap = new ModelMap(); + log.info("---------/deleteList--- "+ form.size()); if (null != form) { - log.info("---------/deleteList--- "+ form.size()); - List result = checkoutService.deleteAll(form); + List dataIds = new ArrayList(); + List errCk = new ArrayList(); + for (CheckoutEntity checkoutEntity : form) { + int dataInfoId = checkoutEntity.getDataId(); + if (dataInfoId > 0) { + if(CacheSetCantDelete.containsId(String.valueOf(dataInfoId))) + errCk.add(checkoutEntity); + else + dataIds.add(dataInfoId); + } + } + if (dataIds.size() > 0) { + dataInfoService.deleteData(dataIds); + // 根据 dataIds 删除 + } + List result = new ArrayList(); + if (form.size() > 0) { + result = checkoutService.findByCity(form.get(0).getCityName()); + } + if (errCk.size() > 0) { + modelMap.put("err", errCk); + res.setStatus(500); + } +// List result = checkoutService.deleteAll(form); modelMap.addAttribute("data", result); modelMap.addAttribute("length", result.size()); } - else { - log.info("---------/deleteList--- "+ form); - } return modelMap; } diff --git a/src/com/platform/controller/DataModelController.java b/src/com/platform/controller/DataModelController.java index 7ecc95da..2325bf26 100644 --- a/src/com/platform/controller/DataModelController.java +++ b/src/com/platform/controller/DataModelController.java @@ -41,6 +41,7 @@ import com.platform.service.IOracleExtractService; import com.platform.service.IVolumeService; import com.platform.service.OracleExtractTask; import com.platform.service.OracleStatusService; +import com.platform.utils.CacheSetCantDelete; import com.platform.utils.Constant; import com.platform.utils.ThreadVolumeImm; import com.platform.utils.UtilsHelper; @@ -147,13 +148,35 @@ public class DataModelController extends BaseController { * @throws Exception */ @RequestMapping(value = "/delete/data", method = RequestMethod.POST) - public void deleteData(HttpServletRequest res, HttpServletResponse req) + public ModelMap deleteData(HttpServletRequest res, HttpServletResponse req) throws Exception { + log.info("-----------/delete/data-----------"); + ModelMap mode = new ModelMap(); res.setCharacterEncoding("UTF-8"); Map paramMap = res.getParameterMap(); String[] data = paramMap.get("data"); - dfs.deleteData(data); - req.setStatus(200); + if (null != data && data.length > 0) { + List list = new ArrayList(); + List errList = new ArrayList(); + //判断是否有 不能删除的。 + for (String dataId : data) { + if(CacheSetCantDelete.containsId(dataId)) + errList.add(dataId); + else + list.add(dataId); + } + if (list.size() > 0) { + String[] ids = list.toArray(new String[list.size()]); + dfs.deleteData(ids); + req.setStatus(200); + } + if (errList.size() > 0) { + mode.put("err", errList); + req.setStatus(500); + } + + } + return mode; } /** diff --git a/src/com/platform/service/impl/CheckoutServiceImpl.java b/src/com/platform/service/impl/CheckoutServiceImpl.java index cc3e12d2..45747d6b 100644 --- a/src/com/platform/service/impl/CheckoutServiceImpl.java +++ b/src/com/platform/service/impl/CheckoutServiceImpl.java @@ -29,6 +29,7 @@ import com.platform.service.thread.ThreadCheckoutStandardOracle; import com.platform.service.thread.ThreadExtractStandardSqlServer; import com.platform.utils.BeanCopy; import com.platform.utils.CacheOracleCheckoutEntity; +import com.platform.utils.CacheSetCantDelete; import com.platform.utils.Configs; import com.platform.utils.Constant; import com.platform.utils.DateForm; @@ -334,7 +335,7 @@ public class CheckoutServiceImpl implements ICheckoutService { List dataIds = new ArrayList(); for (CheckoutEntity checkoutEntity : list) { int dataInfoId = checkoutEntity.getDataId(); - if (dataInfoId > 0) { + if (dataInfoId > 0 && !CacheSetCantDelete.containsId(String.valueOf(dataInfoId))) { dataIds.add(dataInfoId); } } diff --git a/src/com/platform/service/impl/OracleExtractServiceImpl.java b/src/com/platform/service/impl/OracleExtractServiceImpl.java index 40b5873d..01cca4cd 100644 --- a/src/com/platform/service/impl/OracleExtractServiceImpl.java +++ b/src/com/platform/service/impl/OracleExtractServiceImpl.java @@ -19,6 +19,7 @@ import com.platform.kubernetes.SimpleKubeClient; import com.platform.oracle.OracleConnector; import com.platform.service.IOracleExtractService; import com.platform.service.OracleExtractHelper; +import com.platform.utils.CacheSetCantDelete; import com.platform.utils.Configs; import com.platform.utils.Constant; import com.platform.utils.DateForm; @@ -142,6 +143,8 @@ public class OracleExtractServiceImpl implements IOracleExtractService { log.error(Custom4exception.OracleSQL_Except, e); } finally{ + //去掉保存的当前数据id, + CacheSetCantDelete.removeExtractId(collectOracle.getDataId()); String msg = "汇总结束"; if (2 != data.getExtractStatus()) { msg +=" 汇总有异常!状态重置为待汇总 "; @@ -339,6 +342,8 @@ public class OracleExtractServiceImpl implements IOracleExtractService { log.error(Custom4exception.OracleSQL_Except, e); } finally{ + //去掉保存的当前数据id, + CacheSetCantDelete.removeStandardId(collectOracle.getDataId()); String msg = "抽取标准表结束"; if (!"2".equals(data.getStandardExtractStatus())) { msg +=" 抽取有异常!状态重置为待抽取 "; diff --git a/src/com/platform/service/thread/ThreadExtractOracle.java b/src/com/platform/service/thread/ThreadExtractOracle.java index d739c7c9..ed2e853f 100644 --- a/src/com/platform/service/thread/ThreadExtractOracle.java +++ b/src/com/platform/service/thread/ThreadExtractOracle.java @@ -2,8 +2,10 @@ package com.platform.service.thread; import com.base.Custom4exception; import com.base.CustomException; +import com.platform.entities.OracleConnectorParams; import com.platform.form.oracleForm; import com.platform.service.IOracleExtractService; +import com.platform.utils.CacheSetCantDelete; /** oracle汇总库抽取 * @author chen @@ -27,11 +29,19 @@ public class ThreadExtractOracle extends Thread { @Override public void run() { + //保存 正zai汇总的数据id + for (OracleConnectorParams element : form.getInneed()) { + CacheSetCantDelete.addExtractId(element.getDataId()); + } try { OracleExtract.extractOracle(form.getName(), form.getInneed(),form.getTarget()); } catch (Exception e) { new CustomException(Custom4exception.threadVolume_Oracle_Except,e,form,OracleExtract); } + //删除 汇总完成的数据id + for (OracleConnectorParams element : form.getInneed()) { + CacheSetCantDelete.removeExtractId(element.getDataId()); + } } } diff --git a/src/com/platform/service/thread/ThreadExtractStandardOracle.java b/src/com/platform/service/thread/ThreadExtractStandardOracle.java index c3116b22..e1facaa7 100644 --- a/src/com/platform/service/thread/ThreadExtractStandardOracle.java +++ b/src/com/platform/service/thread/ThreadExtractStandardOracle.java @@ -3,9 +3,11 @@ package com.platform.service.thread; import org.apache.log4j.Logger; import com.base.Custom4exception; +import com.platform.entities.OracleConnectorParams; import com.platform.form.oracleForm; import com.platform.service.IOracleExtractService; import com.platform.service.impl.CheckoutServiceImpl; +import com.platform.utils.CacheSetCantDelete; /** 抽取标准表线程 * @author chen @@ -37,10 +39,20 @@ public class ThreadExtractStandardOracle extends Thread { @Override public void run() { - try { - OracleExtract.extractStandardTable(form.getName(), form.getInneed(),form.getTarget()); - } catch (Exception e) { - log.error(Custom4exception.threadVolume_Oracle_Except,e); + if (null != form.getInneed()) { + //保存 正zai抽取标准表的数据id + for (OracleConnectorParams element : form.getInneed()) { + CacheSetCantDelete.addStandardId(element.getDataId()); + } + try { + OracleExtract.extractStandardTable(form.getName(), form.getInneed(),form.getTarget()); + } catch (Exception e) { + log.error(Custom4exception.threadVolume_Oracle_Except,e); + } + //删除抽取完的标准表的数据id + for (OracleConnectorParams element : form.getInneed()) { + CacheSetCantDelete.removeStandardId(element.getDataId()); + } } } diff --git a/src/com/platform/service/thread/ThreadExtractStandardSqlServer.java b/src/com/platform/service/thread/ThreadExtractStandardSqlServer.java index db043e90..bf8ca097 100644 --- a/src/com/platform/service/thread/ThreadExtractStandardSqlServer.java +++ b/src/com/platform/service/thread/ThreadExtractStandardSqlServer.java @@ -19,6 +19,7 @@ import com.platform.entities.GatherOracleInfo; import com.platform.entities.OracleConnectorParams; import com.platform.oracle.OracleConnector; import com.platform.service.OracleExtractHelper; +import com.platform.utils.CacheSetCantDelete; import com.platform.utils.Configs; import com.platform.utils.Constant; import com.platform.utils.DateForm; @@ -53,6 +54,9 @@ public class ThreadExtractStandardSqlServer extends Thread{ @Override public void run() { + for (CheckoutEntity element : Extractlist) { + CacheSetCantDelete.addStandardId(String.valueOf(element.getDataId())); + } for (CheckoutEntity element : Extractlist) { //校验结果:成功或失 0:未校验,1:不需校验,2:正在校验,3:校验成功,4:校验失败,5:待抽取,6:正在抽取,7:抽取完成 //设置 日志 的 文件名 @@ -191,6 +195,8 @@ public class ThreadExtractStandardSqlServer extends Thread{ } } + //删除保存过的id + CacheSetCantDelete.removeStandardId(String.valueOf(element.getDataId())); // sql日志记录时间: FileOperateHelper .fileWrite( diff --git a/src/com/platform/utils/CacheSetCantDelete.java b/src/com/platform/utils/CacheSetCantDelete.java new file mode 100644 index 00000000..5a5d9010 --- /dev/null +++ b/src/com/platform/utils/CacheSetCantDelete.java @@ -0,0 +1,61 @@ +package com.platform.utils; + +import java.util.HashSet; +import java.util.Set; + +/** 保存暂时不能删除的数据的id + * @author chen + * + */ +public class CacheSetCantDelete { + + /** + * 正则抽取标准表的 数据的id + */ + private static Set standardDataIdSet = new HashSet(); + /** + * 正则汇总的id + */ + private static Set extractDataIdSet = new HashSet(); + + /** 保存数据id + * @param dataId + * @return + */ + public static boolean addStandardId(String dataId) { + return standardDataIdSet.add(dataId); + } + + /** 去掉保存的数据id + * @param dataId + * @return + */ + public static boolean removeStandardId(String dataId) { + return standardDataIdSet.remove(dataId); + } + + /** 保存数据id + * @param dataId + * @return + */ + public static boolean addExtractId(String dataId) { + return extractDataIdSet.add(dataId); + } + + /** 去掉保存的数据id + * @param dataId + * @return + */ + public static boolean removeExtractId(String dataId) { + return extractDataIdSet.remove(dataId); + } + + public static boolean containsId(String dataId) { + if(standardDataIdSet.contains(dataId)) + return true; + else { + return extractDataIdSet.contains(dataId); + } + } + +}