mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
获取数据源增加配件的备注信息,配件信息增加类型等信息
This commit is contained in:
+6
-2
@@ -1,5 +1,6 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.bo;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.OptimizeRemainPlate;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPackReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO;
|
||||
@@ -16,8 +17,6 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -61,6 +60,11 @@ public class OrderSource {
|
||||
private List<PrintOrderPartsRespVO> orderPartsRespVOS;
|
||||
|
||||
|
||||
@Schema(description = "生产单配件的备注信息")
|
||||
private List<OrderPartsRemark> orderPartsRemarks;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "生产单包裹信息")
|
||||
private List<PrintOrderPackReqVO> orderPackReqVOS;
|
||||
|
||||
|
||||
+19
-2
@@ -1,25 +1,37 @@
|
||||
package com.cf.imes.module.executor.controller.admin.plan.saveOptimize;
|
||||
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 标签对应的生产单配件信息")
|
||||
@Data
|
||||
public class PrintOrderPartsRespVO {
|
||||
|
||||
|
||||
@Schema(description = "房间ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long roomId;
|
||||
|
||||
|
||||
@Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String roomName;
|
||||
|
||||
|
||||
@Schema(description = "柜体ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long bodyId;
|
||||
|
||||
|
||||
@Schema(description = "柜体名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String bodyName;
|
||||
|
||||
|
||||
@Schema(description = "加工组ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private List<Long> groupId;
|
||||
|
||||
|
||||
@Schema(description = "配件 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29347")
|
||||
@ExcelProperty("配件 ID")
|
||||
private Long id;
|
||||
|
||||
|
||||
@@ -27,6 +39,7 @@ public class PrintOrderPartsRespVO {
|
||||
private Long orderId;
|
||||
|
||||
|
||||
|
||||
@Schema(description = "配件数量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long partsNum;
|
||||
|
||||
@@ -51,4 +64,8 @@ public class PrintOrderPartsRespVO {
|
||||
private String factory;
|
||||
|
||||
|
||||
@Schema(description = "类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String type;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+2
@@ -42,6 +42,8 @@ public class OrderGoodsResp {
|
||||
@Schema(description = "板件数量")
|
||||
private int num;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "生产单信息")
|
||||
private List<OrderRespVOCopy> orderList;
|
||||
|
||||
+4
@@ -19,6 +19,10 @@ public interface OptimizePlanService {
|
||||
|
||||
String ORDER_REMAIN_PLATE_MODEL = "imes_order_optimize_plate_model";
|
||||
|
||||
|
||||
String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model";
|
||||
|
||||
|
||||
List<PlateOptimize> getPlateListByPlanId(Long planId);
|
||||
|
||||
Boolean addRemain(AddRemainReqVO vo);
|
||||
|
||||
+29
@@ -16,6 +16,7 @@ import com.cf.imes.framework.common.util.Assert.AssertUtils;
|
||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.security.core.LoginUser;
|
||||
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessGroupList;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.bo.ProcessStepAreaIds;
|
||||
@@ -607,6 +608,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
// 查询生产单对应的配件信息
|
||||
List<PrintOrderPartsRespVO> printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId());
|
||||
|
||||
// 查询生产单对应的配件的ES信息
|
||||
List<OrderPartsRemark> orderPartsRemarks = buildOrderPartsByOrderId(orderIds, ORDER_PARTS_REMARK_MODEL, printOrderPartsRespVOS.size());
|
||||
|
||||
// 查询生产单对应的包裹信息
|
||||
List<PrintOrderPackReqVO> printOrderPackReqVOS = plateMapper.selectPlanPackList(ids,getUserOrganId());
|
||||
|
||||
@@ -631,6 +635,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
.optimizeBoardModelDOS(optimizeBoardModelDOS)
|
||||
.optimizeRemainPlates(optimizeRemainPlates)
|
||||
.orderPartsRespVOS(printOrderPartsRespVOS)
|
||||
.orderPartsRemarks(orderPartsRemarks)
|
||||
.orderPackReqVOS(printOrderPackReqVOS)
|
||||
.build();
|
||||
}
|
||||
@@ -943,6 +948,30 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
||||
}
|
||||
|
||||
|
||||
public List<OrderPartsRemark> buildOrderPartsByOrderId(List<Long> orderIds, String index, Integer size) {
|
||||
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
|
||||
SearchRequest.Builder builder = new SearchRequest.Builder();
|
||||
builder.index(index);
|
||||
builder.size(size);
|
||||
builder.query(q -> q.terms(b -> b.field("orderId").terms(e -> e.value(fieldValues))));
|
||||
try {
|
||||
SearchResponse<OrderPartsRemark> search = elasticsearchClient.search(builder.build(), OrderPartsRemark.class);
|
||||
List<Hit<OrderPartsRemark>> hits = search.hits().hits();
|
||||
if (CollectionUtil.isNotEmpty(hits)) {
|
||||
return hits.stream().map(Hit::source).collect(Collectors.toList());
|
||||
}
|
||||
return new ArrayList<>();
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage());
|
||||
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void deleteByPlanId(List<Long> planIds, String index) {
|
||||
List<FieldValue> fieldValues = planIds.stream().map(FieldValue::of).toList();
|
||||
|
||||
|
||||
+91
-92
@@ -274,6 +274,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
if (bodyIds.size() != 0){
|
||||
|
||||
List<PlateDO> plateDOList = plateMapper.selectPlateTypeByRoomId(orderId, bodyIds, getUserOrganId(), index);
|
||||
|
||||
|
||||
List<Long> plateIds = plateDOList.stream().map(PlateDO::getId).toList();
|
||||
|
||||
List<Long> goodsIds = plateDOList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
@@ -284,63 +286,60 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
if (!plateDOList.isEmpty()) {
|
||||
plateMapper.updateDeletedById(plateIds, status, getUserOrganId(), orderId);// 删小板
|
||||
}
|
||||
|
||||
// 删除包裹,只需删除,无需还原
|
||||
List<Long> packIds = orderItemMapper.selectPackId(bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||
|
||||
// 删除包裹,只需删除,无需还原
|
||||
List<Long> packIds = orderItemMapper.selectPackId(bodyIds, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
|
||||
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
|
||||
|
||||
orderPackageMapper.updatePackList(orderId, packIds, getUserOrganId());
|
||||
orderItemMapper.deletePackList(orderId, packIds, getUserOrganId());
|
||||
|
||||
orderItemMapper.deletePackList(orderId, packIds, getUserOrganId());
|
||||
orderPrepackagedMapper.deletePacked(orderId, getUserOrganId());
|
||||
|
||||
orderPrepackagedMapper.deletePacked(orderId,getUserOrganId());
|
||||
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(orderId, getUserOrganId());
|
||||
|
||||
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectPackStatusList(orderId, getUserOrganId());
|
||||
if (orderPackageDOS.isEmpty()) {
|
||||
|
||||
if(orderPackageDOS.isEmpty()){
|
||||
OrderDO orderDO = orderMapper.selectById(orderId);
|
||||
|
||||
OrderDO orderDO = orderMapper.selectById(orderId);
|
||||
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||
|
||||
orderDO.setPackaged(OrderPackageStatusEnum.UNPACKED.getStatus());
|
||||
orderMapper.updateById(orderDO);
|
||||
|
||||
orderMapper.updateById(orderDO);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 删除大板
|
||||
List<PlateDO> goodsList = plateMapper.selectPlateDeletedStatus(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<Long> goodsIdList = goodsList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
|
||||
List<Long> goodsIdDeleted = Stream.concat(
|
||||
goodsIds.stream().filter(str -> !goodsIdList.contains(str)),
|
||||
goodsIdList.stream().filter(str -> !goodsIds.contains(str)))
|
||||
.toList();
|
||||
|
||||
if (goodsIdDeleted.size() > 0) {
|
||||
|
||||
goodsMapper.updateDeletedById(goodsIdDeleted, status, getUserOrganId());
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(!planIds.isEmpty()) {
|
||||
// 判断删除的柜体对应的板材是否和排单板材一样
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
|
||||
|
||||
// 一样,同时删除排单的信息
|
||||
if(goodsDOS.isEmpty() && status.equals(1)){
|
||||
planService.deletePlan(planIds);
|
||||
}
|
||||
|
||||
// 只要有排单,不管删除的柜体的板材数和排单数一样,都要删除排单对应的优化数据(不用这种写法进行删除时,有时会报错,原因目前还没找到)
|
||||
planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
||||
|
||||
// 删除大板
|
||||
List<PlateDO> goodsList = plateMapper.selectPlateDeletedStatus(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<Long> goodsIdList = goodsList.stream().map(PlateDO::getGoodsId).distinct().toList();
|
||||
|
||||
List<Long> goodsIdDeleted = Stream.concat(
|
||||
goodsIds.stream().filter(str -> !goodsIdList.contains(str)),
|
||||
goodsIdList.stream().filter(str -> !goodsIds.contains(str)))
|
||||
.toList();
|
||||
|
||||
if (goodsIdDeleted.size() > 0) {
|
||||
|
||||
goodsMapper.updateDeletedById(goodsIdDeleted, status, getUserOrganId());
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (!planIds.isEmpty()) {
|
||||
// 判断删除的柜体对应的板材是否和排单板材一样
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectPlanGoodsListByPlanIdList(planIds, getUserOrganId());
|
||||
|
||||
// 一样,同时删除排单的信息
|
||||
if (goodsDOS.isEmpty()) {
|
||||
planService.deletePlan(planIds);
|
||||
} else {
|
||||
// 只要有排单,不管删除的柜体的板材数和排单数一样,都要删除排单对应的优化数据(不用这种写法进行删除时,有时会报错,原因目前还没找到)
|
||||
planService.deleteByPlanId(planIds, ORDER_REMAIN_PLATE_MODEL);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
|
||||
if (partsList != null && partsList.size() != 0){
|
||||
orderPartsMapper.updateDeletedById(partsList, status, getUserOrganId());
|
||||
@@ -391,67 +390,67 @@ public class OrderServiceImpl implements OrderService {
|
||||
// 小板还原
|
||||
if (!plateDOList.isEmpty()) {
|
||||
plateMapper.updateDeletedById(plateIds, status, getUserOrganId(), orderId);
|
||||
}
|
||||
|
||||
// 还原大板
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectGoodsListByStatus(orderId, goodsIds, getUserOrganId());
|
||||
if(!goodsDOS.isEmpty()){
|
||||
goodsMapper.updateBatch(goodsDOS.stream().map(m -> m.setDeleted(false)).toList());
|
||||
}
|
||||
|
||||
|
||||
// 当大板对应的小板已经排单时,新建相同类型的大板,并将其他未排单的小板对应的大板ID修改为新的大板ID
|
||||
List<GoodsDO> goodsDOList = goodsMapper.selectNoPlanGoodsList(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<GoodsDO> goodsList = BeanUtils.toBean(goodsDOList, GoodsDO.class);
|
||||
|
||||
if(!goodsDOList.isEmpty()){
|
||||
|
||||
// 新增的大板信息
|
||||
List<GoodsDO> list = goodsDOList.stream()
|
||||
.peek(m -> {
|
||||
m.setId(null);
|
||||
m.setPlanId(0L);
|
||||
m.setCreateTime(LocalDateTime.now());
|
||||
m.setUpdateTime(LocalDateTime.now());
|
||||
})
|
||||
.toList();
|
||||
|
||||
goodsMapper.insertBatch(list);
|
||||
|
||||
// 构建新的数据集,保存新的大板ID和旧的大板ID,大板的实际ID关联这两个信息
|
||||
List<OrderGoodsIds> orderGoodsIds = BeanUtils.toBean(list, OrderGoodsIds.class);
|
||||
|
||||
List<OrderGoodsIds> orderGoodsIdsList = new ArrayList<>();
|
||||
|
||||
for (GoodsDO goodsDO : goodsList) {
|
||||
orderGoodsIdsList.addAll(orderGoodsIds.stream()
|
||||
.filter(f -> f.getGoodsId().equals(goodsDO.getGoodsId()))
|
||||
// .filter(a -> a.getOldId() == null)
|
||||
.map(m -> m.setOldId(goodsDO.getId())).toList());
|
||||
|
||||
// 还原大板
|
||||
List<GoodsDO> goodsDOS = goodsMapper.selectGoodsListByStatus(orderId, goodsIds, getUserOrganId());
|
||||
if (!goodsDOS.isEmpty()) {
|
||||
goodsMapper.updateBatch(goodsDOS.stream().map(m -> m.setDeleted(false)).toList());
|
||||
}
|
||||
|
||||
// 需要修改的小板为未排单的部分,无论其是否删除,都需要修改,但只需修改大板ID即可,其他信息无需修改
|
||||
List<PlateDO> plateDOS = plateMapper.selectNoPlanPlate(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<PlateDO> plateList = new ArrayList<>();
|
||||
// 当大板对应的小板已经排单时,新建相同类型的大板,并将其他未排单的小板对应的大板ID修改为新的大板ID
|
||||
List<GoodsDO> goodsDOList = goodsMapper.selectNoPlanGoodsList(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
for (OrderGoodsIds ids : orderGoodsIdsList) {
|
||||
List<GoodsDO> goodsList = BeanUtils.toBean(goodsDOList, GoodsDO.class);
|
||||
|
||||
plateList.addAll(plateDOS.stream()
|
||||
.filter(f->f.getGoodsId().equals(ids.getOldId()))
|
||||
.peek(m->{
|
||||
m.setGoodsId(ids.getId());
|
||||
if (!goodsDOList.isEmpty()) {
|
||||
|
||||
// 新增的大板信息
|
||||
List<GoodsDO> list = goodsDOList.stream()
|
||||
.peek(m -> {
|
||||
m.setId(null);
|
||||
m.setPlanId(0L);
|
||||
m.setCreateTime(LocalDateTime.now());
|
||||
m.setUpdateTime(LocalDateTime.now());
|
||||
})
|
||||
.toList());
|
||||
.toList();
|
||||
|
||||
goodsMapper.insertBatch(list);
|
||||
|
||||
// 构建新的数据集,保存新的大板ID和旧的大板ID,大板的实际ID关联这两个信息
|
||||
List<OrderGoodsIds> orderGoodsIds = BeanUtils.toBean(list, OrderGoodsIds.class);
|
||||
|
||||
List<OrderGoodsIds> orderGoodsIdsList = new ArrayList<>();
|
||||
|
||||
for (GoodsDO goodsDO : goodsList) {
|
||||
orderGoodsIdsList.addAll(orderGoodsIds.stream()
|
||||
.filter(f -> f.getGoodsId().equals(goodsDO.getGoodsId()))
|
||||
// .filter(a -> a.getOldId() == null)
|
||||
.map(m -> m.setOldId(goodsDO.getId())).toList());
|
||||
|
||||
}
|
||||
|
||||
// 需要修改的小板为未排单的部分,无论其是否删除,都需要修改,但只需修改大板ID即可,其他信息无需修改
|
||||
List<PlateDO> plateDOS = plateMapper.selectNoPlanPlate(orderId, goodsIds, getUserOrganId());
|
||||
|
||||
List<PlateDO> plateList = new ArrayList<>();
|
||||
|
||||
for (OrderGoodsIds ids : orderGoodsIdsList) {
|
||||
|
||||
plateList.addAll(plateDOS.stream()
|
||||
.filter(f -> f.getGoodsId().equals(ids.getOldId()))
|
||||
.peek(m -> {
|
||||
m.setGoodsId(ids.getId());
|
||||
})
|
||||
.toList());
|
||||
}
|
||||
|
||||
plateMapper.updateBatch(plateList);
|
||||
|
||||
}
|
||||
|
||||
plateMapper.updateBatch(plateList);
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<Long> partsList = orderPartsMapper.selectPartsIdListByBodyId(bodyIds, getUserOrganId(), orderId); // 配件
|
||||
if (partsList != null && partsList.size() != 0){
|
||||
orderPartsMapper.updateDeletedById(partsList, status, getUserOrganId());
|
||||
|
||||
+1
-1
@@ -631,7 +631,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
.in("order_id",orderIds)
|
||||
.eq("is_optimized",false)
|
||||
.inIfPresent("goods_id",goodsIds)
|
||||
.inIfPresent("id",pageReqVO.getIds())
|
||||
.inIfPresent("goods_id",pageReqVO.getIds())
|
||||
.eqIfPresent("is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
|
||||
.eqIfPresent("is_special_shaped", pageReqVO.getSpecialShaped())
|
||||
.eqIfPresent("is_sculpt", pageReqVO.getSculpt())
|
||||
|
||||
+4
-2
@@ -45,7 +45,7 @@
|
||||
|
||||
from orders o
|
||||
join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id and og.plan_id = 0 and o.deleted = og.deleted
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false and og.id = op.goods_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
@@ -219,6 +219,7 @@
|
||||
<result property="texture" column="texture"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="spec" column="spec"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="goodsId" column="goodsId"/>
|
||||
|
||||
<collection property="orderIds" ofType="com.cf.imes.module.executor.controller.admin.plan.bo.OrderIds" resultMap="OrderIdMap"/>
|
||||
@@ -251,13 +252,14 @@
|
||||
og.width,
|
||||
og.height,
|
||||
og.brand,
|
||||
og.remark,
|
||||
og.spec
|
||||
|
||||
from orders o
|
||||
|
||||
join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id and og.plan_id = 0 and o.deleted = og.deleted
|
||||
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false
|
||||
join order_plate op on o.organ_id = op.organ_id and o.deleted = op.deleted and o.id = op.order_id and op.is_optimized = false and og.id = op.goods_id
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
|
||||
+38
-10
@@ -87,19 +87,47 @@
|
||||
AND organ_id = #{organId}
|
||||
</delete>
|
||||
|
||||
<select id="selectPartList"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO">
|
||||
<resultMap id="OrderPartsMap" type="com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrderPartsRespVO">
|
||||
|
||||
select distinct oi.num as partsNum,
|
||||
<result property="partsNum" column="partsNum"/>
|
||||
<result property="bodyId" column="bodyId"/>
|
||||
<result property="roomId" column="roomId"/>
|
||||
<result property="bodyName" column="bodyName"/>
|
||||
<result property="roomName" column="roomName"/>
|
||||
<result property="id" column="id"/>
|
||||
<result property="spec" column="spec"/>
|
||||
<result property="brand" column="brand"/>
|
||||
<result property="factory" column="factory"/>
|
||||
<result property="model" column="model"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="orderId" column="orderId"/>
|
||||
<result property="type" column="type"/>
|
||||
|
||||
<collection property="groupId" ofType="java.lang.Long" column="groupId"/>
|
||||
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
|
||||
<select id="selectPartList"
|
||||
parameterType="java.lang.Long"
|
||||
resultMap="OrderPartsMap">
|
||||
|
||||
select distinct oi.group_id as groupId,
|
||||
oi.num as partsNum,
|
||||
oi.body_id as bodyId,
|
||||
oi.room_id as roomId,
|
||||
ob.name as bodyName,
|
||||
ob.room_name as roomName,
|
||||
op.id,
|
||||
op.spec,
|
||||
op.brand,
|
||||
op.factory,
|
||||
op.model,
|
||||
op.name,
|
||||
op.order_id
|
||||
op.id as id,
|
||||
op.spec as spec,
|
||||
op.brand as brand,
|
||||
op.factory as factory,
|
||||
op.model as model ,
|
||||
op.name as name,
|
||||
op.order_id as orderId,
|
||||
op.type as type
|
||||
from order_parts op
|
||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.parts_id
|
||||
left join order_body ob on oi.organ_id = ob.organ_id and oi.order_id = ob.order_id and oi.body_id = ob.id
|
||||
|
||||
Reference in New Issue
Block a user