| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522 |
- package com.jeesite.modules.mes.web;
- import cn.hutool.core.bean.BeanUtil;
- import com.alibaba.fastjson.JSON;
- import com.jeesite.common.collect.ListUtils;
- import com.jeesite.common.collect.MapUtils;
- import com.jeesite.common.config.Global;
- import com.jeesite.common.entity.Page;
- import com.jeesite.common.lang.DateUtils;
- import com.jeesite.common.lang.ObjectUtils;
- import com.jeesite.common.lang.StringUtils;
- import com.jeesite.common.service.ServiceException;
- import com.jeesite.common.utils.excel.ExcelExport;
- import com.jeesite.common.utils.excel.ExcelImport;
- import com.jeesite.common.utils.excel.annotation.ExcelField;
- import com.jeesite.common.validator.ValidatorUtils;
- import com.jeesite.common.web.BaseController;
- import com.jeesite.modules.file.entity.FileUpload;
- import com.jeesite.modules.file.service.FileUploadService;
- import com.jeesite.modules.mes.entity.MesDevice;
- import com.jeesite.modules.mes.entity.MesDeviceConsumableRecord;
- import com.jeesite.modules.mes.entity.MesDeviceState;
- import com.jeesite.modules.mes.entity.MesDeviceUrgency;
- import com.jeesite.modules.mes.entity.excel.ExcelMesDeviceUrgency;
- import com.jeesite.modules.mes.resp.CommonResp;
- import com.jeesite.modules.mes.service.MesDeviceService;
- import com.jeesite.modules.mes.service.MesDeviceStateService;
- import com.jeesite.modules.mes.service.MesDeviceUrgencyService;
- import com.jeesite.modules.sys.entity.User;
- import com.jeesite.modules.sys.utils.UserUtils;
- import org.apache.shiro.authz.annotation.Logical;
- import org.apache.shiro.authz.annotation.RequiresPermissions;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.transaction.annotation.Transactional;
- 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 org.springframework.web.multipart.MultipartFile;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.validation.ConstraintViolation;
- import javax.validation.ConstraintViolationException;
- import java.util.List;
- import java.util.Map;
- /**
- * 紧急性维修记录Controller
- * @author hzd
- * @version 2023-08-15
- */
- @Controller
- @RequestMapping(value = "${adminPath}/mes/mesDeviceUrgency")
- public class MesDeviceUrgencyController extends BaseController {
- @Autowired
- private MesDeviceUrgencyService mesDeviceUrgencyService;
- @Autowired
- private MesDeviceStateService mesDeviceStateService;
- @Autowired
- private MesDeviceService mesDeviceService;
- @Resource
- private FileUploadService fileUploadService;
-
- /**
- * 获取数据
- */
- @ModelAttribute
- public MesDeviceUrgency get(String id, boolean isNewRecord) {
- return mesDeviceUrgencyService.get(id, isNewRecord);
- }
-
- /**
- * 查询列表
- */
- @RequiresPermissions("mes:mesDeviceUrgency:view")
- @RequestMapping(value = {"list", ""})
- public String list(MesDeviceUrgency mesDeviceUrgency, Model model) {
- model.addAttribute("mesDeviceUrgency", mesDeviceUrgency);
- return "modules/mes/mesDeviceUrgencyList";
- }
- @RequiresPermissions("mes:mesDeviceUrgency:view")
- @RequestMapping(value = {"mylist", ""})
- public String mylist(MesDeviceUrgency mesDeviceUrgency, Model model) {
- User user = UserUtils.getUser();
- mesDeviceUrgency.setUserCode(user.getUserCode());
- model.addAttribute("mesDeviceUrgency", mesDeviceUrgency);
- return "modules/mes/mesDeviceUrgencyMyList";
- }
-
- /**
- * 查询列表数据
- */
- @RequiresPermissions("mes:mesDeviceUrgency:view")
- @RequestMapping(value = "listData")
- @ResponseBody
- public Page<MesDeviceUrgency> listData(MesDeviceUrgency mesDeviceUrgency, HttpServletRequest request, HttpServletResponse response) {
- mesDeviceUrgency.setPage(new Page<>(request, response));
- Page<MesDeviceUrgency> page = mesDeviceUrgencyService.findPage(mesDeviceUrgency);
- return page;
- }
- /**
- * 查看编辑表单
- */
- @RequiresPermissions("mes:mesDeviceUrgency:view")
- @RequestMapping(value = "form")
- public String form(MesDeviceUrgency mesDeviceUrgency, Model model) {
- User user = UserUtils.getUser();
- mesDeviceUrgency.setUserCode(user.getUserCode());
- mesDeviceUrgency.setUserName(user.getUserName());
- mesDeviceUrgency.setAlarmType("");
- if(!StringUtils.isEmpty(mesDeviceUrgency.getAlarmId())){
- MesDeviceState mesDeviceState = mesDeviceStateService.get(mesDeviceUrgency.getAlarmId());
- if(!ObjectUtils.isEmpty(mesDeviceState)){
- mesDeviceUrgency.setAlarmType(mesDeviceState.getContent());
- }
- }
- model.addAttribute("mesDeviceUrgency", mesDeviceUrgency);
- return "modules/mes/mesDeviceUrgencyForm";
- }
- @RequiresPermissions("mes:mesDeviceUrgency:view")
- @RequestMapping(value = "myform")
- public String myform(MesDeviceUrgency mesDeviceUrgency, Model model) {
- User user = UserUtils.getUser();
- mesDeviceUrgency.setUserCode(user.getUserCode());
- mesDeviceUrgency.setUserName(user.getUserName());
- mesDeviceUrgency.setAlarmType("");
- if(!StringUtils.isEmpty(mesDeviceUrgency.getAlarmId())){
- MesDeviceState mesDeviceState = mesDeviceStateService.get(mesDeviceUrgency.getAlarmId());
- if(!ObjectUtils.isEmpty(mesDeviceState)){
- mesDeviceUrgency.setAlarmType(mesDeviceState.getContent());
- }
- }
- model.addAttribute("mesDeviceUrgency", mesDeviceUrgency);
- return "modules/mes/mesDeviceUrgencyMyForm";
- }
- /**
- * 保存数据
- */
- @RequiresPermissions(value={"mes:mesDeviceUrgency:edit", "mes:mesDeviceUrgency:api"}, logical= Logical.OR)
- @PostMapping(value = "save")
- @ResponseBody
- public String save(@Validated MesDeviceUrgency mesDeviceUrgency,HttpServletRequest request) {
- // 兼容接口
- List<MesDeviceConsumableRecord> consumable = JSON.parseArray(request.getParameter("consumable"),MesDeviceConsumableRecord.class);
- if(consumable!=null && consumable.size() >0){
- for (MesDeviceConsumableRecord mesDeviceConsumableRecord : consumable){
- if(StringUtils.isEmpty(mesDeviceConsumableRecord.getConsumableId())){
- return renderResult(Global.FALSE, text("参数错误!"));
- }
- if(mesDeviceConsumableRecord.getNum() <= 0){
- return renderResult(Global.FALSE, text("易耗品数量必须大于0!"));
- }
- }
- mesDeviceUrgency.setMesDeviceConsumableRecordList(consumable);
- }
- if(!StringUtils.isEmpty(mesDeviceUrgency.getDeviceId())){
- MesDevice mesDevice = mesDeviceService.get(mesDeviceUrgency.getDeviceId(),false);
- if(ObjectUtils.isEmpty(mesDevice)){
- return renderResult(Global.FALSE, text("设备不存在!"));
- }
- mesDeviceUrgency.setOprno(mesDevice.getGw());
- mesDeviceUrgency.setCateId(mesDevice.getCateId());
- }
- if(mesDeviceUrgency.getStartDate() != null && mesDeviceUrgency.getEndDate() != null){
- if(mesDeviceUrgency.getStartDate().getTime() >= mesDeviceUrgency.getEndDate().getTime()){
- return renderResult(Global.FALSE, text("结束时间必须大于开始时间!"));
- }
- Integer interval = Math.round((mesDeviceUrgency.getEndDate().getTime() - mesDeviceUrgency.getStartDate().getTime())/1000/60);
- mesDeviceUrgency.setInterval(interval);
- }
- mesDeviceUrgencyService.save(mesDeviceUrgency);
- return renderResult(Global.TRUE, text("保存紧急性维修记录成功!"));
- }
-
- /**
- * 删除数据
- */
- @RequiresPermissions("mes:mesDeviceUrgency:edit")
- @RequestMapping(value = "delete")
- @ResponseBody
- public String delete(MesDeviceUrgency mesDeviceUrgency) {
- mesDeviceUrgencyService.delete(mesDeviceUrgency);
- return renderResult(Global.TRUE, text("删除紧急性维修记录成功!"));
- }
- @RequiresPermissions("mes:mesDeviceUrgency:edit")
- @RequestMapping(value = "mydelete")
- @ResponseBody
- public String mydelete(MesDeviceUrgency mesDeviceUrgency) {
- User user = UserUtils.getUser();
- if(!user.getUserCode().equals(mesDeviceUrgency.getUserCode())){
- renderResult(Global.FALSE, text("无权限删除!"));
- }
- mesDeviceUrgencyService.delete(mesDeviceUrgency);
- return renderResult(Global.TRUE, text("删除紧急性维修记录成功!"));
- }
- /**
- * 查看详情
- */
- @RequiresPermissions("mes:mesDeviceUrgency:view")
- @RequestMapping(value = "info")
- public String info(MesDeviceUrgency mesDeviceUrgency, Model model) {
- User user = UserUtils.getUser();
- mesDeviceUrgency.setUserCode(user.getUserCode());
- mesDeviceUrgency.setUserName(user.getUserName());
- mesDeviceUrgency.setAlarmType("");
- if(!StringUtils.isEmpty(mesDeviceUrgency.getAlarmId())){
- MesDeviceState mesDeviceState = mesDeviceStateService.get(mesDeviceUrgency.getAlarmId());
- if(!ObjectUtils.isEmpty(mesDeviceState)){
- mesDeviceUrgency.setAlarmType(mesDeviceState.getContent());
- }
- }
- model.addAttribute("mesDeviceUrgency", mesDeviceUrgency);
- return "modules/mes/mesDeviceUrgencyInfo";
- }
- /**
- * 查询列表数据
- */
- @RequiresPermissions("mes:mesDeviceUrgency:api")
- @RequestMapping(value = "ulist")
- @ResponseBody
- public CommonResp ulist(MesDeviceUrgency mesDeviceUrgency, HttpServletRequest request, HttpServletResponse response) {
- CommonResp<Page> resp = new CommonResp<>();
- User user = UserUtils.getUser();
- mesDeviceUrgency.setUserCode(user.getUserCode());
- mesDeviceUrgency.setPage(new Page<>(request, response));
- Page<MesDeviceUrgency> page = mesDeviceUrgencyService.findPage(mesDeviceUrgency);
- for (int i=0;i<page.getList().size();i++){
- page.getList().get(i).setAlarmType("");
- if(!StringUtils.isEmpty(page.getList().get(i).getAlarmId())){
- MesDeviceState mesDeviceState2 = mesDeviceStateService.get(page.getList().get(i).getAlarmId());
- if(!ObjectUtils.isEmpty(mesDeviceState2)){
- page.getList().get(i).setAlarmType(mesDeviceState2.getContent());
- }
- }
- }
- resp.setData(page);
- resp.setResult(Global.TRUE);
- return resp;
- }
- @RequiresPermissions("mes:mesDeviceUrgency:api")
- @RequestMapping(value = "detail")
- @ResponseBody
- public CommonResp info(MesDeviceUrgency mesDeviceUrgency, HttpServletRequest req) {
- String host = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/js";
- Map<String, Object> map = MapUtils.newHashMap();
- // 获取图片
- FileUpload fu = new FileUpload();
- fu.setBizKey(mesDeviceUrgency.getId());
- fu.setBizType("mesDeviceUrgency_image");
- List<FileUpload> imgs = fileUploadService.findList(fu);
- List imgList = ListUtils.newArrayList();
- if(imgs.size() > 0){
- for (FileUpload fi:imgs) {
- Map<String, Object> map1 = MapUtils.newHashMap();
- map1.put("id",fi.getFileEntity().getFileId());
- map1.put("url",host + fi.getFileUrl());
- imgList.add(map1);
- }
- }
- map.put("imgs", imgList);
- User user = UserUtils.get(mesDeviceUrgency.getUserCode());
- mesDeviceUrgency.setUserName(user.getUserName());
- mesDeviceUrgency.setAlarmType("");
- if(!StringUtils.isEmpty(mesDeviceUrgency.getAlarmId())){
- MesDeviceState mesDeviceState = mesDeviceStateService.get(mesDeviceUrgency.getAlarmId());
- if(!ObjectUtils.isEmpty(mesDeviceState)){
- mesDeviceUrgency.setAlarmType(mesDeviceState.getContent());
- }
- }
- map.put("info", mesDeviceUrgency);
- CommonResp<Map<String, Object>> resp = new CommonResp<>();
- resp.setData(map);
- resp.setResult(Global.TRUE);
- return resp;
- }
- @RequiresPermissions("mes:mesDeviceUrgency:api")
- @PostMapping(value = "add")
- @ResponseBody
- public String add(@Validated MesDeviceUrgency mesDeviceUrgency,HttpServletRequest request) {
- User user = UserUtils.getUser();
- if(!mesDeviceUrgency.getIsNewRecord() && !mesDeviceUrgency.getUserCode().equals(user.getUserCode())){
- return renderResult(Global.FALSE, text("无权限操作!"));
- }
- mesDeviceUrgency.setUserCode(user.getUserCode());
- // 兼容接口
- List<MesDeviceConsumableRecord> consumable = JSON.parseArray(request.getParameter("consumable"),MesDeviceConsumableRecord.class);
- if(consumable!=null && consumable.size() >0){
- for (MesDeviceConsumableRecord mesDeviceConsumableRecord : consumable){
- if(StringUtils.isEmpty(mesDeviceConsumableRecord.getConsumableId())){
- return renderResult(Global.FALSE, text("参数错误!"));
- }
- if(mesDeviceConsumableRecord.getNum() <= 0){
- return renderResult(Global.FALSE, text("易耗品数量必须大于0!"));
- }
- }
- mesDeviceUrgency.setMesDeviceConsumableRecordList(consumable);
- }
- if(!StringUtils.isEmpty(mesDeviceUrgency.getDeviceId())){
- MesDevice mesDevice = mesDeviceService.get(mesDeviceUrgency.getDeviceId(),false);
- if(ObjectUtils.isEmpty(mesDevice)){
- return renderResult(Global.FALSE, text("设备不存在!"));
- }
- mesDeviceUrgency.setOprno(mesDevice.getGw());
- mesDeviceUrgency.setCateId(mesDevice.getCateId());
- }
- if(mesDeviceUrgency.getStartDate() != null && mesDeviceUrgency.getEndDate() != null){
- if(mesDeviceUrgency.getStartDate().getTime() >= mesDeviceUrgency.getEndDate().getTime()){
- return renderResult(Global.FALSE, text("结束时间必须大于开始时间!"));
- }
- Integer interval = Math.round((mesDeviceUrgency.getEndDate().getTime() - mesDeviceUrgency.getStartDate().getTime())/1000/60);
- mesDeviceUrgency.setInterval(interval);
- }
- mesDeviceUrgencyService.pdasave(mesDeviceUrgency);
- return renderResult(Global.TRUE, text("保存紧急性维修记录成功!"));
- }
- /**
- * 导出数据
- */
- @RequestMapping(value = "exportData")
- public void exportData(MesDeviceUrgency mesDeviceCate, HttpServletResponse response) {
- List<MesDeviceUrgency> list = mesDeviceUrgencyService.findList(mesDeviceCate);
- String fileName = " 紧急性维修记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
- try(ExcelExport ee = new ExcelExport(" 紧急性维修记录", MesDeviceUrgency.class)){
- ee.setDataList(list).write(response, fileName);
- }
- }
- /**
- * 下载模板
- */
- @RequestMapping(value = "importTemplate")
- public void importTemplate(HttpServletResponse response) {
- MesDeviceUrgency mesDeviceCate = new MesDeviceUrgency();
- List<MesDeviceUrgency> list = ListUtils.newArrayList(mesDeviceCate);
- String fileName = " 紧急性维修记录.xlsx";
- try(ExcelExport ee = new ExcelExport(" 紧急性维修记录", MesDeviceUrgency.class, ExcelField.Type.IMPORT)){
- ee.setDataList(list).write(response, fileName);
- }
- }
- /**
- * 导入数据
- */
- @ResponseBody
- @PostMapping(value = "importData")
- public String importData(MultipartFile file,HttpServletRequest request) {
- try {
- String message = importData1(file,request);
- return renderResult(Global.TRUE, "posfull:"+message);
- } catch (Exception ex) {
- return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
- }
- }
- @Transactional
- public String importData1(MultipartFile file,HttpServletRequest request) {
- if (file == null){
- throw new ServiceException(text("请选择导入的数据文件!"));
- }
- int successNum = 0; int failureNum = 0;
- StringBuilder successMsg = new StringBuilder();
- StringBuilder failureMsg = new StringBuilder();
- try(ExcelImport ei = new ExcelImport(file, 2, 0)){
- List<MesDeviceUrgency> list = ei.getDataList(MesDeviceUrgency.class);
- for (MesDeviceUrgency mesDeviceCheck : list) {
- try{
- ValidatorUtils.validateWithException(mesDeviceCheck);
- this.save(mesDeviceCheck,request);
- successNum++;
- successMsg.append("<br/>" + successNum + "、编号 " + mesDeviceCheck.getId() + " 导入成功");
- } catch (Exception e) {
- failureNum++;
- String msg = "<br/>" + failureNum + "、编号 " + mesDeviceCheck.getId() + " 导入失败:";
- if (e instanceof ConstraintViolationException){
- ConstraintViolationException cve = (ConstraintViolationException)e;
- for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
- msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
- }
- }else{
- msg += e.getMessage();
- }
- failureMsg.append(msg);
- logger.error(msg, e);
- }
- }
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- failureMsg.append(e.getMessage());
- return failureMsg.toString();
- }
- if (failureNum > 0) {
- failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
- throw new ServiceException(failureMsg.toString());
- }else{
- successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
- }
- return successMsg.toString();
- }
- /**
- * 导出数据
- */
- @RequestMapping(value = "exportData1")
- public void exportData1(MesDeviceUrgency mesDeviceCate, HttpServletResponse response) {
- List<MesDeviceUrgency> list = mesDeviceUrgencyService.findList(mesDeviceCate);
- List<ExcelMesDeviceUrgency> list1= BeanUtil.copyToList(list, ExcelMesDeviceUrgency.class);
- String fileName = "我的维修记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
- try(ExcelExport ee = new ExcelExport(" 我的维修记录", ExcelMesDeviceUrgency.class)){
- ee.setDataList(list1).write(response, fileName);
- }
- }
- /**
- * 下载模板
- */
- @RequestMapping(value = "importTemplate1")
- public void importTemplate1(HttpServletResponse response) {
- ExcelMesDeviceUrgency mesDeviceCate = new ExcelMesDeviceUrgency();
- List<ExcelMesDeviceUrgency> list = ListUtils.newArrayList(mesDeviceCate);
- String fileName = " 紧急性维修记录.xlsx";
- try(ExcelExport ee = new ExcelExport(" 紧急性维修记录", ExcelMesDeviceUrgency.class, ExcelField.Type.IMPORT)){
- ee.setDataList(list).write(response, fileName);
- }
- }
- /**
- * 导入数据
- */
- @ResponseBody
- @PostMapping(value = "importData2")
- public String importData2(MultipartFile file,HttpServletRequest request) {
- try {
- String message = importData3(file,request);
- return renderResult(Global.TRUE, "posfull:"+message);
- } catch (Exception ex) {
- return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
- }
- }
- @Transactional
- public String importData3(MultipartFile file,HttpServletRequest request) {
- if (file == null){
- throw new ServiceException(text("请选择导入的数据文件!"));
- }
- int successNum = 0; int failureNum = 0;
- StringBuilder successMsg = new StringBuilder();
- StringBuilder failureMsg = new StringBuilder();
- try(ExcelImport ei = new ExcelImport(file, 2, 0)){
- List<MesDeviceUrgency> list = ei.getDataList(MesDeviceUrgency.class);
- for (MesDeviceUrgency mesDeviceCheck : list) {
- try{
- ValidatorUtils.validateWithException(mesDeviceCheck);
- this.save(mesDeviceCheck,request);
- successNum++;
- successMsg.append("<br/>" + successNum + "、编号 " + mesDeviceCheck.getId() + " 导入成功");
- } catch (Exception e) {
- failureNum++;
- String msg = "<br/>" + failureNum + "、编号 " + mesDeviceCheck.getId() + " 导入失败:";
- if (e instanceof ConstraintViolationException){
- ConstraintViolationException cve = (ConstraintViolationException)e;
- for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
- msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
- }
- }else{
- msg += e.getMessage();
- }
- failureMsg.append(msg);
- logger.error(msg, e);
- }
- }
- } catch (Exception e) {
- logger.error(e.getMessage(), e);
- failureMsg.append(e.getMessage());
- return failureMsg.toString();
- }
- if (failureNum > 0) {
- failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
- throw new ServiceException(failureMsg.toString());
- }else{
- successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
- }
- return successMsg.toString();
- }
- }
|