package com.ld.igds.n2.controller;
|
|
import com.bstek.bdf2.core.business.IUser;
|
import com.ld.igds.common.manager.CommonManager;
|
import com.ld.igds.constant.BizType;
|
import com.ld.igds.constant.Constant;
|
import com.ld.igds.constant.DepotType;
|
import com.ld.igds.data.PageResponse;
|
import com.ld.igds.data.VerbImg;
|
import com.ld.igds.io.request.ExeDevice;
|
import com.ld.igds.io.response.DeviceControlResponse;
|
import com.ld.igds.models.Depot;
|
import com.ld.igds.models.Device;
|
import com.ld.igds.models.DicTrigger;
|
import com.ld.igds.models.N2IntelTask;
|
import com.ld.igds.n2.ConfigN2Img;
|
import com.ld.igds.n2.dto.N2AutoData;
|
import com.ld.igds.n2.dto.N2Param;
|
import com.ld.igds.n2.manager.N2Manager;
|
import com.ld.igds.util.ContextUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 气调控制层
|
*/
|
@RestController
|
@RequestMapping("basic/n2")
|
public class N2Controller {
|
|
@Resource
|
private CommonManager commonManager;
|
@Resource
|
private N2Manager n2Manager;
|
@Resource
|
private ConfigN2Img n2Img;
|
|
/**
|
* 根据仓库信息获取仓库配置等,跳转不同的显示页面
|
*
|
* @param depotId 仓库编码
|
* @param depotType 仓库类型
|
* @param deptId 所属分库
|
* @return
|
*/
|
@RequestMapping("/gateway")
|
public ModelAndView gateway(
|
@RequestParam(value = "depotId", required = false) String depotId,
|
@RequestParam(value = "depotType", required = true) String depotType,
|
@RequestParam(value = "deptId", required = false) String deptId) {
|
ModelAndView view = new ModelAndView();
|
|
IUser user = ContextUtil.getLoginUser();
|
view.addObject(Constant.MODEL_KEY_LOGIN_USER, user);
|
|
if (StringUtils.isEmpty(deptId)) {
|
deptId = ContextUtil.subDeptId(user);
|
}
|
|
view.addObject("deptId", deptId);
|
|
// 获取当前部门,所有仓库列表
|
List<Depot> listDepot = commonManager.listDepot(deptId);
|
view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
|
|
|
view.addObject("bizType", BizType.N2.getCode());
|
view.addObject("depotType", depotType);
|
view.addObject("depotId", depotId);
|
|
|
//如果不配置默认跳转平房仓
|
if (StringUtils.isEmpty(depotType)) depotType = DepotType.TYPE_01.getCode();
|
|
if (DepotType.TYPE_02.getCode().equals(depotType) || DepotType.TYPE_04.getCode().equals(depotType)) {
|
view.setViewName("admin/n2/n2-hand2");
|
} else {
|
if ("5013".equals(user.getCompanyId()) || "5016".equals(user.getCompanyId())) {
|
view.setViewName("admin/n2/n2-hand-5013");
|
} else {
|
view.setViewName("admin/n2/n2-hand1");
|
}
|
}
|
|
// 每个仓库正面和背面图片
|
Map<String, VerbImg> n2ImgMap = n2Img.getN2Img(listDepot, deptId);
|
view.addObject("n2ImgMap", n2ImgMap);
|
return view;
|
}
|
|
|
/**
|
* 页面控制--平房仓-阀门箱
|
*
|
* @param depotId
|
* @return
|
*/
|
@RequestMapping("/n2-hand1")
|
public ModelAndView n2Hand1(
|
@RequestParam(value = "depotId", required = false) String depotId) {
|
|
ModelAndView view = new ModelAndView();
|
IUser user = ContextUtil.getLoginUser();
|
|
view.addObject(Constant.MODEL_KEY_LOGIN_USER, user);
|
//当前人所在分库
|
String deptId = ContextUtil.subDeptId(user);
|
view.addObject("deptId", deptId);
|
|
// 仓库列表做下拉框使用
|
List<Depot> listDepot = commonManager.listDepot(deptId);
|
view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
|
|
view.addObject("depotType", DepotType.TYPE_01.getCode());
|
|
view.addObject("depotId", depotId);
|
|
view.addObject(Constant.MODEL_KEY_BIZ_TYPE, BizType.N2.getCode());
|
|
|
// 每个仓库正面和背面图片
|
Map<String, VerbImg> n2ImgMap = n2Img.getN2Img(listDepot, deptId);
|
view.addObject("n2ImgMap", n2ImgMap);
|
|
view.setViewName("admin/n2/n2-hand1");
|
if ("5013".equals(user.getCompanyId()) || "5016".equals(user.getCompanyId())) {
|
view.setViewName("admin/n2/n2-hand-5013");
|
}
|
return view;
|
}
|
|
/**
|
* 页面控制--筒仓阀门箱控制
|
*
|
* @param depotId
|
* @return
|
*/
|
@RequestMapping("/n2-hand2")
|
public ModelAndView n2Hand2(
|
@RequestParam(value = "depotId", required = false) String depotId) {
|
ModelAndView view = new ModelAndView();
|
IUser user = ContextUtil.getLoginUser();
|
|
view.addObject(Constant.MODEL_KEY_LOGIN_USER, user);
|
//当前人所在分库
|
String deptId = ContextUtil.subDeptId(user);
|
view.addObject("deptId", deptId);
|
|
// 仓库列表做下拉框使用
|
List<Depot> listDepot = commonManager.listDepot(deptId);
|
view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
|
|
view.addObject("depotId", depotId);
|
|
view.addObject("depotType", DepotType.TYPE_02.getCode());
|
|
// 每个仓库正面和背面图片
|
view.addObject("n2ImgMap", n2Img.getN2Img(listDepot, deptId));
|
|
view.addObject(Constant.MODEL_KEY_BIZ_TYPE, BizType.N2.getCode());
|
|
view.setViewName("admin/n2/n2-hand2");
|
return view;
|
}
|
|
/**
|
* 自动通风-配置和操作页面
|
*
|
* @return
|
*/
|
@RequestMapping("/n2-auto")
|
public ModelAndView n2Auto() {
|
ModelAndView view = new ModelAndView();
|
|
IUser user = ContextUtil.getLoginUser();
|
view.addObject(Constant.MODEL_KEY_LOGIN_USER, user);
|
|
String deptId = ContextUtil.subDeptId(user);
|
view.addObject("deptId", deptId);
|
|
// 仓库列表做下拉框使用
|
List<Depot> listDepot = commonManager.listDepot(deptId);
|
view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
|
|
//获取模式标签
|
List<DicTrigger> listModelTag = n2Manager.listN2ModelTag();
|
view.addObject("listModelTag", listModelTag);
|
|
view.addObject("bizType", BizType.N2.getCode());
|
|
view.setViewName("admin/n2/n2-auto");
|
return view;
|
}
|
|
/***
|
* 设备状态查询
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/query-status")
|
public DeviceControlResponse queryStatus(@RequestBody N2Param param) {
|
return n2Manager.queryDeviceStatus(param);
|
}
|
|
/***
|
* 查询当前仓库的气调状态,根据当前执行的任务进行查询
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/query-task-status")
|
public PageResponse<N2IntelTask> queryTaskStatus(@RequestBody N2Param param) {
|
return n2Manager.queryTaskStatus(param);
|
}
|
|
/**
|
* 根据仓库编号,获取所有设备
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/list-device-manual")
|
public @ResponseBody
|
PageResponse<List<Device>> listDeviceManual(
|
@RequestBody N2Param param) {
|
|
if (null == param.getDepotType()) {
|
param.setDepotType(DepotType.TYPE_01.getCode());
|
}
|
param.setCompanyId(ContextUtil.getCompanyId());
|
|
if (DepotType.TYPE_01.getCode().equals(param.getDepotType())) {
|
param.setOnlyCurDepot(false);
|
} else {
|
param.setOnlyCurDepot(true);
|
}
|
|
return n2Manager.listDevice(param);
|
}
|
|
/**
|
* 根据仓库编号,获取所有设备
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/device-ctrl")
|
public @ResponseBody
|
DeviceControlResponse deviceCtrl(@RequestBody N2Param param) {
|
return n2Manager.controlDevice(param);
|
}
|
|
|
/**
|
* 根据条件获取当前库区下所有配置的模式信息
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/list-auto")
|
public PageResponse<List<N2AutoData>> listAuto(@RequestBody N2Param param) {
|
return n2Manager.listAuto(param);
|
}
|
|
/**
|
* 根据模式ID和仓库信息获取当前仓库模式下的设备配置详细
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/list-auto-conf")
|
public PageResponse<List<ExeDevice>> listAutoConf(@RequestBody N2Param param) {
|
return n2Manager.listAutoConf(param);
|
}
|
|
/**
|
* 根据仓库编码和选择的模式启动气调任务,如果有模式ID则直接根据模式执行,如果是模式标签根据标签获取模式进行执行
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/run-auto")
|
public DeviceControlResponse runAuto(@RequestBody N2Param param) {
|
param.setModeClose(Constant.YN_N);
|
return n2Manager.runAuto(param);
|
}
|
|
/**
|
* 模式停止,只控制对应的设备
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/stop-auto")
|
public DeviceControlResponse stopAuto(@RequestBody N2Param param) {
|
param.setModeClose(Constant.YN_Y);
|
return n2Manager.stopAuto(param);
|
}
|
|
/**
|
* 模式编辑更新,包括新增和修改和删除
|
*
|
* @param data
|
* @return
|
*/
|
@RequestMapping("/update-auto")
|
public PageResponse<String> updateAuto(@RequestBody N2AutoData data) {
|
return n2Manager.updateAuto(data);
|
}
|
|
/**
|
* 提交自动模式的配置数据信息 根据模式Id和执行的设备列表更新
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/update-auto-conf")
|
public PageResponse<String> updateAuto(@RequestBody N2Param param) {
|
return n2Manager.updateAutoConf(param);
|
}
|
|
}
|