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 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()) || "5325".equals(user.getCompanyId())) { view.setViewName("admin/n2/n2-hand-5013"); } else { view.setViewName("admin/n2/n2-hand1"); } } // 每个仓库正面和背面图片 Map 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 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 n2ImgMap = n2Img.getN2Img(listDepot, deptId); view.addObject("n2ImgMap", n2ImgMap); view.setViewName("admin/n2/n2-hand1"); if ("5013".equals(user.getCompanyId()) || "5016".equals(user.getCompanyId()) || "5325".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 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 listDepot = commonManager.listDepot(deptId); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); //获取模式标签 List 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 queryTaskStatus(@RequestBody N2Param param) { return n2Manager.queryTaskStatus(param); } /** * 根据仓库编号,获取所有设备 * * @param param * @return */ @RequestMapping("/list-device-manual") public @ResponseBody PageResponse> 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> listAuto(@RequestBody N2Param param) { return n2Manager.listAuto(param); } /** * 根据模式ID和仓库信息获取当前仓库模式下的设备配置详细 * * @param param * @return */ @RequestMapping("/list-auto-conf") public PageResponse> 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 updateAuto(@RequestBody N2AutoData data) { return n2Manager.updateAuto(data); } /** * 提交自动模式的配置数据信息 根据模式Id和执行的设备列表更新 * * @param param * @return */ @RequestMapping("/update-auto-conf") public PageResponse updateAuto(@RequestBody N2Param param) { return n2Manager.updateAutoConf(param); } }