From 6e619261b79b44548c6f08a80973877ade71dabf Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Mon, 14 Apr 2025 18:00:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=E6=96=B0=E5=A2=9E-=E7=94=9F=E4=BA=A7=EF=BC=8C=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E6=9D=BF=E6=9D=90=E4=BF=A1=E6=81=AF=EF=BC=8C=E6=89=93?= =?UTF-8?q?=E5=8C=85/=E9=A2=84=E6=89=93=E5=8C=85=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/vo/order/LabelOrderPackData.java | 9 +--- .../order/vo/order/LabelOrderPlateData.java | 43 ++++++++++++++++++ .../goods/PlanActualGoodsModelDO.java | 13 ------ .../service/order/OrderServiceImpl.java | 44 ++++++++++++++++++- .../executor/util/elasticsearch/EsUtils.java | 23 +++++----- .../mapper/pack/OrderPackageMapper.xml | 5 +-- .../mapper/planitem/PlanItemMapper.xml | 2 + .../resources/mapper/plate/PlateMapper.xml | 3 ++ .../datasource/DataSourceController.java | 2 - .../service/setting/SettingServiceImpl.java | 3 +- 10 files changed, 107 insertions(+), 40 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java index f6bd05606..96cd960d4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPackData.java @@ -21,13 +21,6 @@ public class LabelOrderPackData { private Long orderNo; -// @Schema(description = "包裹号-包裹编号") -// private List packageNo; -// -// -// @Schema(description = "包裹ID") -// private List packageId; - @Schema(description = "包裹列表") private List packageInfos; @@ -38,7 +31,7 @@ public class LabelOrderPackData { @Data public static class PackageInfo { - @Schema(description = "包裹号") + @Schema(description = "包裹号-包裹编号") private String packageNo; @Schema(description = "包裹ID") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPlateData.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPlateData.java index 3a5e91053..f88b382df 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPlateData.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/LabelOrderPlateData.java @@ -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; + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java index 8dfbd7cf3..a2748c1bc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java @@ -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; - - } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index 1894c2dab..d30fe44d1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -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 packIds = labelOrderPlateData.stream().map(LabelOrderPlateData::getPackageNo).distinct().toList(); + List rawGoodsId = labelOrderPlateData.stream().map(LabelOrderPlateData::getRawGoodsId).distinct().toList(); + + List planIdList = labelOrderPlateData.stream().map(LabelOrderPlateData::getPlanId).distinct().toList(); + // 配件信息 List labelOrderPartsData = orderPartsMapper.selectLabelOrderPartsData(orderIds, organId); @@ -1531,13 +1538,41 @@ public class OrderServiceImpl implements OrderService { } - // 补充缺少的小板信息 + // 补充实际选择的大板信息-即生产的信息 + if(CollUtil.isNotEmpty(planIdList)){ + + List 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 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 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); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/elasticsearch/EsUtils.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/elasticsearch/EsUtils.java index fa6a57933..f0ab56d5c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/elasticsearch/EsUtils.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/elasticsearch/EsUtils.java @@ -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 values, String index) { List 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); } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml index 9f2283506..02374260c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/pack/OrderPackageMapper.xml @@ -158,9 +158,8 @@ - + + diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml index 1ac5e05f6..ad9552484 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml @@ -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, diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index ed6c4549f..be6b1b3b0 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -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 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/datasource/DataSourceController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/datasource/DataSourceController.java index 2b930da8f..1b33be2a0 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/datasource/DataSourceController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/datasource/DataSourceController.java @@ -81,8 +81,6 @@ public class DataSourceController { public CommonResult> list( ) { return success(dataSourceService.list()); - /*List list = - return success(BeanUtils.toBean(list, DataSourceRespVO.class));*/ } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java index d13acb6b2..5e0b221e0 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/setting/SettingServiceImpl.java @@ -80,7 +80,8 @@ public class SettingServiceImpl implements SettingService{ PackageConfigDO packageConfigDO = packageConfigMapper.selectSetting(type, loginUser.getId(), loginUser.getOrganId()); if (packageConfigDO == null) { - throw exception(CURRENTLY_NO_CONFIGURATION_AVAILABLE,type == 1 ? UserSettingTypeEnum.PREPACKAGED.getName(): UserSettingTypeEnum.PACKAGED.getName()); +// throw exception(CURRENTLY_NO_CONFIGURATION_AVAILABLE,type == 1 ? UserSettingTypeEnum.PREPACKAGED.getName(): UserSettingTypeEnum.PACKAGED.getName()); + return new PackageConfigDO(); } packageConfigDO.setSetting(unzipString(packageConfigDO.getSetting()));