package com.jeesite.modules.mes.web; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 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 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.lang.StringUtils; 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.mes.entity.MesLine; import com.jeesite.modules.mes.entity.MesLineProcess; import com.jeesite.modules.mes.entity.MesStationPiecePrice; import com.jeesite.modules.mes.service.MesLineProcessService; import com.jeesite.modules.mes.service.MesLineService; import com.jeesite.modules.mes.service.MesStationPiecePriceService; /** * 工位计件单价Controller */ @Controller @RequestMapping(value = "${adminPath}/mes/mesStationPiecePrice") public class MesStationPiecePriceController extends BaseController { @Autowired private MesStationPiecePriceService mesStationPiecePriceService; @Autowired private MesLineProcessService mesLineProcessService; @Autowired private MesLineService mesLineService; @ModelAttribute public MesStationPiecePrice get(String id, boolean isNewRecord) { return mesStationPiecePriceService.get(id, isNewRecord); } @RequiresPermissions("mes:mesStationPiecePrice:view") @RequestMapping(value = {"list", ""}) public String list(MesStationPiecePrice mesStationPiecePrice, Model model) { model.addAttribute("mesStationPiecePrice", mesStationPiecePrice); return "modules/mes/mesStationPiecePriceList"; } @RequiresPermissions("mes:mesStationPiecePrice:view") @RequestMapping(value = "listData") @ResponseBody public Page listData(MesStationPiecePrice mesStationPiecePrice, HttpServletRequest request, HttpServletResponse response) { mesStationPiecePrice.setPage(new Page<>(request, response)); return mesStationPiecePriceService.findPage(mesStationPiecePrice); } @RequiresPermissions("mes:mesStationPiecePrice:view") @RequestMapping(value = "form") public String form(MesStationPiecePrice mesStationPiecePrice, Model model) { model.addAttribute("mesStationPiecePrice", mesStationPiecePrice); // 产线下拉选项 MesLine mesLine = new MesLine(); mesLine.setStatus(MesLine.STATUS_NORMAL); model.addAttribute("lineList", mesLineService.findList(mesLine)); return "modules/mes/mesStationPiecePriceForm"; } @RequiresPermissions("mes:mesStationPiecePrice:edit") @PostMapping(value = "save") @ResponseBody public String save(@Validated MesStationPiecePrice mesStationPiecePrice) { mesStationPiecePriceService.save(mesStationPiecePrice); return renderResult(Global.TRUE, text("\u4fdd\u5b58\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7\u6210\u529f")); } @RequiresPermissions("mes:mesStationPiecePrice:edit") @RequestMapping(value = "delete") @ResponseBody public String delete(MesStationPiecePrice mesStationPiecePrice) { mesStationPiecePriceService.delete(mesStationPiecePrice); return renderResult(Global.TRUE, text("\u5220\u9664\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7\u6210\u529f")); } @RequiresPermissions("mes:mesStationPiecePrice:view") @RequestMapping(value = "exportData") public void exportData(MesStationPiecePrice mesStationPiecePrice, HttpServletResponse response) { List list = mesStationPiecePriceService.findList(mesStationPiecePrice); String fileName = "\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx"; try (ExcelExport ee = new ExcelExport("\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7", MesStationPiecePrice.class)) { ee.setDataList(list).write(response, fileName); } } @RequiresPermissions("mes:mesStationPiecePrice:view") @RequestMapping(value = "importTemplate") public void importTemplate(HttpServletResponse response) { MesStationPiecePrice mesStationPiecePrice = new MesStationPiecePrice(); List list = ListUtils.newArrayList(mesStationPiecePrice); String fileName = "\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7\u6a21\u677f.xlsx"; try (ExcelExport ee = new ExcelExport("\u5de5\u4f4d\u8ba1\u4ef6\u5355\u4ef7", MesStationPiecePrice.class, Type.IMPORT)) { ee.setDataList(list).write(response, fileName); } } @ResponseBody @RequiresPermissions("mes:mesStationPiecePrice:edit") @PostMapping(value = "importData") public String importData(MultipartFile file) { try { String message = mesStationPiecePriceService.importData(file); return renderResult(Global.TRUE, "posfull:" + message); } catch (Exception ex) { return renderResult(Global.FALSE, "posfull:" + ex.getMessage()); } } /** * 按产线查询父工位列表(pid 为空) */ @RequiresPermissions("mes:mesStationPiecePrice:view") @RequestMapping(value = "stationList") @ResponseBody public List stationList(String lineSn) { return findParentStationList(lineSn); } @RequiresPermissions("mes:mesStationPiecePrice:view") @RequestMapping(value = "stationInfo") @ResponseBody public MesLineProcess stationInfo(String lineSn, String oprno) { if (StringUtils.isBlank(lineSn) || StringUtils.isBlank(oprno)) { return null; } String targetOprno = oprno.trim(); for (MesLineProcess item : findParentStationList(lineSn)) { if (targetOprno.equals(item.getOprno())) { return item; } } return null; } /** * 根据产线编号查询父工位 */ private List findParentStationList(String lineSn) { if (StringUtils.isBlank(lineSn)) { return ListUtils.newArrayList(); } MesLine query = new MesLine(); query.setSn(lineSn.trim()); query.setStatus(MesLine.STATUS_NORMAL); MesLine line = mesLineService.findInfo(query); if (line == null || StringUtils.isBlank(line.getId())) { return ListUtils.newArrayList(); } return mesLineProcessService.findParentListByLine(line.getId(), lineSn.trim()); } }