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:
+16
@@ -7,6 +7,8 @@ import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanCreateRe
|
|||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanNoPlanPlateDataRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanNoPlanPlateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanProduceReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanProduceReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanRemovePlateReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanRemovePlateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortReqVO;
|
||||||
@@ -183,6 +185,20 @@ public class VeneerPlanController {
|
|||||||
return success(veneerPlanService.getPlanPlateList(planId));
|
return success(veneerPlanService.getPlanPlateList(planId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询指定订单中当前贴皮排单可继续加入的未排贴皮板件。
|
||||||
|
*
|
||||||
|
* @param req 订单ID列表和目标贴皮排单ID
|
||||||
|
* @return 未排贴皮板件及原板件造型数据
|
||||||
|
*/
|
||||||
|
@PostMapping("/orders/noplan")
|
||||||
|
@Operation(summary = "获取贴皮排单未排贴皮板件")
|
||||||
|
@PreAuthorize("@ss.hasPermission('placeorder:query')")
|
||||||
|
public CommonResult<VeneerPlanNoPlanPlateDataRespVO> getVeneerPlanNoPlanPlateData(
|
||||||
|
@Valid @RequestBody VeneerPlanNoPlanPlateReqVO req) {
|
||||||
|
return success(veneerPlanService.getNoPlanPlateData(req));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询未完成开料的贴皮排单优先级列表。
|
* 查询未完成开料的贴皮排单优先级列表。
|
||||||
*
|
*
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package com.cf.imes.module.executor.controller.admin.veneer.vo;
|
||||||
|
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 贴皮排单待选未排板件及造型数据响应。
|
||||||
|
*/
|
||||||
|
@Schema(description = "管理后台 - 贴皮排单待选未排板件数据 Response VO")
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class VeneerPlanNoPlanPlateDataRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "未排贴皮及原板件信息")
|
||||||
|
private List<UnplannedVeneerPlateRespVO> plateList;
|
||||||
|
|
||||||
|
@Schema(description = "原板件造型信息,按 plateId 与 plateList 关联")
|
||||||
|
private List<OrderModelDO> plateModels;
|
||||||
|
}
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
package com.cf.imes.module.executor.controller.admin.veneer.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import jakarta.validation.constraints.Size;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 贴皮排单待选未排板件查询参数。
|
||||||
|
*/
|
||||||
|
@Schema(description = "管理后台 - 贴皮排单待选未排板件查询 Request VO")
|
||||||
|
@Data
|
||||||
|
public class VeneerPlanNoPlanPlateReqVO {
|
||||||
|
|
||||||
|
@Schema(description = "订单ID列表", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotEmpty(message = "{veneer.plan.noplan.order.ids.required}")
|
||||||
|
@Size(max = 200, message = "{veneer.plan.noplan.order.ids.max}")
|
||||||
|
private List<Long> orderIds;
|
||||||
|
|
||||||
|
@Schema(description = "目标贴皮排单ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
@NotNull(message = "{veneer.plan.id.required}")
|
||||||
|
private Long planId;
|
||||||
|
}
|
||||||
+14
@@ -5,6 +5,7 @@ import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
|||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.UnplannedVeneerPlateRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortRespVO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderPlateVeneerDO;
|
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderPlateVeneerDO;
|
||||||
@@ -41,6 +42,19 @@ public interface VeneerPlanMapper extends BaseMapperX<OrderVeneerPlanDO> {
|
|||||||
*/
|
*/
|
||||||
List<VeneerPlanPlateRespVO> selectPlanPlateList(@Param("planId") Long planId);
|
List<VeneerPlanPlateRespVO> selectPlanPlateList(@Param("planId") Long planId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询指定订单中与目标贴皮排单商品匹配的未排贴皮板件。
|
||||||
|
*
|
||||||
|
* @param orderIds 订单ID列表
|
||||||
|
* @param planId 目标贴皮排单ID
|
||||||
|
* @param organId 组织ID
|
||||||
|
* @return 未排贴皮板件原始数据
|
||||||
|
*/
|
||||||
|
List<UnplannedVeneerPlateRespVO> selectNoPlanVeneerPlateList(
|
||||||
|
@Param("orderIds") List<Long> orderIds,
|
||||||
|
@Param("planId") Long planId,
|
||||||
|
@Param("organId") Long organId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询尚未完成开料的贴皮排单优先级列表。
|
* 查询尚未完成开料的贴皮排单优先级列表。
|
||||||
*
|
*
|
||||||
|
|||||||
+10
@@ -6,6 +6,8 @@ import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanCreateRe
|
|||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanNoPlanPlateDataRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanNoPlanPlateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanProduceReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanProduceReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanRemovePlateReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanRemovePlateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortReqVO;
|
||||||
@@ -85,6 +87,14 @@ public interface VeneerPlanService {
|
|||||||
*/
|
*/
|
||||||
List<VeneerPlanPlateRespVO> getPlanPlateList(Long planId);
|
List<VeneerPlanPlateRespVO> getPlanPlateList(Long planId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询指定订单中与目标贴皮排单商品匹配的未排贴皮板件。
|
||||||
|
*
|
||||||
|
* @param req 订单ID列表和目标贴皮排单ID
|
||||||
|
* @return 未排贴皮板件及原板件造型数据
|
||||||
|
*/
|
||||||
|
VeneerPlanNoPlanPlateDataRespVO getNoPlanPlateData(VeneerPlanNoPlanPlateReqVO req);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询未完成开料的贴皮排单优先级列表。
|
* 查询未完成开料的贴皮排单优先级列表。
|
||||||
*
|
*
|
||||||
|
|||||||
+70
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
|
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
import com.cf.imes.framework.common.util.object.BeanUtils;
|
||||||
import com.cf.imes.framework.security.core.LoginUser;
|
import com.cf.imes.framework.security.core.LoginUser;
|
||||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
@@ -17,6 +18,8 @@ import com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO;
|
|||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanAddPlateReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanAddPlateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanCreateReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanCreateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanGroupReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanGroupReqVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanNoPlanPlateDataRespVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanNoPlanPlateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPlateRespVO;
|
||||||
@@ -26,7 +29,9 @@ import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortReqV
|
|||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortRespVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanSortRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanUpdateReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanUpdateReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanWithdrawProduceReqVO;
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanWithdrawProduceReqVO;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.veneer.vo.UnplannedVeneerPlateRespVO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderPlateVeneerDO;
|
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderPlateVeneerDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderVeneerGoodsDO;
|
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderVeneerGoodsDO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderVeneerPlanDO;
|
import com.cf.imes.module.executor.dal.dataobject.veneer.OrderVeneerPlanDO;
|
||||||
@@ -432,6 +437,71 @@ public class VeneerPlanServiceImpl implements VeneerPlanService {
|
|||||||
return veneerPlanMapper.selectPlanPlateList(planId);
|
return veneerPlanMapper.selectPlanPlateList(planId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VeneerPlanNoPlanPlateDataRespVO getNoPlanPlateData(
|
||||||
|
VeneerPlanNoPlanPlateReqVO req) {
|
||||||
|
OrderVeneerPlanDO plan = validatePlanExists(req.getPlanId());
|
||||||
|
LoginUser loginUser = Objects.requireNonNull(SecurityFrameworkUtils.getLoginUser());
|
||||||
|
|
||||||
|
// 只查询当前排单贴皮商品对应的未排记录,A/B 面保留为独立记录。
|
||||||
|
List<UnplannedVeneerPlateRespVO> rawPlates =
|
||||||
|
veneerPlanMapper.selectNoPlanVeneerPlateList(
|
||||||
|
req.getOrderIds(), plan.getId(), loginUser.getOrganId());
|
||||||
|
List<UnplannedVeneerPlateRespVO> plates = mergeNoPlanVeneerPlateDetails(rawPlates);
|
||||||
|
|
||||||
|
// 同一原板的 A/B 面共用一份造型数据,通过 plateId 关联,避免重复返回。
|
||||||
|
Map<Long, OrderModelDO> modelMap = new LinkedHashMap<>();
|
||||||
|
for (UnplannedVeneerPlateRespVO plate : plates) {
|
||||||
|
if (plate.getPlateId() == null || StrUtil.isBlank(plate.getModelData())
|
||||||
|
|| modelMap.containsKey(plate.getPlateId())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
OrderModelDO model = JsonUtils.parseObject(plate.getModelData(), OrderModelDO.class);
|
||||||
|
if (model != null) {
|
||||||
|
model.setPlateId(plate.getPlateId());
|
||||||
|
modelMap.put(plate.getPlateId(), model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return VeneerPlanNoPlanPlateDataRespVO.builder()
|
||||||
|
.plateList(plates)
|
||||||
|
.plateModels(new ArrayList<>(modelMap.values()))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 合并同一贴皮面因多个加工组产生的重复行。
|
||||||
|
*
|
||||||
|
* @param rawPlates SQL 原始查询结果
|
||||||
|
* @return 按贴皮分解记录 ID 去重后的结果
|
||||||
|
*/
|
||||||
|
private List<UnplannedVeneerPlateRespVO> mergeNoPlanVeneerPlateDetails(
|
||||||
|
List<UnplannedVeneerPlateRespVO> rawPlates) {
|
||||||
|
if (CollUtil.isEmpty(rawPlates)) {
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<Long, UnplannedVeneerPlateRespVO> plateMap = new LinkedHashMap<>();
|
||||||
|
Map<Long, Set<String>> groupNameMap = new HashMap<>();
|
||||||
|
for (UnplannedVeneerPlateRespVO plate : rawPlates) {
|
||||||
|
if (plate.getId() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
plateMap.putIfAbsent(plate.getId(), plate);
|
||||||
|
if (StrUtil.isNotBlank(plate.getProcessGroupName())) {
|
||||||
|
groupNameMap.computeIfAbsent(plate.getId(), key -> new LinkedHashSet<>())
|
||||||
|
.add(plate.getProcessGroupName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plateMap.forEach((id, plate) -> {
|
||||||
|
Set<String> groupNames = groupNameMap.get(id);
|
||||||
|
plate.setProcessGroupName(CollUtil.isEmpty(groupNames)
|
||||||
|
? null : String.join(",", groupNames));
|
||||||
|
});
|
||||||
|
return new ArrayList<>(plateMap.values());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<VeneerPlanSortRespVO> getPlanSortPage() {
|
public List<VeneerPlanSortRespVO> getPlanSortPage() {
|
||||||
return veneerPlanMapper.selectPlanSortList(
|
return veneerPlanMapper.selectPlanSortList(
|
||||||
|
|||||||
+131
@@ -2,6 +2,15 @@
|
|||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.cf.imes.module.executor.dal.mysql.veneer.VeneerPlanMapper">
|
<mapper namespace="com.cf.imes.module.executor.dal.mysql.veneer.VeneerPlanMapper">
|
||||||
|
|
||||||
|
<resultMap id="NoPlanVeneerPlateMap"
|
||||||
|
type="com.cf.imes.module.executor.controller.admin.veneer.vo.UnplannedVeneerPlateRespVO"
|
||||||
|
autoMapping="true">
|
||||||
|
<id property="id" column="id"/>
|
||||||
|
<id property="plateId" column="plateId"/>
|
||||||
|
<result property="modelData" column="modelData"
|
||||||
|
typeHandler="com.cf.imes.framework.mybatis.core.type.CompressStringTypeHandler"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
<select id="selectPlanPage"
|
<select id="selectPlanPage"
|
||||||
resultType="com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO">
|
resultType="com.cf.imes.module.executor.controller.admin.veneer.vo.VeneerPlanPageRespVO">
|
||||||
SELECT ovp.id,
|
SELECT ovp.id,
|
||||||
@@ -156,6 +165,128 @@
|
|||||||
ORDER BY opv.order_plate_id DESC, opv.veneer_side
|
ORDER BY opv.order_plate_id DESC, opv.veneer_side
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectNoPlanVeneerPlateList"
|
||||||
|
resultMap="NoPlanVeneerPlateMap">
|
||||||
|
SELECT opv.id,
|
||||||
|
opv.order_id AS orderId,
|
||||||
|
opv.order_goods_id AS orderGoodsId,
|
||||||
|
opv.order_veneer_goods_id AS orderVeneerGoodsId,
|
||||||
|
opv.order_plate_id AS plateId,
|
||||||
|
opv.plate_no AS plateNo,
|
||||||
|
opv.plate_name AS plateName,
|
||||||
|
opv.plate_length AS height,
|
||||||
|
opv.plate_length AS length,
|
||||||
|
opv.plate_width AS width,
|
||||||
|
opv.plate_thickness AS thickness,
|
||||||
|
opv.veneer_area AS area,
|
||||||
|
opv.hole_arrange AS holeArrange,
|
||||||
|
opv.veneer_side AS veneerSide,
|
||||||
|
opv.plate_surface AS plateSurface,
|
||||||
|
opv.veneer_no AS veneerNo,
|
||||||
|
opv.outer_margin AS outerMargin,
|
||||||
|
ovg.source_veneer_id AS sourceVeneerId,
|
||||||
|
ovg.goods_id AS sourceVeneerNo,
|
||||||
|
ovg.goods_name AS veneerName,
|
||||||
|
ovg.product_level AS productLevel,
|
||||||
|
ovg.color AS veneerColor,
|
||||||
|
ovg.material AS veneerMaterial,
|
||||||
|
op.goods_id AS goodsId,
|
||||||
|
op.custom_plate_no AS customPlateNo,
|
||||||
|
op.name AS name,
|
||||||
|
op.split_width AS splitWidth,
|
||||||
|
op.split_height AS splitHeight,
|
||||||
|
op.split_thickness AS splitThickness,
|
||||||
|
op.seal_left AS sealLeft,
|
||||||
|
op.seal_right AS sealRight,
|
||||||
|
op.seal_up AS sealUp,
|
||||||
|
op.seal_down AS sealDown,
|
||||||
|
op.reserved_edge_left AS reservedEdgeLeft,
|
||||||
|
op.reserved_edge_right AS reservedEdgeRight,
|
||||||
|
op.reserved_edge_up AS reservedEdgeUp,
|
||||||
|
op.reserved_edge_down AS reservedEdgeDown,
|
||||||
|
op.texture,
|
||||||
|
op.hole_face AS holeFace,
|
||||||
|
op.unregular_point_count AS unregularPointCount,
|
||||||
|
op.front_hole_count AS frontHoleCount,
|
||||||
|
op.back_hole_count AS backHoleCount,
|
||||||
|
op.side_hole_count AS sideHoleCount,
|
||||||
|
op.front_model_count AS frontModelCount,
|
||||||
|
op.back_model_count AS backModelCount,
|
||||||
|
op.is_door AS isDoor,
|
||||||
|
op.is_arc_across AS isArcAcross,
|
||||||
|
op.module_type_id AS moduleTypeId,
|
||||||
|
op.offset_x AS offsetX,
|
||||||
|
op.offset_y AS offsetY,
|
||||||
|
op.remark,
|
||||||
|
op.type,
|
||||||
|
op.is_row_hole AS isRowHole,
|
||||||
|
op.is_sculpt AS isSculpt,
|
||||||
|
op.is_side_sculpt AS isSideSculpt,
|
||||||
|
op.is_2v AS is2v,
|
||||||
|
op.is_side_2v AS isSide2v,
|
||||||
|
CASE WHEN op.front_model_count > 0 AND op.back_model_count > 0
|
||||||
|
THEN 1 ELSE 0 END AS doubleSideModel,
|
||||||
|
CASE WHEN op.front_hole_count > 0 AND op.back_hole_count > 0
|
||||||
|
THEN 1 ELSE 0 END AS doubleSideHole,
|
||||||
|
CASE WHEN op.front_model_count > 0 THEN 1 ELSE 0 END AS frontModel,
|
||||||
|
CASE WHEN op.back_model_count > 0 THEN 1 ELSE 0 END AS backModel,
|
||||||
|
CASE WHEN op.front_hole_count > 0 THEN 1 ELSE 0 END AS frontHole,
|
||||||
|
CASE WHEN op.back_hole_count > 0 THEN 1 ELSE 0 END AS backHole,
|
||||||
|
CASE WHEN op.side_hole_count > 0 THEN 1 ELSE 0 END AS sideHole,
|
||||||
|
ogs.goods_name AS goodsName,
|
||||||
|
ogs.color,
|
||||||
|
ogs.brand,
|
||||||
|
ogs.material,
|
||||||
|
ogp.name AS processGroupName,
|
||||||
|
ob.room_name AS roomName,
|
||||||
|
ob.name AS bodyName,
|
||||||
|
op.model_data AS modelData
|
||||||
|
FROM order_plate_veneer opv
|
||||||
|
JOIN order_veneer_plan ovp
|
||||||
|
ON ovp.id = #{planId}
|
||||||
|
AND ovp.organ_id = #{organId}
|
||||||
|
AND ovp.deleted = false
|
||||||
|
JOIN order_veneer_goods ovg
|
||||||
|
ON ovg.organ_id = opv.organ_id
|
||||||
|
AND ovg.order_id = opv.order_id
|
||||||
|
AND ovg.id = opv.order_veneer_goods_id
|
||||||
|
AND ovg.source_veneer_id = ovp.source_veneer_id
|
||||||
|
AND ovg.deleted = false
|
||||||
|
JOIN order_plate op
|
||||||
|
ON op.organ_id = opv.organ_id
|
||||||
|
AND op.order_id = opv.order_id
|
||||||
|
AND op.id = opv.order_plate_id
|
||||||
|
AND op.deleted = false
|
||||||
|
JOIN order_goods ogs
|
||||||
|
ON ogs.organ_id = op.organ_id
|
||||||
|
AND ogs.order_id = op.order_id
|
||||||
|
AND ogs.id = op.goods_id
|
||||||
|
AND ogs.deleted = false
|
||||||
|
LEFT JOIN order_item oi
|
||||||
|
ON oi.organ_id = opv.organ_id
|
||||||
|
AND oi.order_id = opv.order_id
|
||||||
|
AND oi.plate_id = opv.order_plate_id
|
||||||
|
AND oi.plate_id != 0
|
||||||
|
LEFT JOIN order_body ob
|
||||||
|
ON ob.organ_id = oi.organ_id
|
||||||
|
AND ob.order_id = oi.order_id
|
||||||
|
AND ob.id = oi.body_id
|
||||||
|
AND ob.deleted = false
|
||||||
|
LEFT JOIN order_group ogp
|
||||||
|
ON ogp.organ_id = oi.organ_id
|
||||||
|
AND ogp.order_id = oi.order_id
|
||||||
|
AND ogp.id = oi.group_id
|
||||||
|
AND ogp.deleted = false
|
||||||
|
WHERE opv.organ_id = #{organId}
|
||||||
|
AND opv.order_id IN
|
||||||
|
<foreach collection="orderIds" item="orderId" open="(" close=")" separator=",">
|
||||||
|
#{orderId}
|
||||||
|
</foreach>
|
||||||
|
AND opv.deleted = false
|
||||||
|
AND opv.plan_id = 0
|
||||||
|
ORDER BY opv.order_id ASC, opv.order_plate_id ASC, opv.veneer_no ASC, oi.group_id ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectPendingVeneerList"
|
<select id="selectPendingVeneerList"
|
||||||
resultType="com.cf.imes.module.executor.dal.dataobject.veneer.OrderPlateVeneerDO">
|
resultType="com.cf.imes.module.executor.dal.dataobject.veneer.OrderPlateVeneerDO">
|
||||||
SELECT opv.id,
|
SELECT opv.id,
|
||||||
|
|||||||
+2
@@ -115,6 +115,8 @@ veneer.plan.sort.record.duplicate=貼皮排單{0}被重複提交,請檢查後
|
|||||||
veneer.plan.sort.status.changed=貼皮排單不存在或狀態發生變化,請重新整理後再試
|
veneer.plan.sort.status.changed=貼皮排單不存在或狀態發生變化,請重新整理後再試
|
||||||
veneer.plan.not.exist=貼皮排單{0}不存在或已刪除,請重新整理後再試
|
veneer.plan.not.exist=貼皮排單{0}不存在或已刪除,請重新整理後再試
|
||||||
veneer.plan.id.required=貼皮排單ID不能為空
|
veneer.plan.id.required=貼皮排單ID不能為空
|
||||||
|
veneer.plan.noplan.order.ids.required=訂單ID列表不能為空
|
||||||
|
veneer.plan.noplan.order.ids.max=訂單ID列表不能超過200個
|
||||||
veneer.plan.process.required=請選擇貼皮排單的加工方案
|
veneer.plan.process.required=請選擇貼皮排單的加工方案
|
||||||
veneer.plan.process.id.required=貼皮排單加工方案組ID不能為空
|
veneer.plan.process.id.required=貼皮排單加工方案組ID不能為空
|
||||||
veneer.plan.process.name.required=貼皮排單加工方案組名稱不能為空
|
veneer.plan.process.name.required=貼皮排單加工方案組名稱不能為空
|
||||||
|
|||||||
+2
@@ -115,6 +115,8 @@ veneer.plan.sort.record.duplicate=Veneer plan {0} was submitted more than once.
|
|||||||
veneer.plan.sort.status.changed=The veneer plan does not exist or its status has changed. Please refresh and retry
|
veneer.plan.sort.status.changed=The veneer plan does not exist or its status has changed. Please refresh and retry
|
||||||
veneer.plan.not.exist=Veneer plan {0} does not exist or has been deleted. Please refresh and retry
|
veneer.plan.not.exist=Veneer plan {0} does not exist or has been deleted. Please refresh and retry
|
||||||
veneer.plan.id.required=Veneer plan ID is required
|
veneer.plan.id.required=Veneer plan ID is required
|
||||||
|
veneer.plan.noplan.order.ids.required=The order ID list is required
|
||||||
|
veneer.plan.noplan.order.ids.max=The order ID list cannot contain more than 200 orders
|
||||||
veneer.plan.process.required=Please select a process scheme for the veneer plan
|
veneer.plan.process.required=Please select a process scheme for the veneer plan
|
||||||
veneer.plan.process.id.required=The process scheme ID of the veneer plan is required
|
veneer.plan.process.id.required=The process scheme ID of the veneer plan is required
|
||||||
veneer.plan.process.name.required=The process scheme name of the veneer plan is required
|
veneer.plan.process.name.required=The process scheme name of the veneer plan is required
|
||||||
|
|||||||
+2
@@ -115,6 +115,8 @@ veneer.plan.sort.record.duplicate=贴皮排单{0}被重复提交,请检查后
|
|||||||
veneer.plan.sort.status.changed=贴皮排单不存在或状态发生变化,请刷新后重试
|
veneer.plan.sort.status.changed=贴皮排单不存在或状态发生变化,请刷新后重试
|
||||||
veneer.plan.not.exist=贴皮排单{0}不存在或已删除,请刷新后重试
|
veneer.plan.not.exist=贴皮排单{0}不存在或已删除,请刷新后重试
|
||||||
veneer.plan.id.required=贴皮排单ID不能为空
|
veneer.plan.id.required=贴皮排单ID不能为空
|
||||||
|
veneer.plan.noplan.order.ids.required=订单ID列表不能为空
|
||||||
|
veneer.plan.noplan.order.ids.max=订单ID列表不能超过200个
|
||||||
veneer.plan.process.required=请选择贴皮排单的加工方案
|
veneer.plan.process.required=请选择贴皮排单的加工方案
|
||||||
veneer.plan.process.id.required=贴皮排单加工方案组ID不能为空
|
veneer.plan.process.id.required=贴皮排单加工方案组ID不能为空
|
||||||
veneer.plan.process.name.required=贴皮排单加工方案组名称不能为空
|
veneer.plan.process.name.required=贴皮排单加工方案组名称不能为空
|
||||||
|
|||||||
Reference in New Issue
Block a user