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
8c2b9102
Commit
8c2b9102
authored
Oct 28, 2024
by
温志超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更新修改报工
parent
bfe938d1
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
62 additions
and
27 deletions
+62
-27
ProTaskMapper.java
...ain/java/com/ximai/mes/pro/mapper/task/ProTaskMapper.java
+1
-1
ProFeedbackServiceImpl.java
...om/ximai/mes/pro/service/impl/ProFeedbackServiceImpl.java
+45
-17
ProTaskServiceImpl.java
...m/ximai/mes/pro/service/impl/task/ProTaskServiceImpl.java
+16
-9
No files found.
mes/src/main/java/com/ximai/mes/pro/mapper/task/ProTaskMapper.java
View file @
8c2b9102
...
@@ -150,7 +150,7 @@ public interface ProTaskMapper extends BaseMapper<ProTask> {
...
@@ -150,7 +150,7 @@ public interface ProTaskMapper extends BaseMapper<ProTask> {
* @param query
* @param query
* @return
* @return
*/
*/
@Select
(
value
=
"select t.task_id, t.task_code, t.task_name\n"
+
@Select
(
value
=
"select t.task_id, t.task_code, t.task_name
,t.ordinal
\n"
+
"\t, t.workstation_id, t.workstation_code, t.workstation_name\n"
+
"\t, t.workstation_id, t.workstation_code, t.workstation_name\n"
+
"\t, t.process_id, t.process_code, t.process_name\n"
+
"\t, t.process_id, t.process_code, t.process_name\n"
+
"\t, t.item_id, t.item_code, t.item_name, t.specification, t.unit_of_measure\n"
+
"\t, t.item_id, t.item_code, t.item_name, t.specification, t.unit_of_measure\n"
+
...
...
mes/src/main/java/com/ximai/mes/pro/service/impl/ProFeedbackServiceImpl.java
View file @
8c2b9102
...
@@ -25,6 +25,7 @@ import com.ximai.mes.pro.domain.*;
...
@@ -25,6 +25,7 @@ import com.ximai.mes.pro.domain.*;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkOrderProcess
;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkOrderProcess
;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkOrderProcessItem
;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkOrderProcessItem
;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkorder
;
import
com.ximai.mes.pro.domain.proWorkOrder.ProWorkorder
;
import
com.ximai.mes.pro.domain.productionSolution.ProProductionSolution
;
import
com.ximai.mes.pro.domain.sap.SAPDtoFeedback
;
import
com.ximai.mes.pro.domain.sap.SAPDtoFeedback
;
import
com.ximai.mes.pro.domain.task.ProTask
;
import
com.ximai.mes.pro.domain.task.ProTask
;
import
com.ximai.mes.pro.domain.task.ProTaskWorkunit
;
import
com.ximai.mes.pro.domain.task.ProTaskWorkunit
;
...
@@ -36,6 +37,7 @@ import com.ximai.mes.pro.domain.vo.task.FeedbackValidateSerialNoParams;
...
@@ -36,6 +37,7 @@ import com.ximai.mes.pro.domain.vo.task.FeedbackValidateSerialNoParams;
import
com.ximai.mes.pro.mapper.*
;
import
com.ximai.mes.pro.mapper.*
;
import
com.ximai.mes.pro.mapper.proWorkOrder.ProWorkOrderProcessItemMapper
;
import
com.ximai.mes.pro.mapper.proWorkOrder.ProWorkOrderProcessItemMapper
;
import
com.ximai.mes.pro.mapper.proWorkOrder.ProWorkorderMapper
;
import
com.ximai.mes.pro.mapper.proWorkOrder.ProWorkorderMapper
;
import
com.ximai.mes.pro.mapper.productionSolution.ProProductionSolutionMapper
;
import
com.ximai.mes.pro.mapper.task.ProTaskMapper
;
import
com.ximai.mes.pro.mapper.task.ProTaskMapper
;
import
com.ximai.mes.pro.mapper.task.ProTaskWorkunitMapper
;
import
com.ximai.mes.pro.mapper.task.ProTaskWorkunitMapper
;
import
com.ximai.mes.pro.service.IProFeedbackService
;
import
com.ximai.mes.pro.service.IProFeedbackService
;
...
@@ -88,6 +90,9 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
...
@@ -88,6 +90,9 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
@Autowired
@Autowired
private
ProArrangeMapper
proArrangeMapper
;
private
ProArrangeMapper
proArrangeMapper
;
@Autowired
ProProductionSolutionMapper
proProductionSolutionMapper
;
@Autowired
@Autowired
private
IProWorkorderService
proWorkorderService
;
private
IProWorkorderService
proWorkorderService
;
...
@@ -721,10 +726,16 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
...
@@ -721,10 +726,16 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
// 减少
// 减少
thisTaskUnQualify
=
BigDecimal
.
valueOf
(
thisTaskUnQualify
.
doubleValue
()
-
v2abs
);
thisTaskUnQualify
=
BigDecimal
.
valueOf
(
thisTaskUnQualify
.
doubleValue
()
-
v2abs
);
taskWorkunitUnQualify
=
proTaskWorkunit
.
getQuantityUnqualify
().
doubleValue
()
-
v2abs
;
taskWorkunitUnQualify
=
proTaskWorkunit
.
getQuantityUnqualify
().
doubleValue
()
-
v2abs
;
taskWorkunitProduced
=
proTaskWorkunit
.
getQuantityProduced
().
doubleValue
()
-
v2abs
;
thisTaskProduced
=
BigDecimal
.
valueOf
(
thisTaskProduced
.
doubleValue
()
-
v2abs
);
thisTaskWait
=
BigDecimal
.
valueOf
(
thisTaskWait
.
doubleValue
()
+
v2abs
);
}
else
{
}
else
{
// 增加
// 增加
thisTaskUnQualify
=
BigDecimal
.
valueOf
(
thisTaskUnQualify
.
doubleValue
()
+
v2abs
);
thisTaskUnQualify
=
BigDecimal
.
valueOf
(
thisTaskUnQualify
.
doubleValue
()
+
v2abs
);
taskWorkunitUnQualify
=
proTaskWorkunit
.
getQuantityUnqualify
().
doubleValue
()
+
v2abs
;
taskWorkunitUnQualify
=
proTaskWorkunit
.
getQuantityUnqualify
().
doubleValue
()
+
v2abs
;
taskWorkunitProduced
=
proTaskWorkunit
.
getQuantityProduced
().
doubleValue
()
+
v2abs
;
thisTaskProduced
=
BigDecimal
.
valueOf
(
thisTaskProduced
.
doubleValue
()
+
v2abs
);
thisTaskWait
=
BigDecimal
.
valueOf
(
thisTaskWait
.
doubleValue
()
-
v2abs
);
}
}
}
}
...
@@ -734,38 +745,55 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
...
@@ -734,38 +745,55 @@ public class ProFeedbackServiceImpl implements IProFeedbackService {
if
(
v1
<
0
)
{
if
(
v1
<
0
)
{
// 减少
// 减少
taskWorkunitQualify
=
proTaskWorkunit
.
getQuantityQualify
().
doubleValue
()
-
v1abc
;
taskWorkunitQualify
=
proTaskWorkunit
.
getQuantityQualify
().
doubleValue
()
-
v1abc
;
taskWorkunitProduced
=
proTaskWorkunit
.
getQuantityProduced
().
doubleValue
()
-
v1abc
;
thisTaskQualify
=
BigDecimal
.
valueOf
(
thisTaskQualify
.
doubleValue
()
-
v1abc
);
thisTaskQualify
=
BigDecimal
.
valueOf
(
thisTaskQualify
.
doubleValue
()
-
v1abc
);
t
hisTaskWait
=
BigDecimal
.
valueOf
(
thisQuantity
.
doubleValue
()
-
thisTaskQualify
.
doubleValue
())
;
t
askWorkunitProduced
=
taskWorkunitProduced
-
v1abc
;
thisTaskProduced
=
BigDecimal
.
valueOf
(
thisTaskProduced
.
doubleValue
()
-
v1abc
);
thisTaskProduced
=
BigDecimal
.
valueOf
(
thisTaskProduced
.
doubleValue
()
-
v1abc
);
thisTaskWait
=
BigDecimal
.
valueOf
(
thisTaskWait
.
doubleValue
()
+
v1abc
);
nextTaskWait
=
BigDecimal
.
valueOf
(
nextTaskWait
.
doubleValue
()
-
v1abc
);
nextTaskWait
=
BigDecimal
.
valueOf
(
nextTaskWait
.
doubleValue
()
-
v1abc
);
}
else
{
}
else
{
// 增加
// 增加
taskWorkunitQualify
=
proTaskWorkunit
.
getQuantityQualify
().
doubleValue
()
+
v1abc
;
taskWorkunitQualify
=
proTaskWorkunit
.
getQuantityQualify
().
doubleValue
()
+
v1abc
;
taskWorkunitProduced
=
proTaskWorkunit
.
getQuantityProduced
().
doubleValue
()
+
v1abc
;
thisTaskQualify
=
BigDecimal
.
valueOf
(
thisTaskQualify
.
doubleValue
()
+
v1abc
);
thisTaskQualify
=
BigDecimal
.
valueOf
(
thisTaskQualify
.
doubleValue
()
+
v1abc
);
t
hisTaskWait
=
BigDecimal
.
valueOf
(
thisTaskWait
.
doubleValue
()
-
v1abc
)
;
t
askWorkunitProduced
=
taskWorkunitProduced
+
v1abc
;
thisTaskProduced
=
BigDecimal
.
valueOf
(
thisTaskProduced
.
doubleValue
()
+
v1abc
);
thisTaskProduced
=
BigDecimal
.
valueOf
(
thisTaskProduced
.
doubleValue
()
+
v1abc
);
thisTaskWait
=
BigDecimal
.
valueOf
(
thisTaskWait
.
doubleValue
()
-
v1abc
);
nextTaskWait
=
BigDecimal
.
valueOf
(
nextTaskWait
.
doubleValue
()
+
v1abc
);
nextTaskWait
=
BigDecimal
.
valueOf
(
nextTaskWait
.
doubleValue
()
+
v1abc
);
}
}
}
}
QueryWrapper
<
ProWorkorder
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"t1.workorder_code"
,
proFeedback
.
getWorkorderCode
());
queryWrapper
.
notIn
(
"t1.status"
,
Arrays
.
asList
(
WorkorderStatusEnum
.
CLOSE
.
getValue
(),
WorkorderStatusEnum
.
CANCEL
.
getValue
(),
WorkorderStatusEnum
.
CANCELED
.
getValue
()));
List
<
ProWorkorder
>
proWorkorders
=
proWorkorderService
.
selectListByQw
(
queryWrapper
);
if
(
thisTaskWait
.
compareTo
(
BigDecimal
.
ZERO
)
<
0
){
if
(
thisProTask
.
getOrdinal
()
!=
1
){
if
(
proWorkorders
.
size
()
>
0
&&
proWorkorders
.
get
(
0
).
getProductionSolutionId
()
!=
null
){
ProProductionSolution
proProductionSolution
=
proProductionSolutionMapper
.
selectProProductionSolutionByProductionSolutionId
(
proWorkorders
.
get
(
0
).
getProductionSolutionId
());
if
(
proProductionSolution
!=
null
&&
proProductionSolution
.
getSurpassState
()
!=
null
){
if
(!
proProductionSolution
.
getSurpassState
()){
//不允许超报 可报工数目 - (合格数 + 不合格数)不能小于 0
ExceptionUtil
.
checkTrueThrowException
(
true
,
"工单关联的生产版本不允许超报行为"
);
}
}
}
}
else
{
ExceptionUtil
.
checkTrueThrowException
(
true
,
"非首工序不允许超过可报工数报工"
);
}
}
proTaskWorkunit
.
setQuantityQualify
(
BigDecimal
.
valueOf
(
taskWorkunitQualify
));
proTaskWorkunit
.
setQuantityProduced
(
BigDecimal
.
valueOf
(
taskWorkunitProduced
));
proTaskWorkunit
.
setQuantityUnqualify
(
BigDecimal
.
valueOf
(
taskWorkunitUnQualify
));
thisProTask
.
setQuantityQualify
(
thisTaskQualify
);
proTaskWorkunit
.
setQuantityQualify
(
taskWorkunitQualify
>
0
?
BigDecimal
.
valueOf
(
taskWorkunitQualify
)
:
BigDecimal
.
ZERO
);
thisProTask
.
setQuantityUnqualify
(
thisTaskUnQualify
);
proTaskWorkunit
.
setQuantityProduced
(
taskWorkunitProduced
>
0
?
BigDecimal
.
valueOf
(
taskWorkunitProduced
)
:
BigDecimal
.
ZERO
);
thisProTask
.
setQuantityWait
(
thisTaskWait
);
proTaskWorkunit
.
setQuantityUnqualify
(
taskWorkunitUnQualify
>
0
?
BigDecimal
.
valueOf
(
taskWorkunitUnQualify
)
:
BigDecimal
.
ZERO
);
thisProTask
.
setQuantityProduced
(
thisTaskProduced
);
nextProTask
.
setQuantityWait
(
nextTaskWait
);
thisProTask
.
setQuantityQualify
(
thisTaskQualify
.
doubleValue
()
>=
0
?
thisTaskQualify
:
BigDecimal
.
ZERO
);
thisProTask
.
setQuantityUnqualify
(
thisTaskUnQualify
.
doubleValue
()
>=
0
?
thisTaskUnQualify
:
BigDecimal
.
ZERO
);
thisProTask
.
setQuantityWait
(
thisTaskWait
.
doubleValue
()
>=
0
?
thisTaskWait
:
BigDecimal
.
ZERO
);
thisProTask
.
setQuantityProduced
(
thisTaskProduced
.
doubleValue
()
>=
0
?
thisTaskProduced
:
BigDecimal
.
ZERO
);
nextProTask
.
setQuantityWait
(
nextTaskWait
.
doubleValue
()
>=
0
?
nextTaskWait
:
BigDecimal
.
ZERO
);
proTaskService
.
updateProTask
(
thisProTask
);
proTaskService
.
updateProTask
(
thisProTask
);
proTaskService
.
updateProTask
(
nextProTask
);
proTaskService
.
updateProTask
(
nextProTask
);
if
(
proTaskWorkunit
.
getQuantityProduced
().
doubleValue
()
>=
proTaskWorkunit
.
getQuantity
().
doubleValue
(
))
{
if
(
thisTaskWait
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
&&
!
proTaskWorkunit
.
getStatus
().
equals
(
TaskWorkunitStatusEnum
.
BEGINNING
.
getStatus
()
))
{
proTaskWorkunit
.
setStatus
(
TaskWorkunitStatusEnum
.
BEGINNING
.
getStatus
());
proTaskWorkunit
.
setStatus
(
TaskWorkunitStatusEnum
.
BEGINNING
.
getStatus
());
thisProTask
.
setTaskWorkunitId
(
proTaskWorkunit
.
getTaskWorkunitId
());
thisProTask
.
setTaskWorkunitId
(
proTaskWorkunit
.
getTaskWorkunitId
());
thisProTask
.
setWorkunitId
(
proTaskWorkunit
.
getWorkunitId
());
thisProTask
.
setWorkunitId
(
proTaskWorkunit
.
getWorkunitId
());
...
...
mes/src/main/java/com/ximai/mes/pro/service/impl/task/ProTaskServiceImpl.java
View file @
8c2b9102
...
@@ -807,7 +807,9 @@ public class ProTaskServiceImpl implements IProTaskService {
...
@@ -807,7 +807,9 @@ public class ProTaskServiceImpl implements IProTaskService {
queryWrapper
.
notIn
(
"t1.status"
,
Arrays
.
asList
(
WorkorderStatusEnum
.
CLOSE
.
getValue
(),
WorkorderStatusEnum
.
CANCEL
.
getValue
(),
WorkorderStatusEnum
.
CANCELED
.
getValue
()));
queryWrapper
.
notIn
(
"t1.status"
,
Arrays
.
asList
(
WorkorderStatusEnum
.
CLOSE
.
getValue
(),
WorkorderStatusEnum
.
CANCEL
.
getValue
(),
WorkorderStatusEnum
.
CANCELED
.
getValue
()));
List
<
ProWorkorder
>
proWorkorders
=
proWorkorderService
.
selectListByQw
(
queryWrapper
);
List
<
ProWorkorder
>
proWorkorders
=
proWorkorderService
.
selectListByQw
(
queryWrapper
);
double
maxWorkunitQuantityConst
=
taskWorkunit
.
getQuantity
().
doubleValue
();
double
maxWorkunitQuantityConst
=
taskWorkunit
.
getQuantity
().
doubleValue
();
//检查该工单绑定的生产版本是否允许超报
//检查该工单绑定的生产版本是否允许超报,PS只有首工序允许
if
(
taskQuantityWaitConst
.
compareTo
(
feedbackQualifyConst
.
add
(
fuantityUnqualify
))
<
0
){
if
(
task
.
getOrdinal
()
!=
1
){
if
(
proWorkorders
.
size
()
>
0
&&
proWorkorders
.
get
(
0
).
getProductionSolutionId
()
!=
null
){
if
(
proWorkorders
.
size
()
>
0
&&
proWorkorders
.
get
(
0
).
getProductionSolutionId
()
!=
null
){
ProProductionSolution
proProductionSolution
ProProductionSolution
proProductionSolution
=
proProductionSolutionMapper
.
selectProProductionSolutionByProductionSolutionId
(
proWorkorders
.
get
(
0
).
getProductionSolutionId
());
=
proProductionSolutionMapper
.
selectProProductionSolutionByProductionSolutionId
(
proWorkorders
.
get
(
0
).
getProductionSolutionId
());
...
@@ -819,6 +821,11 @@ public class ProTaskServiceImpl implements IProTaskService {
...
@@ -819,6 +821,11 @@ public class ProTaskServiceImpl implements IProTaskService {
}
}
}
}
}
}
}
else
{
ExceptionUtil
.
checkTrueThrowException
(
true
,
"非首工序不允许超过可报工数报工"
);
}
}
//本次合格数和不合格数总和大于可报工数目 与 已报工数目已经超过了排产数量
//本次合格数和不合格数总和大于可报工数目 与 已报工数目已经超过了排产数量
if
((
feedbackQualityDouConst
+
fuantityUnqualify
.
doubleValue
())>=
task
.
getQuantityWait
().
doubleValue
()
&&
task
.
getQuantity
().
doubleValue
()
<=
(
execQuantityQualifySumConst
+
feedbackQualityDouConst
+
fuantityUnqualify
.
doubleValue
()))
{
if
((
feedbackQualityDouConst
+
fuantityUnqualify
.
doubleValue
())>=
task
.
getQuantityWait
().
doubleValue
()
&&
task
.
getQuantity
().
doubleValue
()
<=
(
execQuantityQualifySumConst
+
feedbackQualityDouConst
+
fuantityUnqualify
.
doubleValue
()))
{
taskWorkunit
.
setStatus
(
FINISHED
.
getStatus
());
taskWorkunit
.
setStatus
(
FINISHED
.
getStatus
());
...
...
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