Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
mes
Project
Project
Details
Activity
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
ximai
mes
Commits
c38e6887
Commit
c38e6887
authored
Nov 15, 2024
by
李驰骋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
排产支持工单单独充置开始时间
parent
1f61dfc0
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
31 additions
and
22 deletions
+31
-22
MdWorkunitController.java
...ava/com/ximai/mes/md/controller/MdWorkunitController.java
+2
-0
MdWorkunit.java
mes/src/main/java/com/ximai/mes/md/domain/MdWorkunit.java
+1
-1
MdItemMapper.java
mes/src/main/java/com/ximai/mes/md/mapper/MdItemMapper.java
+1
-1
ProWorkorderController.java
...s/pro/controller/proWorkOrder/ProWorkorderController.java
+2
-1
ProTaskWorkunit.java
...n/java/com/ximai/mes/pro/domain/task/ProTaskWorkunit.java
+1
-2
Job.java
mes/src/main/java/com/ximai/mes/pro/schedule/Job.java
+5
-0
AlgorithmDataSourceThXMImpl.java
...ai/mes/pro/schedule/impl/AlgorithmDataSourceThXMImpl.java
+12
-5
AlgorithmResultProcessImpl.java
...mai/mes/pro/schedule/impl/AlgorithmResultProcessImpl.java
+5
-5
ProTaskServiceImpl.java
...m/ximai/mes/pro/service/impl/task/ProTaskServiceImpl.java
+2
-7
No files found.
mes/src/main/java/com/ximai/mes/md/controller/MdWorkunitController.java
View file @
c38e6887
...
@@ -96,6 +96,7 @@ public class MdWorkunitController extends BaseController {
...
@@ -96,6 +96,7 @@ public class MdWorkunitController extends BaseController {
/**
/**
* 新增工作单元
* 新增工作单元
*/
*/
@ApiOperation
(
value
=
"修改工作单元"
)
@PreAuthorize
(
"@ss.hasPermi('md:workunit:add')"
)
@PreAuthorize
(
"@ss.hasPermi('md:workunit:add')"
)
@Log
(
title
=
"工作单元"
,
businessType
=
BusinessType
.
INSERT
)
@Log
(
title
=
"工作单元"
,
businessType
=
BusinessType
.
INSERT
)
@PostMapping
@PostMapping
...
@@ -106,6 +107,7 @@ public class MdWorkunitController extends BaseController {
...
@@ -106,6 +107,7 @@ public class MdWorkunitController extends BaseController {
/**
/**
* 修改工作单元
* 修改工作单元
*/
*/
@ApiOperation
(
value
=
"修改工作单元"
)
@PreAuthorize
(
"@ss.hasPermi('md:workunit:edit')"
)
@PreAuthorize
(
"@ss.hasPermi('md:workunit:edit')"
)
@Log
(
title
=
"工作单元"
,
businessType
=
BusinessType
.
UPDATE
)
@Log
(
title
=
"工作单元"
,
businessType
=
BusinessType
.
UPDATE
)
@PutMapping
@PutMapping
...
...
mes/src/main/java/com/ximai/mes/md/domain/MdWorkunit.java
View file @
c38e6887
...
@@ -73,7 +73,7 @@ public class MdWorkunit extends BaseEntity {
...
@@ -73,7 +73,7 @@ public class MdWorkunit extends BaseEntity {
private
Integer
serial
;
private
Integer
serial
;
@ApiModelProperty
(
"所属产线名"
)
@ApiModelProperty
(
"所属产线名"
)
private
Integer
lineName
;
private
String
lineName
;
/**
/**
* 是否故障
* 是否故障
...
...
mes/src/main/java/com/ximai/mes/md/mapper/MdItemMapper.java
View file @
c38e6887
...
@@ -149,7 +149,7 @@ public interface MdItemMapper extends BaseMapper<MdItem> {
...
@@ -149,7 +149,7 @@ public interface MdItemMapper extends BaseMapper<MdItem> {
*
*
* @return
* @return
*/
*/
@Select
(
value
=
"select line_name from md_item group by line_name"
)
@Select
(
value
=
"select line_name from md_item
where line_name is not null
group by line_name"
)
List
<
String
>
selectGroupLineName
();
List
<
String
>
selectGroupLineName
();
}
}
mes/src/main/java/com/ximai/mes/pro/controller/proWorkOrder/ProWorkorderController.java
View file @
c38e6887
...
@@ -126,7 +126,8 @@ public class ProWorkorderController extends BaseController {
...
@@ -126,7 +126,8 @@ public class ProWorkorderController extends BaseController {
query
.
in
(
StringUtils
.
isNotEmpty
(
proWorkorder
.
getStatusArr
()),
"t1.status"
,
query
.
in
(
StringUtils
.
isNotEmpty
(
proWorkorder
.
getStatusArr
()),
"t1.status"
,
proWorkorder
.
getStatusArr
());
proWorkorder
.
getStatusArr
());
query
.
in
(
"t1.status"
,
query
.
in
(
"t1.status"
,
new
String
[]{
WorkorderStatusEnum
.
PREPARE
.
getValue
(),
WorkorderStatusEnum
.
PUBLISHED
.
getValue
()});
new
String
[]{
WorkorderStatusEnum
.
PREPARE
.
getValue
(),
WorkorderStatusEnum
.
PUBLISHED
.
getValue
(),
WorkorderStatusEnum
.
ISSUED
.
getValue
()});
query
.
gt
(
"t1.quantity-t1.quantity_scheduled"
,
0
);
query
.
gt
(
"t1.quantity-t1.quantity_scheduled"
,
0
);
query
.
orderByDesc
(
"request_date"
);
query
.
orderByDesc
(
"request_date"
);
List
<
ProWorkorder
>
list
=
proWorkorderService
.
selectListByQw
(
query
);
List
<
ProWorkorder
>
list
=
proWorkorderService
.
selectListByQw
(
query
);
...
...
mes/src/main/java/com/ximai/mes/pro/domain/task/ProTaskWorkunit.java
View file @
c38e6887
...
@@ -25,8 +25,7 @@ import java.util.List;
...
@@ -25,8 +25,7 @@ import java.util.List;
@NoArgsConstructor
@NoArgsConstructor
public
class
ProTaskWorkunit
extends
BaseEntity
{
public
class
ProTaskWorkunit
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
@TableField
@TableId
@TableId
@ApiModelProperty
(
"生产任务ID"
)
@ApiModelProperty
(
"生产任务ID"
)
private
Long
taskWorkunitId
;
private
Long
taskWorkunitId
;
...
...
mes/src/main/java/com/ximai/mes/pro/schedule/Job.java
View file @
c38e6887
...
@@ -44,6 +44,11 @@ public class Job {
...
@@ -44,6 +44,11 @@ public class Job {
*/
*/
private
LocalDateTime
producedDeliveryDate
;
private
LocalDateTime
producedDeliveryDate
;
/**
* 排产开始日期
*/
private
LocalDateTime
scheduleDate
;
/*
/*
* 开始时间限制线
* 开始时间限制线
*/
*/
...
...
mes/src/main/java/com/ximai/mes/pro/schedule/impl/AlgorithmDataSourceThXMImpl.java
View file @
c38e6887
...
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
...
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import
cn.hutool.core.date.StopWatch
;
import
cn.hutool.core.date.StopWatch
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ximai.common.exception.ServiceException
;
import
com.ximai.common.exception.ServiceException
;
import
com.ximai.common.utils.MessageUtils
;
import
com.ximai.common.utils.MessageUtils
;
import
com.ximai.mes.cal.domain.CalPlanWorkunit
;
import
com.ximai.mes.cal.domain.CalPlanWorkunit
;
...
@@ -21,6 +22,7 @@ import com.ximai.mes.pro.service.productionSolution.IProProductionSolutionProces
...
@@ -21,6 +22,7 @@ import com.ximai.mes.pro.service.productionSolution.IProProductionSolutionProces
import
com.ximai.mes.pro.service.productionSolution.IProProductionSolutionService
;
import
com.ximai.mes.pro.service.productionSolution.IProProductionSolutionService
;
import
com.ximai.mes.pro.service.productionSolution.IProProductionSolutionSpecificationSheetService
;
import
com.ximai.mes.pro.service.productionSolution.IProProductionSolutionSpecificationSheetService
;
import
com.ximai.mes.pro.service.task.IProTaskWorkunitService
;
import
com.ximai.mes.pro.service.task.IProTaskWorkunitService
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -98,7 +100,8 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
...
@@ -98,7 +100,8 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
}
}
@Override
@Override
public
List
<
Job
>
getJob
(
LocalDateTime
schedulingStartedDate
,
List
<
WorkorderScheduleParams
>
workorderScheduleParams
,
List
<
Resource
>
resources
)
{
public
List
<
Job
>
getJob
(
LocalDateTime
scheduleStartedDate
,
List
<
WorkorderScheduleParams
>
workorderScheduleParams
,
List
<
Resource
>
resources
)
{
StopWatch
stopWatch
=
new
StopWatch
();
StopWatch
stopWatch
=
new
StopWatch
();
stopWatch
.
start
();
stopWatch
.
start
();
List
<
Job
>
algJobs
=
new
ArrayList
<
Job
>();
List
<
Job
>
algJobs
=
new
ArrayList
<
Job
>();
...
@@ -117,9 +120,11 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
...
@@ -117,9 +120,11 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
throw
new
ServiceException
(
MessageUtils
.
message
(
"pro.workOrder.error.not.null.requestDate"
));
throw
new
ServiceException
(
MessageUtils
.
message
(
"pro.workOrder.error.not.null.requestDate"
));
}
}
LocalDateTime
recentDate
=
list
.
stream
().
map
(
s
->
DateUtil
.
toLocalDateTime
(
s
.
getRequestDate
())).
min
(
Comparator
.
comparing
(
LocalDateTime:
:
toLocalDate
)).
get
();
LocalDateTime
recentDate
=
list
.
stream
().
map
(
s
->
DateUtil
.
toLocalDateTime
(
s
.
getRequestDate
())).
min
(
Comparator
.
comparing
(
LocalDateTime:
:
toLocalDate
)).
get
();
scheduleJobGroup
.
setQuantity
(
workorderScheduleParamsMap
.
get
(
workorder
.
getWorkorderId
()).
getScheduleQuantity
());
WorkorderScheduleParams
params
=
workorderScheduleParamsMap
.
get
(
workorder
.
getWorkorderId
());
scheduleJobGroup
.
setQuantity
(
params
.
getScheduleQuantity
());
scheduleJobGroup
.
setDemandDate
(
recentDate
);
scheduleJobGroup
.
setDemandDate
(
recentDate
);
scheduleJobGroup
.
setWorkorderCode
(
workorder
.
getWorkorderCode
());
scheduleJobGroup
.
setWorkorderCode
(
workorder
.
getWorkorderCode
());
scheduleJobGroup
.
setScheduleDate
(
params
.
getScheduleDate
());
scheduleJobGroupList
.
add
(
scheduleJobGroup
);
scheduleJobGroupList
.
add
(
scheduleJobGroup
);
}
}
//按交期近,数量少排序
//按交期近,数量少排序
...
@@ -138,16 +143,16 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
...
@@ -138,16 +143,16 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
continue
;
continue
;
}
}
// 工序分组 生成Job及Task
// 工序分组 生成Job及Task
Job
job
=
new
Job
(
scheduleJobGroup
.
getWorkorderCode
(),
Duration
.
between
(
schedul
ingStartedDate
,
DateUtil
.
date
(
scheduleJobGroup
.
getDemandDate
()).
toLocalDateTime
()))
{{
Job
job
=
new
Job
(
scheduleJobGroup
.
getWorkorderCode
(),
Duration
.
between
(
schedul
eJobGroup
.
getScheduleDate
()
,
DateUtil
.
date
(
scheduleJobGroup
.
getDemandDate
()).
toLocalDateTime
()))
{{
setFixed
(
false
);
setFixed
(
false
);
}};
}};
JobExtent
jobExtent
=
new
JobExtent
();
JobExtent
jobExtent
=
new
JobExtent
();
jobExtent
.
setWorkorderList
(
scheduleJobGroup
.
getWorkorderList
());
jobExtent
.
setWorkorderList
(
scheduleJobGroup
.
getWorkorderList
());
job
.
setJobExtend
(
jobExtent
);
job
.
setJobExtend
(
jobExtent
);
job
.
getLmtStartedTime
().
addOptional
(
Duration
.
ZERO
);
job
.
getLmtStartedTime
().
addOptional
(
Duration
.
ZERO
);
job
.
getLmtEndedTime
().
addOptional
(
Duration
.
between
(
schedul
ingStartedDate
,
DateUtil
.
date
(
scheduleJobGroup
.
getDemandDate
()).
toLocalDateTime
()));
job
.
getLmtEndedTime
().
addOptional
(
Duration
.
between
(
schedul
eJobGroup
.
getScheduleDate
()
,
DateUtil
.
date
(
scheduleJobGroup
.
getDemandDate
()).
toLocalDateTime
()));
job
.
setQuantity
(
scheduleJobGroup
.
getQuantity
());
job
.
setQuantity
(
scheduleJobGroup
.
getQuantity
());
job
.
setScheduleDate
(
scheduleJobGroup
.
getScheduleDate
());
for
(
ProWorkOrderProcess
routingItem
:
productionOrderRoutings
)
{
for
(
ProWorkOrderProcess
routingItem
:
productionOrderRoutings
)
{
Task
task
=
new
Task
(
i
,
job
);
Task
task
=
new
Task
(
i
,
job
);
task
.
setStandardWorkingTime
(
Duration
.
ZERO
);
task
.
setStandardWorkingTime
(
Duration
.
ZERO
);
...
@@ -238,6 +243,8 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
...
@@ -238,6 +243,8 @@ public class AlgorithmDataSourceThXMImpl implements AlgorithmDataSource {
List
<
ProWorkorder
>
workorderList
;
List
<
ProWorkorder
>
workorderList
;
//最近交期
//最近交期
LocalDateTime
demandDate
;
LocalDateTime
demandDate
;
//排产开始日期
LocalDateTime
scheduleDate
;
//总数量
//总数量
BigDecimal
quantity
;
BigDecimal
quantity
;
//工单单号
//工单单号
...
...
mes/src/main/java/com/ximai/mes/pro/schedule/impl/AlgorithmResultProcessImpl.java
View file @
c38e6887
...
@@ -115,13 +115,13 @@ public class AlgorithmResultProcessImpl implements AlgorithmResultProcess {
...
@@ -115,13 +115,13 @@ public class AlgorithmResultProcessImpl implements AlgorithmResultProcess {
List
<
Task
>
dispenseList
=
task
.
getSplitTask
();
List
<
Task
>
dispenseList
=
task
.
getSplitTask
();
List
<
ProTaskWorkunit
>
workunitList
=
new
ArrayList
<>();
List
<
ProTaskWorkunit
>
workunitList
=
new
ArrayList
<>();
if
(
dispenseList
==
null
)
{
if
(
dispenseList
==
null
)
{
ProTaskWorkunit
taskWorkunit
=
this
.
convertTaskWorkunit
(
scheduleStartDate
,
proTask
,
task
);
ProTaskWorkunit
taskWorkunit
=
this
.
convertTaskWorkunit
(
scheduleStartDate
,
proTask
,
job
,
task
);
proTaskWorkunitService
.
insertProTaskWorkunit
(
taskWorkunit
);
proTaskWorkunitService
.
insertProTaskWorkunit
(
taskWorkunit
);
taskWorkunitIds
.
add
(
taskWorkunit
.
getTaskWorkunitId
());
taskWorkunitIds
.
add
(
taskWorkunit
.
getTaskWorkunitId
());
workunitList
.
add
(
taskWorkunit
);
workunitList
.
add
(
taskWorkunit
);
}
else
{
}
else
{
for
(
Task
dispense
:
dispenseList
)
{
for
(
Task
dispense
:
dispenseList
)
{
ProTaskWorkunit
taskWorkunit
=
this
.
convertTaskWorkunit
(
scheduleStartDate
,
proTask
,
dispense
);
ProTaskWorkunit
taskWorkunit
=
this
.
convertTaskWorkunit
(
scheduleStartDate
,
proTask
,
job
,
dispense
);
proTaskWorkunitService
.
insertProTaskWorkunit
(
taskWorkunit
);
proTaskWorkunitService
.
insertProTaskWorkunit
(
taskWorkunit
);
taskWorkunitIds
.
add
(
taskWorkunit
.
getWorkunitId
());
taskWorkunitIds
.
add
(
taskWorkunit
.
getWorkunitId
());
workunitList
.
add
(
taskWorkunit
);
workunitList
.
add
(
taskWorkunit
);
...
@@ -151,7 +151,7 @@ public class AlgorithmResultProcessImpl implements AlgorithmResultProcess {
...
@@ -151,7 +151,7 @@ public class AlgorithmResultProcessImpl implements AlgorithmResultProcess {
return
proTask
;
return
proTask
;
}
}
private
ProTaskWorkunit
convertTaskWorkunit
(
LocalDateTime
scheduleStartDate
,
ProTask
proTask
,
Task
task
)
{
private
ProTaskWorkunit
convertTaskWorkunit
(
LocalDateTime
scheduleStartDate
,
ProTask
proTask
,
Job
job
,
Task
task
)
{
ProTaskWorkunit
taskWorkunit
=
new
ProTaskWorkunit
();
ProTaskWorkunit
taskWorkunit
=
new
ProTaskWorkunit
();
taskWorkunit
.
setTaskId
(
proTask
.
getTaskId
());
taskWorkunit
.
setTaskId
(
proTask
.
getTaskId
());
taskWorkunit
.
setIdx
(
1L
);
taskWorkunit
.
setIdx
(
1L
);
...
@@ -167,8 +167,8 @@ public class AlgorithmResultProcessImpl implements AlgorithmResultProcess {
...
@@ -167,8 +167,8 @@ public class AlgorithmResultProcessImpl implements AlgorithmResultProcess {
taskWorkunit
.
setUnitPrice
(
task
.
getUnitPrice
());
taskWorkunit
.
setUnitPrice
(
task
.
getUnitPrice
());
taskWorkunit
.
setStdWorkingTime
(
task
.
getStdWorkingTime
());
taskWorkunit
.
setStdWorkingTime
(
task
.
getStdWorkingTime
());
taskWorkunit
.
setStdWorkingTimeUom
(
task
.
getStdWorkingTimeUom
());
taskWorkunit
.
setStdWorkingTimeUom
(
task
.
getStdWorkingTimeUom
());
LocalDateTime
sdate
=
scheduleStartDate
.
plus
(
task
.
getScheduledStartedTime
());
LocalDateTime
sdate
=
job
.
getScheduleDate
()
.
plus
(
task
.
getScheduledStartedTime
());
LocalDateTime
edate
=
scheduleStartDate
.
plus
(
task
.
getScheduledEndedTime
());
LocalDateTime
edate
=
job
.
getScheduleDate
()
.
plus
(
task
.
getScheduledEndedTime
());
Date
sdate1
=
Date
.
from
(
sdate
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
Date
sdate1
=
Date
.
from
(
sdate
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
Date
edate1
=
Date
.
from
(
edate
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
Date
edate1
=
Date
.
from
(
edate
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
taskWorkunit
.
setScheduleStartDate
(
sdate1
);
taskWorkunit
.
setScheduleStartDate
(
sdate1
);
...
...
mes/src/main/java/com/ximai/mes/pro/service/impl/task/ProTaskServiceImpl.java
View file @
c38e6887
...
@@ -1308,13 +1308,8 @@ public class ProTaskServiceImpl implements IProTaskService {
...
@@ -1308,13 +1308,8 @@ public class ProTaskServiceImpl implements IProTaskService {
add
(
scheduleSetupRuleAlgorithmData
);
add
(
scheduleSetupRuleAlgorithmData
);
}
}
});
});
scheduleAlgorithmAdapter
.
schedule
(
LocalDateTime
.
now
(),
workorderScheduleParams
);
LocalDateTime
minStartSchedule
=
workorderScheduleParams
.
stream
().
map
(
s
->
s
.
getScheduleDate
()).
sorted
().
findFirst
().
get
();
scheduleAlgorithmAdapter
.
schedule
(
minStartSchedule
,
workorderScheduleParams
);
StopWatch
stopWatch
=
new
StopWatch
();
stopWatch
.
start
();
stopWatch
.
stop
();
logger
.
info
(
String
.
format
(
"排产结果发送SAP耗时:%s"
,
stopWatch
.
getTotalTimeSeconds
()));
}
}
@Override
@Override
...
...
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