标签数据源新增-生产,设计板材信息,打包/预打包配置去除提示信息

This commit is contained in:
liuzhaotian
2025-04-14 18:00:55 +08:00
parent 3ad912b179
commit 6e619261b7
10 changed files with 107 additions and 40 deletions
@@ -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")
@@ -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;
}
@@ -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;
}
@@ -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);
@@ -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);
}
}
@@ -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"/>
@@ -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,
@@ -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
@@ -81,8 +81,6 @@ public class DataSourceController {
public CommonResult<List<DataSourceRespVO>> list( ) {
return success(dataSourceService.list());
/*List<DataSourceDO> list =
return success(BeanUtils.toBean(list, DataSourceRespVO.class));*/
}
@@ -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()));