正在进行抽取、汇总的数据库记录不应该可以删除数据

web_backend_develope
chenlw 9 years ago
parent ee216f4a2d
commit 00282d1b30

@ -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<CheckoutEntity> 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<CheckoutEntity> result = checkoutService.deleteAll(form);
List<Integer> dataIds = new ArrayList<Integer>();
List<CheckoutEntity> errCk = new ArrayList<CheckoutEntity>();
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<CheckoutEntity> result = new ArrayList<CheckoutEntity>();
if (form.size() > 0) {
result = checkoutService.findByCity(form.get(0).getCityName());
}
if (errCk.size() > 0) {
modelMap.put("err", errCk);
res.setStatus(500);
}
// List<CheckoutEntity> result = checkoutService.deleteAll(form);
modelMap.addAttribute("data", result);
modelMap.addAttribute("length", result.size());
}
else {
log.info("---------/deleteList--- "+ form);
}
return modelMap;
}

@ -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<String, String[]> paramMap = res.getParameterMap();
String[] data = paramMap.get("data");
dfs.deleteData(data);
req.setStatus(200);
if (null != data && data.length > 0) {
List<String> list = new ArrayList<String>();
List<String> errList = new ArrayList<String>();
//判断是否有 不能删除的。
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;
}
/**

@ -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<Integer> dataIds = new ArrayList<Integer>();
for (CheckoutEntity checkoutEntity : list) {
int dataInfoId = checkoutEntity.getDataId();
if (dataInfoId > 0) {
if (dataInfoId > 0 && !CacheSetCantDelete.containsId(String.valueOf(dataInfoId))) {
dataIds.add(dataInfoId);
}
}

@ -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 +=" 抽取有异常!状态重置为待抽取 ";

@ -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());
}
}
}

@ -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());
}
}
}

@ -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(

@ -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<String> standardDataIdSet = new HashSet<String>();
/**
* id
*/
private static Set<String> extractDataIdSet = new HashSet<String>();
/** 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);
}
}
}
Loading…
Cancel
Save