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

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; private Long orderNo;
// @Schema(description = "包裹号-包裹编号")
// private List<String> packageNo;
//
//
// @Schema(description = "包裹ID")
// private List<Long> packageId;
@Schema(description = "包裹列表") @Schema(description = "包裹列表")
private List<PackageInfo> packageInfos; private List<PackageInfo> packageInfos;
@@ -38,7 +31,7 @@ public class LabelOrderPackData {
@Data @Data
public static class PackageInfo { public static class PackageInfo {
@Schema(description = "包裹号") @Schema(description = "包裹号-包裹编号")
private String packageNo; private String packageNo;
@Schema(description = "包裹ID") @Schema(description = "包裹ID")
@@ -16,6 +16,14 @@ public class LabelOrderPlateData {
private Long plateId; private Long plateId;
@Schema(description = "设计端对应的ID-不是板材的ID")
private Long rawGoodsId;
@Schema(description = "排单ID")
private Long planId;
@Schema(description = "房间ID") @Schema(description = "房间ID")
private Long roomGroupNo; private Long roomGroupNo;
@@ -136,5 +144,40 @@ public class LabelOrderPlateData {
private String packageSerialNo; 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; 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.PlateGoodsRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO; 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.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.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; 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"; public static final String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model";
String ORDER_REMAIN_PLATE_MODEL = "imes_order_optimize_plate_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; 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> 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); 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->{ labelOrderPlateData.forEach(f->{
// 补充缺少的生产单信息
f.setOrderDate(labelOrderData.stream().filter(o->o.getOrderNo().equals(f.getOrderId())).findFirst().orElse(new LabelOrderData()).getOrderDate()); 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.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.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); orderAllData.setOrderList(labelOrderData);
@@ -1598,7 +1633,12 @@ public class OrderServiceImpl implements OrderService {
List<OrderPackageDO> packageDOS = orderPackageMapper.selectPackListByIds(packIds,getUserOrganId()); 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); 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.FieldValue;
import co.elastic.clients.elasticsearch._types.query_dsl.Query; import co.elastic.clients.elasticsearch._types.query_dsl.Query;
import co.elastic.clients.elasticsearch.core.DeleteByQueryRequest; 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.SearchRequest;
import co.elastic.clients.elasticsearch.core.SearchResponse; import co.elastic.clients.elasticsearch.core.SearchResponse;
import co.elastic.clients.elasticsearch.core.search.Hit; import co.elastic.clients.elasticsearch.core.search.Hit;
import co.elastic.clients.elasticsearch.indices.RefreshRequest; import co.elastic.clients.elasticsearch.indices.RefreshRequest;
import co.elastic.clients.json.JsonpMappingException; import co.elastic.clients.json.JsonpMappingException;
import com.cf.imes.framework.common.exception.ServiceException; 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.dal.ESDocument;
import com.cf.imes.framework.es.core.service.ESDocumentService; import com.cf.imes.framework.es.core.service.ESDocumentService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -37,6 +37,9 @@ public class EsUtils {
private final ElasticsearchClient elasticsearchClient; private final ElasticsearchClient elasticsearchClient;
private static final String DOCUMENT_DELETE_ERROR = "ES文档删除失败:{},排单号/生产单号为:{}";
@Resource @Resource
private ESDocumentService esDocumentService; private ESDocumentService esDocumentService;
@@ -44,7 +47,6 @@ public class EsUtils {
public EsUtils(ElasticsearchClient elasticsearchClient) { public EsUtils(ElasticsearchClient elasticsearchClient) {
this.elasticsearchClient = elasticsearchClient; this.elasticsearchClient = elasticsearchClient;
} }
@@ -295,10 +297,9 @@ public class EsUtils {
builder.query(q -> q.term(b -> b.field(filedName).value(value))); builder.query(q -> q.term(b -> b.field(filedName).value(value)));
try { try {
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build()); elasticsearchClient.deleteByQuery(builder.build());
log.info("Deleted {} documents with value {}", response.deleted(), value);
} catch (IOException | ElasticsearchException e) { } 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); throw new ServiceException(ES_DATA_ERROR);
} }
} }
@@ -315,7 +316,7 @@ public class EsUtils {
try { try {
elasticsearchClient.deleteByQuery(builder.build()); elasticsearchClient.deleteByQuery(builder.build());
} catch (IOException | ElasticsearchException e) { } catch (IOException | ElasticsearchException e) {
log.error("ES文档删除失败:{}", e.getMessage()); log.error(DOCUMENT_DELETE_ERROR, e.getMessage(),value1);
throw new ServiceException(ES_DATA_ERROR); throw new ServiceException(ES_DATA_ERROR);
} }
} }
@@ -337,25 +338,25 @@ public class EsUtils {
try { try {
elasticsearchClient.deleteByQuery(builder.build()); elasticsearchClient.deleteByQuery(builder.build());
} catch (IOException | ElasticsearchException e) { } catch (IOException | ElasticsearchException e) {
log.error("ES文档删除失败:", e.getMessage()); log.error(DOCUMENT_DELETE_ERROR, e.getMessage(),value1);
throw new ServiceException(ES_DATA_ERROR); throw new ServiceException(ES_DATA_ERROR);
} }
} }
public void deleteEsDocument(String filedName,List<Long> values, String index) { public void deleteEsDocument(String filedName,List<Long> values, String index) {
List<FieldValue> fieldValues = values.stream().map(FieldValue::of).toList(); List<FieldValue> fieldValues = values.stream().map(FieldValue::of).toList();
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder(); DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder();
builder.index(index); builder.index(index);
builder.query(q -> q.terms(b -> b.field(filedName).terms(e -> e.value(fieldValues)))); builder.query(q -> q.terms(b -> b.field(filedName).terms(e -> e.value(fieldValues))));
try { try {
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build()); elasticsearchClient.deleteByQuery(builder.build());
log.info("Deleted {} documents with values {}", response.deleted(), values);
} catch (IOException | ElasticsearchException e) { } 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); throw new ServiceException(ES_DATA_ERROR);
} }
} }
@@ -158,9 +158,8 @@
<result property="orderNo" column="orderNo"/> <result property="orderNo" column="orderNo"/>
<collection <collection property="packageInfos" ofType="com.cf.imes.module.executor.controller.admin.order.vo.order.LabelOrderPackData$PackageInfo">
property="packageInfos"
ofType="com.cf.imes.module.executor.controller.admin.order.vo.order.LabelOrderPackData$PackageInfo">
<result property="packageNo" column="packageNo"/> <result property="packageNo" column="packageNo"/>
<result property="packageId" column="packageId"/> <result property="packageId" column="packageId"/>
@@ -468,8 +468,10 @@
ogs.color as plateColor, ogs.color as plateColor,
ogs.material as plateMaterial, ogs.material as plateMaterial,
op.id as plateId, op.id as plateId,
opi.plan_id as planId,
op.order_id as orderId, op.order_id as orderId,
ogs.goods_name as goodsPlateName, ogs.goods_name as goodsPlateName,
ogs.raw_goods_id as rawGoodsId,
op.name as plateName, op.name as plateName,
op.plate_no as plateNo, op.plate_no as plateNo,
op.custom_plate_no as customPlateNo, op.custom_plate_no as customPlateNo,
@@ -985,8 +985,10 @@
ogs.color as plateColor, ogs.color as plateColor,
ogs.material as plateMaterial, ogs.material as plateMaterial,
op.id as plateId, op.id as plateId,
opi.plan_id as planId,
op.order_id as orderId, op.order_id as orderId,
ogs.goods_name as goodsPlateName, ogs.goods_name as goodsPlateName,
ogs.raw_goods_id as rawGoodsId,
op.name as plateName, op.name as plateName,
op.plate_no as plateNo, op.plate_no as plateNo,
op.custom_plate_no as customPlateNo, 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_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_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_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} where op.organ_id = #{organId}
and op.deleted = false and op.deleted = false
@@ -81,8 +81,6 @@ public class DataSourceController {
public CommonResult<List<DataSourceRespVO>> list( ) { public CommonResult<List<DataSourceRespVO>> list( ) {
return success(dataSourceService.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()); PackageConfigDO packageConfigDO = packageConfigMapper.selectSetting(type, loginUser.getId(), loginUser.getOrganId());
if (packageConfigDO == null) { 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())); packageConfigDO.setSetting(unzipString(packageConfigDO.getSetting()));