mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
plan微服务生产单导入:1、orderModels、orderPartsRemark新增批次batchId;2、补充es数据回滚基于批次删除;
This commit is contained in:
+3
@@ -33,6 +33,9 @@ public class OrderModelDO extends ESDocument {
|
||||
@Schema(description = "小板id")
|
||||
private Long plateId;
|
||||
|
||||
@Schema(description = "批次id")
|
||||
private Long batchId;
|
||||
|
||||
@Schema(description = "大板的实际ID")
|
||||
private String goodsId;
|
||||
|
||||
|
||||
+3
@@ -20,6 +20,9 @@ public class OrderPartsRemark extends ESDocument {
|
||||
@Schema(description = "生产单号")
|
||||
private Long orderId;
|
||||
|
||||
@Schema(description = "生产单号")
|
||||
private Long batchId;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
+24
@@ -45,6 +45,8 @@ public class OrderInputProcessor {
|
||||
|
||||
private static final String FIELD_ORDER_ID = "orderId";
|
||||
|
||||
private static final String FIELD_BATCH_ID = "batchId";
|
||||
|
||||
/**
|
||||
* 保存生产单造型数据
|
||||
*
|
||||
@@ -80,6 +82,28 @@ public class OrderInputProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 按批次删除生产单OrderModels
|
||||
*
|
||||
* @param orderId 生产单id
|
||||
* @param batchId 批次id
|
||||
* @param index
|
||||
*/
|
||||
public void deleteByOrderIdBatch(Long orderId, Long batchId, String index) {
|
||||
DeleteByQueryRequest.Builder builder = new DeleteByQueryRequest.Builder();
|
||||
builder.index(index);
|
||||
builder.query(q -> q.term(t -> t.field(FIELD_ORDER_ID).value(orderId)));
|
||||
builder.query(q -> q.term(t -> t.field(FIELD_BATCH_ID).value(batchId)));
|
||||
|
||||
try {
|
||||
DeleteByQueryResponse response = elasticsearchClient.deleteByQuery(builder.build());
|
||||
log.info("Deleted {} documents with planId {}", response.deleted(), orderId);
|
||||
} catch (IOException | ElasticsearchException e) {
|
||||
log.error("Error deleting documents with planId {}: {}", orderId, e.getMessage());
|
||||
throw new ServiceException(INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存生产单配件备注数据
|
||||
*
|
||||
|
||||
+13
-4
@@ -89,6 +89,9 @@ public class DefaultExcelOrderImportFactory {
|
||||
|
||||
private Long organId;
|
||||
|
||||
// 批次id
|
||||
private Long batchId;
|
||||
|
||||
private Long orderId;
|
||||
|
||||
private Long taskId;
|
||||
@@ -193,6 +196,7 @@ public class DefaultExcelOrderImportFactory {
|
||||
this.orderInputProcessor = orderInputProcessor;
|
||||
this.partsMapper = partsMapper;
|
||||
this.customPlateNoGenerateService = customPlateNoGenerateService;
|
||||
batchId = (Long) snowFlakeGenerator.nextId(null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -226,8 +230,8 @@ public class DefaultExcelOrderImportFactory {
|
||||
updateTaskSuccess();
|
||||
} catch (Exception e) {
|
||||
// 数据库数据回滚,此时删除 ES 里的数据
|
||||
orderInputProcessor.deleteByOrderId(orderId, ORDER_PLATE_MODEL);
|
||||
orderInputProcessor.deleteByOrderId(orderId, ORDER_PARTS_REMARK_MODEL);
|
||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
|
||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PARTS_REMARK_MODEL);
|
||||
throw e;
|
||||
} finally {
|
||||
// 解析结束后清理所有list
|
||||
@@ -466,8 +470,12 @@ public class DefaultExcelOrderImportFactory {
|
||||
}
|
||||
|
||||
// 配件备注信息存储
|
||||
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partId).orderId(orderId)
|
||||
.remark(remark.toString()).build();
|
||||
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder()
|
||||
.partsId(partId)
|
||||
.batchId(batchId)
|
||||
.orderId(orderId)
|
||||
.remark(remark.toString())
|
||||
.build();
|
||||
orderPartsRemark.setCreator(operatorName);
|
||||
orderPartsRemark.setUpdater(operatorName);
|
||||
orderPartsRemark.setOrganId(organId);
|
||||
@@ -786,6 +794,7 @@ public class DefaultExcelOrderImportFactory {
|
||||
// 批量插入CAD板件信息
|
||||
OrderModelDO orderModelDO = OrderModelDO.builder()
|
||||
.orderId(orderId)
|
||||
.batchId(batchId)
|
||||
.plateId(plateId)
|
||||
.typographicFace(Integer.valueOf(typographyDTO.getValue()))
|
||||
.texture(plateDO.getTexture())
|
||||
|
||||
+9
-4
@@ -94,8 +94,6 @@ import com.cf.imes.module.plan.service.order.OrderInputProcessor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.session.ResultContext;
|
||||
import org.apache.ibatis.session.ResultHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -128,6 +126,9 @@ public class DefaultXmlOrderImportFactory {
|
||||
|
||||
private Long organId;
|
||||
|
||||
// 批次id
|
||||
private Long batchId;
|
||||
|
||||
private Long orderId;
|
||||
|
||||
private OrderDO orderDO;
|
||||
@@ -234,6 +235,7 @@ public class DefaultXmlOrderImportFactory {
|
||||
this.orderInputProcessor = orderInputProcessor;
|
||||
this.partsMapper = partsMapper;
|
||||
this.customPlateNoGenerateService = customPlateNoGenerateService;
|
||||
batchId = (Long) snowFlakeGenerator.nextId(null);
|
||||
}
|
||||
|
||||
private Map<String, Map<String, OrderImportTempDataDO>> roomBodyMap = new HashMap<>(); // 房间code: (柜体code:柜体数据)
|
||||
@@ -286,8 +288,8 @@ public class DefaultXmlOrderImportFactory {
|
||||
updateTaskSuccess();
|
||||
} catch (Exception e) {
|
||||
// 数据库数据回滚,此时删除 ES 里的数据
|
||||
orderInputProcessor.deleteByOrderId(orderId, ORDER_PLATE_MODEL);
|
||||
orderInputProcessor.deleteByOrderId(orderId, ORDER_PARTS_REMARK_MODEL);
|
||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
|
||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PARTS_REMARK_MODEL);
|
||||
throw e;
|
||||
} finally {
|
||||
clearAll();
|
||||
@@ -596,6 +598,7 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 板件es数据
|
||||
OrderModelDO orderModelDO = OrderModelDO.builder()
|
||||
.orderId(orderId)
|
||||
.batchId(batchId)
|
||||
.plateId(plateId)
|
||||
.has2DModel(false)
|
||||
.has3DModel(false)
|
||||
@@ -1371,6 +1374,7 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 批量插入配件备注
|
||||
orderPartsRemarks.add(OrderPartsRemark.builder()
|
||||
.partsId(partId)
|
||||
.batchId(batchId)
|
||||
.orderId(orderId)
|
||||
.remark(partRemarkXmlVOList.toString())
|
||||
.build());
|
||||
@@ -1622,6 +1626,7 @@ public class DefaultXmlOrderImportFactory {
|
||||
// 批量插入配件备注
|
||||
orderPartsRemarks.add(OrderPartsRemark.builder()
|
||||
.partsId(partId)
|
||||
.batchId(batchId)
|
||||
.orderId(orderId)
|
||||
.remark(partRemarkXmlVOList.toString())
|
||||
.build());
|
||||
|
||||
+8
@@ -72,6 +72,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPO
|
||||
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_SAVEDATA_ERROR;
|
||||
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_SEAL_NOT_EXIST_ERROR;
|
||||
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_NOT_EXISTS_ERROR;
|
||||
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
|
||||
|
||||
/**
|
||||
* webcad导入生产单工厂服务
|
||||
@@ -118,6 +119,9 @@ public class WebCadOrderImportFactory {
|
||||
|
||||
private Long organId;
|
||||
|
||||
// 批次id
|
||||
private Long batchId;
|
||||
|
||||
private Long orderId;
|
||||
|
||||
private OrderDO orderDO;
|
||||
@@ -189,6 +193,7 @@ public class WebCadOrderImportFactory {
|
||||
this.transactionManager = transactionManager;
|
||||
operatorName = SecurityFrameworkUtils.getLoginUser().getNickname();
|
||||
now = LocalDateTime.now();
|
||||
batchId = (Long) snowFlakeGenerator.nextId(null);
|
||||
}
|
||||
|
||||
public void analyzeTempData(WebCadDataReqVO webCadDataReqVO) {
|
||||
@@ -218,6 +223,8 @@ public class WebCadOrderImportFactory {
|
||||
saveData();
|
||||
|
||||
} catch (Exception e) {
|
||||
// 数据库数据回滚,此时删除 ES 里的数据
|
||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
|
||||
throw e;
|
||||
} finally {
|
||||
// 清理数据
|
||||
@@ -594,6 +601,7 @@ public class WebCadOrderImportFactory {
|
||||
OrderModelDO orderModelDO = OrderModelDO.builder()
|
||||
.orderId(orderId)
|
||||
.plateId(plateId)
|
||||
.batchId(batchId)
|
||||
.boardData(JSON.toJSONString(boardData))
|
||||
.pointInfo(JSON.toJSONString(block.getPointInfo()))
|
||||
.build();
|
||||
|
||||
Reference in New Issue
Block a user