package com.jeesite.modules.mes.web; import com.alibaba.druid.util.StringUtils; 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.utils.excel.ExcelExport; import com.jeesite.common.utils.excel.annotation.ExcelField.Type; 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.MesProduct; import com.jeesite.modules.mes.entity.MesProductRecord; import com.jeesite.modules.mes.entity.MesRecover; import com.jeesite.modules.mes.resp.CommonResp; import com.jeesite.modules.mes.service.MesProductHmbService; import com.jeesite.modules.mes.service.MesProductRecordService; import com.jeesite.modules.mes.service.MesProductService; import com.jeesite.modules.mes.service.MesRecoverService; import com.jeesite.modules.mes.util.CommonUitl; import com.jeesite.modules.sys.entity.User; import com.jeesite.modules.sys.utils.UserUtils; 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.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.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.transaction.Transactional; import java.util.List; import java.util.Map; /** * 恢复记录Controller * @author hzd * @version 2023-12-14 */ @Controller @RequestMapping(value = "${adminPath}/mes/mesRecover") public class MesRecoverController extends BaseController { @Autowired private MesRecoverService mesRecoverService; @Autowired private MesProductService mesProductService; @Autowired private MesProductRecordService mesProductRecordService; @Autowired private FileUploadService fileUploadService; @Autowired private MesProductHmbService mesProductHmbService; /** * 获取数据 */ @ModelAttribute public MesRecover get(String id, boolean isNewRecord) { return mesRecoverService.get(id, isNewRecord); } /** * 查询列表 */ @RequiresPermissions("mes:mesRecover:view") @RequestMapping(value = {"list", ""}) public String list(MesRecover mesRecover, Model model) { model.addAttribute("mesRecover", mesRecover); return "modules/mes/mesRecoverList"; } /** * 查询列表数据 */ @RequiresPermissions("mes:mesRecover:view") @RequestMapping(value = "listData") @ResponseBody public Page listData(MesRecover mesRecover, HttpServletRequest request, HttpServletResponse response) { mesRecover.setPage(new Page<>(request, response)); Page page = mesRecoverService.findPage(mesRecover); return page; } /** * 查看编辑表单 */ @RequiresPermissions("mes:mesRecover:view") @RequestMapping(value = "form") public String form(MesRecover mesRecover, Model model) { model.addAttribute("mesRecover", mesRecover); return "modules/mes/mesRecoverForm"; } /** * 保存数据 */ @RequiresPermissions("mes:mesRecover:edit") @PostMapping(value = "save") @ResponseBody public String save(@Validated MesRecover mesRecover) { mesRecoverService.save(mesRecover); return renderResult(Global.TRUE, text("保存恢复记录成功!")); } /** * 导出数据 */ @RequiresPermissions("mes:mesRecover:view") @RequestMapping(value = "exportData") public void exportData(MesRecover mesRecover, HttpServletResponse response) { List list = mesRecoverService.findList(mesRecover); String fileName = "恢复记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; try(ExcelExport ee = new ExcelExport("恢复记录", MesRecover.class)){ ee.setDataList(list).write(response, fileName); } } /** * 下载模板 */ @RequiresPermissions("mes:mesRecover:view") @RequestMapping(value = "importTemplate") public void importTemplate(HttpServletResponse response) { MesRecover mesRecover = new MesRecover(); List list = ListUtils.newArrayList(mesRecover); String fileName = "恢复记录模板.xlsx"; try(ExcelExport ee = new ExcelExport("恢复记录", MesRecover.class, Type.IMPORT)){ ee.setDataList(list).write(response, fileName); } } /** * 导入数据 */ @ResponseBody @RequiresPermissions("mes:mesRecover:edit") @PostMapping(value = "importData") public String importData(MultipartFile file) { try { String message = mesRecoverService.importData(file); return renderResult(Global.TRUE, "posfull:"+message); } catch (Exception ex) { return renderResult(Global.FALSE, "posfull:"+ex.getMessage()); } } /** * 删除数据 */ @RequiresPermissions("mes:mesRecover:edit") @RequestMapping(value = "delete") @ResponseBody public String delete(MesRecover mesRecover) { mesRecoverService.delete(mesRecover); return renderResult(Global.TRUE, text("删除恢复记录成功!")); } @RequiresPermissions("mes:mesRecover:view") @RequestMapping(value = "detail") public String detail(MesRecover mesRecover, Model model) { model.addAttribute("mesRecover", mesRecover); return "modules/mes/mesRecoverDetail"; } @RequiresPermissions("mes:mesRecover:api") @RequestMapping(value = "add") @ResponseBody @Transactional public CommonResp add(MesRecover mesRecover, HttpServletRequest request) { Map map = MapUtils.newHashMap(); CommonResp> resp = new CommonResp<>(); resp.setResult(Global.FALSE); if(StringUtils.isEmpty(mesRecover.getSn())){ resp.setMessage("工件码不能为空"); return resp; } if(StringUtils.isEmpty(mesRecover.getReason())){ resp.setMessage("恢复原因不能为空!"); return resp; } String sn = mesProductHmbService.formatHmbSn(mesRecover.getSn()); mesRecover.setSn(sn); MesProduct mesProduct1 = new MesProduct(); mesProduct1.setSn(mesRecover.getSn()); MesProduct mesProduct = mesProductService.findInfo(mesProduct1); if(ObjectUtils.isEmpty(mesProduct)){ resp.setMessage("产品信息不存在"); return resp; } if(mesProduct.getState().equals("0")){ resp.setMessage("改产品处于生产中,勿重复操作"); return resp; } // if(!mesProduct.getState().equals("4")){ // resp.setMessage("只能恢复待处理状态的产品"); // return resp; // } MesProductRecord mesProductRecord = new MesProductRecord(); mesProductRecord.setSn(mesRecover.getSn()); mesProductRecord.setCraft("100000"); List records = mesProductRecordService.findList(mesProductRecord); if(ListUtils.isEmpty(records)){ resp.setMessage("生产记录不存在!"); return resp; } // 获取恢复的工位 for(MesProductRecord mesProductRecord1:records){ // if(mesProductRecord1.getContent().equals("NG")){ // oprno = CommonUitl.formatOprno(mesProductRecord1.getOprno()); // mesProductRecord2 = mesProductRecord1; // break; // } if(CommonUitl.isOfflineOprno(mesProductRecord1.getOprno(), mesProductRecord1.getLineSn()) && !mesProductRecord1.getContent().equals("UDF")){ // 下线 mesProductRecord1.setContent("UDF"); mesProductRecordService.update(mesProductRecord1); } } // if(StringUtils.isEmpty(oprno)){ // resp.setMessage("无NG工位"); // return resp; // } mesRecover.setOprno(""); mesRecover.setProductCate(mesProduct.getCate()); mesRecoverService.save(mesRecover); mesProduct.setState("0"); mesProductService.update(mesProduct); resp.setResult(Global.TRUE); return resp; } @RequiresPermissions("mes:mesRecover:api") @RequestMapping(value = "ulist") @ResponseBody public CommonResp ulist(MesRecover mesRecover, HttpServletRequest request, HttpServletResponse response) { User user = UserUtils.getUser(); mesRecover.setCreateBy(user.getUserCode()); mesRecover.setPage(new Page<>(request, response)); Page page = mesRecoverService.findPage(mesRecover); for (MesRecover mesRecover1 : page.getList()) { int op = Integer.valueOf(mesRecover1.getOprno().substring(2,5)); if(op >= 125){ mesRecover1.setSn(mesProductHmbService.getHmbSn(mesRecover1.getSn())); } } CommonResp resp = new CommonResp<>(); resp.setData(page); resp.setResult(Global.TRUE); return resp; } /** * 详情 */ @RequiresPermissions("mes:mesRecover:api") @RequestMapping(value = "info") @ResponseBody public CommonResp info(MesRecover mesRecover, HttpServletRequest request) { mesRecover.setId(request.getParameter("id")); MesRecover info = mesRecoverService.get(mesRecover); String host = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/js"; FileUpload fu = new FileUpload(); fu.setBizKey(info.getId()); fu.setBizType("mesRecover_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); } info.setImg(imgList); CommonResp resp = new CommonResp<>(); resp.setData(info); return resp; } }