package com.ld.igds.grain.controller; import com.bstek.bdf2.core.business.IUser; import com.bstek.bdf2.core.model.DefaultDept; 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.ChartLine; import com.ld.igds.data.PageResponse; import com.ld.igds.grain.dto.*; import com.ld.igds.grain.manager.GrainManager; import com.ld.igds.io.response.GrainResponse; import com.ld.igds.models.Depot; import com.ld.igds.models.DeviceIot; import com.ld.igds.util.ContextUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import java.util.List; import java.util.Map; /** * 粮情模块控制层 控制层只定义控制入口和页面跳转,具体逻辑在Manager中控制。 */ @RestController @RequestMapping("basic/grain") public class GrainController { @Autowired private GrainManager grainManager; @Autowired private CommonManager commonManager; @RequestMapping("/gateway") public ModelAndView gateway( @RequestParam(value = "depotId", required = false) String depotId, @RequestParam(value = "depotType", required = true) String depotType, @RequestParam(value = "storeType", required = false) String storeType, @RequestParam(value = "deptId", required = false) String deptId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); // 获取当前用户所在的分库名称 DefaultDept dept = commonManager.getSubDept(user, deptId); view.addObject("dept", dept); if(null != dept){ view.addObject("deptId", dept.getId()); } // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(dept.getId()); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.addObject("bizType", BizType.GRAIN.getCode()); view.addObject("depotType", depotType); view.addObject("depotId", depotId); // view.addObject("grainStorageType", grainStorageType); if (StringUtils.isEmpty(depotType)) { view.setViewName("admin/grain/grain-check1"); } if (DepotType.TYPE_02.getCode().equals(depotType)) { view.setViewName("admin/grain/grain-check4"); } else if (DepotType.TYPE_03.getCode().equals(depotType)) { view.setViewName("admin/grain/grain-check3"); } else if (DepotType.TYPE_04.getCode().equals(depotType)) { view.setViewName("admin/grain/grain-check4"); } else { if(StringUtils.isNotEmpty(storeType) && storeType.equals("2")){ //使用动环温湿度 view.setViewName("admin/grain/grain-check5"); }else { view.setViewName("admin/grain/grain-check1"); } } return view; } /** * 页面控制--粮情检测页面 -平房仓 * * @param depotId * @return */ @RequestMapping("/view-check1") public ModelAndView viewCheck( @RequestParam(value = "depotId", required = false) String depotId, @RequestParam(value = "deptId", required = false) String deptId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); // 获取当前用户所在的分库名称 DefaultDept dept = commonManager.getSubDept(user, deptId); view.addObject("dept", dept); view.addObject("deptId", dept.getId()); // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(dept.getId()); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.addObject("bizType", BizType.GRAIN.getCode()); view.addObject("depotType", DepotType.TYPE_01.getCode()); view.addObject("depotId", depotId); view.setViewName("admin/grain/grain-check1"); return view; } /** * 页面控制--粮情检测页面,新版本 * * @param depotId 默认仓库 * @param deptId 默认所属部门 * @return */ @RequestMapping("/view-check2") public ModelAndView viewCheck2( @RequestParam(value = "depotId", required = false) String depotId, @RequestParam(value = "deptId", required = false) String deptId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); // 获取当前用户所在的分库名称 DefaultDept dept = commonManager.getSubDept(user, deptId); view.addObject("dept", dept); // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(dept.getId()); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.addObject("bizType", BizType.GRAIN.getCode()); view.addObject("depotId", depotId); view.setViewName("admin/grain/grain-check2"); return view; } /** * 油罐仓 * * @param depotId * @param deptId * @return */ @RequestMapping("/view-check3") public ModelAndView viewCheck3( @RequestParam(value = "depotId", required = false) String depotId, @RequestParam(value = "deptId", required = false) String deptId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); // 获取当前用户所在的分库名称 DefaultDept dept = commonManager.getSubDept(user, deptId); view.addObject("dept", dept); // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(dept.getId()); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.addObject("bizType", BizType.GRAIN.getCode()); view.addObject("depotType", DepotType.TYPE_03.getCode()); view.addObject("depotId", depotId); view.setViewName("admin/grain/grain-check3"); return view; } /** * 圆顶仓 * * @param depotId * @param deptId * @return */ @RequestMapping("/view-check4") public ModelAndView viewCheck4( @RequestParam(value = "depotId", required = false) String depotId, @RequestParam(value = "deptId", required = false) String deptId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); // 获取当前用户所在的分库名称 DefaultDept dept = commonManager.getSubDept(user, deptId); view.addObject("dept", dept); // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(dept.getId()); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.addObject("bizType", BizType.GRAIN.getCode()); view.addObject("depotType", DepotType.TYPE_04.getCode()); view.addObject("depotId", depotId); view.setViewName("admin/grain/grain-check4"); return view; } /** * 页面控制--粮情检测页面 -平房仓 * * @param depotId * @return */ @RequestMapping("/view-check5") public ModelAndView viewCheck5( @RequestParam(value = "depotId", required = false) String depotId, @RequestParam(value = "deptId", required = false) String deptId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); // 获取当前用户所在的分库名称 DefaultDept dept = commonManager.getSubDept(user, deptId); view.addObject("dept", dept); // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(dept.getId()); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.addObject("bizType", BizType.GRAIN.getCode()); view.addObject("depotType", DepotType.TYPE_01.getCode()); view.addObject("depotId", depotId); view.setViewName("admin/grain/grain-check5"); return view; } /** * 页面控制--粮情温度走势 * * @param depotId * @return */ @RequestMapping("/temp-line") public ModelAndView tempLine( @RequestParam(value = "depotId", required = false) String depotId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); // 获取当前用户所在的分库名称 DefaultDept dept = commonManager.getSubDept(user, null); view.addObject("dept", dept); // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(dept.getId()); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.setViewName("admin/grain/temp-line"); return view; } /** * 获取粮情三温走势信息 * * @param param * @return */ @RequestMapping("/query-line-data") public PageResponse queryLineData(@RequestBody GrainParam param) { return grainManager.queryLineData(param); } /** * 根据条件获取集合,默认查询当天的数据 * * @param param * @return */ @RequestMapping("/query-list-data") public PageResponse> queryListGrainData( @RequestBody GrainParam param) { if (null == param.getCheckMonth()) { param.setLimit(5); } else { param.setLimit(80); } return grainManager.queryListGrainData(param); } /** * 根据条件查询粮情数据 * * @param param * @return */ @RequestMapping("/query-data") public PageResponse queryGrainData(@RequestBody GrainParam param) { return grainManager.queryGrainData(param); } /** * 根据条件获取列表数据 返回根据检测时间内的数据Map * * @param param * @return */ @RequestMapping("/query-checkDate-map") public PageResponse> queryCheckDateMap( @RequestBody GrainParam param) { return grainManager.queryCheckDateMap(param); } /** * 粮情检测-单仓检测 * * @param param * @return */ @RequestMapping("/check-single") public GrainResponse checkSingle(@RequestBody GrainParam param) { return grainManager.checkSingle(param); } /** * 粮情检测-批量检测 * * @param param * @return */ @RequestMapping("/check-batch") public GrainResponse checkBatch(@RequestBody GrainParam param) { return grainManager.checkBatch(param); } /** * 根据当前仓库获取检测记录,默认10条,如果检测当前月,默认显示80条 * * @param param * @return */ @RequestMapping("/page-list") public PageResponse> pageList(@RequestBody GrainParam param) { if (null == param.getCheckMonth()) { param.setLimit(10); } else { param.setLimit(80); } return grainManager.pageListGrainData(param); } /** * 批次对比 * * @param param * @return */ @RequestMapping("/data-compare") public PageResponse dataCompare( @RequestBody GrainCompareParam param) { return grainManager.dataCompare(param); } /** * 根据参数获取粮情采集点走势 * * @param param * @return */ @RequestMapping("/chart-point-line") public PageResponse chartPointLine( @RequestBody GrainPointParam param) { return grainManager.chartPointLine(param); } /** * 根据参数获取打印的模板 * * @param param * @return */ @ResponseBody @RequestMapping("/build-print-model") public PageResponse buildPrintModel( @RequestBody GrainParam param) { return grainManager.buildPrintModel(param); } /** * 根据参数获取打印的模板-ALL * * @return */ @ResponseBody @RequestMapping("/build-print-model-all") public PageResponse> buildPrintModelAll( @RequestBody GrainParam param) { param.setCompanyId(ContextUtil.getCompanyId()); return grainManager.buildPrintModelAll(param); } /** * 筒仓 -- 液面高度 * @return */ @RequestMapping("/liquid-height") public ModelAndView getLiquidHeight(@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); // 获取当前部门,所有仓库列表 List listDepot = commonManager.listDepot(deptId); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); view.addObject("bizType", BizType.GRAIN.getCode()); view.addObject("depotType", DepotType.TYPE_01.getCode()); //查询仓库列表的液位高度 List grainDataList = grainManager.getLiquidHeight(user.getCompanyId(), deptId); view.addObject("grainDataList", grainDataList); view.setViewName("admin/grain/liquid-height"); return view; } /** * 根据仓库编号,获取iot设备列表 * * @param param * @return */ @RequestMapping("/list-device-iot") public PageResponse> listDeviceIot( @RequestBody GrainParam param) { param.setCompanyId(ContextUtil.getCompanyId()); return grainManager.listDeviceIot(param); } /** * 根据仓库编码获取仓库的温湿度设备数据信息 * * @param param * @return */ @RequestMapping("/query-grain-iot-data") public PageResponse queryIotGrainData(@RequestBody GrainParam param) { return grainManager.queryIotGrainData(param); } /** * 粮情检测-批量导出EXCEL * * @param param 包括检测时间和需要导出的IDS * @return */ @RequestMapping("/export-batch") public GrainResponse exportBatch(@RequestBody GrainParam param) { return grainManager.exportBatch(param); } }