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
a77cb536
Commit
a77cb536
authored
May 21, 2026
by
chicheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
外协末尾道工序更新工单、推送ERP逻辑添加
parent
6f2d2c54
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
6 deletions
+51
-6
ProTaskAssistProcessServiceImpl.java
...ro/service/impl/task/ProTaskAssistProcessServiceImpl.java
+51
-6
No files found.
mes/src/main/java/com/ximai/mes/pro/service/impl/task/ProTaskAssistProcessServiceImpl.java
View file @
a77cb536
...
...
@@ -8,7 +8,9 @@ import com.ximai.common.utils.SecurityUtils;
import
com.ximai.common.utils.data.DataUtil
;
import
com.ximai.common.utils.data.ExceptionUtil
;
import
com.ximai.common.utils.data.StringUtils
;
import
com.ximai.mes.constant.*
;
import
com.ximai.mes.constant.TaskStatusEnum
;
import
com.ximai.mes.constant.TaskWorkunitStatusEnum
;
import
com.ximai.mes.constant.WorkorderStatusEnum
;
import
com.ximai.mes.pro.domain.ProFeedback
;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkOrderProcess
;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkorder
;
...
...
@@ -40,10 +42,13 @@ import org.springframework.transaction.annotation.Transactional;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
import
java.util.Calendar
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
static
com
.
ximai
.
mes
.
constant
.
TaskWorkunitStatusEnum
.
BEGINNING
;
...
...
@@ -298,24 +303,23 @@ public class ProTaskAssistProcessServiceImpl implements IProTaskAssistProcessSer
ExceptionUtil
.
checkTrueThrowException
(
quantityFeedbackDouble
>
taskQuantityWait
.
longValue
()
||
quantityFeedbackDouble
>
taskQuantityDouble
,
MessageUtils
.
message
(
"pro.feedback.error.quantity.lack"
));
BigDecimal
quantityWait
=
taskQuantityWait
.
subtract
(
quantity
Qualify
);
BigDecimal
quantityWait
=
taskQuantityWait
.
subtract
(
quantity
Feedback
);
task
.
setQuantityWait
(
quantityWait
);
task
.
setQuantityQualify
(
task
.
getQuantityQualify
().
add
(
quantityQualify
));
task
.
setQuantityUnqualify
(
task
.
getQuantityUnqualify
().
add
(
quantityUnQualify
));
task
.
setQuantityProduced
(
task
.
getQuantityProduced
().
add
(
quantity
Qualify
));
task
.
setQuantityProduced
(
task
.
getQuantityProduced
().
add
(
quantity
Feedback
));
taskWorkunit
.
setQuantityQualify
(
taskWorkunit
.
getQuantityQualify
().
add
(
quantityQualify
));
taskWorkunit
.
setQuantityUnqualify
(
taskWorkunit
.
getQuantityUnqualify
().
add
(
quantityUnQualify
));
taskWorkunit
.
setQuantityProduced
(
taskWorkunit
.
getQuantityProduced
().
add
(
quantity
Qualify
));
taskWorkunit
.
setQuantityProduced
(
taskWorkunit
.
getQuantityProduced
().
add
(
quantity
Feedback
));
if
(
feedback
.
getCloseType
()
==
1
||
taskWorkunit
.
getQuantity
().
compareTo
(
taskWorkunit
.
getQuantityProduced
())
<=
0
)
{
taskWorkunit
.
setStatus
(
TaskWorkunitStatusEnum
.
FINISHED
.
getStatus
());
taskWorkunit
.
setActualEndDate
(
Calendar
.
getInstance
().
getTime
());
proTaskWorkunitService
.
updateProTaskWorkunit
(
taskWorkunit
);
}
//按派工表保存报工记录
feedback
.
setFeedbackType
(
"
SELF
"
);
feedback
.
setFeedbackType
(
"
OUTSOURCE
"
);
feedback
.
setNickName
(
sysUserMapper
.
selectUserById
(
SecurityUtils
.
getUserId
()).
getNickName
());
proFeedbackService
.
insertProFeedback
(
feedback
);
...
...
@@ -339,9 +343,50 @@ public class ProTaskAssistProcessServiceImpl implements IProTaskAssistProcessSer
proTaskService
.
updateProTask
(
task
);
proTaskWorkunitService
.
updateProTaskWorkunit
(
taskWorkunit
);
// 末道工序:与普通报工 doFeedBack 一致,回写工单并触发 ERP 完工入库(reportUpdateProWorkorder)
if
(
nextTask
==
null
&&
quantityQualify
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
if
(
workorder
!=
null
)
{
proWorkorderService
.
reportUpdateProWorkorder
(
workorder
,
quantityQualify
,
quantityUnQualify
);
}
tryFinishWorkorderOnLastProcessComplete
(
task
);
}
return
1
;
}
/**
* 外协末道工序全部派工完工后,将关联工单置为已完成(对齐 changeStatus 末道逻辑,仅外协报工使用)
*/
private
void
tryFinishWorkorderOnLastProcessComplete
(
ProTask
task
)
{
if
(
task
==
null
||
task
.
getIsLastProcess
()
==
null
||
task
.
getIsLastProcess
()
!=
1
)
{
return
;
}
if
(
proTaskService
.
getNextTaskByTaskId
(
task
.
getTaskId
())
!=
null
)
{
return
;
}
QueryWrapper
<
ProTaskWorkunit
>
taskWorkunitQuery
=
new
QueryWrapper
<>();
taskWorkunitQuery
.
eq
(
"task_id"
,
task
.
getTaskId
());
taskWorkunitQuery
.
notIn
(
"status"
,
TaskStatusEnum
.
FINISHED
.
getStatus
());
if
(
CollectionUtil
.
isNotEmpty
(
proTaskWorkunitService
.
selectListByQw
(
taskWorkunitQuery
)))
{
return
;
}
ProWorkorder
workorderQuery
=
new
ProWorkorder
();
workorderQuery
.
setTaskId
(
task
.
getTaskId
());
List
<
ProWorkorder
>
workorders
=
proWorkorderService
.
selectProWorkorderByTaskId
(
workorderQuery
);
if
(
CollectionUtil
.
isEmpty
(
workorders
))
{
return
;
}
Set
<
String
>
terminalStatuses
=
new
HashSet
<>(
Arrays
.
asList
(
WorkorderStatusEnum
.
FINISHED
.
getValue
(),
WorkorderStatusEnum
.
CLOSE
.
getValue
(),
WorkorderStatusEnum
.
CANCEL
.
getValue
(),
WorkorderStatusEnum
.
CANCELED
.
getValue
()));
for
(
ProWorkorder
wo
:
workorders
)
{
if
(!
terminalStatuses
.
contains
(
wo
.
getStatus
()))
{
proWorkorderService
.
updateWorkorderState
(
wo
,
WorkorderStatusEnum
.
FINISHED
);
}
}
}
@Transactional
@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