diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProWhiteOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProWhiteOrderController.java index 3eae5790..e3f78b58 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProWhiteOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProWhiteOrderController.java @@ -33,6 +33,20 @@ public class ProWhiteOrderController { @Autowired private IProWhiteOrderService proWhiteOrderService; + /** + * 通过proOrder获得拆分信息 + * 1.获取订单信息 + * 2.获取工单信息 + * 3.获取班次信息 + * 4.获取工艺信息 + * @param proOrder + * @return + */ + @PostMapping("/getSplitInfo") + public AjaxResult getSplitInfo(@RequestBody ProOrder proOrder) { + return proWhiteOrderService.getSplitInfo(proOrder); + } + /** * 查询白坯订单管理列表 */ diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/vo/SplitProWhiteOrderVo.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/vo/SplitProWhiteOrderVo.java new file mode 100644 index 00000000..a64607b7 --- /dev/null +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/vo/SplitProWhiteOrderVo.java @@ -0,0 +1,51 @@ +package com.op.plan.domain.vo; + +import com.op.plan.domain.ProOrder; +import com.op.plan.domain.ProOrderWorkorder; +import com.op.plan.domain.ProRoute; +import com.op.plan.domain.ProShift; + +import java.util.List; + +// 白坯拆分VO +public class SplitProWhiteOrderVo { + private List proOrderList; + private List proOrderWorkorderList; + private List routeList; + private List proShiftList; + + public List getProOrderList() { + return proOrderList; + } + + public void setProOrderList(List proOrderList) { + this.proOrderList = proOrderList; + } + + public List getProOrderWorkorderList() { + return proOrderWorkorderList; + } + + public void setProOrderWorkorderList(List proOrderWorkorderList) { + this.proOrderWorkorderList = proOrderWorkorderList; + } + + public List getRouteList() { + return routeList; + } + + public void setRouteList(List routeList) { + this.routeList = routeList; + } + + public List getProShiftList() { + return proShiftList; + } + + public void setProShiftList(List proShiftList) { + this.proShiftList = proShiftList; + } + + public SplitProWhiteOrderVo() { + } +} diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java index 1beef56b..0de48209 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderMapper.java @@ -193,4 +193,10 @@ public interface ProOrderMapper { Map getEquipInfoByCodes(String equipCodes); ProOrder getMaxPlanDate(); + + /** + * 白坯-通过母订单code将所有子订单状态改为已拆分 + * @param orderCode + */ + void updateOrderStatusByOrderCode(String orderCode); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWhiteOrderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWhiteOrderMapper.java index 1dc9339e..b7918893 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWhiteOrderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProWhiteOrderMapper.java @@ -1,6 +1,9 @@ package com.op.plan.mapper; import com.op.plan.domain.ProOrder; +import com.op.plan.domain.ProOrderWorkorder; +import com.op.plan.domain.ProRoute; +import com.op.plan.domain.ProShift; import java.util.List; @@ -58,4 +61,25 @@ public interface ProWhiteOrderMapper { * @return 结果 */ public int deleteProOrderByIds(String[] ids); + + /** + * 通过parentOrder获取订单信息 + * @param parentOrder + * @return + */ + ProOrder selectProOrderByParentOrder(String parentOrder); + + /** + * 通过订单code获得工单list + * @param orderCode + * @return + */ + List selectProWorkOrderByOrderCode(String orderCode); + + /** + * 获取班次信息list + * @return + */ + List selectProShift(); + } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProWhiteOrderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProWhiteOrderService.java index 34223c4c..147a19d5 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProWhiteOrderService.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProWhiteOrderService.java @@ -1,5 +1,6 @@ package com.op.plan.service; +import com.op.common.core.web.domain.AjaxResult; import com.op.plan.domain.ProOrder; import java.util.List; @@ -58,4 +59,15 @@ public interface IProWhiteOrderService { * @return 结果 */ public int deleteProOrderById(String id); + + /** + * 通过proOrder获得拆分信息 + * 1.获取订单信息 + * 2.获取工单信息 + * 3.获取班次信息 + * 4.获取工艺信息 + * @param proOrder + * @return + */ + AjaxResult getSplitInfo(ProOrder proOrder); } 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 b6e16482..f1f20319 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 @@ -127,66 +127,131 @@ public class ProOrderServiceImpl implements IProOrderService { // 如果不重复 if (checkout) { - // 创建订单对象,并将信息copy进去 - ProOrder proOrder = new ProOrder(); - BeanUtils.copyProperties(splitOrderDTO.getProduct(), proOrder); - // 设置工单通用属性 - ProOrderWorkorder proOrderWorkorder = setCommonWorkAttribute(proOrder, splitOrderDTO.getProductDate(), splitOrderDTO.getProdLineCode(), splitOrderDTO.getShiftId(), splitOrderDTO.getRouteCode()); - // 创建批次表通用对象 - ProOrderWorkorderBatch workBatch = setCommonBatchAttribute(); - // code - int endCode = getEndCode(proOrder.getId()); - - // 父工单code - StringBuilder parentOrder = new StringBuilder("0"); - boolean run = true; - - // 设置换算基数,用于获得换算值 - Long quantity = proOrder.getQuantity(); - - // 获取单位换算值 - Long conver = 1L; - while (run) { - // 先进行当前订单拆分操作 - // 1.设置工单信息,并更新订单信息至数据库 - ProOrderWorkorder workOrder = setWorkOrder(proOrderWorkorder, proOrder); - // 2.设置工单编码 - workOrder.setWorkorderCode(proOrder.getOrderCode() + "-" + endCode); - // 3.设置父工单 - workOrder.setParentOrder(parentOrder.toString()); - // 工单对应车数-白坯订单操作 - if (proOrder.getProdType().equals("white")) { - int everyNum = (int) Math.ceil(proOrder.getQuantity() / proOrder.getCarNum()); - int carNum = (int) Math.ceil(splitOrderDTO.getSplitNum() / everyNum); - workOrder.setCarNum(carNum); + + // 如果是白坯订单 + if (splitOrderDTO.getProduct().getProdType().equals("white")){ + + boolean flag = false; + + // 母订单 + ProOrder proOrderTemp = new ProOrder(); + BeanUtils.copyProperties(splitOrderDTO.getProduct(),proOrderTemp); + // 母订单拆分数量 + proOrderTemp.setUpdateTime(DateUtils.getNowDate()); + proOrderTemp.setUpdateBy(SecurityContextHolder.getUserName()); + proOrderTemp.setQuantitySplit(proOrderTemp.getQuantitySplit()+splitOrderDTO.getSplitNum()); + // 拆分中 + proOrderTemp.setStatus("o1"); + // 全部更改为拆分中 + proOrderMapper.updateOrderStatusByOrderCode(proOrderTemp.getOrderCode()); + // 如果拆分完就更改状态为已拆分 + if (proOrderTemp.getQuantitySplit() == proOrderTemp.getQuantity()) { + flag = true; + // TODO 更改子订单状态 + proOrderTemp.setStatus("o2"); } - // 将工单信息更新至数据库 - proOrderWorkorderMapper.insertProOrderWorkorder(workOrder); - // 生成批次表信息并更新至数据库 - setBatch(workBatch, splitOrderDTO.getFormFields(), workOrder.getWorkorderId(), conver); - - // 如果存在子节点 - if (proOrder.getChildren() != null && proOrder.getChildren().size()>0) { - ProOrderDTO newProOrder = (ProOrderDTO) proOrder.getChildren().get(0); - // 更新换算值 - conver = (newProOrder.getQuantity() / quantity); - // 将child信息重新赋值给proOrder - BeanUtils.copyProperties(newProOrder, proOrder); - // 存放父工单code - parentOrder.delete(0, parentOrder.length()); - parentOrder.append(workOrder.getWorkorderCode()); - // code自增 - endCode++; - } else { - // 设置子节点end_flag字段信息 - workOrder.setEndFlag(1); - // 更新数据库记录信息 - proOrderWorkorderMapper.updateProOrderWorkorder(workOrder); - // 结束循环 - run = false; + // 更新母订单 + proOrderMapper.updateOrder(proOrderTemp); + + // 创建订单对象,并将信息copy进去 + ProOrder proOrder = new ProOrder(); + BeanUtils.copyProperties(splitOrderDTO.getProduct().getChildren().get(0),proOrder); + // 子订单 + proOrder.setUpdateTime(DateUtils.getNowDate()); + proOrder.setUpdateBy(SecurityContextHolder.getUserName()); + proOrder.setQuantitySplit(splitOrderDTO.getSplitNum()); + proOrder.setQuantity(splitOrderDTO.getSplitNum()); + proOrder.setStatus("o1"); + if (flag) { + proOrder.setStatus("o2"); + } + proOrderMapper.updateOrder(proOrder); + + // 设置工单通用属性 + ProOrderWorkorder proOrderWorkorder = setCommonWorkAttribute(proOrder, splitOrderDTO.getProductDate(), splitOrderDTO.getProdLineCode(), splitOrderDTO.getShiftId(), splitOrderDTO.getRouteCode()); + // 设置批次表通用信息 + ProOrderWorkorderBatch proOrderWorkorderBatch = setCommonBatchAttribute(); + // 设置工单 + proOrderWorkorder.setWorkorderId(IdUtils.fastSimpleUUID()); + proOrderWorkorder.setWorkorderCode(proOrder.getOrderCode()+"-1"); + proOrderWorkorder.setOrderId(proOrder.getId()); + proOrderWorkorder.setOrderCode(proOrder.getOrderCode()); + proOrderWorkorder.setUnit(proOrder.getUnit()); + proOrderWorkorder.setQuantitySplit(splitOrderDTO.getSplitNum()); + proOrderWorkorder.setProdType(proOrder.getProdType()); + proOrderWorkorder.setParentOrder("0"); + proOrderWorkorder.setEndFlag(1); + + // 插入工单 + proOrderWorkorderMapper.insertProOrderWorkorder(proOrderWorkorder); + + setBatch(proOrderWorkorderBatch,splitOrderDTO.getFormFields(),proOrderWorkorder.getWorkorderId(),1L); + + return success(); + + }else { + // 创建订单对象,并将信息copy进去 + ProOrder proOrder = new ProOrder(); + BeanUtils.copyProperties(splitOrderDTO.getProduct(), proOrder); + // 设置工单通用属性 + ProOrderWorkorder proOrderWorkorder = setCommonWorkAttribute(proOrder, splitOrderDTO.getProductDate(), splitOrderDTO.getProdLineCode(), splitOrderDTO.getShiftId(), splitOrderDTO.getRouteCode()); + // 创建批次表通用对象 + ProOrderWorkorderBatch workBatch = setCommonBatchAttribute(); + // code + int endCode = getEndCode(proOrder.getId()); + + // 父工单code + StringBuilder parentOrder = new StringBuilder("0"); + boolean run = true; + + // 设置换算基数,用于获得换算值 + Long quantity = proOrder.getQuantity(); + + // 获取单位换算值 + Long conver = 1L; + while (run) { + // 先进行当前订单拆分操作 + // 1.设置工单信息,并更新订单信息至数据库 + ProOrderWorkorder workOrder = setWorkOrder(proOrderWorkorder, proOrder); + // 2.设置工单编码 + workOrder.setWorkorderCode(proOrder.getOrderCode() + "-" + endCode); + // 3.设置父工单 + workOrder.setParentOrder(parentOrder.toString()); + // 工单对应车数-白坯订单操作 +// if (proOrder.getProdType().equals("white")) { +// int everyNum = (int) Math.ceil(proOrder.getQuantity() / proOrder.getCarNum()); +// int carNum = (int) Math.ceil(splitOrderDTO.getSplitNum() / everyNum); +// workOrder.setCarNum(carNum); +// } + // 将工单信息更新至数据库 + proOrderWorkorderMapper.insertProOrderWorkorder(workOrder); + // 生成批次表信息并更新至数据库 + setBatch(workBatch, splitOrderDTO.getFormFields(), workOrder.getWorkorderId(), conver); + + // 如果存在子节点 + if (proOrder.getChildren() != null && proOrder.getChildren().size()>0) { + ProOrderDTO newProOrder = (ProOrderDTO) proOrder.getChildren().get(0); + // 更新换算值 + conver = (newProOrder.getQuantity() / quantity); + // 将child信息重新赋值给proOrder + BeanUtils.copyProperties(newProOrder, proOrder); + // 存放父工单code + parentOrder.delete(0, parentOrder.length()); + parentOrder.append(workOrder.getWorkorderCode()); + // code自增 + endCode++; + } else { + // 设置子节点end_flag字段信息 + workOrder.setEndFlag(1); + // 更新数据库记录信息 + proOrderWorkorderMapper.updateProOrderWorkorder(workOrder); + // 结束循环 + run = false; + } } } + // 关闭订单,判断是否拆分完成 // ProOrder order = proOrderMapper.selectProOrderById(splitOrderDTO.getProduct().getId()); // Long quantitySplit = order.getQuantitySplit(); diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 877f715f..a2a7d590 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -661,18 +661,20 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } } proOrderWorkorder.setProdLineCodeArray(array); - String prodLineName = ""; - String equipCods = "'"; + StringBuilder prodLineName = new StringBuilder(""); + StringBuilder equipCods = new StringBuilder("'"); for (int c = 0; c < codeArray.size(); c++) { - equipCods += codeArray.getJSONArray(c).getString(1) + "','"; + equipCods.append(codeArray.getJSONArray(c).getString(1)); + equipCods.append("','"); } Map equipMap = proOrderMapper.getEquipInfoByCodes(equipCods.substring(1));//设备字典 Set keys = equipMap.keySet(); for (String key : keys) { - prodLineName += equipMap.get(key).getLabel() + ","; + prodLineName.append(equipMap.get(key).getLabel()); + prodLineName.append(","); } - proOrderWorkorder.setProdLineCode(prodLineName); + proOrderWorkorder.setProdLineCode(prodLineName.toString()); // 通过工单id查询批次号 List batchCodeList = proOrderMapper.selectBatchCodesById(proOrderWorkorder.getWorkorderId()); diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWhiteOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWhiteOrderServiceImpl.java index c9f8ae56..8afda4c1 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWhiteOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProWhiteOrderServiceImpl.java @@ -1,15 +1,31 @@ package com.op.plan.service.impl; +import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.core.web.domain.AjaxResult; import com.op.plan.domain.ProOrder; +import com.op.plan.domain.ProOrderWorkorder; +import com.op.plan.domain.ProRoute; +import com.op.plan.domain.ProShift; +import com.op.plan.domain.vo.CascaderDTO; +import com.op.plan.domain.vo.SplitProWhiteOrderVo; import com.op.plan.mapper.ProOrderMapper; +import com.op.plan.mapper.ProOrderWorkorderMapper; +import com.op.plan.mapper.ProRouteMapper; import com.op.plan.mapper.ProWhiteOrderMapper; import com.op.plan.service.IProWhiteOrderService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; -import java.util.List; +import javax.servlet.http.HttpServletRequest; +import java.util.*; /** * 白坯订单管理Service业务层处理 @@ -22,6 +38,12 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService { @Autowired private ProWhiteOrderMapper proWhiteOrderMapper; + @Autowired + private ProRouteMapper proRouteMapper; + @Autowired + private ProOrderWorkorderMapper proOrderWorkorderMapper; + @Autowired + private ProOrderMapper proOrderMapper; /** * 查询白坯订单管理 @@ -53,9 +75,89 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService { * @return 结果 */ @Override + @DS("#header.poolName") + @Transactional public int insertProOrder(ProOrder proOrder) { + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String str = request.getHeader(key.substring(8)); + int index = str.indexOf("_"); + String factory = str.substring(index + 1); + + int num = 1; + // 创建主订单 + proOrder.setPlanFactoryCode(factory); + proOrder.setId(IdUtils.fastSimpleUUID()); + proOrder.setParentOrder("0"); + proOrder.setStatus("o0"); + proOrder.setQuantitySplit(0L); + proOrder.setOrderType(proOrder.getProdType()); + proOrder.setOrderCode("DD" + DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSSsss, DateUtils.getNowDate())); + proOrder.setCreateBy(SecurityContextHolder.getUserName()); proOrder.setCreateTime(DateUtils.getNowDate()); - return proWhiteOrderMapper.insertProOrder(proOrder); + proOrder.setUpdateBy(SecurityContextHolder.getUserName()); + proOrder.setUpdateTime(DateUtils.getNowDate()); + + // 存储主订单的Code + String orderCode = proOrder.getOrderCode(); + + // 存放物料code + String[] prodCodes = proOrder.getProdCode().split(",\\s*"); + String[] prodDescs = proOrder.getProdDesc().split(",\\s*"); + + // 主订单插入数据库 + proOrder.setProdCode(""); + proOrder.setProdDesc(""); + proWhiteOrderMapper.insertProOrder(proOrder); + + System.out.println("源code---->"+proOrder.getProdCode()); + System.out.println("源desc---->"+proOrder.getProdDesc()); + + System.out.println("code---------->"); + for (String code : prodCodes) { + System.out.println(code); + } + System.out.println("desc----------->"); + for (String desc : prodDescs) { + System.out.println(desc); + } + + System.out.println("这里是母订单信息"); + System.out.println("母订单code"+proOrder.getOrderCode()); + + + System.out.println("这里是子订单信息"); + + // 设置子订单信息 + for (int i = 0; i< prodCodes.length; i++){ + + ProOrder childProOrder = new ProOrder(); + + BeanUtils.copyProperties(proOrder,childProOrder); + + childProOrder.setQuantity(0L); + childProOrder.setQuantitySplit(0L); + childProOrder.setProdDesc(prodDescs[i]); + childProOrder.setProdCode(prodCodes[i]); + childProOrder.setPlanFactoryCode(factory); + childProOrder.setId(IdUtils.fastSimpleUUID()); + childProOrder.setParentOrder(orderCode); + childProOrder.setStatus("o0"); + childProOrder.setOrderType(proOrder.getProdType()); + childProOrder.setOrderCode(orderCode+"-"+num++); + childProOrder.setCreateBy(SecurityContextHolder.getUserName()); + childProOrder.setCreateTime(DateUtils.getNowDate()); + childProOrder.setUpdateBy(SecurityContextHolder.getUserName()); + childProOrder.setUpdateTime(DateUtils.getNowDate()); + // 将子订单插入数据库 + proWhiteOrderMapper.insertProOrder(childProOrder); + + System.out.println("子订单code"+i+childProOrder.getOrderCode()); + System.out.println("子订单parentCode"+i+childProOrder.getParentOrder()); + } + + return 1; } /** @@ -92,4 +194,100 @@ public class ProWhiteOrderServiceImpl implements IProWhiteOrderService { return proWhiteOrderMapper.deleteProOrderById(id); } + /** + * 通过proOrder获得拆分信息 + * 1.获取订单信息 + * 2.获取工单信息 + * 3.获取班次信息 + * 4.获取工艺信息 + * @param proOrder + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getSplitInfo(ProOrder proOrder) { + // 创建返回实体对象 + SplitProWhiteOrderVo splitProWhiteOrderVo = new SplitProWhiteOrderVo(); + + // 获取订单信息list + ProOrder parentOrder = proWhiteOrderMapper.selectProOrderByParentOrder(proOrder.getParentOrder()); + // 格式化订单信息 + List childOrderList = new ArrayList<>(); + childOrderList.add(proOrder); + parentOrder.setChildren(childOrderList); + // 将订单信息放入返回实体 + List orderList = new ArrayList<>(); + orderList.add(parentOrder); + splitProWhiteOrderVo.setProOrderList(orderList); + + // 获取工单信息 + List workOrderList = proOrderWorkorderMapper.selectWorkOrderByOrderCode(proOrder.getOrderCode()); + for (ProOrderWorkorder workOrder : workOrderList) { + formatProOrderWorkorder(workOrder); + } + // 将工单信息list放入返回实体 + if (workOrderList.size() > 0) { + splitProWhiteOrderVo.setProOrderWorkorderList(workOrderList); + } + + // 获取班次信息 + List shiftList = proWhiteOrderMapper.selectProShift(); + // 将班次信息list放入返回实体 + splitProWhiteOrderVo.setProShiftList(shiftList); + + // 获取工艺信息 + List routeList = proRouteMapper.selectRouteByItemCode(proOrder.getProdCode()); + // 将工艺信息list放入返回实体 + splitProWhiteOrderVo.setRouteList(routeList); + + return AjaxResult.success(splitProWhiteOrderVo); + } + + /** + * 格式化工单信息(递归处理) + * + * @param proOrderWorkorder + */ + private void formatProOrderWorkorder(ProOrderWorkorder proOrderWorkorder) { + // 通过班次id查询班次名称 + String shiftDesc = proOrderMapper.selectShiftNameById(proOrderWorkorder.getShiftId()); + + StringBuilder prodLineName = new StringBuilder(""); + StringBuilder equipCods = new StringBuilder("'"); + JSONArray codeArray = JSONArray.parseArray(proOrderWorkorder.getProdLineCode()); + for(int c=0;c equipMap = proOrderMapper.getEquipInfoByCodes(equipCods.substring(1));//设备字典 + Set keys = equipMap.keySet(); + for (String key : keys) { + prodLineName.append(equipMap.get(key).getLabel()); + prodLineName.append(","); + } + proOrderWorkorder.setProdLineCode(prodLineName.toString()); + + // 通过工单id查询批次号 + List batchCodeList = proOrderMapper.selectBatchCodesById(proOrderWorkorder.getWorkorderId()); + List batchCodes = new ArrayList<>(); + // 格式化数据 + for (String batchCode : batchCodeList) { + batchCodes.add(new StringBuilder(batchCode).append(";").append("\n")); + } + // 将查询结果设置到当前工单对象 + proOrderWorkorder.setShiftDesc(shiftDesc); + + proOrderWorkorder.setBatchCodeList(batchCodes); + + // 通过母工单workorder_id查询子工单 + List childWorkorders = proOrderWorkorderMapper.selectChildWorkOrder(proOrderWorkorder.getWorkorderCode()); + if (!childWorkorders.isEmpty()) { + for (ProOrderWorkorder childWorkorder : childWorkorders) { + formatProOrderWorkorder(childWorkorder); // 递归处理子工单 + } + proOrderWorkorder.setChildren(childWorkorders); // 设置子工单列表 + } + } + } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml index 9a99ca80..c26036e8 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderMapper.xml @@ -315,7 +315,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where order_code = #{orderCode} - + + update pro_order set status = 'o1' where parent_order = #{orderCode} + + + delete from pro_order where id = #{id} diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProWhiteOrderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProWhiteOrderMapper.xml index 08492571..616aa83d 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProWhiteOrderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProWhiteOrderMapper.xml @@ -36,12 +36,13 @@ + + + + + + insert into pro_order