package com.jeesite.modules.mes.web; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.jeesite.common.collect.ListUtils; import com.jeesite.common.collect.MapUtils; import com.jeesite.common.lang.ObjectUtils; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.mybatis.mapper.query.QueryType; import com.jeesite.modules.file.entity.FileUpload; import com.jeesite.modules.file.service.FileUploadService; import com.jeesite.modules.mes.entity.*; import com.jeesite.modules.mes.resp.CommonResp; import com.jeesite.modules.mes.service.MesIconsService; import com.jeesite.modules.mes.service.MesLineProcessService; import com.jeesite.modules.mes.util.CommonUitl; import com.jeesite.modules.sys.utils.DictUtils; import com.jeesite.modules.sys.utils.UserUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.jeesite.common.config.Global; import com.jeesite.common.entity.Page; import com.jeesite.common.web.BaseController; import com.jeesite.modules.mes.service.MesProcessAlarmService; /** * 报警记录Controller * @author hzd * @version 2025-05-12 */ @Controller @RequestMapping(value = "${adminPath}/mes/mesProcessAlarm") public class MesProcessAlarmController extends BaseController { @Autowired private MesProcessAlarmService mesProcessAlarmService; @Autowired private MesLineProcessService mesLineProcessService; @Autowired private FileUploadService fileUploadService; @Autowired private MesIconsService mesIconsService; /** * 获取数据 */ @ModelAttribute public MesProcessAlarm get(String id, boolean isNewRecord) { return mesProcessAlarmService.get(id, isNewRecord); } /** * 查询列表 */ @RequiresPermissions("mes:mesProcessAlarm:view") @RequestMapping(value = {"list", ""}) public String list(MesProcessAlarm mesProcessAlarm, Model model) { model.addAttribute("mesProcessAlarm", mesProcessAlarm); return "modules/mes/mesProcessAlarmList"; } /** * 查询列表数据 */ @RequiresPermissions("mes:mesProcessAlarm:view") @RequestMapping(value = "listData") @ResponseBody public Page listData(MesProcessAlarm mesProcessAlarm, HttpServletRequest request, HttpServletResponse response) { mesProcessAlarm.setPage(new Page<>(request, response)); Page page = mesProcessAlarmService.findPage(mesProcessAlarm); return page; } /** * 查看编辑表单 */ @RequiresPermissions("mes:mesProcessAlarm:view") @RequestMapping(value = "form") public String form(MesProcessAlarm mesProcessAlarm, Model model) { model.addAttribute("mesProcessAlarm", mesProcessAlarm); return "modules/mes/mesProcessAlarmForm"; } /** * 保存数据 */ @RequiresPermissions("mes:mesProcessAlarm:edit") @PostMapping(value = "save") @ResponseBody public String save(@Validated MesProcessAlarm mesProcessAlarm) { mesProcessAlarmService.save(mesProcessAlarm); return renderResult(Global.TRUE, text("保存报警记录成功!")); } @PostMapping(value = "add") @ResponseBody public String add(@Validated MesProcessAlarm mesProcessAlarm, HttpServletRequest request) { String ucode = CommonUitl.resolveUserCode(request.getParameter("ucode")); mesProcessAlarm.setCreateBy(ucode); mesProcessAlarm.setUpdateBy(ucode); mesProcessAlarm.setRemark("设备报警"); if(CommonUitl.formatOprno(mesProcessAlarm.getOprno()).equals("OP180") || CommonUitl.formatOprno(mesProcessAlarm.getOprno()).equals("OP190")){ String stop = Global.getConfig("mes.device.stop"); if(stop.equals("1")){ // CNC报警设备停机,PDA确认后才能扫下一件 MesLineProcess mesLineProcess = new MesLineProcess(); mesLineProcess.setOprno(mesProcessAlarm.getOprno()); mesLineProcess.setStatus("0"); MesLineProcess mesLineProcess1 = mesLineProcessService.findInfo(mesLineProcess); if(!ObjectUtils.isEmpty(mesLineProcess1)){ mesLineProcess1.setStop(4); mesLineProcessService.updateStatus(mesLineProcess1); } } } mesProcessAlarmService.save(mesProcessAlarm); return renderResult(Global.TRUE, text("操作成功!")); } // @RequiresPermissions("mes:mesProcessAlarm:api") @RequestMapping(value = "alarms") @ResponseBody public CommonResp alarms(HttpServletRequest request, HttpServletResponse response) { CommonResp> resp = new CommonResp<>(); MesProcessAlarm mesLineProcess = new MesProcessAlarm(); mesLineProcess.setPage(new Page<>(request, response)); Page page = mesProcessAlarmService.findPage(mesLineProcess); resp.setData(page); resp.setResult(Global.TRUE); return resp; } @RequestMapping(value = "wclCount") @ResponseBody public CommonResp wclCount(HttpServletRequest req) { CommonResp resp = new CommonResp<>(); MesProcessAlarm mesLineProcess = new MesProcessAlarm(); mesLineProcess.setState("0"); Long count = mesProcessAlarmService.findCount(mesLineProcess); resp.setData(count+""); resp.setResult(Global.TRUE); return resp; } // @RequiresPermissions("mes:mesProcessAlarm:api") @RequestMapping(value = "detail") @ResponseBody public CommonResp detail(MesProcessAlarm mesProcessAlarm, HttpServletRequest req) { CommonResp resp = new CommonResp<>(); if(org.springframework.util.ObjectUtils.isEmpty(mesProcessAlarm)){ resp.setResult(Global.FALSE); resp.setMessage("记录不存在"); return resp; } String host = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/js"; FileUpload fu = new FileUpload(); fu.setBizKey(mesProcessAlarm.getId()); fu.setBizType("mesProcessAlarm_image"); List finfo = fileUploadService.findList(fu); List imgList = ListUtils.newArrayList(); for (FileUpload fi:finfo){ Map map1 = MapUtils.newHashMap(); map1.put("id",fi.getFileEntity().getFileId()); map1.put("url",host + fi.getFileUrl()); map1.put("name",fi.getFileName()); map1.put("size",fi.getFileEntity().getFileSize()); imgList.add(map1); } mesProcessAlarm.setImgList(imgList); resp.setData(mesProcessAlarm); resp.setResult(Global.TRUE); return resp; } // @RequiresPermissions("mes:mesProcessAlarm:api") @PostMapping(value = "deal") @ResponseBody public String deal(@Validated MesProcessAlarm mesProcessAlarm) { if(StringUtils.isEmpty(mesProcessAlarm.getContent())){ return renderResult(Global.FALSE, text("请输入处理说明!")); } mesProcessAlarm.setState("1"); mesProcessAlarmService.save(mesProcessAlarm); return renderResult(Global.TRUE, text("操作成功!")); } @PostMapping(value = "alarmCount") @ResponseBody public CommonResp alarmCount() { MesIcons mesIcons = new MesIcons(); List list = mesIconsService.findList(mesIcons); Subject subject = UserUtils.getSubject(); String auth = "0"; for (MesIcons mi : list) { if(mi.getMode().equals("58") && subject.isPermitted(mi.getAuth())){ auth = "1"; break; } } Long count = Long.valueOf("0"); if(auth.equals("1")){ MesProcessAlarm mesLineProcess = new MesProcessAlarm(); mesLineProcess.setState("0"); count = mesProcessAlarmService.findCount(mesLineProcess); } CommonResp resp = new CommonResp<>(); resp.setData(count+""); resp.setResult(Global.TRUE); resp.setMessage("成功"); return resp; } }