mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
1、分堆打包明细sql语句优化,mycat不支持的函数改为join后在内存分组;2、分堆打包订单分页接口支持主单带子单;3、移除原/order/page接口,webcad拆单订单分页支持子级;
This commit is contained in:
-11
@@ -41,17 +41,6 @@ public class PackController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/getOrderPlate")
|
|
||||||
@Operation(summary = "查看生产订单对应的没有打包的板材信息")
|
|
||||||
@Parameter(name = "orderId", description = "订单Id", required = true)
|
|
||||||
@PreAuthorize("@ss.hasAnyPermissions('manage:pack:export-lost-plate','manage:pack:pack')")
|
|
||||||
public CommonResult<List<PlateDetailsRespVO>> getOrderPlateList(@Valid @RequestParam("orderId") Long orderId) {
|
|
||||||
|
|
||||||
return success(packService.getOrderPlateList(orderId));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/unpack/details")
|
@PostMapping("/unpack/details")
|
||||||
@Operation(summary = "获取订单列表下未打包明细")
|
@Operation(summary = "获取订单列表下未打包明细")
|
||||||
@Parameter(name = "orderIds", description = "订单ID列表", required = true)
|
@Parameter(name = "orderIds", description = "订单ID列表", required = true)
|
||||||
|
|||||||
+1
-1
@@ -98,7 +98,7 @@ public class OrderPartsRespVO {
|
|||||||
@Schema(description = "组件名称")
|
@Schema(description = "组件名称")
|
||||||
private String componentName;
|
private String componentName;
|
||||||
|
|
||||||
private List<GroupNameList> processGroupNameList;
|
private List<String> processGroupNameList;
|
||||||
|
|
||||||
@Schema(description = "加工组")
|
@Schema(description = "加工组")
|
||||||
private String processGroup;
|
private String processGroup;
|
||||||
|
|||||||
+4
-9
@@ -17,9 +17,8 @@ public class PackRespVO {
|
|||||||
@Schema(description = "订单号", example = "7788")
|
@Schema(description = "订单号", example = "7788")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Schema(description = "订单号", example = "7788")
|
@Schema(description = "父订单号", example = "7788")
|
||||||
private Long orderId;
|
private Long parentId;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "包裹ID", example = "7788")
|
@Schema(description = "包裹ID", example = "7788")
|
||||||
private Long packId;
|
private Long packId;
|
||||||
@@ -94,10 +93,6 @@ public class PackRespVO {
|
|||||||
@Schema(description = "待处理量")
|
@Schema(description = "待处理量")
|
||||||
private Long pendingNum;
|
private Long pendingNum;
|
||||||
|
|
||||||
|
@Schema(description = "子订单")
|
||||||
@Schema(description = "订单对应的板材ID集")
|
private List<PackRespVO> child;
|
||||||
private List<Long> plateIdList;
|
|
||||||
|
|
||||||
@Schema(description = "订单对应的包裹ID集")
|
|
||||||
private List<Long> packIdList;
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -143,7 +143,7 @@ public class PlateDetailsRespVO {
|
|||||||
|
|
||||||
|
|
||||||
@Schema(description = "加工组名称集合")
|
@Schema(description = "加工组名称集合")
|
||||||
private List<GroupNameList> processGroupNameList;
|
private List<String> processGroupNameList;
|
||||||
|
|
||||||
@Schema(description = "开料长")
|
@Schema(description = "开料长")
|
||||||
private BigDecimal splitHeight;
|
private BigDecimal splitHeight;
|
||||||
|
|||||||
+2
@@ -70,6 +70,8 @@ public class PackageDetailsRespVO {
|
|||||||
@Schema(description = "加工组")
|
@Schema(description = "加工组")
|
||||||
private String processGroup;
|
private String processGroup;
|
||||||
|
|
||||||
|
private List<String> processGroupNameList;
|
||||||
|
|
||||||
@Schema(description = "备注(板材和配件都要传递)")
|
@Schema(description = "备注(板材和配件都要传递)")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
|||||||
+1
-8
@@ -140,13 +140,6 @@ public class OrderController {
|
|||||||
return success(BeanUtils.toBean(orderService.getOrder(id), OrderRespVO.class));
|
return success(BeanUtils.toBean(orderService.getOrder(id), OrderRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/page")
|
|
||||||
@Operation(summary = "获得订单分页")
|
|
||||||
@PreAuthorize("@ss.hasPermission('productManager:List')")
|
|
||||||
public CommonResult<PageResult<OrderRespVO>> getOrderPage(@Valid OrderPageReqVO pageReqVO) {
|
|
||||||
return success(BeanUtils.toBean(orderService.getOrderPage(pageReqVO), OrderRespVO.class));
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/main/page")
|
@GetMapping("/main/page")
|
||||||
@Operation(summary = "获得主订单分页")
|
@Operation(summary = "获得主订单分页")
|
||||||
@PreAuthorize("@ss.hasPermission('productManager:List')")
|
@PreAuthorize("@ss.hasPermission('productManager:List')")
|
||||||
@@ -157,7 +150,7 @@ public class OrderController {
|
|||||||
@GetMapping("/webcad/page")
|
@GetMapping("/webcad/page")
|
||||||
@Operation(summary = "获得订单分页")
|
@Operation(summary = "获得订单分页")
|
||||||
public CommonResult<PageResult<OrderRespVO>> webCadGetOrderPage(@Valid OrderPageReqVO pageReqVO) {
|
public CommonResult<PageResult<OrderRespVO>> webCadGetOrderPage(@Valid OrderPageReqVO pageReqVO) {
|
||||||
return success(BeanUtils.toBean(orderService.getOrderPage(pageReqVO), OrderRespVO.class));
|
return success(BeanUtils.toBean(orderService.getMainOrderPage(pageReqVO), OrderRespVO.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 不做订单是否作废判断
|
// 不做订单是否作废判断
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ public class OrderRespVO {
|
|||||||
|
|
||||||
@Schema(description = "父单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "父单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("父单号")
|
@ExcelProperty("父单号")
|
||||||
private Long parentNo;
|
private Long parentId;
|
||||||
|
|
||||||
@Schema(description = "源订单号")
|
@Schema(description = "源订单号")
|
||||||
@ExcelProperty("父单号")
|
@ExcelProperty("父单号")
|
||||||
|
|||||||
+133
-15
@@ -22,7 +22,10 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@@ -194,24 +197,139 @@ public class HeapSplitServiceImpl implements HeapSplitService {
|
|||||||
// 查询配件
|
// 查询配件
|
||||||
List<OrderPartsRespVO> parts = orderPartsMapper.selectOrdersHeapSplitPartsList(orderIds);
|
List<OrderPartsRespVO> parts = orderPartsMapper.selectOrdersHeapSplitPartsList(orderIds);
|
||||||
|
|
||||||
// 根据成倍数量重新赋值柜体名称
|
respVO.setPlates(CollUtil.newArrayList(buildPlateGroup(plates)));
|
||||||
plates.forEach(item -> {
|
respVO.setParts(CollUtil.newArrayList(buildPartsGroup(parts)));
|
||||||
if (item.getMultiNum() != null && item.getMultiNum() > 1
|
|
||||||
&& item.getMultiSort() != null) {
|
|
||||||
item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
parts.forEach(item -> {
|
|
||||||
if (item.getMultiNum() != null && item.getMultiNum() > 1
|
|
||||||
&& item.getMultiSort() != null) {
|
|
||||||
item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
respVO.setPlates(plates);
|
|
||||||
respVO.setParts(parts);
|
|
||||||
return respVO;
|
return respVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 板件分组:加工组
|
||||||
|
*
|
||||||
|
* @param plates
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Collection<PlateDetailsRespVO> buildPlateGroup( List<PlateDetailsRespVO> plates){
|
||||||
|
Map<String, PlateDetailsRespVO> map = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
for (PlateDetailsRespVO row : plates) {
|
||||||
|
|
||||||
|
// ===== 1. 组装 唯一key=====
|
||||||
|
String key = row.getPlateId() + "_" + row.getRoomId() + "_" + row.getBodyId();
|
||||||
|
|
||||||
|
PlateDetailsRespVO vo = map.computeIfAbsent(key, k -> {
|
||||||
|
PlateDetailsRespVO newVo = new PlateDetailsRespVO();
|
||||||
|
|
||||||
|
BeanUtils.copyProperties(row, newVo);
|
||||||
|
|
||||||
|
// ===== 初始化 =====
|
||||||
|
newVo.setProcessGroupNameList(new ArrayList<>());
|
||||||
|
|
||||||
|
return newVo;
|
||||||
|
});
|
||||||
|
|
||||||
|
// ===== 2. 收集加工组(允许重复,不去重)=====
|
||||||
|
if (row.getProcessGroup() != null) {
|
||||||
|
vo.getProcessGroupNameList().add(row.getProcessGroup());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection<PlateDetailsRespVO> values = map.values();
|
||||||
|
// ===== 3. 转换成逗号字符串 =====
|
||||||
|
for (PlateDetailsRespVO vo : values) {
|
||||||
|
List<String> listGroup = vo.getProcessGroupNameList();
|
||||||
|
|
||||||
|
// 拼接加工组
|
||||||
|
if (listGroup != null && !listGroup.isEmpty()) {
|
||||||
|
vo.setProcessGroup(String.join(",", listGroup));
|
||||||
|
} else {
|
||||||
|
vo.setProcessGroup("");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可释放内存
|
||||||
|
vo.setProcessGroupNameList(null);
|
||||||
|
|
||||||
|
// 成倍编号处理
|
||||||
|
if (vo.getMultiNum() > 1) {
|
||||||
|
vo.setCabinetName(
|
||||||
|
vo.getCabinetName() + "-" + vo.getMultiSort()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配件分组:加工组、部件(目前是一对一)
|
||||||
|
*
|
||||||
|
* @param parts
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Collection<OrderPartsRespVO> buildPartsGroup(List<OrderPartsRespVO> parts) {
|
||||||
|
|
||||||
|
Map<String, OrderPartsRespVO> map = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
for (OrderPartsRespVO row : parts) {
|
||||||
|
|
||||||
|
// ===== 1. 分组 key =====
|
||||||
|
String key = row.getPartsId()
|
||||||
|
+ "_" + row.getRoomId()
|
||||||
|
+ "_" + row.getBodyId();
|
||||||
|
|
||||||
|
OrderPartsRespVO vo = map.computeIfAbsent(key, k -> {
|
||||||
|
OrderPartsRespVO v = new OrderPartsRespVO();
|
||||||
|
BeanUtils.copyProperties(row, v);
|
||||||
|
|
||||||
|
v.setNum(BigDecimal.ZERO);
|
||||||
|
v.setHeapNum(BigDecimal.ZERO);
|
||||||
|
v.setProcessGroupNameList(new ArrayList<>());
|
||||||
|
return v;
|
||||||
|
});
|
||||||
|
|
||||||
|
// ===== 3. num 累加 =====
|
||||||
|
if (row.getNum() != null) {
|
||||||
|
vo.setNum(vo.getNum().add(row.getNum()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===== 4. heapNum 累加 =====
|
||||||
|
if (row.getHeapNum() != null) {
|
||||||
|
vo.setHeapNum(vo.getHeapNum().add(row.getHeapNum()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===== 5. 加工组(允许重复)=====
|
||||||
|
if (row.getProcessGroup() != null) {
|
||||||
|
vo.getProcessGroupNameList().add(row.getProcessGroup());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===== 7. 收尾处理 =====
|
||||||
|
for (OrderPartsRespVO vo : map.values()) {
|
||||||
|
|
||||||
|
// 加工组拼接
|
||||||
|
List<String> processGroupNameList = vo.getProcessGroupNameList();
|
||||||
|
if (CollUtil.isNotEmpty(processGroupNameList)) {
|
||||||
|
vo.setProcessGroup(String.join(",", processGroupNameList));
|
||||||
|
} else {
|
||||||
|
vo.setProcessGroup("");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可释放内存
|
||||||
|
vo.setProcessGroupNameList(null);
|
||||||
|
|
||||||
|
// ===== multiSort 处理(柜体编号)=====
|
||||||
|
if (vo.getMultiNum() > 1) {
|
||||||
|
vo.setCabinetName(
|
||||||
|
vo.getCabinetName() + "-" + vo.getMultiSort()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
vo.setCabinetName(vo.getCabinetName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return map.values();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分堆打包数量
|
* 分堆打包数量
|
||||||
*
|
*
|
||||||
|
|||||||
-4
@@ -29,10 +29,6 @@ public interface PackService {
|
|||||||
|
|
||||||
PageResult<OrderPackageVO> getPageOrderPack(PackageDetailsReqVO reqVO);
|
PageResult<OrderPackageVO> getPageOrderPack(PackageDetailsReqVO reqVO);
|
||||||
|
|
||||||
|
|
||||||
// 查看生产订单对应的板材信息
|
|
||||||
List<PlateDetailsRespVO> getOrderPlateList(Long orderId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 拆包
|
* 拆包
|
||||||
*
|
*
|
||||||
|
|||||||
+302
-60
@@ -38,14 +38,19 @@ import com.cf.imes.module.executor.service.ordercomponent.OrderComponentService;
|
|||||||
import com.cf.imes.module.executor.service.orderitem.OrderItemService;
|
import com.cf.imes.module.executor.service.orderitem.OrderItemService;
|
||||||
import com.cf.imes.module.executor.service.plate.PlateService;
|
import com.cf.imes.module.executor.service.plate.PlateService;
|
||||||
import org.springframework.aop.framework.AopContext;
|
import org.springframework.aop.framework.AopContext;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -131,38 +136,6 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 查看生产订单对应的板材信息
|
|
||||||
@Override
|
|
||||||
public List<PlateDetailsRespVO> getOrderPlateList(Long orderId) {
|
|
||||||
|
|
||||||
// 查询订单对应的板件信息
|
|
||||||
List<PlateDetailsRespVO> plateDetailsRespVOS = orderPlateMapper.selectOrderNoPackPlateList(orderId, getUserOrganId());
|
|
||||||
|
|
||||||
if(plateDetailsRespVOS.isEmpty()){
|
|
||||||
return new ArrayList<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
|
|
||||||
StringBuilder name = new StringBuilder();
|
|
||||||
if (!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
|
|
||||||
for (GroupNameList groupNameList : plateDetailsRespVO.getProcessGroupNameList()) {
|
|
||||||
// 去除最后的逗号
|
|
||||||
name.append(groupNameList.getName()).append(",");
|
|
||||||
|
|
||||||
}
|
|
||||||
name = new StringBuilder(name.substring(0, name.length() - 1));
|
|
||||||
}
|
|
||||||
plateDetailsRespVO.setProcessGroup(name.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
return plateDetailsRespVOS;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
|
public List<OrderPackageVO> getOrderPack(PackageDetailsReqVO reqVO) {
|
||||||
List<Long> orderIds = reqVO.getOrderIds();
|
List<Long> orderIds = reqVO.getOrderIds();
|
||||||
@@ -924,7 +897,7 @@ public class PackServiceImpl implements PackService {
|
|||||||
pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress()));
|
pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress()));
|
||||||
|
|
||||||
|
|
||||||
// 查询查询分页
|
// 查询主单分页
|
||||||
IPage<PackRespVO> packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId());
|
IPage<PackRespVO> packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId());
|
||||||
|
|
||||||
if (CollUtil.isEmpty(packRespVOS.getRecords())) {
|
if (CollUtil.isEmpty(packRespVOS.getRecords())) {
|
||||||
@@ -933,6 +906,20 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
|
orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList());
|
||||||
|
|
||||||
|
// 查询分页下子级
|
||||||
|
List<OrderDO> childList = ordersMapper.selectList(
|
||||||
|
new LambdaQueryWrapperX<OrderDO>()
|
||||||
|
.in(OrderDO::getParentId, orderIds)
|
||||||
|
.eqIfPresent(OrderDO::getDeleted, DeletedCodeEnum.NOT_DELETED.getStatus())
|
||||||
|
.ne(OrderDO::getStatus, OrderStatusEnum.EMPTY.getStatus())
|
||||||
|
.orderByDesc(OrderDO::getId)
|
||||||
|
);
|
||||||
|
if (CollUtil.isNotEmpty(childList)) {
|
||||||
|
List<PackRespVO> childOrdersPackList = BeanUtil.copyToList(childList, PackRespVO.class);
|
||||||
|
orderIds.addAll(childOrdersPackList.stream().map(PackRespVO::getId).toList());
|
||||||
|
packRespVOS.getRecords().addAll(childOrdersPackList);
|
||||||
|
}
|
||||||
|
|
||||||
return buildPageResult(orderIds, packRespVOS);
|
return buildPageResult(orderIds, packRespVOS);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -949,6 +936,7 @@ public class PackServiceImpl implements PackService {
|
|||||||
if (orderIds.isEmpty()) {
|
if (orderIds.isEmpty()) {
|
||||||
return new PageResult<>();
|
return new PageResult<>();
|
||||||
}
|
}
|
||||||
|
List<PackRespVO> records = packRespVOS.getRecords();
|
||||||
|
|
||||||
// 查询当前生产的包裹数量
|
// 查询当前生产的包裹数量
|
||||||
List<PackRespVO> orderPackNumGroup = orderPackageMapper.selectPackPage(orderIds, getUserOrganId());
|
List<PackRespVO> orderPackNumGroup = orderPackageMapper.selectPackPage(orderIds, getUserOrganId());
|
||||||
@@ -957,20 +945,41 @@ public class PackServiceImpl implements PackService {
|
|||||||
// 查询当前订单已经打包的板材数量
|
// 查询当前订单已经打包的板材数量
|
||||||
List<PackRespVO> orderPackedPlateNumGroup = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
|
List<PackRespVO> orderPackedPlateNumGroup = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId());
|
||||||
|
|
||||||
for (PackRespVO vosRecord : packRespVOS.getRecords()) {
|
for (PackRespVO vosRecord : records) {
|
||||||
|
|
||||||
// 板材总数
|
// 板材总数
|
||||||
vosRecord.setTotalPieceCount(vosRecord.getPlateNum().longValue());
|
vosRecord.setTotalPieceCount(vosRecord.getPlateNum().longValue());
|
||||||
// 已打包裹数
|
// 已打包裹数
|
||||||
vosRecord.setPackCount(orderPackNumGroup.stream().filter(f -> Objects.equals(f.getOrderId(), vosRecord.getId())).mapToLong(PackRespVO::getPackCount).sum());
|
vosRecord.setPackCount(orderPackNumGroup.stream().filter(f -> Objects.equals(f.getId(), vosRecord.getId())).mapToLong(PackRespVO::getPackCount).sum());
|
||||||
// 已打包片数
|
// 已打包片数
|
||||||
vosRecord.setPackPieceCount(orderPackedPlateNumGroup.stream().filter(f -> Objects.equals(f.getOrderId(), vosRecord.getId())).mapToLong(PackRespVO::getPackPieceCount).sum());
|
vosRecord.setPackPieceCount(orderPackedPlateNumGroup.stream().filter(f -> Objects.equals(f.getId(), vosRecord.getId())).mapToLong(PackRespVO::getPackPieceCount).sum());
|
||||||
// 待处理量
|
// 待处理量
|
||||||
vosRecord.setPendingNum(vosRecord.getTotalPieceCount() - vosRecord.getPackPieceCount());
|
vosRecord.setPendingNum(vosRecord.getTotalPieceCount() - vosRecord.getPackPieceCount());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal());
|
Map<Long, PackRespVO> parentMap = new HashMap<>();
|
||||||
|
List<PackRespVO> result = new ArrayList<>();
|
||||||
|
|
||||||
|
// 1. 把所有 parent 放进 map
|
||||||
|
for (PackRespVO vo : records) {
|
||||||
|
if (vo.getParentId() == 0) {
|
||||||
|
vo.setChild(new ArrayList<>());
|
||||||
|
parentMap.put(vo.getId(), vo);
|
||||||
|
result.add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 再挂子节点
|
||||||
|
for (PackRespVO vo : records) {
|
||||||
|
if (vo.getParentId() != 0) {
|
||||||
|
PackRespVO parent = parentMap.get(vo.getParentId());
|
||||||
|
if (parent != null) {
|
||||||
|
parent.getChild().add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new PageResult<>(result, Long.valueOf(result.size()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1044,24 +1053,138 @@ public class PackServiceImpl implements PackService {
|
|||||||
// 查询配件
|
// 查询配件
|
||||||
List<OrderPartsRespVO> parts = orderPartsMapper.selectOrdersPartsList(orderIds);
|
List<OrderPartsRespVO> parts = orderPartsMapper.selectOrdersPartsList(orderIds);
|
||||||
|
|
||||||
// 根据成倍数量重新赋值柜体名称
|
ordersUnpackDetailRespVO.setPlates(CollUtil.newArrayList(buildPlateGroup(plates)));
|
||||||
plates.forEach(item -> {
|
ordersUnpackDetailRespVO.setParts(CollUtil.newArrayList(buildPartsGroup(parts)));
|
||||||
if (item.getMultiNum() != null && item.getMultiNum() > 1
|
|
||||||
&& item.getMultiSort() != null) {
|
|
||||||
item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
parts.forEach(item -> {
|
|
||||||
if (item.getMultiNum() != null && item.getMultiNum() > 1
|
|
||||||
&& item.getMultiSort() != null) {
|
|
||||||
item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
ordersUnpackDetailRespVO.setPlates(plates);
|
|
||||||
ordersUnpackDetailRespVO.setParts(parts);
|
|
||||||
return ordersUnpackDetailRespVO;
|
return ordersUnpackDetailRespVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 板件分组:加工组
|
||||||
|
*
|
||||||
|
* @param plates
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Collection<PlateDetailsRespVO> buildPlateGroup(List<PlateDetailsRespVO> plates) {
|
||||||
|
Map<String, PlateDetailsRespVO> map = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
for (PlateDetailsRespVO row : plates) {
|
||||||
|
|
||||||
|
// ===== 1. 组装 唯一key=====
|
||||||
|
String key = row.getPlateId() + "_" + row.getRoomId() + "_" + row.getBodyId();
|
||||||
|
|
||||||
|
PlateDetailsRespVO vo = map.computeIfAbsent(key, k -> {
|
||||||
|
PlateDetailsRespVO newVo = new PlateDetailsRespVO();
|
||||||
|
|
||||||
|
BeanUtils.copyProperties(row, newVo);
|
||||||
|
|
||||||
|
// ===== 初始化 =====
|
||||||
|
newVo.setProcessGroupNameList(new ArrayList<>());
|
||||||
|
|
||||||
|
return newVo;
|
||||||
|
});
|
||||||
|
|
||||||
|
// ===== 2. 收集加工组(允许重复,不去重)=====
|
||||||
|
if (row.getProcessGroup() != null) {
|
||||||
|
vo.getProcessGroupNameList().add(row.getProcessGroup());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection<PlateDetailsRespVO> values = map.values();
|
||||||
|
// ===== 3. 转换成逗号字符串 =====
|
||||||
|
for (PlateDetailsRespVO vo : values) {
|
||||||
|
List<String> listGroup = vo.getProcessGroupNameList();
|
||||||
|
|
||||||
|
// 拼接加工组
|
||||||
|
if (listGroup != null && !listGroup.isEmpty()) {
|
||||||
|
vo.setProcessGroup(String.join(",", listGroup));
|
||||||
|
} else {
|
||||||
|
vo.setProcessGroup("");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可释放内存
|
||||||
|
vo.setProcessGroupNameList(null);
|
||||||
|
|
||||||
|
// 成倍编号处理
|
||||||
|
if (vo.getMultiNum() != null
|
||||||
|
&& vo.getMultiNum() > 1
|
||||||
|
&& vo.getMultiSort() != null
|
||||||
|
&& vo.getCabinetName() != null) {
|
||||||
|
|
||||||
|
vo.setCabinetName(
|
||||||
|
vo.getCabinetName() + "-" + vo.getMultiSort()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配件分组:加工组、部件(目前是一对一)
|
||||||
|
*
|
||||||
|
* @param parts
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Collection<OrderPartsRespVO> buildPartsGroup(List<OrderPartsRespVO> parts) {
|
||||||
|
Map<String, OrderPartsRespVO> map = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
for (OrderPartsRespVO row : parts) {
|
||||||
|
|
||||||
|
// ===== 1. 组装 唯一key=====
|
||||||
|
String key = row.getPartsId()
|
||||||
|
+ "_" + row.getRoomId()
|
||||||
|
+ "_" + row.getBodyId();
|
||||||
|
|
||||||
|
OrderPartsRespVO vo = map.computeIfAbsent(key, k -> {
|
||||||
|
OrderPartsRespVO newVo = new OrderPartsRespVO();
|
||||||
|
|
||||||
|
BeanUtils.copyProperties(row, newVo);
|
||||||
|
|
||||||
|
// ===== 初始化 =====
|
||||||
|
newVo.setProcessGroupNameList(new ArrayList<>());
|
||||||
|
newVo.setNum(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
return newVo;
|
||||||
|
});
|
||||||
|
|
||||||
|
// ===== 2. num 累加 =====
|
||||||
|
if (row.getNum() != null) {
|
||||||
|
vo.setNum(vo.getNum().add(row.getNum()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===== 3. 加工组(允许重复)=====
|
||||||
|
if (row.getProcessGroup() != null) {
|
||||||
|
vo.getProcessGroupNameList().add(row.getProcessGroup());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection<OrderPartsRespVO> values = map.values();
|
||||||
|
for (OrderPartsRespVO vo : values) {
|
||||||
|
|
||||||
|
// ===== 加工组拼接 =====
|
||||||
|
List<String> processGroupNameList = vo.getProcessGroupNameList();
|
||||||
|
if (CollUtil.isNotEmpty(processGroupNameList)) {
|
||||||
|
vo.setProcessGroup(String.join(",", processGroupNameList));
|
||||||
|
} else {
|
||||||
|
vo.setProcessGroup(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可释放内存
|
||||||
|
vo.setProcessGroupNameList(null);
|
||||||
|
|
||||||
|
// ===== multiSort 处理(柜体编号)=====
|
||||||
|
if (vo.getMultiNum() > 1) {
|
||||||
|
vo.setCabinetName(
|
||||||
|
vo.getCabinetName() + "-" + vo.getMultiSort()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
vo.setCabinetName(vo.getCabinetName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<PackageDetailsRespVO> getOrdersPackageDetails(String packageNo) {
|
public List<PackageDetailsRespVO> getOrdersPackageDetails(String packageNo) {
|
||||||
List<OrderPackagDO> orderPackagDONews = orderPackageMapper.selectList(new LambdaQueryWrapper<OrderPackagDO>()
|
List<OrderPackagDO> orderPackagDONews = orderPackageMapper.selectList(new LambdaQueryWrapper<OrderPackagDO>()
|
||||||
@@ -1075,16 +1198,135 @@ public class PackServiceImpl implements PackService {
|
|||||||
List<PackageDetailsRespVO> packPlateList = orderPlateMapper.selectPackedPlateList(orderIds, packageNo);
|
List<PackageDetailsRespVO> packPlateList = orderPlateMapper.selectPackedPlateList(orderIds, packageNo);
|
||||||
// 查询配件
|
// 查询配件
|
||||||
List<PackageDetailsRespVO> packPartsList = orderPartsMapper.selectPackedParts(orderIds, packageNo);
|
List<PackageDetailsRespVO> packPartsList = orderPartsMapper.selectPackedParts(orderIds, packageNo);
|
||||||
packPlateList.addAll(packPartsList);
|
|
||||||
|
|
||||||
// 根据成倍数量重新赋值柜体名称
|
Collection<PackageDetailsRespVO> resultList = buildPackaPlateGroup(packPlateList);
|
||||||
packPlateList.forEach(item -> {
|
resultList.addAll(buildPackaPlateGroup(packPartsList));
|
||||||
if (item.getMultiNum() != null && item.getMultiNum() > 1
|
return CollUtil.newArrayList(resultList);
|
||||||
&& item.getMultiSort() != null) {
|
}
|
||||||
item.setCabinetName(item.getCabinetName() + "-" + item.getMultiSort());
|
|
||||||
|
/**
|
||||||
|
* 包裹板件分组:加工组
|
||||||
|
*
|
||||||
|
* @param plates
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Collection<PackageDetailsRespVO> buildPackaPlateGroup(List<PackageDetailsRespVO> plates) {
|
||||||
|
Map<String, PackageDetailsRespVO> map = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
for (PackageDetailsRespVO row : plates) {
|
||||||
|
|
||||||
|
// ===== 1. 组装 唯一key=====
|
||||||
|
String key = row.getPlateId()
|
||||||
|
+ "_" + row.getRoomId()
|
||||||
|
+ "_" + row.getBodyId();
|
||||||
|
|
||||||
|
PackageDetailsRespVO vo = map.computeIfAbsent(key, k -> {
|
||||||
|
PackageDetailsRespVO newVo = new PackageDetailsRespVO();
|
||||||
|
|
||||||
|
BeanUtils.copyProperties(row, newVo);
|
||||||
|
|
||||||
|
// ===== 初始化 =====
|
||||||
|
newVo.setProcessGroupNameList(new ArrayList<>());
|
||||||
|
|
||||||
|
return newVo;
|
||||||
|
});
|
||||||
|
|
||||||
|
// ===== 2. 收集加工组(允许重复,不去重)=====
|
||||||
|
if (row.getProcessGroup() != null) {
|
||||||
|
vo.getProcessGroupNameList().add(row.getProcessGroup());
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
return packPlateList;
|
|
||||||
|
Collection<PackageDetailsRespVO> values = map.values();
|
||||||
|
// ===== 3. 转换成逗号字符串 =====
|
||||||
|
for (PackageDetailsRespVO vo : values) {
|
||||||
|
List<String> listGroup = vo.getProcessGroupNameList();
|
||||||
|
|
||||||
|
// 拼接加工组
|
||||||
|
if (listGroup != null && !listGroup.isEmpty()) {
|
||||||
|
vo.setProcessGroup(String.join(",", listGroup));
|
||||||
|
} else {
|
||||||
|
vo.setProcessGroup("");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可释放内存
|
||||||
|
vo.setProcessGroupNameList(null);
|
||||||
|
|
||||||
|
// 成倍编号处理
|
||||||
|
if (vo.getMultiNum() > 1) {
|
||||||
|
vo.setCabinetName(
|
||||||
|
vo.getCabinetName() + "-" + vo.getMultiSort()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return values;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 包裹配件分组:加工组、部件(目前是一对一)
|
||||||
|
*
|
||||||
|
* @param parts
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private Collection<PackageDetailsRespVO> buildPackPartsGroup(List<PackageDetailsRespVO> parts) {
|
||||||
|
Map<String, PackageDetailsRespVO> map = new LinkedHashMap<>();
|
||||||
|
|
||||||
|
for (PackageDetailsRespVO row : parts) {
|
||||||
|
|
||||||
|
// ===== 1. 组装 唯一key=====
|
||||||
|
String key = row.getPartsId()
|
||||||
|
+ "_" + row.getRoomId()
|
||||||
|
+ "_" + row.getBodyId();
|
||||||
|
|
||||||
|
PackageDetailsRespVO vo = map.computeIfAbsent(key, k -> {
|
||||||
|
PackageDetailsRespVO newVo = new PackageDetailsRespVO();
|
||||||
|
|
||||||
|
BeanUtils.copyProperties(row, newVo);
|
||||||
|
|
||||||
|
// ===== 初始化 =====
|
||||||
|
newVo.setProcessGroupNameList(new ArrayList<>());
|
||||||
|
newVo.setPackNum(BigDecimal.ZERO);
|
||||||
|
|
||||||
|
return newVo;
|
||||||
|
});
|
||||||
|
|
||||||
|
// ===== 2. num 累加 =====
|
||||||
|
if (row.getPackNum() != null) {
|
||||||
|
vo.setPackNum(vo.getPackNum().add(row.getPackNum()));
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===== 3. 加工组(允许重复)=====
|
||||||
|
if (row.getProcessGroup() != null) {
|
||||||
|
vo.getProcessGroupNameList().add(row.getProcessGroup());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection<PackageDetailsRespVO> values = map.values();
|
||||||
|
for (PackageDetailsRespVO vo : values) {
|
||||||
|
|
||||||
|
// ===== 加工组拼接 =====
|
||||||
|
List<String> processGroupNameList = vo.getProcessGroupNameList();
|
||||||
|
if (CollUtil.isNotEmpty(processGroupNameList)) {
|
||||||
|
vo.setProcessGroup(String.join(",", processGroupNameList));
|
||||||
|
} else {
|
||||||
|
vo.setProcessGroup(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 可释放内存
|
||||||
|
vo.setProcessGroupNameList(null);
|
||||||
|
|
||||||
|
// ===== multiSort 处理(柜体编号)=====
|
||||||
|
if (vo.getMultiNum() > 1) {
|
||||||
|
vo.setCabinetName(
|
||||||
|
vo.getCabinetName() + "-" + vo.getMultiSort()
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
vo.setCabinetName(vo.getCabinetName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+5
-2
@@ -485,7 +485,8 @@
|
|||||||
|
|
||||||
<resultMap id="PackMap" type="com.cf.imes.module.executor.controller.admin.manage.pack.vo.PackRespVO">
|
<resultMap id="PackMap" type="com.cf.imes.module.executor.controller.admin.manage.pack.vo.PackRespVO">
|
||||||
|
|
||||||
<result property="id" column="orderNo"/>
|
<result property="id" column="id"/>
|
||||||
|
<result property="parentId" column="parentId"/>
|
||||||
<result property="customOrderNo" column="customOrderNo"/>
|
<result property="customOrderNo" column="customOrderNo"/>
|
||||||
<result property="dealer" column="dealer"/>
|
<result property="dealer" column="dealer"/>
|
||||||
<result property="dealerPhoneNumber" column="dealerPhoneNumber"/>
|
<result property="dealerPhoneNumber" column="dealerPhoneNumber"/>
|
||||||
@@ -542,7 +543,8 @@
|
|||||||
|
|
||||||
|
|
||||||
select
|
select
|
||||||
id as orderNo,
|
id,
|
||||||
|
parent_id as parentId,
|
||||||
custom_order_no as customOrderNo,
|
custom_order_no as customOrderNo,
|
||||||
dealer as dealer,
|
dealer as dealer,
|
||||||
dealer_phone_number as dealerPhoneNumber,
|
dealer_phone_number as dealerPhoneNumber,
|
||||||
@@ -564,6 +566,7 @@
|
|||||||
organ_id =#{organId}
|
organ_id =#{organId}
|
||||||
and deleted = false
|
and deleted = false
|
||||||
and status in (1,2,3,4)
|
and status in (1,2,3,4)
|
||||||
|
and parent_id = 0
|
||||||
|
|
||||||
<if test="pageReqVO.orderId !=null">
|
<if test="pageReqVO.orderId !=null">
|
||||||
and id like concat('%', #{pageReqVO.orderId},'%')
|
and id like concat('%', #{pageReqVO.orderId},'%')
|
||||||
|
|||||||
+105
-110
@@ -298,18 +298,23 @@
|
|||||||
parameterType="java.lang.Long"
|
parameterType="java.lang.Long"
|
||||||
resultMap="partsMap">
|
resultMap="partsMap">
|
||||||
SELECT
|
SELECT
|
||||||
t.room_name AS roomName,
|
ob.room_name AS roomName,
|
||||||
t.body_name AS bodyName,
|
ob.name AS bodyName,
|
||||||
t.room_id AS roomId,
|
ob.room_id AS roomId,
|
||||||
t.body_id AS bodyId,
|
ob.id AS bodyId,
|
||||||
t.group_names AS groupName,
|
|
||||||
t.component_names AS componentName,
|
og.name AS groupName,
|
||||||
t.pack_num AS packNum,
|
oc.name AS componentName,
|
||||||
t.package_id AS packageId,
|
|
||||||
t.multiNum AS multiNum,
|
oi.pack_num AS packNum,
|
||||||
t.multiSort AS multiSort,
|
oi.package_id AS packageId,
|
||||||
op.id AS partsId,
|
|
||||||
op.order_id AS orderId,
|
ob.multi_num AS multiNum,
|
||||||
|
ob.multi_sort AS multiSort,
|
||||||
|
|
||||||
|
op.id AS partsId,
|
||||||
|
op.order_id AS orderId,
|
||||||
|
|
||||||
op.name,
|
op.name,
|
||||||
op.model,
|
op.model,
|
||||||
op.spec,
|
op.spec,
|
||||||
@@ -317,50 +322,48 @@
|
|||||||
op.brand,
|
op.brand,
|
||||||
op.factory,
|
op.factory,
|
||||||
op.remark,
|
op.remark,
|
||||||
op.color AS partsColor,
|
op.color AS partsColor,
|
||||||
op.width AS partsWidth,
|
op.width AS partsWidth,
|
||||||
op.length AS partsLength,
|
op.length AS partsLength,
|
||||||
op.thickness AS partsThickness,
|
op.thickness AS partsThickness,
|
||||||
op.category,
|
op.category,
|
||||||
op.subparts,
|
op.subparts,
|
||||||
op.type
|
op.type
|
||||||
FROM order_parts op
|
|
||||||
JOIN (
|
|
||||||
SELECT
|
|
||||||
oi.parts_id,
|
|
||||||
oi.package_id,
|
|
||||||
oi.room_id,
|
|
||||||
oi.body_id,
|
|
||||||
GROUP_CONCAT(og.name SEPARATOR ',') AS group_names,
|
|
||||||
MIN(oc.name) AS component_names,
|
|
||||||
MIN(ob.room_name) AS room_name,
|
|
||||||
MIN(ob.name) AS body_name,
|
|
||||||
SUM(oi.pack_num) AS pack_num,
|
|
||||||
MIN(ob.multi_num) AS multiNum,
|
|
||||||
MIN(ob.multi_sort) AS multiSort
|
|
||||||
FROM order_item oi
|
FROM order_item oi
|
||||||
|
|
||||||
|
JOIN order_parts op
|
||||||
|
ON oi.parts_id = op.id
|
||||||
|
AND oi.organ_id = op.organ_id
|
||||||
|
AND oi.order_id = op.order_id
|
||||||
|
|
||||||
LEFT JOIN order_group og
|
LEFT JOIN order_group og
|
||||||
ON oi.organ_id = og.organ_id
|
ON oi.organ_id = og.organ_id
|
||||||
AND oi.order_id = og.order_id
|
AND oi.order_id = og.order_id
|
||||||
AND oi.group_id = og.id
|
AND oi.group_id = og.id
|
||||||
|
|
||||||
LEFT JOIN order_body ob
|
LEFT JOIN order_body ob
|
||||||
ON oi.organ_id = ob.organ_id
|
ON oi.organ_id = ob.organ_id
|
||||||
AND oi.order_id = ob.order_id
|
AND oi.order_id = ob.order_id
|
||||||
AND oi.body_id = ob.id
|
AND oi.body_id = ob.id
|
||||||
|
|
||||||
LEFT JOIN order_component oc
|
LEFT JOIN order_component oc
|
||||||
ON oi.organ_id = oc.organ_id
|
ON oi.organ_id = oc.organ_id
|
||||||
AND oi.order_id = oc.order_id
|
AND oi.order_id = oc.order_id
|
||||||
AND oc.id = oi.comp_id
|
AND oi.comp_id = oc.id
|
||||||
WHERE oi.package_id = #{packageNo}
|
|
||||||
|
WHERE
|
||||||
|
oi.package_id = #{packageNo}
|
||||||
AND oi.parts_id != 0
|
AND oi.parts_id != 0
|
||||||
GROUP BY oi.room_id, oi.body_id, oi.parts_id, oi.package_id
|
|
||||||
) t ON t.parts_id = op.id
|
AND op.deleted = false
|
||||||
WHERE op.deleted = false
|
|
||||||
AND op.type != '封边条'
|
AND op.type != '封边条'
|
||||||
|
|
||||||
AND op.order_id IN
|
AND op.order_id IN
|
||||||
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
||||||
#{orderId}
|
#{orderId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
order by partsId
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
@@ -402,17 +405,17 @@
|
|||||||
parameterType="java.lang.Long"
|
parameterType="java.lang.Long"
|
||||||
resultMap="PartsListMap">
|
resultMap="PartsListMap">
|
||||||
SELECT
|
SELECT
|
||||||
t.room_name AS roomName,
|
ob.room_name AS roomName,
|
||||||
t.body_name AS bodyName,
|
ob.name AS bodyName,
|
||||||
t.room_id AS roomId,
|
ob.room_id AS roomId,
|
||||||
t.body_id AS bodyId,
|
ob.id AS bodyId,
|
||||||
t.group_names AS processGroup,
|
og.name AS processGroup,
|
||||||
t.component_names AS componentName,
|
oc.name AS componentName,
|
||||||
t.num AS num,
|
(oi.num - oi.pack_num) AS num,
|
||||||
t.multiNum AS multiNum,
|
ob.multi_num AS multiNum,
|
||||||
t.multiSort AS multiSort,
|
ob.multi_sort AS multiSort,
|
||||||
op.id AS partsId,
|
op.id AS partsId,
|
||||||
op.order_id AS orderId,
|
op.order_id AS orderId,
|
||||||
op.name,
|
op.name,
|
||||||
op.model,
|
op.model,
|
||||||
op.spec,
|
op.spec,
|
||||||
@@ -420,71 +423,69 @@
|
|||||||
op.brand,
|
op.brand,
|
||||||
op.factory,
|
op.factory,
|
||||||
op.remark,
|
op.remark,
|
||||||
op.color AS partsColor,
|
op.color AS partsColor,
|
||||||
op.width AS partsWidth,
|
op.width AS partsWidth,
|
||||||
op.length AS partsLength,
|
op.length AS partsLength,
|
||||||
op.thickness AS partsThickness,
|
op.thickness AS partsThickness,
|
||||||
op.category,
|
op.category,
|
||||||
op.subparts,
|
op.subparts,
|
||||||
op.type
|
op.type
|
||||||
FROM order_parts op
|
|
||||||
JOIN (
|
|
||||||
SELECT
|
|
||||||
oi.parts_id,
|
|
||||||
oi.room_id,
|
|
||||||
oi.body_id,
|
|
||||||
GROUP_CONCAT(og.name SEPARATOR ',') AS group_names,
|
|
||||||
MIN(oc.name) AS component_names,
|
|
||||||
MIN(ob.room_name) AS room_name,
|
|
||||||
MIN(ob.name) AS body_name,
|
|
||||||
SUM(oi.num - oi.pack_num) AS num,
|
|
||||||
MIN(ob.multi_num) AS multiNum,
|
|
||||||
MIN(ob.multi_sort) AS multiSort
|
|
||||||
FROM order_item oi
|
FROM order_item oi
|
||||||
|
|
||||||
|
JOIN order_parts op
|
||||||
|
ON oi.parts_id = op.id
|
||||||
|
|
||||||
LEFT JOIN order_group og
|
LEFT JOIN order_group og
|
||||||
ON oi.organ_id = og.organ_id
|
ON oi.organ_id = og.organ_id
|
||||||
AND oi.order_id = og.order_id
|
AND oi.order_id = og.order_id
|
||||||
AND oi.group_id = og.id
|
AND oi.group_id = og.id
|
||||||
|
|
||||||
LEFT JOIN order_body ob
|
LEFT JOIN order_body ob
|
||||||
ON oi.organ_id = ob.organ_id
|
ON oi.organ_id = ob.organ_id
|
||||||
AND oi.order_id = ob.order_id
|
AND oi.order_id = ob.order_id
|
||||||
AND oi.body_id = ob.id
|
AND oi.body_id = ob.id
|
||||||
|
|
||||||
LEFT JOIN order_component oc
|
LEFT JOIN order_component oc
|
||||||
ON oi.organ_id = oc.organ_id
|
ON oi.organ_id = oc.organ_id
|
||||||
AND oi.order_id = oc.order_id
|
AND oi.order_id = oc.order_id
|
||||||
AND oc.id = oi.comp_id
|
AND oi.comp_id = oc.id
|
||||||
|
|
||||||
WHERE
|
WHERE
|
||||||
oi.parts_id != 0
|
oi.parts_id != 0
|
||||||
AND oi.package_id = 0
|
AND oi.package_id = 0
|
||||||
AND oi.source_id = 0
|
AND oi.source_id = 0
|
||||||
GROUP BY oi.room_id, oi.body_id, oi.parts_id
|
AND op.deleted = false
|
||||||
) t ON t.parts_id = op.id
|
|
||||||
WHERE op.deleted = false
|
|
||||||
AND op.type != '封边条'
|
AND op.type != '封边条'
|
||||||
AND op.order_id IN
|
AND op.order_id IN
|
||||||
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
||||||
#{orderId}
|
#{orderId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
order by partsId
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectOrdersHeapSplitPartsList"
|
<select id="selectOrdersHeapSplitPartsList"
|
||||||
parameterType="java.lang.Long"
|
parameterType="java.lang.Long"
|
||||||
resultMap="PartsListMap">
|
resultMap="PartsListMap">
|
||||||
SELECT
|
SELECT
|
||||||
t.room_name AS roomName,
|
ob.room_name AS roomName,
|
||||||
t.body_name AS bodyName,
|
ob.name AS bodyName,
|
||||||
t.room_id AS roomId,
|
ob.room_id AS roomId,
|
||||||
t.body_id AS bodyId,
|
ob.id AS bodyId,
|
||||||
t.heap_split_status AS heapSplitStatus,
|
|
||||||
t.group_names AS processGroup,
|
oi.heap_split_status AS heapSplitStatus,
|
||||||
t.component_names AS componentName,
|
|
||||||
t.multi_num AS multiNum,
|
og.name AS processGroup,
|
||||||
t.multi_sort AS multiSort,
|
oc.name AS componentName,
|
||||||
t.num AS num,
|
|
||||||
t.heap_num AS heapNum,
|
ob.multi_num AS multiNum,
|
||||||
op.id AS partsId,
|
ob.multi_sort AS multiSort,
|
||||||
op.order_id AS orderId,
|
|
||||||
|
(oi.num - oi.heap_num) AS num,
|
||||||
|
oi.heap_num AS heapNum,
|
||||||
|
|
||||||
|
op.id AS partsId,
|
||||||
|
op.order_id AS orderId,
|
||||||
|
|
||||||
op.name,
|
op.name,
|
||||||
op.model,
|
op.model,
|
||||||
op.spec,
|
op.spec,
|
||||||
@@ -492,58 +493,52 @@
|
|||||||
op.brand,
|
op.brand,
|
||||||
op.factory,
|
op.factory,
|
||||||
op.remark,
|
op.remark,
|
||||||
op.color AS partsColor,
|
op.color AS partsColor,
|
||||||
op.width AS partsWidth,
|
op.width AS partsWidth,
|
||||||
op.length AS partsLength,
|
op.length AS partsLength,
|
||||||
op.thickness AS partsThickness,
|
op.thickness AS partsThickness,
|
||||||
op.category,
|
op.category,
|
||||||
op.subparts,
|
op.subparts,
|
||||||
op.type
|
op.type
|
||||||
FROM order_parts op
|
|
||||||
JOIN (
|
|
||||||
SELECT
|
|
||||||
oi.parts_id,
|
|
||||||
oi.room_id,
|
|
||||||
oi.body_id,
|
|
||||||
oi.heap_split_status,
|
|
||||||
GROUP_CONCAT(og.name SEPARATOR ',') AS group_names,
|
|
||||||
MIN(oc.name) AS component_names,
|
|
||||||
MIN(ob.room_name) AS room_name,
|
|
||||||
MIN(ob.name) AS body_name,
|
|
||||||
SUM(oi.num - oi.heap_num) AS num,
|
|
||||||
SUM(oi.heap_num) AS heap_num,
|
|
||||||
MIN(ob.multi_num) AS multi_num,
|
|
||||||
MIN(ob.multi_sort) AS multi_sort
|
|
||||||
FROM order_item oi
|
FROM order_item oi
|
||||||
|
|
||||||
|
JOIN order_parts op
|
||||||
|
ON oi.parts_id = op.id
|
||||||
|
AND oi.organ_id = op.organ_id
|
||||||
|
AND oi.order_id = op.order_id
|
||||||
|
|
||||||
LEFT JOIN order_group og
|
LEFT JOIN order_group og
|
||||||
ON oi.organ_id = og.organ_id
|
ON oi.organ_id = og.organ_id
|
||||||
AND oi.order_id = og.order_id
|
AND oi.order_id = og.order_id
|
||||||
AND oi.group_id = og.id
|
AND oi.group_id = og.id
|
||||||
|
|
||||||
LEFT JOIN order_body ob
|
LEFT JOIN order_body ob
|
||||||
ON oi.organ_id = ob.organ_id
|
ON oi.organ_id = ob.organ_id
|
||||||
AND oi.order_id = ob.order_id
|
AND oi.order_id = ob.order_id
|
||||||
AND oi.body_id = ob.id
|
AND oi.body_id = ob.id
|
||||||
|
|
||||||
LEFT JOIN order_component oc
|
LEFT JOIN order_component oc
|
||||||
ON oi.organ_id = oc.organ_id
|
ON oi.organ_id = oc.organ_id
|
||||||
AND oi.order_id = oc.order_id
|
AND oi.order_id = oc.order_id
|
||||||
AND oc.id = oi.comp_id
|
AND oi.comp_id = oc.id
|
||||||
|
|
||||||
WHERE
|
WHERE
|
||||||
oi.parts_id != 0
|
oi.parts_id != 0
|
||||||
AND
|
|
||||||
(
|
AND (
|
||||||
source_id = 0
|
oi.source_id = 0
|
||||||
OR
|
OR (oi.source_id != 0 AND oi.heap_split_status = 1)
|
||||||
(source_id != 0 AND oi.heap_split_status = 1)
|
|
||||||
)
|
)
|
||||||
GROUP BY oi.room_id, oi.body_id, oi.parts_id, oi.heap_split_status
|
|
||||||
) t ON t.parts_id = op.id
|
AND op.deleted = false
|
||||||
WHERE op.deleted = false
|
|
||||||
AND op.type != '封边条'
|
AND op.type != '封边条'
|
||||||
|
|
||||||
AND op.order_id IN
|
AND op.order_id IN
|
||||||
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
||||||
#{orderId}
|
#{orderId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
order by partsId
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<resultMap id="LabelPartsMap" type="com.cf.imes.module.executor.controller.admin.order.vo.order.LabelOrderPartsData">
|
<resultMap id="LabelPartsMap" type="com.cf.imes.module.executor.controller.admin.order.vo.order.LabelOrderPartsData">
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
parameterType="java.util.List"
|
parameterType="java.util.List"
|
||||||
resultType="com.cf.imes.module.executor.controller.admin.manage.pack.vo.PackRespVO">
|
resultType="com.cf.imes.module.executor.controller.admin.manage.pack.vo.PackRespVO">
|
||||||
select
|
select
|
||||||
order_id as orderId,
|
order_id as id,
|
||||||
COUNT(*) AS packCount
|
COUNT(*) AS packCount
|
||||||
from order_package
|
from order_package
|
||||||
where
|
where
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
resultType="com.cf.imes.module.executor.controller.admin.manage.pack.vo.PackRespVO">
|
resultType="com.cf.imes.module.executor.controller.admin.manage.pack.vo.PackRespVO">
|
||||||
|
|
||||||
select
|
select
|
||||||
op.order_id as orderId,
|
op.order_id as id,
|
||||||
COUNT(DISTINCT oi.plate_id) AS packPieceCount
|
COUNT(DISTINCT oi.plate_id) AS packPieceCount
|
||||||
from order_package op
|
from order_package op
|
||||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.package_no = oi.package_id
|
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.package_no = oi.package_id
|
||||||
|
|||||||
+168
-152
@@ -814,28 +814,32 @@
|
|||||||
parameterType="java.lang.Long"
|
parameterType="java.lang.Long"
|
||||||
resultMap="PlateDetailsMap">
|
resultMap="PlateDetailsMap">
|
||||||
SELECT
|
SELECT
|
||||||
t.group_names AS processGroup,
|
og.name AS processGroup,
|
||||||
t.component_names AS componentName,
|
oc.name AS componentName,
|
||||||
t.room_name AS roomName,
|
|
||||||
t.body_name AS bodyName,
|
ob.room_name AS roomName,
|
||||||
t.room_id AS roomId,
|
ob.name AS bodyName,
|
||||||
t.body_id AS bodyId,
|
ob.room_id AS roomId,
|
||||||
t.multi_num AS multiNum,
|
ob.id AS bodyId,
|
||||||
t.multi_sort AS multiSort,
|
ob.multi_num AS multiNum,
|
||||||
op.id AS plateId,
|
ob.multi_sort AS multiSort,
|
||||||
op.plate_no AS plateNo,
|
|
||||||
op.custom_plate_no AS customPlateNo,
|
op.id AS plateId,
|
||||||
op.name AS plateName,
|
op.plate_no AS plateNo,
|
||||||
ogs.material AS plateMaterial,
|
op.custom_plate_no AS customPlateNo,
|
||||||
ogs.color AS plateColor,
|
op.name AS plateName,
|
||||||
ogs.brand AS brand,
|
ogs.material AS plateMaterial,
|
||||||
op.order_id AS orderId,
|
ogs.color AS plateColor,
|
||||||
op.height AS plateHeight,
|
ogs.brand AS brand,
|
||||||
op.width AS plateWidth,
|
op.order_id AS orderId,
|
||||||
op.thickness AS plateThickness,
|
|
||||||
op.area AS plateArea,
|
op.height AS plateHeight,
|
||||||
|
op.width AS plateWidth,
|
||||||
|
op.thickness AS plateThickness,
|
||||||
|
op.area AS plateArea,
|
||||||
op.texture,
|
op.texture,
|
||||||
op.remark,
|
op.remark,
|
||||||
|
|
||||||
op.is_special_shaped AS specialShaped,
|
op.is_special_shaped AS specialShaped,
|
||||||
op.is_sculpt AS profiling,
|
op.is_sculpt AS profiling,
|
||||||
op.is_row_hole AS rowHole,
|
op.is_row_hole AS rowHole,
|
||||||
@@ -852,212 +856,224 @@
|
|||||||
op.seal_right AS sealRight,
|
op.seal_right AS sealRight,
|
||||||
op.seal_up AS sealUp,
|
op.seal_up AS sealUp,
|
||||||
op.seal_down AS sealDown
|
op.seal_down AS sealDown
|
||||||
|
|
||||||
FROM order_plate op
|
FROM order_plate op
|
||||||
|
|
||||||
LEFT JOIN order_goods ogs
|
LEFT JOIN order_goods ogs
|
||||||
ON op.organ_id = ogs.organ_id
|
ON op.organ_id = ogs.organ_id
|
||||||
AND op.order_id = ogs.order_id
|
AND op.order_id = ogs.order_id
|
||||||
AND op.goods_id = ogs.id
|
AND op.goods_id = ogs.id
|
||||||
JOIN (
|
|
||||||
SELECT
|
JOIN order_item oi
|
||||||
oi.plate_id,
|
ON oi.organ_id = op.organ_id
|
||||||
oi.room_id,
|
AND oi.order_id = op.order_id
|
||||||
oi.body_id,
|
AND oi.plate_id = op.id
|
||||||
GROUP_CONCAT(og.name SEPARATOR ',') AS group_names,-- 聚合加工组
|
|
||||||
MIN(oc.name) AS component_names,
|
|
||||||
MIN(ob.room_name) AS room_name,
|
|
||||||
MIN(ob.name) AS body_name,
|
|
||||||
MIN(ob.multi_num) AS multi_num,
|
|
||||||
MIN(ob.multi_sort) AS multi_sort
|
|
||||||
FROM order_item oi
|
|
||||||
LEFT JOIN order_group og
|
LEFT JOIN order_group og
|
||||||
ON oi.organ_id = og.organ_id
|
ON oi.organ_id = og.organ_id
|
||||||
AND oi.order_id = og.order_id
|
AND oi.order_id = og.order_id
|
||||||
AND oi.group_id = og.id
|
AND oi.group_id = og.id
|
||||||
|
|
||||||
LEFT JOIN order_body ob
|
LEFT JOIN order_body ob
|
||||||
ON oi.organ_id = ob.organ_id
|
ON oi.organ_id = ob.organ_id
|
||||||
AND oi.order_id = ob.order_id
|
AND oi.order_id = ob.order_id
|
||||||
AND oi.body_id = ob.id
|
AND oi.body_id = ob.id
|
||||||
|
|
||||||
LEFT JOIN order_component oc
|
LEFT JOIN order_component oc
|
||||||
ON oi.organ_id = oc.organ_id
|
ON oi.organ_id = oc.organ_id
|
||||||
AND oi.order_id = oc.order_id
|
AND oi.order_id = oc.order_id
|
||||||
AND oc.id = oi.comp_id
|
AND oi.comp_id = oc.id
|
||||||
WHERE oi.plate_id != 0
|
|
||||||
AND oi.package_id = 0
|
WHERE
|
||||||
GROUP BY oi.plate_id, room_id, body_id
|
op.deleted = false
|
||||||
) t ON t.plate_id = op.id
|
AND op.order_id in
|
||||||
WHERE op.deleted = false
|
|
||||||
AND op.order_id IN
|
|
||||||
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
||||||
#{orderId}
|
#{orderId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
||||||
|
AND oi.plate_id != 0
|
||||||
|
AND oi.package_id = 0
|
||||||
|
AND oi.organ_id = 1
|
||||||
|
order by plateId
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectPackedPlateList"
|
<select id="selectPackedPlateList"
|
||||||
parameterType="java.lang.Long"
|
parameterType="java.lang.Long"
|
||||||
resultMap="orderItemMap">
|
resultMap="orderItemMap">
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
t.package_id AS packageId,
|
oi.package_id AS packageId,
|
||||||
t.group_names AS processGroup,
|
|
||||||
t.component_names AS componentName,
|
og.name AS processGroup,
|
||||||
t.room_name AS roomName,
|
oc.name AS componentName,
|
||||||
t.body_name AS bodyName,
|
|
||||||
t.room_id AS roomId,
|
ob.room_name AS roomName,
|
||||||
t.body_id AS bodyId,
|
ob.name AS bodyName,
|
||||||
t.multi_num AS multiNum,
|
ob.room_id AS roomId,
|
||||||
t.multi_sort AS multiSort,
|
ob.id AS bodyId,
|
||||||
op.id AS plateId,
|
|
||||||
op.plate_no AS plateNo,
|
ob.multi_num AS multiNum,
|
||||||
op.custom_plate_no AS customPlateNo,
|
ob.multi_sort AS multiSort,
|
||||||
op.name AS plateName,
|
|
||||||
ogs.material AS plateMaterial,
|
op.id AS plateId,
|
||||||
ogs.color AS plateColor,
|
op.plate_no AS plateNo,
|
||||||
ogs.brand AS brand,
|
op.custom_plate_no AS customPlateNo,
|
||||||
op.order_id AS orderId,
|
op.name AS plateName,
|
||||||
op.height AS plateHeight,
|
|
||||||
op.width AS plateWidth,
|
ogs.material AS plateMaterial,
|
||||||
op.thickness AS plateThickness,
|
ogs.color AS plateColor,
|
||||||
op.area AS plateArea,
|
ogs.brand AS brand,
|
||||||
|
|
||||||
|
op.order_id AS orderId,
|
||||||
|
|
||||||
|
op.height AS plateHeight,
|
||||||
|
op.width AS plateWidth,
|
||||||
|
op.thickness AS plateThickness,
|
||||||
|
op.area AS plateArea,
|
||||||
op.texture,
|
op.texture,
|
||||||
op.remark,
|
op.remark,
|
||||||
op.is_special_shaped AS specialShaped,
|
|
||||||
op.is_sculpt AS profiling,
|
op.is_special_shaped AS specialShaped,
|
||||||
op.is_row_hole AS rowHole,
|
op.is_sculpt AS profiling,
|
||||||
op.front_hole_count AS frontHoleCount,
|
op.is_row_hole AS rowHole,
|
||||||
op.back_hole_count AS backHoleCount,
|
op.front_hole_count AS frontHoleCount,
|
||||||
op.side_hole_count AS sideHoleCount,
|
op.back_hole_count AS backHoleCount,
|
||||||
op.open_door_type AS openDoorType,
|
op.side_hole_count AS sideHoleCount,
|
||||||
op.is_side_sculpt AS isSideSculpt,
|
op.open_door_type AS openDoorType,
|
||||||
op.is_2v AS is2v,
|
op.is_side_sculpt AS isSideSculpt,
|
||||||
op.is_side_2v AS isSide2v,
|
op.is_2v AS is2v,
|
||||||
op.split_width AS splitWidth,
|
op.is_side_2v AS isSide2v,
|
||||||
op.split_height AS splitHeight,
|
op.split_width AS splitWidth,
|
||||||
op.seal_left AS sealLeft,
|
op.split_height AS splitHeight,
|
||||||
op.seal_right AS sealRight,
|
op.seal_left AS sealLeft,
|
||||||
op.seal_up AS sealUp,
|
op.seal_right AS sealRight,
|
||||||
op.seal_down AS sealDown
|
op.seal_up AS sealUp,
|
||||||
FROM order_plate op
|
op.seal_down AS sealDown
|
||||||
|
|
||||||
|
FROM order_item oi
|
||||||
|
|
||||||
|
JOIN order_plate op
|
||||||
|
ON oi.organ_id = op.organ_id
|
||||||
|
AND oi.order_id = op.order_id
|
||||||
|
AND oi.plate_id = op.id
|
||||||
|
|
||||||
LEFT JOIN order_goods ogs
|
LEFT JOIN order_goods ogs
|
||||||
ON op.organ_id = ogs.organ_id
|
ON op.organ_id = ogs.organ_id
|
||||||
AND op.order_id = ogs.order_id
|
AND op.order_id = ogs.order_id
|
||||||
AND op.goods_id = ogs.id
|
AND op.goods_id = ogs.id
|
||||||
JOIN (
|
|
||||||
SELECT
|
|
||||||
oi.plate_id,
|
|
||||||
oi.package_id,
|
|
||||||
oi.room_id,
|
|
||||||
oi.body_id,
|
|
||||||
GROUP_CONCAT(og.name SEPARATOR ',') AS group_names,-- 聚合加工组
|
|
||||||
MIN(oc.name) AS component_names,
|
|
||||||
MIN(ob.room_name) AS room_name,
|
|
||||||
MIN(ob.name) AS body_name,
|
|
||||||
MIN(ob.multi_num) AS multi_num,
|
|
||||||
MIN(ob.multi_sort) AS multi_sort
|
|
||||||
FROM order_item oi
|
|
||||||
LEFT JOIN order_group og
|
LEFT JOIN order_group og
|
||||||
ON oi.organ_id = og.organ_id
|
ON oi.organ_id = og.organ_id
|
||||||
AND oi.order_id = og.order_id
|
AND oi.order_id = og.order_id
|
||||||
AND oi.group_id = og.id
|
AND oi.group_id = og.id
|
||||||
|
|
||||||
LEFT JOIN order_body ob
|
LEFT JOIN order_body ob
|
||||||
ON oi.organ_id = ob.organ_id
|
ON oi.organ_id = ob.organ_id
|
||||||
AND oi.order_id = ob.order_id
|
AND oi.order_id = ob.order_id
|
||||||
AND oi.body_id = ob.id
|
AND oi.body_id = ob.id
|
||||||
|
|
||||||
LEFT JOIN order_component oc
|
LEFT JOIN order_component oc
|
||||||
ON oi.organ_id = oc.organ_id
|
ON oi.organ_id = oc.organ_id
|
||||||
AND oi.order_id = oc.order_id
|
AND oi.order_id = oc.order_id
|
||||||
AND oc.id = oi.comp_id
|
AND oi.comp_id = oc.id
|
||||||
WHERE oi.package_id = #{packageNo}
|
|
||||||
|
WHERE
|
||||||
|
oi.package_id = #{packageNo}
|
||||||
AND oi.plate_id != 0
|
AND oi.plate_id != 0
|
||||||
GROUP BY oi.room_id, oi.body_id, oi.plate_id, oi.package_id
|
AND op.deleted = false
|
||||||
) t ON t.plate_id = op.id
|
|
||||||
WHERE op.deleted = false
|
|
||||||
AND op.order_id IN
|
AND op.order_id IN
|
||||||
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
||||||
#{orderId}
|
#{orderId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
order by plateId
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectOrdersHeapSplitPlateList"
|
<select id="selectOrdersHeapSplitPlateList"
|
||||||
parameterType="java.lang.Long"
|
parameterType="java.lang.Long"
|
||||||
resultMap="PlateDetailsMap">
|
resultMap="PlateDetailsMap">
|
||||||
SELECT
|
SELECT
|
||||||
t.group_names AS processGroup,
|
og.name AS processGroup,
|
||||||
t.component_names AS componentName,
|
oc.name AS componentName,
|
||||||
t.room_name AS roomName,
|
|
||||||
t.body_name AS bodyName,
|
ob.room_name AS roomName,
|
||||||
t.room_id AS roomId,
|
ob.name AS bodyName,
|
||||||
t.body_id AS bodyId,
|
ob.room_id AS roomId,
|
||||||
t.heap_split_status AS heapSplitStatus,
|
ob.id AS bodyId,
|
||||||
t.multi_num AS multiNum,
|
|
||||||
t.multi_sort AS multiSort,
|
oi.heap_split_status AS heapSplitStatus,
|
||||||
op.id AS plateId,
|
|
||||||
op.plate_no AS plateNo,
|
ob.multi_num AS multiNum,
|
||||||
op.custom_plate_no AS customPlateNo,
|
ob.multi_sort AS multiSort,
|
||||||
op.name AS plateName,
|
|
||||||
ogs.material AS plateMaterial,
|
op.id AS plateId,
|
||||||
ogs.color AS plateColor,
|
op.plate_no AS plateNo,
|
||||||
ogs.brand AS brand,
|
op.custom_plate_no AS customPlateNo,
|
||||||
op.order_id AS orderId,
|
op.name AS plateName,
|
||||||
op.height AS plateHeight,
|
|
||||||
op.width AS plateWidth,
|
ogs.material AS plateMaterial,
|
||||||
op.thickness AS plateThickness,
|
ogs.color AS plateColor,
|
||||||
op.area AS plateArea,
|
ogs.brand AS brand,
|
||||||
|
|
||||||
|
op.order_id AS orderId,
|
||||||
|
|
||||||
|
op.height AS plateHeight,
|
||||||
|
op.width AS plateWidth,
|
||||||
|
op.thickness AS plateThickness,
|
||||||
|
op.area AS plateArea,
|
||||||
op.texture,
|
op.texture,
|
||||||
op.remark,
|
op.remark,
|
||||||
op.is_special_shaped AS specialShaped,
|
|
||||||
op.is_sculpt AS profiling,
|
op.is_special_shaped AS specialShaped,
|
||||||
op.is_row_hole AS rowHole,
|
op.is_sculpt AS profiling,
|
||||||
op.front_hole_count AS frontHoleCount,
|
op.is_row_hole AS rowHole,
|
||||||
op.back_hole_count AS backHoleCount,
|
op.front_hole_count AS frontHoleCount,
|
||||||
op.side_hole_count AS sideHoleCount,
|
op.back_hole_count AS backHoleCount,
|
||||||
op.open_door_type AS openDoorType,
|
op.side_hole_count AS sideHoleCount,
|
||||||
op.is_side_sculpt AS isSideSculpt,
|
op.open_door_type AS openDoorType,
|
||||||
op.is_2v AS is2v,
|
op.is_side_sculpt AS isSideSculpt,
|
||||||
op.is_side_2v AS isSide2v,
|
op.is_2v AS is2v,
|
||||||
op.split_width AS splitWidth,
|
op.is_side_2v AS isSide2v,
|
||||||
op.split_height AS splitHeight,
|
op.split_width AS splitWidth,
|
||||||
op.seal_left AS sealLeft,
|
op.split_height AS splitHeight,
|
||||||
op.seal_right AS sealRight,
|
op.seal_left AS sealLeft,
|
||||||
op.seal_up AS sealUp,
|
op.seal_right AS sealRight,
|
||||||
op.seal_down AS sealDown
|
op.seal_up AS sealUp,
|
||||||
FROM order_plate op
|
op.seal_down AS sealDown
|
||||||
|
|
||||||
|
FROM order_item oi
|
||||||
|
|
||||||
|
JOIN order_plate op
|
||||||
|
ON oi.organ_id = op.organ_id
|
||||||
|
AND oi.order_id = op.order_id
|
||||||
|
AND oi.plate_id = op.id
|
||||||
|
|
||||||
LEFT JOIN order_goods ogs
|
LEFT JOIN order_goods ogs
|
||||||
ON op.organ_id = ogs.organ_id
|
ON op.organ_id = ogs.organ_id
|
||||||
AND op.order_id = ogs.order_id
|
AND op.order_id = ogs.order_id
|
||||||
AND op.goods_id = ogs.id
|
AND op.goods_id = ogs.id
|
||||||
JOIN (
|
|
||||||
SELECT
|
|
||||||
oi.plate_id,
|
|
||||||
oi.room_id,
|
|
||||||
oi.body_id,
|
|
||||||
oi.heap_split_status,
|
|
||||||
GROUP_CONCAT(og.name SEPARATOR ',') AS group_names,
|
|
||||||
MIN(oc.name) AS component_names,
|
|
||||||
MIN(ob.room_name) AS room_name,
|
|
||||||
MIN(ob.name) AS body_name,
|
|
||||||
MIN(ob.multi_num) AS multi_num,
|
|
||||||
MIN(ob.multi_sort) AS multi_sort
|
|
||||||
FROM order_item oi
|
|
||||||
LEFT JOIN order_group og
|
LEFT JOIN order_group og
|
||||||
ON oi.organ_id = og.organ_id
|
ON oi.organ_id = og.organ_id
|
||||||
AND oi.order_id = og.order_id
|
AND oi.order_id = og.order_id
|
||||||
AND oi.group_id = og.id
|
AND oi.group_id = og.id
|
||||||
|
|
||||||
LEFT JOIN order_body ob
|
LEFT JOIN order_body ob
|
||||||
ON oi.organ_id = ob.organ_id
|
ON oi.organ_id = ob.organ_id
|
||||||
AND oi.order_id = ob.order_id
|
AND oi.order_id = ob.order_id
|
||||||
AND oi.body_id = ob.id
|
AND oi.body_id = ob.id
|
||||||
|
|
||||||
LEFT JOIN order_component oc
|
LEFT JOIN order_component oc
|
||||||
ON oi.organ_id = oc.organ_id
|
ON oi.organ_id = oc.organ_id
|
||||||
AND oi.order_id = oc.order_id
|
AND oi.order_id = oc.order_id
|
||||||
AND oc.id = oi.comp_id
|
AND oi.comp_id = oc.id
|
||||||
WHERE oi.plate_id != 0
|
|
||||||
GROUP BY room_id, body_id, oi.plate_id, oi.heap_split_status
|
WHERE
|
||||||
) t ON t.plate_id = op.id
|
oi.plate_id != 0
|
||||||
WHERE op.deleted = false
|
AND op.deleted = false
|
||||||
AND op.order_id IN
|
AND op.order_id IN
|
||||||
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
<foreach item="orderId" collection="orderIds" open="(" separator="," close=")">
|
||||||
#{orderId}
|
#{orderId}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
order by plateId
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectLabelOrderPlateDataByOrderId"
|
<select id="selectLabelOrderPlateDataByOrderId"
|
||||||
|
|||||||
Reference in New Issue
Block a user