package com.caimei.modules.newhome.web; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.caimei.dfs.image.beens.ImageUploadInfo; import com.caimei.modules.common.utils.UploadUtils; import com.caimei.modules.newhome.entity.CmInstrumentMaintenanceLinks; import com.caimei.modules.newhome.service.CmInstrumentMaintenanceLinksService; import com.caimei.modules.sys.utils.UploadImageUtils; import com.caimei.utils.AppUtils; import com.thinkgem.jeesite.common.utils.Encodes; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.persistence.Page; import com.thinkgem.jeesite.common.web.BaseController; import com.thinkgem.jeesite.common.utils.StringUtils; import com.caimei.modules.newhome.entity.CmInstrumentMaintenance; import com.caimei.modules.newhome.service.CmInstrumentMaintenanceService; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.*; /** * 仪器维修Controller * * @author lwt * @version 2019-03-15 */ @Controller @RequestMapping(value = "${adminPath}/newhome/cmInstrumentMaintenance") public class CmInstrumentMaintenanceController extends BaseController { @Resource private CmInstrumentMaintenanceService cmInstrumentMaintenanceService; @Resource private CmInstrumentMaintenanceLinksService cmInstrumentMaintenanceLinksService; @ModelAttribute public CmInstrumentMaintenance get(@RequestParam(required = false) String id) { CmInstrumentMaintenance entity = null; if (StringUtils.isNotBlank(id)) { entity = cmInstrumentMaintenanceService.get(id); } if (entity == null) { entity = new CmInstrumentMaintenance(); } return entity; } @RequiresPermissions("newhome:cmInstrumentMaintenance:view") @RequestMapping(value = {"list", ""}) public String list(CmInstrumentMaintenance cmInstrumentMaintenance, HttpServletRequest request, HttpServletResponse response, Model model) { if (null != cmInstrumentMaintenance.getStartTime() && !"".equals(cmInstrumentMaintenance.getStartTime()) && !cmInstrumentMaintenance.getStartTime().endsWith("00:00:00")) { cmInstrumentMaintenance.setStartTime(cmInstrumentMaintenance.getStartTime() + " 00:00:00"); } if (null != cmInstrumentMaintenance.getEndTime() && !"".equals(cmInstrumentMaintenance.getEndTime()) && !cmInstrumentMaintenance.getEndTime().endsWith("23:59:59")) { cmInstrumentMaintenance.setEndTime(cmInstrumentMaintenance.getEndTime() + " 23:59:59"); } Page page = cmInstrumentMaintenanceService.findPage(new Page<>(request, response), cmInstrumentMaintenance); String wwwServer = Global.getConfig("wwwServer"); for (CmInstrumentMaintenance bean : page.getList()) { String type = ""; if ("1".equals(bean.getStatus()) && "1".equals(bean.getAuthenticity())) { type = "2"; } if ("2".equals(bean.getStatus()) || "3".equals(bean.getStatus())) { type = "3"; } if (StringUtils.isNoneBlank(type)) { CmInstrumentMaintenanceLinks l = cmInstrumentMaintenanceLinksService.findWithType(bean.getId(), type); if (l != null){ bean.setLink(wwwServer + "supplier/repair/detail.html?code=" + l.getLinkCode()); } } } model.addAttribute("page", page); return "modules/newhome/cmInstrumentMaintenanceList"; } @RequiresPermissions("newhome:cmInstrumentMaintenance:view") @RequestMapping(value = "form") public String form(CmInstrumentMaintenance cmInstrumentMaintenance, Model model) { List instrumentImages = new ArrayList<>(); Class clazz = cmInstrumentMaintenance.getClass(); //有五张仪器检修图 getInstrumentImage1 ~ 5 for (int i = 1; i <= 5; i++) { try { Method method = clazz.getDeclaredMethod("getInstrumentImage" + i); Object image = method.invoke(cmInstrumentMaintenance); if (image != null && StringUtils.isNoneEmpty(image.toString())) instrumentImages.add(image.toString()); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } CmInstrumentMaintenanceLinks b = null; if ("1".equals(cmInstrumentMaintenance.getStatus()) && "1".equals(cmInstrumentMaintenance.getAuthenticity())) { //已提交状态下 维修商只能查看部分信息 b = cmInstrumentMaintenanceLinksService.findWithType(cmInstrumentMaintenance.getId(), "2"); } if ("2".equals(cmInstrumentMaintenance.getStatus()) || "3".equals(cmInstrumentMaintenance.getStatus())) { b = cmInstrumentMaintenanceLinksService.findWithType(cmInstrumentMaintenance.getId(), "3"); } if (b != null && StringUtils.isNoneEmpty(b.getLinkCode())) { String wwwServer = Global.getConfig("wwwServer"); String link = wwwServer + "supplier/repair/detail.html?code=" + b.getLinkCode(); model.addAttribute("link", link); } model.addAttribute("cmInstrumentMaintenance", cmInstrumentMaintenance); model.addAttribute("instrumentImages", instrumentImages); return "modules/newhome/cmInstrumentMaintenanceForm"; } @RequiresPermissions("newhome:cmInstrumentMaintenance:edit") @RequestMapping(value = "save") public String save(CmInstrumentMaintenance cmInstrumentMaintenance, Model model, RedirectAttributes redirectAttributes, HttpServletRequest request) { if (!beanValidator(model, cmInstrumentMaintenance)) { return form(cmInstrumentMaintenance, model); } Class clazz = cmInstrumentMaintenance.getClass(); for (int i = 1; i <= 5; i++) { try { Method getMethod = clazz.getDeclaredMethod("getInstrumentImage" + i); Object image = getMethod.invoke(cmInstrumentMaintenance); if ("".equals(image)) { Field field = clazz.getDeclaredField("instrumentImage" + i); field.setAccessible(true); field.set(cmInstrumentMaintenance, null); field.setAccessible(false); continue; } if (image != null && StringUtils.isNoneEmpty(image.toString()) && !image.toString().startsWith("http")) { String img = saveImageToServer(image.toString(), request); Field field = clazz.getDeclaredField("instrumentImage" + i); field.setAccessible(true); field.set(cmInstrumentMaintenance, img); field.setAccessible(false); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } } if (StringUtils.isEmpty(cmInstrumentMaintenance.getId())) cmInstrumentMaintenanceService.save(cmInstrumentMaintenance); else cmInstrumentMaintenanceService.update(cmInstrumentMaintenance); addMessage(redirectAttributes, "保存仪器维修成功"); return "redirect:" + Global.getAdminPath() + "/newhome/cmInstrumentMaintenance/?repage"; } @RequiresPermissions("newhome:cmInstrumentMaintenance:delete") @RequestMapping(value = "delete") public String delete(CmInstrumentMaintenance cmInstrumentMaintenance, RedirectAttributes redirectAttributes) { cmInstrumentMaintenanceService.delete(cmInstrumentMaintenance); addMessage(redirectAttributes, "删除仪器维修成功"); return "redirect:" + Global.getAdminPath() + "/newhome/cmInstrumentMaintenance/?repage"; } @RequiresPermissions("newhome:cmInstrumentMaintenance:edit") @RequestMapping(value = "cancel") @ResponseBody public Map cancel(CmInstrumentMaintenance cmInstrumentMaintenance, RedirectAttributes redirectAttributes) { Map result = new HashMap<>(); try { if (StringUtils.isNoneEmpty(cmInstrumentMaintenance.getId())) { cmInstrumentMaintenance.setStatus("4"); cmInstrumentMaintenance.setCancelDate(new Date()); cmInstrumentMaintenance.setAuthenticity("2"); cmInstrumentMaintenanceService.update(cmInstrumentMaintenance); result.put("errcode", "0"); } else { throw new Exception("参数有误!"); } } catch (Exception e) { result.put("errcode", "1"); result.put("errmsg", e.getMessage()); } return result; } public String saveImageToServer(String imagesHead, HttpServletRequest request){ String photoServer = Global.getConfig("photoServer");//获取文件服务器地址 String res = ""; ImageUploadInfo saveImageSerivce=new ImageUploadInfo(); if(StringUtils.isNotBlank(imagesHead) && !imagesHead.startsWith("http:") && !imagesHead.startsWith("https:")){ imagesHead= Encodes.urlDecode(imagesHead); // String realPath = request.getSession().getServletContext().getRealPath(imagesHead); String realPath = UploadImageUtils.getAbsolutePath(imagesHead); // realPath=Encodes.urlDecode(realPath); int pointerIndex = realPath.lastIndexOf("."); try { saveImageSerivce = UploadUtils.saveImageSerivce(realPath, pointerIndex,realPath); res = photoServer+saveImageSerivce.getSource(); } catch (Exception e) { logger.error("图片上传错误:"+e.toString(),e); } } return res; } }