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:
+1
-8
@@ -21,13 +21,6 @@ public class LabelOrderPackData {
|
||||
private Long orderNo;
|
||||
|
||||
|
||||
// @Schema(description = "包裹号-包裹编号")
|
||||
// private List<String> packageNo;
|
||||
//
|
||||
//
|
||||
// @Schema(description = "包裹ID")
|
||||
// private List<Long> packageId;
|
||||
|
||||
@Schema(description = "包裹列表")
|
||||
private List<PackageInfo> packageInfos;
|
||||
|
||||
@@ -38,7 +31,7 @@ public class LabelOrderPackData {
|
||||
|
||||
@Data
|
||||
public static class PackageInfo {
|
||||
@Schema(description = "包裹号")
|
||||
@Schema(description = "包裹号-包裹编号")
|
||||
private String packageNo;
|
||||
|
||||
@Schema(description = "包裹ID")
|
||||
|
||||
+43
@@ -16,6 +16,14 @@ public class LabelOrderPlateData {
|
||||
private Long plateId;
|
||||
|
||||
|
||||
@Schema(description = "设计端对应的ID-不是板材的ID")
|
||||
private Long rawGoodsId;
|
||||
|
||||
|
||||
@Schema(description = "排单ID")
|
||||
private Long planId;
|
||||
|
||||
|
||||
@Schema(description = "房间ID")
|
||||
private Long roomGroupNo;
|
||||
|
||||
@@ -136,5 +144,40 @@ public class LabelOrderPlateData {
|
||||
private String packageSerialNo;
|
||||
|
||||
|
||||
@Schema(description = "板材名称-设计")
|
||||
private String rawGoodsName;
|
||||
|
||||
|
||||
@Schema(description = "板颜色-设计")
|
||||
private String rawGoodsColor;
|
||||
|
||||
|
||||
@Schema(description = "板材质-设计")
|
||||
private String rawGoodsMaterial;
|
||||
|
||||
|
||||
@Schema(description = "大板规格-设计")
|
||||
private String rawGoodsSpec;
|
||||
|
||||
|
||||
@Schema(description = "大板厚-设计")
|
||||
private Double rawGoodsThickness;
|
||||
|
||||
|
||||
@Schema(description = "板材名称-生产")
|
||||
private String actualGoodsName;
|
||||
|
||||
|
||||
@Schema(description = "板颜色-生产")
|
||||
private String actualGoodsColor;
|
||||
|
||||
|
||||
@Schema(description = "板材质-生产")
|
||||
private String actualGoodsMaterial;
|
||||
|
||||
|
||||
@Schema(description = "大板厚-生产")
|
||||
private Double actualGoodsThickness;
|
||||
|
||||
|
||||
}
|
||||
|
||||
-13
@@ -40,17 +40,4 @@ public class PlanActualGoodsModelDO extends ESDocument {
|
||||
private BigDecimal thickness;
|
||||
|
||||
|
||||
// @Schema(description = "纹路")
|
||||
// private Integer texture;
|
||||
//
|
||||
// @Schema(description = "宽度")
|
||||
// private BigDecimal width;
|
||||
//
|
||||
// @Schema(description = "高度")
|
||||
// private BigDecimal height;
|
||||
//
|
||||
// @Schema(description = "规格")
|
||||
// private String spec;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+42
-2
@@ -34,6 +34,7 @@ import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateGoodsRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.PlanActualGoodsModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
@@ -178,6 +179,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
public static final String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model";
|
||||
|
||||
String ORDER_REMAIN_PLATE_MODEL = "imes_order_optimize_plate_model";
|
||||
private static final String PLAN_ACTUAL_GOODS_MODEL = "imes_plan_actual_goods_model";
|
||||
|
||||
|
||||
public static final Double ZERO = 0.0;
|
||||
|
||||
@@ -1509,6 +1512,10 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
List<Long> packIds = labelOrderPlateData.stream().map(LabelOrderPlateData::getPackageNo).distinct().toList();
|
||||
|
||||
List<Long> rawGoodsId = labelOrderPlateData.stream().map(LabelOrderPlateData::getRawGoodsId).distinct().toList();
|
||||
|
||||
List<Long> planIdList = labelOrderPlateData.stream().map(LabelOrderPlateData::getPlanId).distinct().toList();
|
||||
|
||||
|
||||
// 配件信息
|
||||
List<LabelOrderPartsData> labelOrderPartsData = orderPartsMapper.selectLabelOrderPartsData(orderIds, organId);
|
||||
@@ -1531,13 +1538,41 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
|
||||
// 补充缺少的小板信息
|
||||
// 补充实际选择的大板信息-即生产的信息
|
||||
if(CollUtil.isNotEmpty(planIdList)){
|
||||
|
||||
List<PlanActualGoodsModelDO> actualGoodsModelDOS = esUtils.getEsDocument("planId", planIdList, planIdList.size(), PLAN_ACTUAL_GOODS_MODEL, PlanActualGoodsModelDO.class);
|
||||
|
||||
if(CollUtil.isNotEmpty(actualGoodsModelDOS)) {
|
||||
labelOrderPlateData.forEach(f -> {
|
||||
f.setActualGoodsName(actualGoodsModelDOS.stream().filter(a -> a.getPlanId().equals(f.getPlanId())).findFirst().orElse(new PlanActualGoodsModelDO()).getGoodsName());
|
||||
f.setActualGoodsColor(actualGoodsModelDOS.stream().filter(a -> a.getPlanId().equals(f.getPlanId())).findFirst().orElse(new PlanActualGoodsModelDO()).getColor());
|
||||
f.setActualGoodsMaterial(actualGoodsModelDOS.stream().filter(a -> a.getPlanId().equals(f.getPlanId())).findFirst().orElse(new PlanActualGoodsModelDO()).getMaterial());
|
||||
f.setActualGoodsThickness(actualGoodsModelDOS.stream().filter(a -> a.getPlanId().equals(f.getPlanId())).findFirst().orElse(new PlanActualGoodsModelDO()).getThickness().doubleValue());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 查询设计的大板信息
|
||||
List<RawGoodsDO> rawGoodsDOS = rawGoodsMapper.selectBatchIds(rawGoodsId);
|
||||
|
||||
|
||||
// 补充小板缺少的信息
|
||||
labelOrderPlateData.forEach(f->{
|
||||
|
||||
// 补充缺少的生产单信息
|
||||
f.setOrderDate(labelOrderData.stream().filter(o->o.getOrderNo().equals(f.getOrderId())).findFirst().orElse(new LabelOrderData()).getOrderDate());
|
||||
f.setDeliveryDate(labelOrderData.stream().filter(o->o.getOrderNo().equals(f.getOrderId())).findFirst().orElse(new LabelOrderData()).getDeliveryDate());
|
||||
f.setCustomOrderNo(labelOrderData.stream().filter(o->o.getOrderNo().equals(f.getOrderId())).findFirst().orElse(new LabelOrderData()).getCustomOrderNo());
|
||||
|
||||
// 补充缺少设计的大板信息
|
||||
f.setRawGoodsName(rawGoodsDOS.stream().filter(r->r.getId().equals(f.getRawGoodsId())).findFirst().orElse(new RawGoodsDO()).getGoodsName());
|
||||
f.setRawGoodsColor(rawGoodsDOS.stream().filter(r->r.getId().equals(f.getRawGoodsId())).findFirst().orElse(new RawGoodsDO()).getColor());
|
||||
f.setRawGoodsMaterial(rawGoodsDOS.stream().filter(r->r.getId().equals(f.getRawGoodsId())).findFirst().orElse(new RawGoodsDO()).getMaterial());
|
||||
f.setRawGoodsSpec(rawGoodsDOS.stream().filter(r->r.getId().equals(f.getRawGoodsId())).findFirst().orElse(new RawGoodsDO()).getSpec());
|
||||
f.setRawGoodsThickness(rawGoodsDOS.stream().filter(r->r.getId().equals(f.getRawGoodsId())).findFirst().orElse(new RawGoodsDO()).getThickness());
|
||||
|
||||
});
|
||||
|
||||
orderAllData.setOrderList(labelOrderData);
|
||||
@@ -1598,7 +1633,12 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
List<OrderPackageDO> packageDOS = orderPackageMapper.selectPackListByIds(packIds,getUserOrganId());
|
||||
|
||||
labelOrderPlateData.forEach(f->f.setPackageSerialNo(packageDOS.stream().filter(o->o.getId().equals(f.getPackageNo())).findFirst().orElse(new OrderPackageDO()).getPackageNo()));
|
||||
labelOrderPlateData.forEach(f->
|
||||
f.setPackageSerialNo(
|
||||
packageDOS.stream()
|
||||
.filter(o->o.getId().equals(f.getPackageNo()))
|
||||
.findFirst()
|
||||
.orElse(new OrderPackageDO()).getPackageNo()));
|
||||
|
||||
orderAllData.setPackDataList(labelOrderPackData);
|
||||
|
||||
|
||||
+12
-11
@@ -7,13 +7,13 @@ import co.elastic.clients.elasticsearch._types.ElasticsearchException;
|
||||
import co.elastic.clients.elasticsearch._types.FieldValue;
|
||||
import co.elastic.clients.elasticsearch._types.query_dsl.Query;
|
||||
import co.elastic.clients.elasticsearch.core.DeleteByQueryRequest;
|
||||
import co.elastic.clients.elasticsearch.core.DeleteByQueryResponse;
|
||||
import co.elastic.clients.elasticsearch.core.SearchRequest;
|
||||
import co.elastic.clients.elasticsearch.core.SearchResponse;
|
||||
import co.elastic.clients.elasticsearch.core.search.Hit;
|
||||
import co.elastic.clients.elasticsearch.indices.RefreshRequest;
|
||||
import co.elastic.clients.json.JsonpMappingException;
|
||||
import com.cf.imes.framework.common.exception.ServiceException;
|
||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -37,6 +37,9 @@ public class EsUtils {
|
||||
|
||||
private final ElasticsearchClient elasticsearchClient;
|
||||
|
||||
private static final String DOCUMENT_DELETE_ERROR = "ES文档删除失败:{},排单号/生产单号为:{}";
|
||||
|
||||
|
||||
|
||||
@Resource
|
||||
private ESDocumentService esDocumentService;
|
||||
@@ -44,7 +47,6 @@ public class EsUtils {
|
||||
|
||||
public EsUtils(ElasticsearchClient elasticsearchClient) {
|
||||
this.elasticsearchClient = elasticsearchClient;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -295,10 +297,9 @@ public class EsUtils {
|
||||
builder.query(q -> q.term(b -> b.field(filedName).value(value)));
|
||||
|
||||
try {
|
||||
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build());
|
||||
log.info("Deleted {} documents with value {}", response.deleted(), value);
|
||||
elasticsearchClient.deleteByQuery(builder.build());
|
||||
} catch (IOException | ElasticsearchException e) {
|
||||
log.error("Error deleting documents with value {}: {}", value, e.getMessage());
|
||||
log.error(DOCUMENT_DELETE_ERROR, e.getMessage(),value);
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
}
|
||||
}
|
||||
@@ -315,7 +316,7 @@ public class EsUtils {
|
||||
try {
|
||||
elasticsearchClient.deleteByQuery(builder.build());
|
||||
} catch (IOException | ElasticsearchException e) {
|
||||
log.error("ES文档删除失败:{}", e.getMessage());
|
||||
log.error(DOCUMENT_DELETE_ERROR, e.getMessage(),value1);
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
}
|
||||
}
|
||||
@@ -337,25 +338,25 @@ public class EsUtils {
|
||||
try {
|
||||
elasticsearchClient.deleteByQuery(builder.build());
|
||||
} catch (IOException | ElasticsearchException e) {
|
||||
log.error("ES文档删除失败:", e.getMessage());
|
||||
log.error(DOCUMENT_DELETE_ERROR, e.getMessage(),value1);
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void deleteEsDocument(String filedName,List<Long> values, String index) {
|
||||
|
||||
List<FieldValue> fieldValues = values.stream().map(FieldValue::of).toList();
|
||||
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder();
|
||||
builder.index(index);
|
||||
|
||||
|
||||
builder.query(q -> q.terms(b -> b.field(filedName).terms(e -> e.value(fieldValues))));
|
||||
|
||||
try {
|
||||
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build());
|
||||
log.info("Deleted {} documents with values {}", response.deleted(), values);
|
||||
elasticsearchClient.deleteByQuery(builder.build());
|
||||
} catch (IOException | ElasticsearchException e) {
|
||||
log.error("Error deleting documents with values {}: {}", values, e.getMessage());
|
||||
log.error(DOCUMENT_DELETE_ERROR, e.getMessage(), JsonUtils.toJsonString(values));
|
||||
throw new ServiceException(ES_DATA_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -158,9 +158,8 @@
|
||||
|
||||
<result property="orderNo" column="orderNo"/>
|
||||
|
||||
<collection
|
||||
property="packageInfos"
|
||||
ofType="com.cf.imes.module.executor.controller.admin.order.vo.order.LabelOrderPackData$PackageInfo">
|
||||
<collection property="packageInfos" ofType="com.cf.imes.module.executor.controller.admin.order.vo.order.LabelOrderPackData$PackageInfo">
|
||||
|
||||
<result property="packageNo" column="packageNo"/>
|
||||
<result property="packageId" column="packageId"/>
|
||||
|
||||
|
||||
+2
@@ -468,8 +468,10 @@
|
||||
ogs.color as plateColor,
|
||||
ogs.material as plateMaterial,
|
||||
op.id as plateId,
|
||||
opi.plan_id as planId,
|
||||
op.order_id as orderId,
|
||||
ogs.goods_name as goodsPlateName,
|
||||
ogs.raw_goods_id as rawGoodsId,
|
||||
op.name as plateName,
|
||||
op.plate_no as plateNo,
|
||||
op.custom_plate_no as customPlateNo,
|
||||
|
||||
+3
@@ -985,8 +985,10 @@
|
||||
ogs.color as plateColor,
|
||||
ogs.material as plateMaterial,
|
||||
op.id as plateId,
|
||||
opi.plan_id as planId,
|
||||
op.order_id as orderId,
|
||||
ogs.goods_name as goodsPlateName,
|
||||
ogs.raw_goods_id as rawGoodsId,
|
||||
op.name as plateName,
|
||||
op.plate_no as plateNo,
|
||||
op.custom_plate_no as customPlateNo,
|
||||
@@ -1011,6 +1013,7 @@
|
||||
left join order_goods ogs on op.organ_id = ogs.organ_id and op.order_id = ogs.order_id and op.goods_id = ogs.id
|
||||
left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_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
|
||||
left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id
|
||||
|
||||
where op.organ_id = #{organId}
|
||||
and op.deleted = false
|
||||
|
||||
Reference in New Issue
Block a user