package com.jeesite.modules.mes.web; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSON; import com.jeesite.common.collect.ListUtils; import com.jeesite.common.collect.MapUtils; import com.jeesite.common.lang.DateUtils; import com.jeesite.common.lang.StringUtils; import com.jeesite.common.utils.excel.ExcelExport; import com.jeesite.modules.file.entity.FileUpload; import com.jeesite.modules.file.service.FileUploadService; import com.jeesite.modules.mes.dao.MesWarehouseInItemsDao; import com.jeesite.modules.mes.entity.*; import com.jeesite.modules.mes.resp.CommonResp; import com.jeesite.modules.mes.resp.DictDataResp; import com.jeesite.modules.mes.resp.MesWarehouseResp; import com.jeesite.modules.mes.service.MesApplyService; import com.jeesite.modules.mes.service.MesIpqcService; import com.jeesite.modules.mes.service.MesWarehouseInItemsService; import com.jeesite.modules.mes.util.CopyUtil; import com.jeesite.modules.sys.entity.DictData; import com.jeesite.modules.sys.utils.DictUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.checkerframework.checker.units.qual.A; 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.alibaba.fastjson.JSONValidator; import com.jeesite.common.codec.EncodeUtils; import com.jeesite.common.web.BaseController; import com.jeesite.modules.mes.service.MesWarehouseInService; /** * 入库单Controller * @author hzd * @version 2023-06-26 */ @Controller @RequestMapping(value = "${adminPath}/mes/mesWarehouseIn") public class MesWarehouseInController extends BaseController { @Autowired private MesWarehouseInService mesWarehouseInService; @Autowired private MesApplyService mesApplyService; @Resource private FileUploadService fileUploadService; @Autowired private MesWarehouseInItemsService mesWarehouseInItemsService; @Autowired private MesIpqcService mesIpqcService; /** * 获取数据 */ @ModelAttribute public MesWarehouseIn get(String id, boolean isNewRecord) { return mesWarehouseInService.get(id, isNewRecord); } /** * 查询列表 */ @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = {"list", ""}) public String list(MesWarehouseIn mesWarehouseIn, Model model) { model.addAttribute("mesWarehouseIn", mesWarehouseIn); return "modules/mes/mesWarehouseInList"; } /** * 查询列表数据 */ @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "listData") @ResponseBody public Page listData(MesWarehouseIn mesWarehouseIn, HttpServletRequest request, HttpServletResponse response) { mesWarehouseIn.setPage(new Page<>(request, response)); Page page = mesWarehouseInService.findPage(mesWarehouseIn); return page; } @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = {"items", ""}) public String items(MesWarehouseInItems mesWarehouseInItems, Model model) { model.addAttribute("mesWarehouseInItems", mesWarehouseInItems); return "modules/mes/mesWarehouseInItems"; } /** * 查询子表数据 */ @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "mesWarehouseInItemsListData") @ResponseBody public Page subListData(MesWarehouseInItems mesWarehouseInItems, HttpServletRequest request, HttpServletResponse response) { mesWarehouseInItems.setPage(new Page<>(request, response)); Page page = mesWarehouseInService.findSubPage(mesWarehouseInItems); return page; } /** * 查看编辑表单 */ @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "form") public String form(MesWarehouseIn mesWarehouseIn, Model model) { mesWarehouseIn.setFrom("0"); model.addAttribute("mesWarehouseIn", mesWarehouseIn); return "modules/mes/mesWarehouseInForm"; } @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "form2") public String form2(MesWarehouseIn mesWarehouseIn, Model model) { mesWarehouseIn.setFrom("1"); model.addAttribute("mesWarehouseIn", mesWarehouseIn); return "modules/mes/mesWarehouseInForm2"; } @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "refund") public String refund(MesWarehouseIn mesWarehouseIn, Model model) { MesWarehouseRefund mesWarehouseRefund = new MesWarehouseRefund(); mesWarehouseRefund.setFromId(mesWarehouseIn.getFromId()); mesWarehouseRefund.setWarehouseInId(mesWarehouseIn.getId()); List list2 = mesWarehouseRefund.getMesWarehouseRefundItemsList(); List list = mesWarehouseIn.getMesWarehouseInItemsList(); for (MesWarehouseInItems mesWarehouseInItems : list){ MesWarehouseRefundItems res = new MesWarehouseRefundItems(); res.setWarehouseId(mesWarehouseInItems.getWarehouseId()); res.setTitle(mesWarehouseInItems.getTitle()); res.setSn(mesWarehouseInItems.getSn()); res.setSpec(mesWarehouseInItems.getSpec()); res.setCount(mesWarehouseInItems.getCount()); list2.add(res); } mesWarehouseRefund.setMesWarehouseRefundItemsList(list2); model.addAttribute("mesWarehouseRefund", mesWarehouseRefund); return "modules/mes/mesWarehouseInRefund"; } @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "deal") public String deal(MesWarehouseIn mesWarehouseIn, Model model) { model.addAttribute("mesWarehouseIn", mesWarehouseIn); List malist = mesApplyService.getApplyData("2",mesWarehouseIn.getId(),1); String auth = "0"; List titles = new ArrayList<>(); for (MesApply item : malist){ if(item.getState().equals("0") && item.getAuth().equals("1")){ auth = "1"; titles.add(item.getNodeTitle()); } } String btnTitle = ""; if(auth.equals("1")){ btnTitle = String.join("-",titles); } model.addAttribute("malist", malist); model.addAttribute("auth", auth); model.addAttribute("btnTitle", btnTitle); return "modules/mes/mesWarehouseInDeal"; } @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "info") public String info(MesWarehouseIn mesWarehouseIn, Model model) { model.addAttribute("mesWarehouseIn", mesWarehouseIn); // List malist = mesApplyService.getApplyData("2",mesWarehouseIn.getId(),0); // model.addAttribute("malist", malist); return "modules/mes/mesWarehouseInInfo"; } /** * 保存数据 */ @RequiresPermissions("mes:mesWarehouseIn:edit") @PostMapping(value = "save") @ResponseBody public String save(@Validated MesWarehouseIn mesWarehouseIn) { if(mesWarehouseIn.getFrom().equals("1")){ mesWarehouseIn.setState("0"); }else{ mesWarehouseIn.setState("1"); } List list = mesWarehouseIn.getMesWarehouseInItemsList(); if(list.size() == 0){ return renderResult(Global.FALSE, text("请选择物料!")); } for (int i = 0; i < list.size(); i++) { if(list.get(i).getWarehouseId().isEmpty()){ return renderResult(Global.FALSE, text("参数错误!")); } if(list.get(i).getCount() <= 0){ return renderResult(Global.FALSE, text("物料数量必须大于0")); } } mesWarehouseInService.save(mesWarehouseIn); return renderResult(Global.TRUE, text("保存入库单成功!")); } @RequiresPermissions("mes:mesWarehouseIn:edit") @PostMapping(value = "save2") @ResponseBody public String save2(@Validated MesWarehouseIn mesWarehouseIn,HttpServletRequest request) { if(!mesWarehouseIn.getState().equals("0")){ return renderResult(Global.FALSE, text("该记录已处理")); } String state = request.getParameter("applyState"); String remark = request.getParameter("applyRemark"); mesWarehouseIn.setRemark(""); if(state.equals("2")){ mesWarehouseIn.setState("2"); } List malist = mesApplyService.getApplyData("2",mesWarehouseIn.getId(),1); String auth = "0"; String s = "1"; for (MesApply item : malist){ if(item.getState().equals("0") && item.getAuth().equals("1")){ auth = "1"; item.setRemark(remark); } if(item.getState().equals("0")){ s = "0"; } } if(auth.equals("0")){ return renderResult(Global.FALSE, text("无权限操作")); } if(s.equals("1")){ mesWarehouseIn.setState("1"); } mesWarehouseInService.deal(mesWarehouseIn,state,remark); return renderResult(Global.TRUE, text("操作成功!")); } /** * 删除数据 */ @RequiresPermissions("mes:mesWarehouseIn:edit") @RequestMapping(value = "delete") @ResponseBody public String delete(MesWarehouseIn mesWarehouseIn) { mesWarehouseInService.delete(mesWarehouseIn); return renderResult(Global.TRUE, text("删除入库单成功!")); } /** * 导出数据 */ @RequiresPermissions("mes:mesWarehouseIn:view") @RequestMapping(value = "exportData") public void exportData(MesWarehouseInItems mesWarehouseInItems, HttpServletResponse response) { List list = mesWarehouseInService.findSubList(mesWarehouseInItems); String fileName = "物料入库记录" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; try(ExcelExport ee = new ExcelExport("物料入库记录", MesWarehouseInItems.class)){ ee.setDataList(list).write(response, fileName); } } @RequiresPermissions("mes:mesWarehouseIn:api") @PostMapping(value = "add") @ResponseBody public String add(@Validated MesWarehouseIn mesWarehouseIn,HttpServletRequest request) { mesWarehouseIn.setState("1"); if(mesWarehouseIn.getFrom().equals("1")){ // 让步入库审核 mesWarehouseIn.setState("0"); } // String items = request.getParameter("items"); // if(items.isEmpty()){ // return renderResult(Global.FALSE, text("请选择物料!")); // } List list = mesWarehouseIn.getMesWarehouseInItemsList(); if(list.size() == 0){ return renderResult(Global.FALSE, text("请选择物料!")); } for (int i = 0; i < list.size(); i++) { if(list.get(i).getWarehouseId().isEmpty()){ return renderResult(Global.FALSE, text("参数错误!")); } if(list.get(i).getCount() <= 0){ return renderResult(Global.FALSE, text("物料数量必须大于0")); } } mesWarehouseInService.save(mesWarehouseIn); return renderResult(Global.TRUE, text("操作成功!")); } @RequestMapping(value = "types") @ResponseBody public CommonResp types() { List list = DictUtils.getDictList("mes_warehouse_type"); // 列表复制 List result = CopyUtil.copyList(list, DictDataResp.class); CommonResp> resp = new CommonResp<>(); resp.setData(result); resp.setResult(Global.TRUE); return resp; } @RequiresPermissions("mes:mesWarehouseIn:api") @RequestMapping(value = "ulist") @ResponseBody public CommonResp ulist(MesWarehouseIn mesWarehouseIn, HttpServletRequest request, HttpServletResponse response) { mesWarehouseIn.setPage(new Page<>(request, response)); Page page = mesWarehouseInService.findPage(mesWarehouseIn); CommonResp resp = new CommonResp<>(); resp.setData(page); resp.setResult(Global.TRUE); return resp; } @RequiresPermissions("mes:mesWarehouseIn:api") @RequestMapping(value = "detail") @ResponseBody public CommonResp detail(MesWarehouseIn mesWarehouseIn,HttpServletRequest req) { String host = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/js"; Map map = MapUtils.newHashMap(); // logger.info(JSON.toJSONString(mesWarehouseIn)); // List malist = mesApplyService.getApplyData("2",mesWarehouseIn.getId(),0); // map.put("apply", malist); // 获取图片 FileUpload fu = new FileUpload(); fu.setBizKey(mesWarehouseIn.getId()); fu.setBizType("mesWarehouseIn_image"); List imgs = fileUploadService.findList(fu); List imgList = ListUtils.newArrayList(); if(imgs.size() > 0){ for (FileUpload fi:imgs) { Map map1 = MapUtils.newHashMap(); map1.put("id",fi.getFileEntity().getFileId()); map1.put("url",host + fi.getFileUrl()); imgList.add(map1); } } map.put("imgs", imgList); // 获取附件 FileUpload fu2 = new FileUpload(); fu.setBizKey(mesWarehouseIn.getId()); fu.setBizType("mesWarehouseIn_file"); List imgs2 = fileUploadService.findList(fu2); List imgList2 = ListUtils.newArrayList(); if(imgs2.size() > 0){ for (FileUpload fi:imgs2) { Map map2 = MapUtils.newHashMap(); map2.put("id",fi.getFileEntity().getFileId()); map2.put("url",host + fi.getFileUrl()); map2.put("name",host + fi.getFileName()); imgList2.add(map2); } } map.put("files", imgList); map.put("mesWarehouseIn", mesWarehouseIn); CommonResp> resp = new CommonResp<>(); resp.setData(map); resp.setResult(Global.TRUE); return resp; } @RequiresPermissions("mes:mesWarehouseIn:api") @RequestMapping(value = "applydetail") @ResponseBody public CommonResp applydetail(MesWarehouseIn mesWarehouseIn,HttpServletRequest req) { String host = req.getScheme() + "://" + req.getServerName() + ":" + req.getServerPort() + "/js"; Map map = MapUtils.newHashMap(); // 获取图片 FileUpload fu = new FileUpload(); fu.setBizKey(mesWarehouseIn.getId()); fu.setBizType("mesWarehouseIn_image"); List imgs = fileUploadService.findList(fu); List imgList = ListUtils.newArrayList(); if(imgs.size() > 0){ for (FileUpload fi:imgs) { Map map1 = MapUtils.newHashMap(); map1.put("id",fi.getFileEntity().getFileId()); map1.put("url",host + fi.getFileUrl()); imgList.add(map1); } } map.put("imgs", imgList); // 获取附件 FileUpload fu2 = new FileUpload(); fu.setBizKey(mesWarehouseIn.getId()); fu.setBizType("mesWarehouseIn_file"); List imgs2 = fileUploadService.findList(fu2); List imgList2 = ListUtils.newArrayList(); if(imgs2.size() > 0){ for (FileUpload fi:imgs2) { Map map2 = MapUtils.newHashMap(); map2.put("id",fi.getFileEntity().getFileId()); map2.put("url",host + fi.getFileUrl()); map2.put("name",host + fi.getFileName()); imgList2.add(map2); } } map.put("files", imgList); map.put("mesWarehouseIn", mesWarehouseIn); List malist = mesApplyService.getApplyData("2",mesWarehouseIn.getId(),1); String auth = "0"; List titles = new ArrayList<>(); for (MesApply item : malist){ if(item.getState().equals("0") && item.getAuth().equals("1")){ auth = "1"; titles.add(item.getNodeTitle()); } } String btnTitle = ""; if(auth.equals("1")){ btnTitle = String.join("-",titles); } map.put("malist", malist); map.put("auth", auth); map.put("btnTitle", btnTitle); CommonResp> resp = new CommonResp<>(); resp.setData(map); resp.setResult(Global.TRUE); return resp; } }