| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- package com.jeesite.modules.mes.web;
- import com.jeesite.common.config.Global;
- import com.jeesite.common.entity.Page;
- import com.jeesite.common.lang.StringUtils;
- import com.jeesite.common.web.BaseController;
- import com.jeesite.modules.mes.erp.ErpPrdInStock;
- import com.jeesite.modules.mes.erp.ErpPrdInStockService;
- import com.jeesite.modules.mes.erp.ErpProductionOrder;
- import com.jeesite.modules.mes.erp.ErpProductionOrderService;
- import com.jeesite.modules.mes.erp.ErpStockLocOption;
- import com.jeesite.modules.mes.erp.ErpStockLocService;
- import com.jeesite.modules.mes.erp.ErpStockOption;
- import com.jeesite.modules.mes.erp.ErpStockService;
- import com.jeesite.modules.mes.erp.ErpTransferDirect;
- import com.jeesite.modules.mes.erp.ErpTransferDirectResult;
- import com.jeesite.modules.mes.erp.ErpTransferDirectSaveService;
- import com.jeesite.modules.mes.erp.ErpTransferDirectService;
- import com.jeesite.modules.mes.erp.ErpTransferDirectSubmitRequest;
- import com.jeesite.modules.mes.erp.KingdeeErpProperties;
- import org.apache.shiro.authz.annotation.RequiresPermissions;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.ResponseBody;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * ERP 直接调拨单查询与新增。
- */
- @Controller
- @RequestMapping(value = "${adminPath}/mes/erpTransferDirect")
- public class ErpTransferDirectController extends BaseController {
- private final ErpTransferDirectService erpTransferDirectService;
- private final ErpTransferDirectSaveService erpTransferDirectSaveService;
- private final ErpProductionOrderService erpProductionOrderService;
- private final ErpPrdInStockService erpPrdInStockService;
- private final ErpStockService erpStockService;
- private final ErpStockLocService erpStockLocService;
- private final KingdeeErpProperties erpProperties;
- public ErpTransferDirectController(ErpTransferDirectService erpTransferDirectService,
- ErpTransferDirectSaveService erpTransferDirectSaveService,
- ErpProductionOrderService erpProductionOrderService,
- ErpPrdInStockService erpPrdInStockService,
- ErpStockService erpStockService,
- ErpStockLocService erpStockLocService,
- KingdeeErpProperties erpProperties) {
- this.erpTransferDirectService = erpTransferDirectService;
- this.erpTransferDirectSaveService = erpTransferDirectSaveService;
- this.erpProductionOrderService = erpProductionOrderService;
- this.erpPrdInStockService = erpPrdInStockService;
- this.erpStockService = erpStockService;
- this.erpStockLocService = erpStockLocService;
- this.erpProperties = erpProperties;
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = {"list", ""})
- public String list(ErpTransferDirect erpTransferDirect, Model model) {
- model.addAttribute("erpTransferDirect", erpTransferDirect);
- return "modules/mes/erpTransferDirectList";
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = "listData")
- @ResponseBody
- public Page<ErpTransferDirect> listData(ErpTransferDirect erpTransferDirect,
- HttpServletRequest request, HttpServletResponse response) {
- Page<ErpTransferDirect> page = new Page<>(request, response);
- int pageSize = page.getPageSize() > 0 ? page.getPageSize() : 20;
- int pageNo = page.getPageNo() > 0 ? page.getPageNo() : 1;
- int startRow = (pageNo - 1) * pageSize;
- List<ErpTransferDirect> list = erpTransferDirectService.findPageList(erpTransferDirect, startRow, pageSize);
- page.setList(list);
- page.setCount(startRow + list.size() + (list.size() == pageSize ? 1 : 0));
- return page;
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = "detail")
- public String detail(ErpTransferDirect erpTransferDirect, Model model) {
- model.addAttribute("erpTransferDirect", erpTransferDirect);
- return "modules/mes/erpTransferDirectDetail";
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = "detailData")
- @ResponseBody
- public Page<ErpTransferDirect> detailData(ErpTransferDirect erpTransferDirect,
- HttpServletRequest request, HttpServletResponse response) {
- Page<ErpTransferDirect> page = new Page<>(request, response);
- List<ErpTransferDirect> list = erpTransferDirectService.findDetailList(erpTransferDirect.getBillNo());
- page.setList(list);
- page.setCount(list.size());
- return page;
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = "selectOrder")
- public String selectOrder(ErpProductionOrder erpProductionOrder, Model model) {
- model.addAttribute("erpProductionOrder", erpProductionOrder);
- return "modules/mes/erpTransferDirectSelectOrder";
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = "selectOrderData")
- @ResponseBody
- public Page<ErpProductionOrder> selectOrderData(ErpProductionOrder erpProductionOrder,
- HttpServletRequest request, HttpServletResponse response) {
- Page<ErpProductionOrder> page = new Page<>(request, response);
- int pageSize = page.getPageSize() > 0 ? page.getPageSize() : 20;
- int pageNo = page.getPageNo() > 0 ? page.getPageNo() : 1;
- int startRow = (pageNo - 1) * pageSize;
- // 与生产入库一致:仅展示配置 HEV/115 物料(.10)的生产订单
- List<ErpProductionOrder> list = erpProductionOrderService.findPrdInStockOrderPageList(
- erpProductionOrder.getBillNo(), startRow, pageSize);
- page.setList(list);
- page.setCount(startRow + list.size() + (list.size() == pageSize ? 1 : 0));
- return page;
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = "form")
- public String form(String moBillNo, Model model) {
- String billNo = StringUtils.trim(moBillNo);
- List<ErpPrdInStock> sourceList = erpPrdInStockService.findTransferSourceByMoBillNo(billNo);
- List<ErpStockOption> stockList = erpStockService.findUsableStockList();
- model.addAttribute("moBillNo", billNo);
- model.addAttribute("sourceList", sourceList);
- model.addAttribute("stockList", stockList);
- model.addAttribute("defaultSrcStockNumber", erpStockService.resolveDefaultStockNumber(stockList));
- model.addAttribute("defaultDestStockNumber", StringUtils.trim(erpProperties.getTransferDirectDefaultDestStockNumber()));
- if (sourceList.isEmpty()) {
- model.addAttribute("message", "该生产订单暂无 HEV/115 生产入库行,请先完成生产入库");
- }
- return "modules/mes/erpTransferDirectForm";
- }
- /**
- * PDA/前端:入库仓库列表。
- */
- @RequiresPermissions("mes:erpTransferDirect:view")
- @GetMapping(value = "stockList")
- @ResponseBody
- public Map<String, Object> stockList() {
- List<ErpStockOption> stocks = erpStockService.findUsableStockList();
- Map<String, Object> result = new HashMap<>(4);
- result.put("stockList", stocks);
- result.put("defaultStockNumber", erpStockService.resolveDefaultStockNumber(stocks));
- result.put("defaultDestStockNumber", StringUtils.trim(erpProperties.getTransferDirectDefaultDestStockNumber()));
- result.put("stockHint", stocks.isEmpty() ? "未能从 ERP 加载仓库列表" : "共 " + stocks.size() + " 个可用仓库");
- return result;
- }
- /**
- * PDA/前端:新增调拨页初始化(生产入库源行 + 仓库)。
- */
- @RequiresPermissions("mes:erpTransferDirect:view")
- @GetMapping(value = "formInit")
- @ResponseBody
- public Map<String, Object> formInit(String moBillNo) {
- Map<String, Object> result = new HashMap<>(10);
- String billNo = StringUtils.trim(moBillNo);
- result.put("moBillNo", billNo);
- if (StringUtils.isBlank(billNo)) {
- result.put("result", Global.FALSE);
- result.put("message", "生产订单号不能为空");
- result.put("sourceList", Collections.emptyList());
- return result;
- }
- List<ErpPrdInStock> sourceList = erpPrdInStockService.findTransferSourceByMoBillNo(billNo);
- result.put("result", Global.TRUE);
- result.put("sourceList", sourceList);
- if (sourceList.isEmpty()) {
- result.put("message", "该生产订单暂无 HEV/115 生产入库行,请先完成生产入库");
- } else {
- result.put("message", "");
- }
- List<ErpStockOption> stocks = erpStockService.findUsableStockList();
- result.put("stockList", stocks);
- result.put("defaultSrcStockNumber", erpStockService.resolveDefaultStockNumber(stocks));
- result.put("defaultDestStockNumber", StringUtils.trim(erpProperties.getTransferDirectDefaultDestStockNumber()));
- return result;
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @RequestMapping(value = "instockSourceData")
- @ResponseBody
- public Page<ErpPrdInStock> instockSourceData(String moBillNo,
- HttpServletRequest request, HttpServletResponse response) {
- Page<ErpPrdInStock> page = new Page<>(request, response);
- List<ErpPrdInStock> list = erpPrdInStockService.findTransferSourceByMoBillNo(moBillNo);
- page.setList(list);
- page.setCount(list.size());
- return page;
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @GetMapping(value = "stockLocOptions")
- @ResponseBody
- public Map<String, Object> stockLocOptions(String stockNumber) {
- List<ErpStockLocOption> locations = erpStockLocService.findLocationsByStock(stockNumber);
- Map<String, Object> result = new HashMap<>(4);
- boolean required = !locations.isEmpty();
- result.put("required", required);
- result.put("locations", locations);
- result.put("defaultLocNumber", erpStockLocService.resolveDefaultLocNumber(stockNumber, locations));
- if (locations.isEmpty()) {
- result.put("locHint", "该仓库未启用仓位或未配置仓位值集");
- } else {
- result.put("locHint", "共 " + locations.size() + " 个仓位");
- }
- return result;
- }
- @RequiresPermissions("mes:erpTransferDirect:view")
- @PostMapping(value = "submit")
- @ResponseBody
- public String submit(@RequestBody ErpTransferDirectSubmitRequest request) {
- ErpTransferDirectResult result = erpTransferDirectSaveService.submit(request);
- if (result.isSuccess()) {
- return renderResult(Global.TRUE, text("直接调拨单保存成功,单号:{0}", result.getBillNo()));
- }
- return renderResult(Global.FALSE, result.getMessage());
- }
- }
|