mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 21:52:07 +08:00
1、webcad异步导入恢复nfs读写方式;2、orderImport路径全小写修正;
This commit is contained in:
+1
-1
@@ -36,7 +36,7 @@ public class RabbitMqConstants {
|
|||||||
/**
|
/**
|
||||||
* webcad拆单队列
|
* webcad拆单队列
|
||||||
*/
|
*/
|
||||||
public static final String ORDER_IMPORT_WEBCAD_QUEUE = "order_import_webcad_queue_%s";
|
public static final String ORDER_IMPORT_WEBCAD_QUEUE = "order_import_webcad_queue";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生产单导入死信交换机
|
* 生产单导入死信交换机
|
||||||
|
|||||||
+4
-13
@@ -7,7 +7,6 @@ import org.springframework.amqp.core.DirectExchange;
|
|||||||
import org.springframework.amqp.core.FanoutExchange;
|
import org.springframework.amqp.core.FanoutExchange;
|
||||||
import org.springframework.amqp.core.Queue;
|
import org.springframework.amqp.core.Queue;
|
||||||
import org.springframework.amqp.core.QueueBuilder;
|
import org.springframework.amqp.core.QueueBuilder;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@@ -17,7 +16,6 @@ import java.util.Map;
|
|||||||
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER_IMPORT_DEAD_LETTER_EXCHANGE;
|
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER_IMPORT_DEAD_LETTER_EXCHANGE;
|
||||||
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER_IMPORT_DEAD_LETTER_QUEUE;
|
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER_IMPORT_DEAD_LETTER_QUEUE;
|
||||||
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER_IMPORT_DEAD_LETTER_ROUTING_KEY;
|
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER_IMPORT_DEAD_LETTER_ROUTING_KEY;
|
||||||
import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER_IMPORT_WEBCAD_QUEUE;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Gqr
|
* @author Gqr
|
||||||
@@ -25,8 +23,6 @@ import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER
|
|||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class ChenfengRabbitMQPlanConfiguration {
|
public class ChenfengRabbitMQPlanConfiguration {
|
||||||
@Value("${chenfeng.plan.webcad.import.node:1}")
|
|
||||||
private String instanceId;
|
|
||||||
|
|
||||||
private static final String X_DEAD_LETTER_EXCHANGE_KEY = "x-dead-letter-exchange";
|
private static final String X_DEAD_LETTER_EXCHANGE_KEY = "x-dead-letter-exchange";
|
||||||
private static final String X_DEAD_LETTER_ROUTING_KEY = "x-dead-letter-routing-key";
|
private static final String X_DEAD_LETTER_ROUTING_KEY = "x-dead-letter-routing-key";
|
||||||
@@ -37,13 +33,8 @@ public class ChenfengRabbitMQPlanConfiguration {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
public DirectExchange orderImportWebCadFanoutExchange() {
|
public FanoutExchange orderImportWebCadFanoutExchange() {
|
||||||
return new DirectExchange(RabbitMqConstants.ORDER_IMPORT_WEBCAD_EXCHANGE);
|
return new FanoutExchange(RabbitMqConstants.ORDER_IMPORT_WEBCAD_EXCHANGE);
|
||||||
}
|
|
||||||
|
|
||||||
@Bean("orderImportWebCadQueueName")
|
|
||||||
public String dynamicOrderImportWebCadQueueName() {
|
|
||||||
return String.format(ORDER_IMPORT_WEBCAD_QUEUE, instanceId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -58,7 +49,7 @@ public class ChenfengRabbitMQPlanConfiguration {
|
|||||||
args.put(X_DEAD_LETTER_EXCHANGE_KEY, ORDER_IMPORT_DEAD_LETTER_EXCHANGE);
|
args.put(X_DEAD_LETTER_EXCHANGE_KEY, ORDER_IMPORT_DEAD_LETTER_EXCHANGE);
|
||||||
// 设置死信路由键
|
// 设置死信路由键
|
||||||
args.put(X_DEAD_LETTER_ROUTING_KEY, ORDER_IMPORT_DEAD_LETTER_ROUTING_KEY);
|
args.put(X_DEAD_LETTER_ROUTING_KEY, ORDER_IMPORT_DEAD_LETTER_ROUTING_KEY);
|
||||||
return QueueBuilder.durable(dynamicOrderImportWebCadQueueName()).withArguments(args).build();
|
return QueueBuilder.durable(RabbitMqConstants.ORDER_IMPORT_WEBCAD_QUEUE).withArguments(args).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,7 +59,7 @@ public class ChenfengRabbitMQPlanConfiguration {
|
|||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
public Binding orderImportWebCadBinding() {
|
public Binding orderImportWebCadBinding() {
|
||||||
return BindingBuilder.bind(orderImportWebCadQueue()).to(orderImportWebCadFanoutExchange()).with(instanceId);
|
return BindingBuilder.bind(orderImportWebCadQueue()).to(orderImportWebCadFanoutExchange());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+10
-1
@@ -1,7 +1,10 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport;
|
package com.cf.imes.module.plan.controller.admin.orderimport;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.framework.common.pojo.CommonResult;
|
import com.cf.imes.framework.common.pojo.CommonResult;
|
||||||
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
import com.cf.imes.framework.operatelog.core.annotations.OperateLog;
|
||||||
|
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||||
import com.cf.imes.module.plan.service.orderImport.WebCadOrderImportService;
|
import com.cf.imes.module.plan.service.orderImport.WebCadOrderImportService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
@@ -14,6 +17,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.IMPORT;
|
import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.IMPORT;
|
||||||
|
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORGANID_EMPTY_ERROR;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Gqr
|
* @author Gqr
|
||||||
@@ -30,6 +34,11 @@ public class OrderImportController {
|
|||||||
@Operation(summary = "webcad拆单导入生产单")
|
@Operation(summary = "webcad拆单导入生产单")
|
||||||
@OperateLog(type = IMPORT)
|
@OperateLog(type = IMPORT)
|
||||||
public CommonResult<Boolean> webCadOrderImport(@RequestParam("file") MultipartFile file) {
|
public CommonResult<Boolean> webCadOrderImport(@RequestParam("file") MultipartFile file) {
|
||||||
|
Long organId = OrganContextHolder.getOrganId();
|
||||||
|
|
||||||
|
if (ObjectUtil.isNull(organId)) {
|
||||||
|
throw new ServiceException(WEBCAD_ORDER_IMPORT_ORGANID_EMPTY_ERROR);
|
||||||
|
}
|
||||||
webCadOrderImportService.webCadOrderImport(file);
|
webCadOrderImportService.webCadOrderImport(file);
|
||||||
return CommonResult.success(true);
|
return CommonResult.success(true);
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -7,7 +7,7 @@ import jakarta.validation.Valid;
|
|||||||
import jakarta.validation.constraints.Max;
|
import jakarta.validation.constraints.Max;
|
||||||
import jakarta.validation.constraints.Min;
|
import jakarta.validation.constraints.Min;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import jakarta.validation.constraints.Size;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package com.cf.imes.module.plan.controller.admin.orderImport.xml.vo;
|
package com.cf.imes.module.plan.controller.admin.orderimport.xml.vo;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
-5
@@ -70,9 +70,4 @@ public class OrderImportTaskDO extends BaseDO {
|
|||||||
* 导入文件名称
|
* 导入文件名称
|
||||||
*/
|
*/
|
||||||
private String fileName;
|
private String fileName;
|
||||||
|
|
||||||
/**
|
|
||||||
* 重试次数
|
|
||||||
*/
|
|
||||||
private int retryCount;
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
package com.cf.imes.module.plan.dal.mysql.orderImport;
|
package com.cf.imes.module.plan.dal.mysql.orderImport;
|
||||||
|
|
||||||
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.vo.OrderImportTempDataReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.vo.OrderImportTempDataReqVO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTempDataDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTempDataDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTempDataGoodsGroupDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTempDataGoodsGroupDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTempDataGoodsIdGroupDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTempDataGoodsIdGroupDO;
|
||||||
|
|||||||
+8
@@ -15,4 +15,12 @@ public interface OrderImportTaskService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
OrderImportTaskDO confirmOrderImport(Long taskId);
|
OrderImportTaskDO confirmOrderImport(Long taskId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新导入任务为失败
|
||||||
|
*
|
||||||
|
* @param orderImportTaskDO
|
||||||
|
* @param ex
|
||||||
|
*/
|
||||||
|
void updateImportTaskFail(OrderImportTaskDO orderImportTaskDO, Exception ex);
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-1
@@ -2,6 +2,7 @@ package com.cf.imes.module.plan.service.orderImport;
|
|||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
||||||
@@ -13,6 +14,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
|
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.ORDER_IMPORT_FAIL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Gqr
|
* @author Gqr
|
||||||
* @since 2025/5/13 16:41
|
* @since 2025/5/13 16:41
|
||||||
@@ -39,10 +42,35 @@ public class OrderImportTaskServiceImpl implements OrderImportTaskService {
|
|||||||
.set(OrderImportTaskDO::getStatus, OrderImportTaskStatusEnum.CREATE_RECEIVE.getStatus())
|
.set(OrderImportTaskDO::getStatus, OrderImportTaskStatusEnum.CREATE_RECEIVE.getStatus())
|
||||||
.set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_FAIL.getStatus())
|
.set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_FAIL.getStatus())
|
||||||
.set(OrderImportTaskDO::getResult, taskNotExistNotify)
|
.set(OrderImportTaskDO::getResult, taskNotExistNotify)
|
||||||
.set(OrderImportTaskDO::getRetryCount, orderImportTaskDO.getRetryCount() + 1)
|
|
||||||
);
|
);
|
||||||
log.error(String.format("====================【%s】====================", taskNotExistNotify));
|
log.error(String.format("====================【%s】====================", taskNotExistNotify));
|
||||||
}
|
}
|
||||||
return orderImportTaskDO;
|
return orderImportTaskDO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新导入任务为失败
|
||||||
|
*
|
||||||
|
* @param orderImportTaskDO
|
||||||
|
* @param ex
|
||||||
|
*/
|
||||||
|
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
|
||||||
|
public void updateImportTaskFail(OrderImportTaskDO orderImportTaskDO, Exception ex) {
|
||||||
|
if (orderImportTaskDO == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String msg;
|
||||||
|
if (ex instanceof ServiceException) {
|
||||||
|
msg = ex.getMessage();
|
||||||
|
} else {
|
||||||
|
msg = ORDER_IMPORT_FAIL.getMsg();
|
||||||
|
}
|
||||||
|
orderImportTaskMapper.update(
|
||||||
|
new LambdaUpdateWrapper<OrderImportTaskDO>()
|
||||||
|
.eq(OrderImportTaskDO::getId, orderImportTaskDO.getId())
|
||||||
|
.set(OrderImportTaskDO::getStatus, OrderImportTaskStatusEnum.CREATE_RECEIVE.getStatus())
|
||||||
|
.set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_FAIL.getStatus())
|
||||||
|
.set(OrderImportTaskDO::getResult, msg)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-12
@@ -1,6 +1,5 @@
|
|||||||
package com.cf.imes.module.plan.service.orderImport;
|
package com.cf.imes.module.plan.service.orderImport;
|
||||||
|
|
||||||
import cn.hutool.core.io.FileUtil;
|
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.nacos.common.utils.StringUtils;
|
import com.alibaba.nacos.common.utils.StringUtils;
|
||||||
@@ -20,7 +19,7 @@ import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
|||||||
import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderImportTypeEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataReqVO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
||||||
import com.cf.imes.module.plan.dal.mysql.goods.GoodsMapper;
|
import com.cf.imes.module.plan.dal.mysql.goods.GoodsMapper;
|
||||||
@@ -56,6 +55,10 @@ import jakarta.annotation.Resource;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.StandardCopyOption;
|
||||||
import java.util.zip.GZIPInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
|
|
||||||
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_IMPORT_ORGAN_LOCK_ERROR;
|
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_IMPORT_ORGAN_LOCK_ERROR;
|
||||||
@@ -128,10 +131,6 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
|
|||||||
public boolean webCadOrderImport(MultipartFile file) {
|
public boolean webCadOrderImport(MultipartFile file) {
|
||||||
Long organId = OrganContextHolder.getOrganId();
|
Long organId = OrganContextHolder.getOrganId();
|
||||||
|
|
||||||
if (ObjectUtil.isNull(organId)) {
|
|
||||||
throw new ServiceException(WEBCAD_ORDER_IMPORT_ORGANID_EMPTY_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 是否同步处理
|
// 是否同步处理
|
||||||
boolean sync = true;
|
boolean sync = true;
|
||||||
|
|
||||||
@@ -264,11 +263,18 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
|
|||||||
.organId(organId)
|
.organId(organId)
|
||||||
.build();
|
.build();
|
||||||
orderImportTaskMapper.insert(orderImportTaskDO);
|
orderImportTaskMapper.insert(orderImportTaskDO);
|
||||||
// 缓存请求到本地磁盘
|
// 缓存到nfs目录
|
||||||
|
Path targetFile = Path.of(webCadImportProperties.getTempFilePath(), File.separator + taskId + ".json");
|
||||||
|
Path tmpFile = Path.of(webCadImportProperties.getTempFilePath(), File.separator + taskId + ".json.tmp");
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
File file = new File(webCadImportProperties.getTempFilePath() + File.separator + taskId + ".json");
|
|
||||||
objectMapper.writeValue(file, node);
|
|
||||||
|
|
||||||
|
// 原子写入:先写临时文件,再 move
|
||||||
|
try (OutputStream out = Files.newOutputStream(tmpFile)) {
|
||||||
|
objectMapper.writeValue(out, node);
|
||||||
|
out.flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
Files.move(tmpFile, targetFile, StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.ATOMIC_MOVE);
|
||||||
return taskId;
|
return taskId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -289,12 +295,12 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
|
|||||||
@Override
|
@Override
|
||||||
public void afterCommit() {
|
public void afterCommit() {
|
||||||
// 数据库操作全部完成发送消息
|
// 数据库操作全部完成发送消息
|
||||||
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_IMPORT_WEBCAD_EXCHANGE, webCadImportProperties.getNode(), message);
|
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_IMPORT_WEBCAD_EXCHANGE, null, message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// 数据库操作全部完成发送消息
|
// 数据库操作全部完成发送消息
|
||||||
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_IMPORT_WEBCAD_EXCHANGE, webCadImportProperties.getNode(), message);
|
rabbitTemplate.convertAndSend(RabbitMqConstants.ORDER_IMPORT_WEBCAD_EXCHANGE, null, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -328,7 +334,13 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
|
|||||||
*/
|
*/
|
||||||
private void removeCacheFileWhenException(boolean sync, Long taskId) {
|
private void removeCacheFileWhenException(boolean sync, Long taskId) {
|
||||||
if (!sync && ObjectUtil.isNotNull(taskId)) {
|
if (!sync && ObjectUtil.isNotNull(taskId)) {
|
||||||
FileUtil.del(webCadImportProperties.getTempFilePath() + File.separator + taskId + ".json");
|
Path file = Path.of(webCadImportProperties.getTempFilePath(), taskId + ".json");
|
||||||
|
try {
|
||||||
|
Files.deleteIfExists(file); // 文件不存在也不会抛异常
|
||||||
|
} catch (IOException e) {
|
||||||
|
// 可以记录日志
|
||||||
|
log.warn("删除任务缓存文件失败: {}", file, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-29
@@ -22,8 +22,6 @@ import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
|
|||||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||||
import com.cf.imes.framework.redis.constants.RedisKeyConstants;
|
import com.cf.imes.framework.redis.constants.RedisKeyConstants;
|
||||||
import com.cf.imes.framework.redis.util.RedisLockUtil;
|
import com.cf.imes.framework.redis.util.RedisLockUtil;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum;
|
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
||||||
@@ -170,7 +168,7 @@ public class DefaultExcelOrderImportConsumer {
|
|||||||
log.info("====================【生产单默认excel导入处理临时数据结束】====================");
|
log.info("====================【生产单默认excel导入处理临时数据结束】====================");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(ORDER_IMPORT_FAIL.getMsg(), e);
|
log.error(ORDER_IMPORT_FAIL.getMsg(), e);
|
||||||
updateImportTaskFail(orderImportTaskDO, e);
|
orderImportTaskService.updateImportTaskFail(orderImportTaskDO, e);
|
||||||
throw e;
|
throw e;
|
||||||
} finally {
|
} finally {
|
||||||
if (lockResult) {
|
if (lockResult) {
|
||||||
@@ -180,32 +178,6 @@ public class DefaultExcelOrderImportConsumer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新导入任务为失败
|
|
||||||
*
|
|
||||||
* @param orderImportTaskDO
|
|
||||||
* @param ex
|
|
||||||
*/
|
|
||||||
public void updateImportTaskFail(OrderImportTaskDO orderImportTaskDO, Exception ex) {
|
|
||||||
if (orderImportTaskDO == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String msg;
|
|
||||||
if (ex instanceof ServiceException) {
|
|
||||||
msg = ex.getMessage();
|
|
||||||
} else {
|
|
||||||
msg = ORDER_IMPORT_FAIL.getMsg();
|
|
||||||
}
|
|
||||||
orderImportTaskMapper.update(
|
|
||||||
new LambdaUpdateWrapper<OrderImportTaskDO>()
|
|
||||||
.eq(OrderImportTaskDO::getId, orderImportTaskDO.getId())
|
|
||||||
.set(OrderImportTaskDO::getStatus, OrderImportTaskStatusEnum.CREATE_RECEIVE.getStatus())
|
|
||||||
.set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_FAIL.getStatus())
|
|
||||||
.set(OrderImportTaskDO::getResult, msg)
|
|
||||||
.set(OrderImportTaskDO::getRetryCount, orderImportTaskDO.getRetryCount() + 1)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建生产单
|
* 创建生产单
|
||||||
*
|
*
|
||||||
|
|||||||
+1
-29
@@ -15,8 +15,6 @@ import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
|||||||
import com.cf.imes.framework.redis.config.ChenfengCacheProperties;
|
import com.cf.imes.framework.redis.config.ChenfengCacheProperties;
|
||||||
import com.cf.imes.framework.redis.constants.RedisKeyConstants;
|
import com.cf.imes.framework.redis.constants.RedisKeyConstants;
|
||||||
import com.cf.imes.framework.redis.util.RedisLockUtil;
|
import com.cf.imes.framework.redis.util.RedisLockUtil;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum;
|
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||||
@@ -167,7 +165,7 @@ public class DefaultXmlOrderImportConsumer {
|
|||||||
log.info("====================【生产单默认xml导入处理临时数据结束】====================");
|
log.info("====================【生产单默认xml导入处理临时数据结束】====================");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error( ORDER_IMPORT_FAIL.getMsg(), e);
|
log.error( ORDER_IMPORT_FAIL.getMsg(), e);
|
||||||
updateImportTaskFail(orderImportTaskDO, e);
|
orderImportTaskService.updateImportTaskFail(orderImportTaskDO, e);
|
||||||
throw e;
|
throw e;
|
||||||
} finally {
|
} finally {
|
||||||
if (lockResult) {
|
if (lockResult) {
|
||||||
@@ -177,32 +175,6 @@ public class DefaultXmlOrderImportConsumer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新导入任务为失败
|
|
||||||
*
|
|
||||||
* @param orderImportTaskDO
|
|
||||||
* @param ex
|
|
||||||
*/
|
|
||||||
public void updateImportTaskFail(OrderImportTaskDO orderImportTaskDO, Exception ex) {
|
|
||||||
if (orderImportTaskDO == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String msg;
|
|
||||||
if (ex instanceof ServiceException) {
|
|
||||||
msg = ex.getMessage();
|
|
||||||
} else {
|
|
||||||
msg = ORDER_IMPORT_FAIL.getMsg();
|
|
||||||
}
|
|
||||||
orderImportTaskMapper.update(
|
|
||||||
new LambdaUpdateWrapper<OrderImportTaskDO>()
|
|
||||||
.eq(OrderImportTaskDO::getId, orderImportTaskDO.getId())
|
|
||||||
.set(OrderImportTaskDO::getStatus, OrderImportTaskStatusEnum.CREATE_RECEIVE.getStatus())
|
|
||||||
.set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_FAIL.getStatus())
|
|
||||||
.set(OrderImportTaskDO::getResult, msg)
|
|
||||||
.set(OrderImportTaskDO::getRetryCount, orderImportTaskDO.getRetryCount() + 1)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建生产单
|
* 创建生产单
|
||||||
*
|
*
|
||||||
|
|||||||
+8
-30
@@ -1,17 +1,16 @@
|
|||||||
package com.cf.imes.module.plan.service.orderImport.consumer;
|
package com.cf.imes.module.plan.service.orderImport.consumer;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||||
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
||||||
import com.cf.imes.framework.common.exception.ServiceException;
|
import com.cf.imes.framework.common.exception.ServiceException;
|
||||||
import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd;
|
import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd;
|
||||||
|
import com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants;
|
||||||
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
|
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
|
||||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||||
import com.cf.imes.framework.redis.config.ChenfengCacheProperties;
|
import com.cf.imes.framework.redis.config.ChenfengCacheProperties;
|
||||||
import com.cf.imes.framework.redis.constants.RedisKeyConstants;
|
import com.cf.imes.framework.redis.constants.RedisKeyConstants;
|
||||||
import com.cf.imes.framework.redis.util.RedisLockUtil;
|
import com.cf.imes.framework.redis.util.RedisLockUtil;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTaskStatusEnum;
|
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
|
||||||
import com.cf.imes.module.plan.dal.mysql.goods.GoodsMapper;
|
import com.cf.imes.module.plan.dal.mysql.goods.GoodsMapper;
|
||||||
import com.cf.imes.module.plan.dal.mysql.order.OrderMapper;
|
import com.cf.imes.module.plan.dal.mysql.order.OrderMapper;
|
||||||
@@ -34,6 +33,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
import org.springframework.messaging.handler.annotation.Header;
|
import org.springframework.messaging.handler.annotation.Header;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.thymeleaf.util.StringUtils;
|
import org.thymeleaf.util.StringUtils;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@@ -107,7 +107,9 @@ public class WebCadOrderImportConsumer {
|
|||||||
@Resource
|
@Resource
|
||||||
private ChenfengCacheProperties chenfengCacheProperties;
|
private ChenfengCacheProperties chenfengCacheProperties;
|
||||||
|
|
||||||
@RabbitListener(queues = "#{@orderImportWebCadQueueName}")
|
@RabbitListener(queues = RabbitMqConstants.ORDER_IMPORT_WEBCAD_QUEUE)
|
||||||
|
@DS("imes_prod")
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void orderImport(String message,
|
public void orderImport(String message,
|
||||||
Channel channel,
|
Channel channel,
|
||||||
@Header(value = "peek", required = false) String peek,
|
@Header(value = "peek", required = false) String peek,
|
||||||
@@ -155,7 +157,7 @@ public class WebCadOrderImportConsumer {
|
|||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(ORDER_IMPORT_FAIL.getMsg(), e);
|
log.error(ORDER_IMPORT_FAIL.getMsg(), e);
|
||||||
updateImportTaskFail(orderImportTaskDO, e);
|
orderImportTaskService.updateImportTaskFail(orderImportTaskDO, e);
|
||||||
throw e;
|
throw e;
|
||||||
} finally {
|
} finally {
|
||||||
if (lockResult) {
|
if (lockResult) {
|
||||||
@@ -165,30 +167,6 @@ public class WebCadOrderImportConsumer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新导入任务为失败
|
|
||||||
*
|
|
||||||
* @param orderImportTaskDO
|
|
||||||
* @param ex
|
|
||||||
*/
|
|
||||||
public void updateImportTaskFail(OrderImportTaskDO orderImportTaskDO, Exception ex) {
|
|
||||||
if (orderImportTaskDO == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
String msg;
|
|
||||||
if (ex instanceof ServiceException) {
|
|
||||||
msg = ex.getMessage();
|
|
||||||
} else {
|
|
||||||
msg = ORDER_IMPORT_FAIL.getMsg();
|
|
||||||
}
|
|
||||||
orderImportTaskMapper.update(
|
|
||||||
new LambdaUpdateWrapper<OrderImportTaskDO>()
|
|
||||||
.eq(OrderImportTaskDO::getId, orderImportTaskDO.getId())
|
|
||||||
.set(OrderImportTaskDO::getStatus, OrderImportTaskStatusEnum.CREATE_RECEIVE.getStatus())
|
|
||||||
.set(OrderImportTaskDO::getImportStatus, OrderImportStatusEnum.IMPORT_FAIL.getStatus())
|
|
||||||
.set(OrderImportTaskDO::getResult, msg)
|
|
||||||
.set(OrderImportTaskDO::getRetryCount, orderImportTaskDO.getRetryCount() + 1)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -24,8 +24,8 @@ import com.cf.imes.module.executor.enums.OrderImportConstants;
|
|||||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.vo.OrderImportTempDataReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.vo.OrderImportTempDataReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.vo.OrderPlateImportExcelVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.vo.OrderPlateImportExcelVO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
||||||
@@ -64,7 +64,6 @@ import org.apache.ibatis.session.ResultContext;
|
|||||||
import org.apache.ibatis.session.ResultHandler;
|
import org.apache.ibatis.session.ResultHandler;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
+26
-26
@@ -22,32 +22,32 @@ import com.cf.imes.module.executor.enums.DictTypeConstants;
|
|||||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderImportTmpDataTypeEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.vo.OrderImportTempDataReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.vo.OrderImportTempDataReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.AssemblyXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.AssemblyXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.BlockXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.BlockXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.CorrelationXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.CorrelationXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.CorrelationXmlVOS;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.CorrelationXmlVOS;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.CuttingOutlineXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.CuttingOutlineXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.EdgingXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.EdgingXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.ExtraVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.ExtraVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.GrooveXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.GrooveXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.GrooveXmlVOS;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.GrooveXmlVOS;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.GroupXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.GroupXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.HardwareXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.HardwareXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.HoleXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.HoleXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.HoleXmlVOS;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.HoleXmlVOS;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.IsletXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.IsletXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.IsletXmlVOS;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.IsletXmlVOS;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.OffsetLineXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.OffsetLineXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.OffsetLineXmlVOS;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.OffsetLineXmlVOS;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.OutlineXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.OutlineXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.PlateXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.PlateXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.PointXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.PointXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.PointXmlVOS;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.PointXmlVOS;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.RawOutlineXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.RawOutlineXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.RectSealVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.RectSealVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.RemarkXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.RemarkXmlVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.xml.vo.RoomBoxXmlVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.xml.vo.RoomBoxXmlVO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
||||||
|
|||||||
+155
-102
@@ -1,7 +1,6 @@
|
|||||||
package com.cf.imes.module.plan.service.orderImport.factory;
|
package com.cf.imes.module.plan.service.orderImport.factory;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.io.FileUtil;
|
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.BooleanUtil;
|
import cn.hutool.core.util.BooleanUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
@@ -24,13 +23,13 @@ import com.cf.imes.module.executor.enums.DataTypeEnum;
|
|||||||
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderImportStatusEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
||||||
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataBlockRemarkVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataBlockRemarkVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataBlockReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataBlockReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataDoubleRoomTreeReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataDoubleRoomTreeReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataGroupInfoReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataGroupInfoReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataMaterialReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataMaterialReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataPartsReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataPartsReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataProcessGroupReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataProcessGroupReqVO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
||||||
@@ -71,7 +70,10 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
@@ -82,7 +84,6 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR;
|
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR;
|
||||||
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_CHECK_ERROR;
|
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORDER_PLATENUM_CHECK_ERROR;
|
||||||
@@ -184,6 +185,7 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
private static final String PART_CATEGORY_ONE = "封边条";
|
private static final String PART_CATEGORY_ONE = "封边条";
|
||||||
private static final String PART_CATEGORY_TWO = "五金";
|
private static final String PART_CATEGORY_TWO = "五金";
|
||||||
private static final String PART_CATEGORY_THREE = "组件";
|
private static final String PART_CATEGORY_THREE = "组件";
|
||||||
|
private static final String CHILDREN_FIELD = "children";
|
||||||
private static final String EMPTY_STRING = new String();
|
private static final String EMPTY_STRING = new String();
|
||||||
|
|
||||||
// 当前拆单导入的板件数量(初始包含前n次导入的板件总数)
|
// 当前拆单导入的板件数量(初始包含前n次导入的板件总数)
|
||||||
@@ -241,42 +243,74 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
try (JSONReader reader = new JSONReader(new FileReader(tempFilePath))) {
|
try (JSONReader reader = new JSONReader(new FileReader(tempFilePath))) {
|
||||||
reader.startObject();
|
reader.startObject();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
|
String fieldName = reader.readString();
|
||||||
|
processFieldData(fieldName, reader);
|
||||||
|
}
|
||||||
|
reader.endObject();
|
||||||
|
|
||||||
String name = reader.readString();
|
performPostProcessing(taskId);
|
||||||
if ("OrderNo".equals(name)) {
|
} catch (Exception e) {
|
||||||
|
handleProcessingException(e);
|
||||||
|
throw e;
|
||||||
|
} finally {
|
||||||
|
clearAll();
|
||||||
|
deleteTempFile();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理JSON字段数据
|
||||||
|
*/
|
||||||
|
private void processFieldData(String fieldName, JSONReader reader) {
|
||||||
|
switch (fieldName) {
|
||||||
|
case "OrderNo":
|
||||||
log.debug("====================【cad拆单解析生产单开始】====================");
|
log.debug("====================【cad拆单解析生产单开始】====================");
|
||||||
analyzeOrder(reader.readString());
|
analyzeOrder(reader.readString());
|
||||||
log.debug("====================【cad拆单解析生产单结束】====================");
|
log.debug("====================【cad拆单解析生产单结束】====================");
|
||||||
}
|
break;
|
||||||
if ("Materials".equals(name)) {
|
case "Materials":
|
||||||
log.debug("====================【cad拆单解析板材开始】====================");
|
log.debug("====================【cad拆单解析板材开始】====================");
|
||||||
// 解析板材对应
|
|
||||||
analyzeMaterials(reader);
|
analyzeMaterials(reader);
|
||||||
log.debug("====================【cad拆单解析板材结束】====================");
|
log.debug("====================【cad拆单解析板材结束】====================");
|
||||||
}
|
break;
|
||||||
if ("ProcessGroup".equals(name)) {
|
case "ProcessGroup":
|
||||||
log.debug("====================【cad拆单解析加工组开始】====================");
|
log.debug("====================【cad拆单解析加工组开始】====================");
|
||||||
// 解析加工组类型
|
|
||||||
analyzeGroups(reader);
|
analyzeGroups(reader);
|
||||||
log.debug("====================【cad拆单解析加工组结束】====================");
|
log.debug("====================【cad拆单解析加工组结束】====================");
|
||||||
}
|
break;
|
||||||
if ("douleRoomTree".equals(name)) {
|
case "douleRoomTree":
|
||||||
log.debug("====================【cad拆单解析成倍柜体开始】====================");
|
log.debug("====================【cad拆单解析成倍柜体开始】====================");
|
||||||
// 缓存柜体成倍信息
|
|
||||||
analyzeRoomBody(reader);
|
analyzeRoomBody(reader);
|
||||||
log.debug("====================【cad拆单解析成倍柜体结束】====================");
|
log.debug("====================【cad拆单解析成倍柜体结束】====================");
|
||||||
|
break;
|
||||||
|
case "Blocks":
|
||||||
|
processBlocks(reader);
|
||||||
|
break;
|
||||||
|
case "Parts":
|
||||||
|
processParts(reader);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// 跳过未知字段
|
||||||
|
reader.readObject();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ("Blocks".equals(name)) {
|
|
||||||
// 获取自定义板编号配置
|
|
||||||
plateNoGenerateConfigVO = customPlateNoGenerateService.getPlateNoGenerateConfig(orderId);
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理板件数据
|
||||||
|
*/
|
||||||
|
private void processBlocks(JSONReader reader) {
|
||||||
|
plateNoGenerateConfigVO = customPlateNoGenerateService.getPlateNoGenerateConfig(orderId);
|
||||||
log.debug("====================【cad拆单解析板件开始】====================");
|
log.debug("====================【cad拆单解析板件开始】====================");
|
||||||
analyzeBlockRoomList(reader);
|
analyzeBlockRoomList(reader);
|
||||||
log.debug("====================【cad拆单解析板件结束】====================");
|
log.debug("====================【cad拆单解析板件结束】====================");
|
||||||
}
|
}
|
||||||
if ("Parts".equals(name)) {
|
|
||||||
|
/**
|
||||||
|
* 处理配件数据
|
||||||
|
*/
|
||||||
|
private void processParts(JSONReader reader) {
|
||||||
log.debug("====================【cad拆单获取封边配置开始】====================");
|
log.debug("====================【cad拆单获取封边配置开始】====================");
|
||||||
// 获取系统配置-封边对应配置
|
|
||||||
getOrgSealEdgeConfig();
|
getOrgSealEdgeConfig();
|
||||||
log.debug("====================【cad拆单获取封边配置结束】====================");
|
log.debug("====================【cad拆单获取封边配置结束】====================");
|
||||||
|
|
||||||
@@ -284,38 +318,31 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
analyzePartsRoomList(reader);
|
analyzePartsRoomList(reader);
|
||||||
log.debug("====================【cad拆单解析配件结束】====================");
|
log.debug("====================【cad拆单解析配件结束】====================");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
reader.endObject();
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行后处理逻辑
|
||||||
|
*/
|
||||||
|
private void performPostProcessing(Long taskId) {
|
||||||
orderItemBatchInsertWithinThreshold(orderItemDOS, true);
|
orderItemBatchInsertWithinThreshold(orderItemDOS, true);
|
||||||
log.debug("====================【cad拆单全局保存开始】====================");
|
log.debug("====================【cad拆单全局保存开始】====================");
|
||||||
// 保存数据柜体、加工组
|
|
||||||
saveData();
|
saveData();
|
||||||
log.debug("====================【cad拆单全局保存结束】====================");
|
log.debug("====================【cad拆单全局保存结束】====================");
|
||||||
|
|
||||||
// 新增/更新order_goods
|
|
||||||
insertOrUpdatePlateNumGoods();
|
insertOrUpdatePlateNumGoods();
|
||||||
|
|
||||||
// 更新生产单板件数量
|
|
||||||
updateOrderPlateNum();
|
updateOrderPlateNum();
|
||||||
|
|
||||||
// 更新导入任务为成功
|
|
||||||
updateTaskSuccess(taskId);
|
updateTaskSuccess(taskId);
|
||||||
|
|
||||||
// 所有自定义板编号生成完成后更新配置到生产单
|
|
||||||
customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO);
|
customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO);
|
||||||
} catch (Exception e) {
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理异常情况
|
||||||
|
*/
|
||||||
|
private void handleProcessingException(Exception e) {
|
||||||
if (esInsert) {
|
if (esInsert) {
|
||||||
CompletableFuture.runAsync(() -> {
|
CompletableFuture.runAsync(() -> {
|
||||||
// 数据库数据回滚,同步删除 ES 里当前批次的数据
|
|
||||||
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
|
orderInputProcessor.deleteByOrderIdBatch(orderId, batchId, ORDER_PLATE_MODEL);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
throw e;
|
|
||||||
} finally {
|
|
||||||
clearAll();
|
|
||||||
deleteTempFile();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -428,8 +455,7 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
.eq(GoodsDO::getGoodsId, plateGoodsGoodsId)
|
.eq(GoodsDO::getGoodsId, plateGoodsGoodsId)
|
||||||
.eq(GoodsDO::getOrderId, orderId)
|
.eq(GoodsDO::getOrderId, orderId)
|
||||||
.eq(GoodsDO::getOrganId, organId)
|
.eq(GoodsDO::getOrganId, organId)
|
||||||
.eq(GoodsDO::getDeleted, false)
|
.eq(GoodsDO::getDeleted, false));
|
||||||
.select(GoodsDO::getId, GoodsDO::getVersion, GoodsDO::getPlateNum, GoodsDO::getPlannedPlateNum));
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(existOrderGoodIds)) {
|
if (CollUtil.isNotEmpty(existOrderGoodIds)) {
|
||||||
// 缓存goodCode和orderGoodsId的对应关系
|
// 缓存goodCode和orderGoodsId的对应关系
|
||||||
@@ -553,7 +579,7 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
} else if ("count".equals(key)) {
|
} else if ("count".equals(key)) {
|
||||||
// 无用count
|
// 无用count
|
||||||
reader.readObject();
|
reader.readObject();
|
||||||
} else if ("children".equals(key)) {
|
} else if (CHILDREN_FIELD.equals(key)) {
|
||||||
reader.startArray();
|
reader.startArray();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
WebCadDataDoubleRoomTreeReqVO.ChildrenDTO childrenDTO = reader.readObject(WebCadDataDoubleRoomTreeReqVO.ChildrenDTO.class);
|
WebCadDataDoubleRoomTreeReqVO.ChildrenDTO childrenDTO = reader.readObject(WebCadDataDoubleRoomTreeReqVO.ChildrenDTO.class);
|
||||||
@@ -574,54 +600,81 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
* @param reader
|
* @param reader
|
||||||
*/
|
*/
|
||||||
private void analyzeBlockRoomList(JSONReader reader) {
|
private void analyzeBlockRoomList(JSONReader reader) {
|
||||||
// 开始Blocks
|
|
||||||
reader.startArray();
|
reader.startArray();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
reader.startObject();
|
processBlockRoom(reader);
|
||||||
|
}
|
||||||
|
reader.endArray();
|
||||||
|
orderPlateBatchInsertWithinThreshold(plateDOS, true);
|
||||||
|
orderModelsBatchInsertWithinThreshold(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理单个房间的板件数据
|
||||||
|
*/
|
||||||
|
private void processBlockRoom(JSONReader reader) {
|
||||||
|
reader.startObject();
|
||||||
String roomName = null;
|
String roomName = null;
|
||||||
Long roomId = null;
|
Long roomId = null;
|
||||||
|
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
String key = reader.readString();
|
String key = reader.readString();
|
||||||
if ("name".equals(key)) {
|
if ("name".equals(key)) {
|
||||||
roomName = reader.readString();
|
roomName = reader.readString();
|
||||||
|
roomId = getOrCreateRoomId(roomName);
|
||||||
// 生产单下已有房间名直接使用roomId
|
} else if (CHILDREN_FIELD.equals(key)) {
|
||||||
Long existRoomId = existRoomIdMap.get(roomName);
|
processBlockChildren(reader, roomName, roomId);
|
||||||
if (ObjectUtil.isNotNull(existRoomId)) {
|
|
||||||
roomId = existRoomId;
|
|
||||||
} else {
|
} else {
|
||||||
// 查询生产单下是否已有同名房间
|
reader.readObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reader.endObject();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取或创建房间ID
|
||||||
|
*/
|
||||||
|
private Long getOrCreateRoomId(String roomName) {
|
||||||
|
Long existRoomId = existRoomIdMap.get(roomName);
|
||||||
|
if (existRoomId != null) {
|
||||||
|
return existRoomId;
|
||||||
|
}
|
||||||
|
|
||||||
|
Long roomId = queryExistingRoomId(roomName);
|
||||||
|
if (roomId == null) {
|
||||||
|
roomId = (Long) snowFlakeGenerator.nextId(null);
|
||||||
|
}
|
||||||
|
existRoomIdMap.put(roomName, roomId);
|
||||||
|
return roomId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询已存在的房间ID
|
||||||
|
*/
|
||||||
|
private Long queryExistingRoomId(String roomName) {
|
||||||
List<Long> existRoomIds = orderBodyMapper.selectList(new LambdaQueryWrapper<OrderBodyDO>()
|
List<Long> existRoomIds = orderBodyMapper.selectList(new LambdaQueryWrapper<OrderBodyDO>()
|
||||||
.select(OrderBodyDO::getRoomId)
|
.select(OrderBodyDO::getRoomId)
|
||||||
.eq(OrderBodyDO::getOrderId, orderId)
|
.eq(OrderBodyDO::getOrderId, orderId)
|
||||||
.eq(OrderBodyDO::getOrganId, organId)
|
.eq(OrderBodyDO::getOrganId, organId)
|
||||||
.eq(OrderBodyDO::getDeleted, false)
|
.eq(OrderBodyDO::getDeleted, false)
|
||||||
.eq(OrderBodyDO::getRoomName, roomName)).stream().map(OrderBodyDO::getRoomId).toList();
|
.eq(OrderBodyDO::getRoomName, roomName))
|
||||||
if (CollUtil.isNotEmpty(existRoomIds)) {
|
.stream()
|
||||||
roomId = existRoomIds.get(0);
|
.map(OrderBodyDO::getRoomId)
|
||||||
existRoomIdMap.put(roomName, roomId);
|
.toList();
|
||||||
} else {
|
|
||||||
roomId = (Long) snowFlakeGenerator.nextId(null);
|
return CollUtil.isNotEmpty(existRoomIds) ? existRoomIds.get(0) : null;
|
||||||
existRoomIdMap.put(roomName, roomId);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else if ("children".equals(key)) {
|
/**
|
||||||
// 开始Blocks.children
|
* 处理房间下的柜体列表
|
||||||
|
*/
|
||||||
|
private void processBlockChildren(JSONReader reader, String roomName, Long roomId) {
|
||||||
reader.startArray();
|
reader.startArray();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
analyzeBlockBodyList(reader, roomName, roomId);
|
analyzeBlockBodyList(reader, roomName, roomId);
|
||||||
}
|
}
|
||||||
reader.endArray();
|
reader.endArray();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
reader.endObject();
|
|
||||||
}
|
|
||||||
reader.endArray();
|
|
||||||
orderPlateBatchInsertWithinThreshold(plateDOS, true);
|
|
||||||
// 批量插入造型数据
|
|
||||||
orderModelsBatchInsertWithinThreshold(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析柜体下板件列表
|
* 解析柜体下板件列表
|
||||||
@@ -1341,50 +1394,44 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
private void analyzePartsRoomList(JSONReader reader) {
|
private void analyzePartsRoomList(JSONReader reader) {
|
||||||
reader.startArray();
|
reader.startArray();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
reader.startObject();
|
processPartsRoom(reader);
|
||||||
|
}
|
||||||
|
reader.endArray();
|
||||||
|
orderPartBatchInsertWithinThreshold(orderPartsDOS, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理单个房间的配件数据
|
||||||
|
*/
|
||||||
|
private void processPartsRoom(JSONReader reader) {
|
||||||
|
reader.startObject();
|
||||||
String roomName = null;
|
String roomName = null;
|
||||||
Long roomId = null;
|
Long roomId = null;
|
||||||
|
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
String key = reader.readString();
|
String key = reader.readString();
|
||||||
if ("name".equals(key)) {
|
if ("name".equals(key)) {
|
||||||
roomName = reader.readString();
|
roomName = reader.readString();
|
||||||
|
roomId = getOrCreateRoomId(roomName);
|
||||||
|
} else if (CHILDREN_FIELD.equals(key)) {
|
||||||
|
processPartsChildren(reader, roomName, roomId);
|
||||||
|
} else {
|
||||||
|
reader.readObject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
reader.endObject();
|
||||||
|
}
|
||||||
|
|
||||||
// 生产单下已有房间名直接使用roomId
|
/**
|
||||||
Long existRoomId = existRoomIdMap.get(roomName);
|
* 处理房间下的配件列表
|
||||||
if (ObjectUtil.isNotNull(existRoomId)) {
|
*/
|
||||||
roomId = existRoomId;
|
private void processPartsChildren(JSONReader reader, String roomName, Long roomId) {
|
||||||
} else {
|
|
||||||
// 查询生产单下是否已有同名房间
|
|
||||||
List<Long> existRoomIds = orderBodyMapper.selectList(new LambdaQueryWrapper<OrderBodyDO>()
|
|
||||||
.select(OrderBodyDO::getRoomId)
|
|
||||||
.eq(OrderBodyDO::getOrderId, orderId)
|
|
||||||
.eq(OrderBodyDO::getOrganId, organId)
|
|
||||||
.eq(OrderBodyDO::getDeleted, false)
|
|
||||||
.eq(OrderBodyDO::getRoomName, roomName)).stream().map(OrderBodyDO::getRoomId).toList();
|
|
||||||
if (CollUtil.isNotEmpty(existRoomIds)) {
|
|
||||||
roomId = existRoomIds.get(0);
|
|
||||||
existRoomIdMap.put(roomName, roomId);
|
|
||||||
} else {
|
|
||||||
roomId = (Long) snowFlakeGenerator.nextId(null);
|
|
||||||
existRoomIdMap.put(roomName, roomId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if ("children".equals(key)) {
|
|
||||||
// 开始Parts.children
|
|
||||||
reader.startArray();
|
reader.startArray();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
analyzePartsBodyList(reader, roomName, roomId);
|
analyzePartsBodyList(reader, roomName, roomId);
|
||||||
}
|
}
|
||||||
reader.endArray();
|
reader.endArray();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
reader.endObject();
|
|
||||||
}
|
|
||||||
reader.endArray();
|
|
||||||
|
|
||||||
orderPartBatchInsertWithinThreshold(orderPartsDOS, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void analyzePartsBodyList(JSONReader reader, String roomName, Long roomId) {
|
private void analyzePartsBodyList(JSONReader reader, String roomName, Long roomId) {
|
||||||
@@ -2126,7 +2173,13 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
* 移除缓存的临时文件
|
* 移除缓存的临时文件
|
||||||
*/
|
*/
|
||||||
private void deleteTempFile() {
|
private void deleteTempFile() {
|
||||||
FileUtil.del(tempFilePath);
|
Path file = Path.of(tempFilePath);
|
||||||
|
try {
|
||||||
|
Files.deleteIfExists(file); // 文件不存在也不会抛异常
|
||||||
|
} catch (IOException e) {
|
||||||
|
// 可以记录日志
|
||||||
|
log.warn("删除任务缓存文件失败: {}", file, e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+30
-26
@@ -20,14 +20,14 @@ import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
|
|||||||
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
|
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
|
||||||
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataBlockRemarkVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataBlockRemarkVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataBlockReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataBlockReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataDoubleRoomTreeReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataDoubleRoomTreeReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataGroupInfoReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataGroupInfoReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataMaterialReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataMaterialReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataPartsReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataPartsReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataProcessGroupReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataProcessGroupReqVO;
|
||||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataReqVO;
|
import com.cf.imes.module.plan.controller.admin.orderimport.webcad.vo.WebCadDataReqVO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||||
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
||||||
@@ -171,6 +171,10 @@ public class WebCadOrderImportFactory {
|
|||||||
private static final String PART_CATEGORY_ONE = "封边条";
|
private static final String PART_CATEGORY_ONE = "封边条";
|
||||||
private static final String PART_CATEGORY_TWO = "五金";
|
private static final String PART_CATEGORY_TWO = "五金";
|
||||||
private static final String PART_CATEGORY_THREE = "组件";
|
private static final String PART_CATEGORY_THREE = "组件";
|
||||||
|
private static final String DELETED_FIELD = "deleted";
|
||||||
|
private static final String ORGAN_ID_FIELD = "organ_id";
|
||||||
|
private static final String ORDER_ID_FIELD = "order_id";
|
||||||
|
private static final String ROOM_NAME_FIELD = "room_name";
|
||||||
private static final String EMPTY_STRING = new String();
|
private static final String EMPTY_STRING = new String();
|
||||||
|
|
||||||
// 当前拆单导入的板件数量(初始包含前n次导入的板件总数)
|
// 当前拆单导入的板件数量(初始包含前n次导入的板件总数)
|
||||||
@@ -340,9 +344,9 @@ public class WebCadOrderImportFactory {
|
|||||||
// 统计当前板件总面积
|
// 统计当前板件总面积
|
||||||
List<Map<String, Object>> orderPlateSumResult = plateMapper.selectMaps(new QueryWrapper<PlateDO>()
|
List<Map<String, Object>> orderPlateSumResult = plateMapper.selectMaps(new QueryWrapper<PlateDO>()
|
||||||
.select("sum(area) as area")
|
.select("sum(area) as area")
|
||||||
.eq("organ_id", organId)
|
.eq(ORGAN_ID_FIELD, organId)
|
||||||
.eq("order_id", orderId)
|
.eq(ORDER_ID_FIELD, orderId)
|
||||||
.eq("deleted", false));
|
.eq(DELETED_FIELD, false));
|
||||||
if (CollUtil.isNotEmpty(orderPlateSumResult)) {
|
if (CollUtil.isNotEmpty(orderPlateSumResult)) {
|
||||||
Map<String, Object> resultMap = orderPlateSumResult.get(0);
|
Map<String, Object> resultMap = orderPlateSumResult.get(0);
|
||||||
if(ObjectUtil.isNotNull(resultMap)) {
|
if(ObjectUtil.isNotNull(resultMap)) {
|
||||||
@@ -366,9 +370,9 @@ public class WebCadOrderImportFactory {
|
|||||||
materialMap = goodsMapper.selectMaps(
|
materialMap = goodsMapper.selectMaps(
|
||||||
new QueryWrapper<GoodsDO>()
|
new QueryWrapper<GoodsDO>()
|
||||||
.select("goods_id ,MIN(id) as id, plate_num, planned_plate_num, area, planned_plate_area, version")
|
.select("goods_id ,MIN(id) as id, plate_num, planned_plate_num, area, planned_plate_area, version")
|
||||||
.eq("order_id", orderId)
|
.eq(ORDER_ID_FIELD, orderId)
|
||||||
.eq("organ_id", organId)
|
.eq(ORGAN_ID_FIELD, organId)
|
||||||
.eq("deleted", false)
|
.eq(DELETED_FIELD, false)
|
||||||
.in("goods_id", materialReqVOS.stream().map(WebCadDataMaterialReqVO::getGoodsId).collect(Collectors.toList()))
|
.in("goods_id", materialReqVOS.stream().map(WebCadDataMaterialReqVO::getGoodsId).collect(Collectors.toList()))
|
||||||
.groupBy("goods_id, plate_num, planned_plate_num, area, planned_plate_area, version")).stream()
|
.groupBy("goods_id, plate_num, planned_plate_num, area, planned_plate_area, version")).stream()
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
@@ -517,13 +521,13 @@ public class WebCadOrderImportFactory {
|
|||||||
existRoomIdMap = orderBodyMapper.selectMaps(
|
existRoomIdMap = orderBodyMapper.selectMaps(
|
||||||
new QueryWrapper<OrderBodyDO>()
|
new QueryWrapper<OrderBodyDO>()
|
||||||
.select("room_name,MIN(room_id) as room_id")
|
.select("room_name,MIN(room_id) as room_id")
|
||||||
.eq("order_id", orderId)
|
.eq(ORDER_ID_FIELD, orderId)
|
||||||
.eq("organ_id", organId)
|
.eq(ORGAN_ID_FIELD, organId)
|
||||||
.eq("deleted", false)
|
.eq(DELETED_FIELD, false)
|
||||||
.in("room_name", roomNames)
|
.in(ROOM_NAME_FIELD, roomNames)
|
||||||
.groupBy("room_name")).stream()
|
.groupBy(ROOM_NAME_FIELD)).stream()
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
m -> String.valueOf(m.get("room_name")),
|
m -> String.valueOf(m.get(ROOM_NAME_FIELD)),
|
||||||
m -> ((Number) m.get("room_id")).longValue()
|
m -> ((Number) m.get("room_id")).longValue()
|
||||||
));
|
));
|
||||||
|
|
||||||
@@ -1276,13 +1280,13 @@ public class WebCadOrderImportFactory {
|
|||||||
Map<String, Long> existPartsRoomIdMap = orderBodyMapper.selectMaps(
|
Map<String, Long> existPartsRoomIdMap = orderBodyMapper.selectMaps(
|
||||||
new QueryWrapper<OrderBodyDO>()
|
new QueryWrapper<OrderBodyDO>()
|
||||||
.select("room_name,MIN(room_id) as room_id")
|
.select("room_name,MIN(room_id) as room_id")
|
||||||
.eq("order_id", orderId)
|
.eq(ORDER_ID_FIELD, orderId)
|
||||||
.eq("organ_id", organId)
|
.eq(ORGAN_ID_FIELD, organId)
|
||||||
.eq("deleted", false)
|
.eq(DELETED_FIELD, false)
|
||||||
.in("room_name", roomNames)
|
.in(ROOM_NAME_FIELD, roomNames)
|
||||||
.groupBy("room_name")).stream()
|
.groupBy(ROOM_NAME_FIELD)).stream()
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
m -> String.valueOf(m.get("room_name")),
|
m -> String.valueOf(m.get(ROOM_NAME_FIELD)),
|
||||||
m -> ((Number) m.get("room_id")).longValue()
|
m -> ((Number) m.get("room_id")).longValue()
|
||||||
));
|
));
|
||||||
Long existPartRoomId = existPartsRoomIdMap.get(roomName);
|
Long existPartRoomId = existPartsRoomIdMap.get(roomName);
|
||||||
|
|||||||
-13
@@ -23,11 +23,6 @@ public class WebCadImportProperties {
|
|||||||
*/
|
*/
|
||||||
private int asyncPlateThreshold;
|
private int asyncPlateThreshold;
|
||||||
|
|
||||||
/**
|
|
||||||
* 当前拆单的节点,异步用
|
|
||||||
*/
|
|
||||||
private String node;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 异步拆单请求json缓存地址
|
* 异步拆单请求json缓存地址
|
||||||
*/
|
*/
|
||||||
@@ -41,14 +36,6 @@ public class WebCadImportProperties {
|
|||||||
this.tempFilePath = tempFilePath;
|
this.tempFilePath = tempFilePath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNode() {
|
|
||||||
return node;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNode(String node) {
|
|
||||||
this.node = node;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAsyncPlateThreshold() {
|
public int getAsyncPlateThreshold() {
|
||||||
return asyncPlateThreshold;
|
return asyncPlateThreshold;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ spring:
|
|||||||
xxl:
|
xxl:
|
||||||
job:
|
job:
|
||||||
admin:
|
admin:
|
||||||
addresses: http://127.0.0.1:9090/xxl-job-admin # 调度中心部署跟地址
|
addresses: http://192.168.1.205:28080/xxl-job-admin # 调度中心部署跟地址
|
||||||
|
|
||||||
--- #################### 服务保障相关配置 ####################
|
--- #################### 服务保障相关配置 ####################
|
||||||
|
|
||||||
@@ -166,10 +166,9 @@ chenfeng:
|
|||||||
plan:
|
plan:
|
||||||
webcad:
|
webcad:
|
||||||
import:
|
import:
|
||||||
node: 1
|
|
||||||
async-plate-threshold: 5000
|
async-plate-threshold: 5000
|
||||||
cadImportPlateNumThreshold: 20000
|
cadImportPlateNumThreshold: 20000
|
||||||
temp-file-path: /data/imes-server/cf-prod-plan/local
|
temp-file-path: /data/imes-server/nfs
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
configuration:
|
configuration:
|
||||||
|
|||||||
+2
-3
@@ -194,10 +194,9 @@ chenfeng:
|
|||||||
plan:
|
plan:
|
||||||
webcad:
|
webcad:
|
||||||
import:
|
import:
|
||||||
node: 1
|
async-plate-threshold: 1000
|
||||||
async-plate-threshold: 5000
|
|
||||||
cadImportPlateNumThreshold: 20000
|
cadImportPlateNumThreshold: 20000
|
||||||
temp-file-path: /data/imes-server/cf-prod-plan/local
|
temp-file-path: Z:/
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
configuration:
|
configuration:
|
||||||
|
|||||||
Reference in New Issue
Block a user