增加同步指令下发与同步状态获取功能,修改同步下发配置的asn业务逻辑

This commit is contained in:
zhangwei
2018-11-27 16:57:08 +08:00
parent 85fc51134c
commit 80e6bbb53d
8 changed files with 186 additions and 38 deletions

View File

@@ -1,20 +1,32 @@
package com.nis.web.controller.configuration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.SysDataDictionaryName;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.maat.ToMaatResult;
import com.nis.util.CacheUtils;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
import com.nis.web.service.BaseService;
/**
* 配置全量同步
@@ -26,10 +38,34 @@ import com.nis.web.controller.BaseController;
public class ConfigSynchronizationController extends BaseController {
/**
* @param cmd 0为取消同步1为同步
* 下发同步命令
*/
@RequestMapping(value = {"cmd"})
public String cmd(Model model,String cmd){
public String cmd(Model model,Integer cmd,HttpServletRequest request,HttpServletResponse response){
Map<String,Integer> map = new HashMap();
map.put("syncStatus", cmd);
JSONObject result = ConfigServiceUtil.configSyncCmd(BaseService.gsonToJson(map));
if(result.get("status").equals(201)){//响应成功
if(cmd.equals(1)){//同步
SysDataDictionaryName sysDictName = new SysDataDictionaryName();
sysDictName.setMark("currrent_sync_status");
List<SysDataDictionaryName> dictList = dictService.findDicByName(sysDictName);
if(!StringUtil.isEmpty(dictList)){
List<SysDataDictionaryItem> itemList = dictList.get(0).getDictItemList();
if(!StringUtil.isEmpty(itemList)){
SysDataDictionaryItem item = itemList.get(0);
item.setItemValue("0");//0为开始同步
dictService.updateDictItem(item);
//删除字典缓存
CacheUtils.remove(Constants.CACHE_DICT_MAP);
}
}
send(model,request,response);
}else if(cmd.equals(0)){//取消
}
}
return "";
}
@@ -39,31 +75,80 @@ public class ConfigSynchronizationController extends BaseController {
*/
@RequestMapping(value = {"send"})
public void send(Model model,HttpServletRequest request,HttpServletResponse response){
int status = 1;
try {
configSynchronizationService.send(request,response,null);
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status = 0;
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status = 0;
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status = 0;
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status = 0;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
status = 0;
}finally{
if(status==0){
SysDataDictionaryName sysDictName = new SysDataDictionaryName();
sysDictName.setMark("currrent_sync_status");
List<SysDataDictionaryName> dictList = dictService.findDicByName(sysDictName);
if(!StringUtil.isEmpty(dictList)){
List<SysDataDictionaryItem> itemList = dictList.get(0).getDictItemList();
if(!StringUtil.isEmpty(itemList)){
SysDataDictionaryItem item = itemList.get(0);
item.setItemValue("-1");//下发过程中失败
dictService.updateDictItem(item);
//删除字典缓存
CacheUtils.remove(Constants.CACHE_DICT_MAP);
}
}
Map<String,Integer> map = new HashMap();
map.put("syncStatus", 1);
JSONObject result = ConfigServiceUtil.configSyncCmd(BaseService.gsonToJson(map));//取消
if(result.get("status").equals(200)){//取消下发成功
}
}
}
}
/**
* 同步状态获取
*/
@RequestMapping(value = {"getStatus"})
@ResponseBody
public String getStatus(Model model){
JSONObject result = ConfigServiceUtil.configSyncStatus();//获取同步状态
if(result.get("status").equals(200)){
List<Map<String,Object>> list = result.getJSONArray("data");
if(!StringUtil.isEmpty(list)){
Map<String,Object> map = list.get(0);
String status = map.get("status").toString();
SysDataDictionaryName sysDictName = new SysDataDictionaryName();
sysDictName.setMark("currrent_sync_status");
List<SysDataDictionaryName> dictList = dictService.findDicByName(sysDictName);
if(!StringUtil.isEmpty(dictList)){
SysDataDictionaryName dict = dictList.get(0);
List<SysDataDictionaryItem> itemList =dict.getDictItemList();
if(!StringUtil.isEmpty(itemList)){
SysDataDictionaryItem item = itemList.get(0);
if(!status.equals(item.getItemValue())){//如果状态不同,则更新状态
item.setDictionaryId(dict.getId().intValue());
item.setItemValue(status);
dictService.updateDictItem(item);
//删除字典缓存
CacheUtils.remove(Constants.CACHE_DICT_MAP);
}
}
}
}
}
return "";
}
}