package com.jeesite.modules.mes.web; import java.text.ParseException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.jeesite.common.lang.ObjectUtils; import com.jeesite.modules.mes.entity.MesMaterial; import com.jeesite.modules.mes.entity.MesProductRecord; import com.jeesite.modules.mes.resp.CommonResp; import com.jeesite.modules.mes.service.MesMaterialService; import com.jeesite.modules.utils.DateLocalUtils; import org.apache.commons.lang3.StringUtils; 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.*; import com.jeesite.common.config.Global; import com.jeesite.common.collect.ListUtils; import com.jeesite.common.entity.Page; import com.jeesite.common.lang.DateUtils; import com.jeesite.common.utils.excel.ExcelExport; import com.jeesite.common.utils.excel.annotation.ExcelField.Type; import org.springframework.web.multipart.MultipartFile; import com.jeesite.common.web.BaseController; import com.jeesite.modules.mes.entity.MesMaterialReport; import com.jeesite.modules.mes.service.MesMaterialReportService; /** * 来料报检Controller * @author mes * @version 2024-05-30 */ @Controller @RequestMapping(value = "${adminPath}/mes/mesMaterialReport") public class MesMaterialReportController extends BaseController { @Autowired private MesMaterialReportService mesMaterialReportService; @Autowired private MesMaterialService mesMaterialService; /** * 获取数据 */ @ModelAttribute public MesMaterialReport get(String id, boolean isNewRecord) { return mesMaterialReportService.get(id, isNewRecord); } /** * 查询列表 */ @RequiresPermissions("mes:mesMaterialReport:view") @RequestMapping(value = {"list", ""}) public String list(MesMaterialReport mesMaterialReport, Model model) { model.addAttribute("mesMaterialReport", mesMaterialReport); return "modules/mes/mesMaterialReportList"; } /** * 查询列表数据 */ @RequiresPermissions("mes:mesMaterialReport:view") @RequestMapping(value = "listData") @ResponseBody public Page listData(MesMaterialReport mesMaterialReport, HttpServletRequest request, HttpServletResponse response) { mesMaterialReport.setPage(new Page<>(request, response)); Page page = mesMaterialReportService.findPage(mesMaterialReport); return page; } /** * 查看编辑表单 */ @RequiresPermissions("mes:mesMaterialReport:view") @RequestMapping(value = "form") public String form(MesMaterialReport mesMaterialReport, Model model) { model.addAttribute("mesMaterialReport", mesMaterialReport); return "modules/mes/mesMaterialReportForm"; } /** * 保存数据 */ @RequiresPermissions("mes:mesMaterialReport:edit") @PostMapping(value = "save") @ResponseBody public String save(@Validated MesMaterialReport mesMaterialReport) { mesMaterialReportService.save(mesMaterialReport); return renderResult(Global.TRUE, text("保存来料报检成功!")); } /** * 导出数据 */ @RequiresPermissions("mes:mesMaterialReport:view") @RequestMapping(value = "exportData") public void exportData(MesMaterialReport mesMaterialReport, HttpServletResponse response) { List list = mesMaterialReportService.findList(mesMaterialReport); String fileName = "来料报检" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; try(ExcelExport ee = new ExcelExport("来料报检", MesMaterialReport.class)){ ee.setDataList(list).write(response, fileName); } } /** * 下载模板 */ @RequiresPermissions("mes:mesMaterialReport:view") @RequestMapping(value = "importTemplate") public void importTemplate(HttpServletResponse response) { MesMaterialReport mesMaterialReport = new MesMaterialReport(); List list = ListUtils.newArrayList(mesMaterialReport); String fileName = "来料报检模板.xlsx"; try(ExcelExport ee = new ExcelExport("来料报检", MesMaterialReport.class, Type.IMPORT)){ ee.setDataList(list).write(response, fileName); } } /** * 导入数据 */ @ResponseBody @RequiresPermissions("mes:mesMaterialReport:edit") @PostMapping(value = "importData") public String importData(MultipartFile file) { try { String message = mesMaterialReportService.importData(file); return renderResult(Global.TRUE, "posfull:"+message); } catch (Exception ex) { return renderResult(Global.FALSE, "posfull:"+ex.getMessage()); } } /** * 删除数据 */ @RequiresPermissions("mes:mesMaterialReport:edit") @RequestMapping(value = "delete") @ResponseBody public String delete(MesMaterialReport mesMaterialReport) { mesMaterialReportService.delete(mesMaterialReport); return renderResult(Global.TRUE, text("删除来料报检成功!")); } /** * PDA扫来料码,反解析出物料信息 */ @RequestMapping(value = "getMaterialInfo") @RequiresPermissions("mes:mesMaterialReport:api") @ResponseBody public CommonResp getMaterialInfo( HttpServletRequest req) { String materialCode = req.getParameter("materialCode"); CommonResp> resp = new CommonResp<>(); if (StringUtils.isEmpty(materialCode)){ resp.setResult(Global.FALSE); resp.setMessage("来料码不能为空!"); return resp; } String[] parts = materialCode.split("_",-1); if(parts.length < 3){ resp.setResult(Global.FALSE); resp.setMessage("二维码规则不正确!"); return resp; } String materialId = parts[0]; String faDate = parts[1]; String nums = parts[2]; if (parts.length!= 3||StringUtils.isEmpty(materialId)||StringUtils.isEmpty(faDate)||StringUtils.isEmpty(nums)){ resp.setResult(Global.FALSE); resp.setMessage("二维码规则不正确!"); return resp; } String faDate1=null; try { faDate1 = DateLocalUtils.getCurrentDate2(faDate); } catch (ParseException e) { resp.setResult(Global.FALSE); resp.setMessage("二维码规则不正确!"); return resp; } MesMaterial mesMaterial = new MesMaterial(); mesMaterial.setErpSn(materialId); MesMaterial material = mesMaterialService.findInfo(mesMaterial); if(material==null){ resp.setResult(Global.FALSE); resp.setMessage("物料不存在!"); return resp; } HashMap hashMap = new HashMap<>(); hashMap.put("title", material.getTitle());//物料 hashMap.put("faDate", faDate1);//发货日期 hashMap.put("nums", nums);//数量 resp.setData(hashMap); resp.setResult(Global.TRUE); return resp; } /** * PDA提交,添加到mes_material_report表中 */ @RequiresPermissions("mes:mesMaterialReport:api") @RequestMapping(value = "submit") @ResponseBody public CommonResp submit(HttpServletRequest req) { CommonResp> resp = new CommonResp<>(); String materialCode = req.getParameter("materialCode").trim(); String nums = req.getParameter("nums"); String remark = req.getParameter("remark"); String[] parts = materialCode.split("_",-1); if(parts.length < 3){ resp.setResult(Global.FALSE); resp.setMessage("二维码规则不正确!"); return resp; } String materialId = parts[0]; String faDate = parts[1]; String faNums = parts[2]; if (parts.length!= 3||StringUtils.isEmpty(materialId)||StringUtils.isEmpty(faDate)||StringUtils.isEmpty(nums)){ resp.setResult(Global.FALSE); resp.setMessage("二维码规则不正确!"); return resp; } String faDate1=null; try { faDate1 = DateLocalUtils.getCurrentDate2(faDate); } catch (ParseException e) { resp.setResult(Global.FALSE); resp.setMessage("二维码规则不正确!"); return resp; } MesMaterial mesMaterial = new MesMaterial(); mesMaterial.setErpSn(materialId); MesMaterial material = mesMaterialService.findInfo(mesMaterial); if(material==null){ resp.setResult(Global.FALSE); resp.setMessage("物料不存在!"); return resp; } //检查物料码是否已报检 MesMaterialReport mesMaterialReport = new MesMaterialReport(); mesMaterialReport.setSn(materialCode); mesMaterialReport.setStatus("0"); MesMaterialReport mesMaterialReport12 = mesMaterialReportService.findInfo(mesMaterialReport); if(!ObjectUtils.isEmpty(mesMaterialReport12)){ resp.setResult(Global.FALSE); resp.setMessage("该批物料已报检,勿重复操作!"); return resp; } MesMaterialReport mesMaterialReport1 = new MesMaterialReport(); mesMaterialReport1.setSn(materialCode); mesMaterialReport1.setMaterialId(material.getId()); mesMaterialReport1.setFaDate(faDate1); mesMaterialReport1.setFaNums(Long.valueOf(faNums)); mesMaterialReport1.setState("0"); mesMaterialReport1.setStatus("0"); mesMaterialReport1.setRemark(remark); mesMaterialReport1.setNums(Long.valueOf(nums)); mesMaterialReportService.save(mesMaterialReport1); resp.setResult(Global.TRUE); return resp; } @RequiresPermissions("mes:mesMaterialReport:api") @RequestMapping(value = "selectList") @ResponseBody public CommonResp> selectList(MesMaterialReport mesMaterialReport, HttpServletRequest request, HttpServletResponse response) { mesMaterialReport.setPage(new Page<>(request, response)); Page page = mesMaterialReportService.findPage(mesMaterialReport); CommonResp> resp = new CommonResp<>(); List list = page.getList(); resp.setData(list); resp.setResult(Global.TRUE); return resp; } @RequiresPermissions("mes:mesMaterialReport:api") @RequestMapping(value = "selectById") @ResponseBody public CommonResp selectById(MesMaterialReport mesMaterialReport) { CommonResp resp = new CommonResp<>(); if (StringUtils.isEmpty(mesMaterialReport.getId())){ resp.setResult(Global.FALSE); resp.setMessage("参数错误!"); return resp; } MesMaterialReport materialReport = mesMaterialReportService.selectById(mesMaterialReport); resp.setData(materialReport); resp.setResult(Global.TRUE); return resp; } }