Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
HYH.APSJ
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
佟礼
HYH.APSJ
Commits
fb51b206
Commit
fb51b206
authored
Feb 10, 2026
by
DESKTOP-VKRD9QF\Administration
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保存订单和删除场景时删除缓存
parent
a27d4795
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
126 additions
and
14 deletions
+126
-14
LanuchController.java
src/main/java/com/aps/controller/LanuchController.java
+11
-0
ConditionEnum.java
src/main/java/com/aps/entity/common/ConditionEnum.java
+18
-7
MaterialRequirementService.java
...com/aps/service/Algorithm/MaterialRequirementService.java
+3
-3
LanuchService.java
src/main/java/com/aps/service/LanuchService.java
+5
-0
ChromosomeDataService.java
...in/java/com/aps/service/common/ChromosomeDataService.java
+3
-1
DatabaseQueryService.java
...ain/java/com/aps/service/common/DatabaseQueryService.java
+3
-0
LanuchServiceImpl.java
src/main/java/com/aps/service/impl/LanuchServiceImpl.java
+69
-0
ProdSceneConfigServiceImpl.java
...java/com/aps/service/impl/ProdSceneConfigServiceImpl.java
+11
-0
SceneService.java
src/main/java/com/aps/service/plan/SceneService.java
+3
-3
No files found.
src/main/java/com/aps/controller/LanuchController.java
View file @
fb51b206
...
...
@@ -176,4 +176,15 @@ public class LanuchController {
.
list
();
return
R
.
ok
(
scenes
);
}
/**
* 保存方案
*/
@PostMapping
(
"/savePlan"
)
@Operation
(
summary
=
"保存方案"
)
public
R
<
String
>
savePlan
(
@RequestBody
Map
<
String
,
String
>
params
)
{
String
sceneId
=
params
.
get
(
"sceneId"
);
return
lanuchService
.
savePlan
(
sceneId
);
}
}
\ No newline at end of file
src/main/java/com/aps/entity/common/ConditionEnum.java
View file @
fb51b206
...
...
@@ -2,9 +2,10 @@ package com.aps.entity.common;
public
enum
ConditionEnum
{
Equal
(
"Equal"
,
0
),
// 等于
NoEqual
(
"NoEqual"
,
10
),
// 等于
Like
(
"Like"
,
1
),
//模糊
Equal
(
"Equal"
,
0
),
// 等于
NoEqual
(
"NoEqual"
,
10
),
// 不等于
Like
(
"Like"
,
1
),
//模糊
NotLike
(
"NotLike"
,
11
),
// 不模糊
GreaterThan
(
"GreaterThan"
,
2
),
//大于
GreaterThanOrEqual
(
"GreaterThanOrEqual"
,
3
),
//大于等于
LessThan
(
"LessThan"
,
4
),
//小于
...
...
@@ -35,10 +36,20 @@ public enum ConditionEnum {
String
trimmedName
=
name
.
trim
();
// 处理常见的不等于条件的不同拼写方式
if
(
trimmedName
.
equalsIgnoreCase
(
"notequal"
)
||
trimmedName
.
equalsIgnoreCase
(
"notEqual"
))
{
return
NoEqual
;
}
// 处理常见的不等于条件的不同拼写方式
if
(
trimmedName
.
equalsIgnoreCase
(
"notequal"
)
||
trimmedName
.
equalsIgnoreCase
(
"notEqual"
))
{
return
NoEqual
;
}
// 处理不模糊条件的不同拼写方式
if
(
trimmedName
.
equalsIgnoreCase
(
"notlike"
)
||
trimmedName
.
equalsIgnoreCase
(
"notLike"
)
||
trimmedName
.
equalsIgnoreCase
(
"notContains"
))
{
return
NotLike
;
}
// 处理前端传入的Contains条件
if
(
trimmedName
.
equalsIgnoreCase
(
"contains"
))
{
return
Like
;
}
// 遍历所有枚举值,使用equalsIgnoreCase比较
for
(
ConditionEnum
status
:
ConditionEnum
.
values
())
{
...
...
src/main/java/com/aps/service/Algorithm/MaterialRequirementService.java
View file @
fb51b206
package
com
.
aps
.
service
.
Algorithm
;
import
com.aps.common.util.GlobalCacheUtil
;
import
com.aps.common.util.SnowFlackIdWorker
;
import
com.aps.common.util.redis.RedisUtils
;
import
com.aps.entity.*
;
import
com.aps.entity.Algorithm.*
;
...
...
@@ -11,11 +11,10 @@ import com.aps.mapper.RoutingHeaderMapper;
import
com.aps.mapper.RoutingSupportingReplaceMapper
;
import
com.aps.mapper.RoutingsupportingMapper
;
import
com.aps.service.*
;
import
com.aps.service.impl.LanuchServiceImpl
;
import
com.aps.service.plan.MachineSchedulerService
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -1619,5 +1618,6 @@ if(headers1==null)
GlobalCacheUtil
.
remove
(
sceneId
+
routingDiscreteParamCacheKey
);
}
}
src/main/java/com/aps/service/LanuchService.java
View file @
fb51b206
...
...
@@ -62,4 +62,9 @@ public interface LanuchService {
String
sceneId
,
Map
<
String
,
String
>
routingDetailIdToExecIdMap
);
/**
* 保存方案:将新创建的订单添加到PROD_LAUNCH_ORDER表
*/
R
<
String
>
savePlan
(
String
sceneId
);
}
\ No newline at end of file
src/main/java/com/aps/service/common/ChromosomeDataService.java
View file @
fb51b206
...
...
@@ -2175,7 +2175,9 @@ public class ChromosomeDataService {
// 使用compareValues方法比较,支持数字和字符串
return
compareValues
(
actualValueStr
,
fieldValue
)
!=
0
;
case
Like:
return
actualValueStr
.
contains
(
fieldValue
);
return
actualValueStr
.
toLowerCase
().
contains
(
fieldValue
.
toLowerCase
());
case
NotLike:
return
!
actualValueStr
.
toLowerCase
().
contains
(
fieldValue
.
toLowerCase
());
case
GreaterThan:
return
compareValues
(
actualValueStr
,
fieldValue
)
>
0
;
case
GreaterThanOrEqual:
...
...
src/main/java/com/aps/service/common/DatabaseQueryService.java
View file @
fb51b206
...
...
@@ -599,6 +599,9 @@ public class DatabaseQueryService {
case
Like:
params
.
addValue
(
paramName
,
"%"
+
condition
.
getSafeValue
()
+
"%"
);
return
fieldName
+
" LIKE :"
+
paramName
;
case
NotLike:
params
.
addValue
(
paramName
,
"%"
+
condition
.
getSafeValue
()
+
"%"
);
return
fieldName
+
" NOT LIKE :"
+
paramName
;
case
GreaterThan:
params
.
addValue
(
paramName
,
condition
.
getSafeValue
());
return
fieldName
+
" > :"
+
paramName
;
...
...
src/main/java/com/aps/service/impl/LanuchServiceImpl.java
View file @
fb51b206
...
...
@@ -1040,6 +1040,75 @@ public class LanuchServiceImpl implements LanuchService {
return
value
;
}
/**
* 保存方案:将新创建的订单添加到PROD_LAUNCH_ORDER表
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
R
<
String
>
savePlan
(
String
sceneId
)
{
if
(
sceneId
==
null
||
sceneId
.
trim
().
isEmpty
())
{
throw
new
IllegalArgumentException
(
"场景ID不能为空"
);
}
// 从文件加载Chromosome对象
Chromosome
chromosome
=
sceneService
.
loadChromosomeFromFile
(
sceneId
);
if
(
chromosome
==
null
||
chromosome
.
getOrders
()
==
null
||
chromosome
.
getOrders
().
isEmpty
())
{
throw
new
RuntimeException
(
"未找到订单数据"
);
}
// 过滤出newCreate = true的Order对象
List
<
Order
>
newOrders
=
chromosome
.
getOrders
().
stream
()
.
filter
(
Order:
:
isNewCreate
)
.
collect
(
Collectors
.
toList
());
if
(
newOrders
.
isEmpty
())
{
return
R
.
ok
(
"没有新创建的订单需要保存"
);
}
// 将Order对象转换为ProdLaunchOrder对象
List
<
ProdLaunchOrder
>
launchOrders
=
newOrders
.
stream
()
.
map
(
order
->
convertOrderToLaunchOrder
(
order
,
sceneId
))
.
filter
(
Objects:
:
nonNull
)
.
collect
(
Collectors
.
toList
());
// 批量保存到PROD_LAUNCH_ORDER表
if
(!
launchOrders
.
isEmpty
())
{
boolean
saved
=
prodLaunchOrderService
.
saveBatch
(
launchOrders
);
if
(
saved
)
{
log
.
info
(
"成功保存{}个新订单到PROD_LAUNCH_ORDER表"
,
launchOrders
.
size
());
return
R
.
ok
(
"保存方案成功,共保存"
+
launchOrders
.
size
()
+
"个新订单"
);
}
else
{
log
.
error
(
"保存订单到PROD_LAUNCH_ORDER表失败"
);
throw
new
RuntimeException
(
"保存订单失败"
);
}
}
else
{
return
R
.
ok
(
"没有有效的订单数据需要保存"
);
}
}
/**
* 将Order转换为ProdLaunchOrder
*/
private
ProdLaunchOrder
convertOrderToLaunchOrder
(
Order
order
,
String
sceneId
)
{
ProdLaunchOrder
launchOrder
=
new
ProdLaunchOrder
();
launchOrder
.
setOrderId
(
order
.
getOrderId
());
launchOrder
.
setSceneId
(
sceneId
);
launchOrder
.
setRoutingId
(
order
.
getRoutingId
());
launchOrder
.
setSerie
(
order
.
getSerie
());
// 创建用户可以从场景配置中获取,这里暂时设置为默认值
launchOrder
.
setCreateUser
(
"system"
);
launchOrder
.
setMaterialCode
(
order
.
getMaterialCode
());
launchOrder
.
setMaterialName
(
order
.
getMaterialName
());
launchOrder
.
setStartDate
(
order
.
getStartDate
());
launchOrder
.
setEndDate
(
order
.
getDueDate
());
launchOrder
.
setOrderPriority
(
order
.
getPriority
());
launchOrder
.
setQuantity
(
order
.
getQuantity
());
launchOrder
.
setOrderCode
(
order
.
getOrderCode
());
launchOrder
.
setMaterialId
(
order
.
getMaterialId
());
launchOrder
.
setRoutingCode
(
order
.
getRoutingCode
());
return
launchOrder
;
}
private
int
cachetimeout
=
60
;
private
List
<
Equiptype1
>
GetEquipTypes
()
{
List
<
Equiptype1
>
equipTypes
=(
List
<
Equiptype1
>)
GlobalCacheUtil
.
get
(
"equipType"
);
...
...
src/main/java/com/aps/service/impl/ProdSceneConfigServiceImpl.java
View file @
fb51b206
...
...
@@ -8,9 +8,12 @@ import com.aps.service.ProdProcessExecService;
import
com.aps.service.ProdEquipmentService
;
import
com.aps.service.ProdEquipSpecialCalService
;
import
com.aps.service.ProdOrderProcessService
;
import
com.aps.common.util.redis.RedisUtils
;
import
com.aps.service.Algorithm.MaterialRequirementService
;
import
com.aps.service.plan.SceneService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -43,6 +46,11 @@ public class ProdSceneConfigServiceImpl extends ServiceImpl<ProdSceneConfigMappe
@Autowired
private
SceneService
sceneService
;
@Autowired
@Lazy
// 添加@Lazy注解,延迟加载LanuchService,解决循环依赖问题
private
MaterialRequirementService
materialRequirementService
;
/**
* 根据场景ID删除场景及其相关数据
* @param sceneId 场景ID
...
...
@@ -80,6 +88,9 @@ public class ProdSceneConfigServiceImpl extends ServiceImpl<ProdSceneConfigMappe
// 删除场景对应的染色体文件
sceneService
.
deleteChromosomeFile
(
sceneId
);
// 清除MaterialRequirementService的缓存
materialRequirementService
.
clearCache
(
sceneId
);
// 2. 删除场景配置本身
return
this
.
removeById
(
sceneId
);
}
...
...
src/main/java/com/aps/service/plan/SceneService.java
View file @
fb51b206
...
...
@@ -304,7 +304,6 @@ public class SceneService {
if
(
deleted
)
{
logger
.
info
(
"删除染色体文件成功: {}"
,
file
.
getAbsolutePath
());
}
return
deleted
;
}
}
else
{
for
(
SceneDetail
d:
sceneChromsome
.
getSceneDetails
())
{
...
...
@@ -316,11 +315,12 @@ public class SceneService {
}
}
return
true
;
}
}
// 删除Redis中的场景信息
redisUtils
.
del
(
"SceneId."
+
sceneId
);
logger
.
info
(
"删除Redis场景信息成功: {}"
,
"SceneId."
+
sceneId
);
return
true
;
}
catch
(
Exception
e
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment