diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java index 9bf417edf..cf595e6a6 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java @@ -3,15 +3,10 @@ package com.op.plan.controller; import java.io.IOException; import java.util.ArrayList; import java.util.List; -import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; -import com.op.plan.domain.ProLine; -import com.op.plan.domain.ProRoute; -import com.op.plan.domain.ProShift; import com.op.plan.domain.dto.SplitOrderDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -32,7 +27,6 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.utils.poi.ExcelUtil; import org.springframework.web.multipart.MultipartFile; -import static com.op.common.security.utils.SecurityUtils.getUsername; /** * 订单Controller @@ -46,6 +40,16 @@ public class ProOrderController extends BaseController { @Autowired private IProOrderService proOrderService; + /** + * 通过订单Code查询级联订单信息并封装返回 + * @param orderCode + * @return + */ + @GetMapping("/getCascadeProOrder/{orderCode}") + public AjaxResult getCascadeProOrder(@PathVariable("orderCode") String orderCode) { + return proOrderService.getCascadeProOrder(orderCode); + } + /** * 导入订单信息接口 * diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java index 47735c340..eaccc994a 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java @@ -133,4 +133,11 @@ public interface IProOrderService { * @return */ List getProEquipment(String routeCode); + + /** + * 通过订单Code查询级联订单信息并封装返回 + * @param orderCode + * @return + */ + AjaxResult getCascadeProOrder(String orderCode); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 1ff023f59..dda5e7788 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -514,6 +514,49 @@ public class ProOrderServiceImpl implements IProOrderService { return proOrderMapper.selectEquipment(split); } + /** + * 通过母订单Code查询级联订单信息并封装 + * @param orderCode + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getCascadeProOrder(String orderCode) { + // 创建查询存放列表 + List proOrderList = new ArrayList<>(); + // 存放code信息 + StringBuilder tempCode = new StringBuilder(); + tempCode.append(orderCode); + // 查询母订单信息并存放 + ProOrder proOrder = proOrderMapper.selectProOrderByOrderCode(tempCode.toString()); + proOrderList.add(proOrder); + + // 递归查询子订单 + while (true) { + List childProOrderList = proOrderMapper.selectChildProOrderByCode(tempCode.toString()); + if (childProOrderList.size() > 0) { + proOrderList.add(childProOrderList.get(0)); + tempCode.setLength(0); + tempCode.append(childProOrderList.get(0).getOrderCode()); + }else { + break; + } + } + + // 创建返回对象 + ProOrder proOrderVO = new ProOrder(); + + // 处理列表 + for (int i = proOrderList.size()-1; i > 0; i--) { + List setList = new ArrayList<>(); + setList.add(proOrderList.get(i)); + proOrderList.get(i-1).setChildren(setList); + } + + BeanUtils.copyProperties(proOrderList.get(0),proOrderVO); + return success(proOrderVO); + } + public void getSAPOrderByFactory(String poolName) { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key SapProOrder sapqo = new SapProOrder();//proOrderMapper.getMaxCreatetime();