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
b08bd1a2
Commit
b08bd1a2
authored
Oct 14, 2024
by
李驰骋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BUG修复
parent
e294e015
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
26 additions
and
66 deletions
+26
-66
IMdWorkstationService.java
.../java/com/ximai/mes/md/service/IMdWorkstationService.java
+1
-0
ProFeedbackController.java
...a/com/ximai/mes/pro/controller/ProFeedbackController.java
+4
-22
ProFeedback.java
mes/src/main/java/com/ximai/mes/pro/domain/ProFeedback.java
+2
-0
ProFeedbackMapper.java
...main/java/com/ximai/mes/pro/mapper/ProFeedbackMapper.java
+1
-5
ProTaskAssistProcessServiceImpl.java
...ro/service/impl/task/ProTaskAssistProcessServiceImpl.java
+6
-5
ProTaskServiceImpl.java
...m/ximai/mes/pro/service/impl/task/ProTaskServiceImpl.java
+6
-34
ProTaskWorkunitServiceImpl.java
...mes/pro/service/impl/task/ProTaskWorkunitServiceImpl.java
+3
-0
ProTaskWorkunitMapper.xml
.../main/resources/mapper/pro/task/ProTaskWorkunitMapper.xml
+3
-0
No files found.
mes/src/main/java/com/ximai/mes/md/service/IMdWorkstationService.java
View file @
b08bd1a2
...
...
@@ -12,6 +12,7 @@ import java.util.List;
* @date 2022-05-10
*/
public
interface
IMdWorkstationService
{
public
static
Long
OUTSOURCE_WORKSTATION_ID
=
1
l
;
/**
* 查询工作站
*
...
...
mes/src/main/java/com/ximai/mes/pro/controller/ProFeedbackController.java
View file @
b08bd1a2
...
...
@@ -12,6 +12,7 @@ import com.ximai.common.utils.data.StringUtils;
import
com.ximai.mes.constant.TaskWorkunitStatusEnum
;
import
com.ximai.mes.md.domain.MdWorkunitWorker
;
import
com.ximai.mes.md.mapper.MdWorkunitWorkerMapper
;
import
com.ximai.mes.md.service.IMdWorkstationService
;
import
com.ximai.mes.pro.domain.ProFeedback
;
import
com.ximai.mes.pro.domain.task.ProTaskAssistProcess
;
import
com.ximai.mes.pro.domain.vo.ProFeedbackVo
;
...
...
@@ -49,14 +50,6 @@ public class ProFeedbackController extends BaseController {
@Resource
private
ProTaskAssistProcessMapper
proTaskAssistProcessMapper
;
public
static
void
main
(
String
[]
args
)
{
Set
<
String
>
objects
=
new
HashSet
<>();
objects
.
add
(
"1"
);
if
(!
objects
.
add
(
"1"
))
{
System
.
out
.
printf
(
"1"
,
1
);
}
}
/**
* 查询生产报工记录列表
*/
...
...
@@ -86,24 +79,13 @@ public class ProFeedbackController extends BaseController {
// objects = list.stream().filter(x -> !collect.add(x.getWorkunitId())).sorted(Comparator.comparing(ProFeedbackVo::getFeedbackTime).reversed()).collect(Collectors.toList());
proFeedbackVoList
=
list
.
stream
().
filter
(
x
->
!
collect
.
add
(
x
.
getWorkunitId
())).
sorted
(
Comparator
.
comparing
(
ProFeedbackVo:
:
getUpdateTime
).
reversed
()).
collect
(
Collectors
.
toList
());
}
proFeedbackVoList
=
proFeedbackVoList
.
isEmpty
()
?
list
:
proFeedbackVoList
;
proFeedbackVoList
.
forEach
(
s
->{
s
.
setStandardSize
(
s
.
getWorkorderSoSizes
());
if
(
IMdWorkstationService
.
OUTSOURCE_WORKSTATION_ID
.
equals
(
s
.
getWorkstationId
())){
s
.
setAssistProcessCode
(
s
.
getTaskCode
());
}
});
Set
<
Long
>
taskWorkunitIds
=
proFeedbackVoList
.
stream
().
map
(
ProFeedbackVo:
:
getTaskWorkunitId
).
collect
(
Collectors
.
toSet
());
if
(
CollectionUtil
.
isNotEmpty
(
taskWorkunitIds
))
{
Map
<
Long
,
ProTaskAssistProcess
>
assistProcessMap
=
proTaskAssistProcessMapper
.
selectListByQw
(
new
QueryWrapper
<
ProTaskAssistProcess
>().
in
(
"task_workunit_id"
,
taskWorkunitIds
)).
stream
().
collect
(
Collectors
.
toMap
(
ProTaskAssistProcess:
:
getTaskWorkunitId
,
x
->
x
));
for
(
ProFeedbackVo
feedbackVo
:
proFeedbackVoList
)
{
ProTaskAssistProcess
assistProcess
=
assistProcessMap
.
get
(
feedbackVo
.
getTaskWorkunitId
());
if
(
assistProcess
!=
null
)
{
feedbackVo
.
setWorkorderCode
(
assistProcess
.
getWorkorderCode
());
feedbackVo
.
setCloseType
(
assistProcess
.
getCloseType
()
==
0
?
0
:
assistProcess
.
getCloseType
());
}
}
}
return
getDataTable
(
proFeedbackVoList
);
}
...
...
mes/src/main/java/com/ximai/mes/pro/domain/ProFeedback.java
View file @
b08bd1a2
...
...
@@ -317,6 +317,8 @@ public class ProFeedback extends BaseEntity {
this
.
setUnitOfMeasure
(
workorder
.
getUnitOfMeasure
());
this
.
setItemId
(
workorder
.
getProductId
());
this
.
setQuantity
(
workorder
.
getQuantity
());
this
.
setItemCode
(
workorder
.
getProductCode
());
this
.
setItemName
(
workorder
.
getProductName
());
}
public
void
initValue
(
MdItem
mdItem
)
{
...
...
mes/src/main/java/com/ximai/mes/pro/mapper/ProFeedbackMapper.java
View file @
b08bd1a2
...
...
@@ -51,15 +51,11 @@ public interface ProFeedbackMapper {
"\tf.*,\n"
+
"\twu.workunit_name,\n"
+
"\twu.workunit_id,\n"
+
"\twod.client_cmd,\n"
+
"\tap.assist_process_code, it.sap_item_code,ta.arrange_code \n"
+
"\tit.sap_item_code,ta.arrange_code \n"
+
"FROM\n"
+
"\tpro_feedback f\n"
+
"\tLEFT JOIN pro_task_workunit tw ON tw.task_workunit_id = f.task_workunit_id\n"
+
// "\tLEFT JOIN md_workunit_worker pww ON pww.workunit_id = tw.workunit_id\n" +
"\tLEFT JOIN md_workunit wu ON wu.workunit_id = tw.workunit_id\n"
+
"\tLEFT JOIN pro_work_order_so_directive wod ON wod.workorder_so_directive_id = f.workorder_so_directive_id\n"
+
"\tLEFT JOIN pro_task_assist_process ap ON ap.task_workunit_id = tw.task_workunit_id \n"
+
"\tLEFT JOIN md_item it ON it.item_id = f.item_id \n"
+
"\tLEFT JOIN pro_task ta ON ta.task_id = f.task_id \n"
+
"${ew.customSqlSegment}"
)
...
...
mes/src/main/java/com/ximai/mes/pro/service/impl/task/ProTaskAssistProcessServiceImpl.java
View file @
b08bd1a2
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.ximai.common.constant.DataConstans
;
import
com.ximai.common.utils.MessageUtils
;
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
;
...
...
@@ -31,6 +32,7 @@ import com.ximai.mes.pro.service.task.IProFdQrcodePrintRecordService;
import
com.ximai.mes.pro.service.task.IProTaskAssistProcessService
;
import
com.ximai.mes.pro.service.task.IProTaskService
;
import
com.ximai.mes.pro.service.task.IProTaskWorkunitService
;
import
com.ximai.system.mapper.SysUserMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -93,6 +95,8 @@ public class ProTaskAssistProcessServiceImpl implements IProTaskAssistProcessSer
@Resource
private
ProProcessMapper
proProcessMapper
;
@Resource
private
SysUserMapper
sysUserMapper
;
/**
* 查询工序任务外协关系
...
...
@@ -303,13 +307,14 @@ public class ProTaskAssistProcessServiceImpl implements IProTaskAssistProcessSer
taskWorkunit
.
setQuantityUnqualify
(
taskWorkunit
.
getQuantityUnqualify
().
add
(
quantityUnQualify
));
taskWorkunit
.
setQuantityProduced
(
taskWorkunit
.
getQuantityProduced
().
add
(
quantityQualify
));
if
(
feedback
.
getCloseType
()
==
1
||
quantityWait
.
doubleValue
()
=
=
0
)
{
if
(
feedback
.
getCloseType
()
==
1
||
taskWorkunit
.
getQuantity
().
compareTo
(
taskWorkunit
.
getQuantityProduced
())
<
=
0
)
{
taskWorkunit
.
setStatus
(
TaskWorkunitStatusEnum
.
FINISHED
.
getStatus
());
proTaskWorkunitService
.
updateProTaskWorkunit
(
taskWorkunit
);
}
//按派工表保存报工记录
feedback
.
setFeedbackType
(
"SELF"
);
feedback
.
setNickName
(
sysUserMapper
.
selectUserById
(
SecurityUtils
.
getUserId
()).
getNickName
());
proFeedbackService
.
insertProFeedback
(
feedback
);
//查询关联下道工序
...
...
@@ -332,10 +337,6 @@ public class ProTaskAssistProcessServiceImpl implements IProTaskAssistProcessSer
proTaskService
.
updateProTask
(
task
);
proTaskWorkunitService
.
updateProTaskWorkunit
(
taskWorkunit
);
//打印记录
if
(
"1"
.
equals
(
feedback
.
getPrintContents
()))
{
proFdQrcodePrintRecordService
.
insertProFdQrcodePrintRecordfeedback
(
feedback
);
}
return
1
;
}
...
...
mes/src/main/java/com/ximai/mes/pro/service/impl/task/ProTaskServiceImpl.java
View file @
b08bd1a2
...
...
@@ -794,7 +794,7 @@ public class ProTaskServiceImpl implements IProTaskService {
Long
workorderId
=
feedback
.
getWorkorderId
();
QueryWrapper
<
ProWorkorder
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"t1.
arrange
_code"
,
task
.
getArrangeCode
());
queryWrapper
.
eq
(
"t1.
workorder
_code"
,
task
.
getArrangeCode
());
queryWrapper
.
notIn
(
"t1.status"
,
Arrays
.
asList
(
WorkorderStatusEnum
.
CLOSE
.
getValue
(),
WorkorderStatusEnum
.
CANCEL
.
getValue
(),
WorkorderStatusEnum
.
CANCELED
.
getValue
()));
List
<
ProWorkorder
>
proWorkorders
=
proWorkorderService
.
selectListByQw
(
queryWrapper
);
double
maxWorkunitQuantityConst
=
taskWorkunit
.
getQuantity
().
doubleValue
();
...
...
@@ -819,36 +819,6 @@ public class ProTaskServiceImpl implements IProTaskService {
feedbackQualityVal
=
BigDecimal
.
valueOf
(
Math
.
min
(
maxWorkunitQuantityConst
,
feedbackQualityDouConst
));
}
}
quantityWaitVal
=
taskQuantityWaitConst
.
subtract
(
feedbackQualityVal
);
}
else
{
// 无报工记录第一次报工 判断可报工数和工单数
if
(
execQuantityQualifySumConst
==
0
)
{
if
(
maxWorkunitQuantityConst
>
feedbackQualityDouConst
)
{
// 工单大于已报工数量 工单减去已报工数量
feedbackQualityVal
=
feedbackQualifyConst
;
}
else
{
feedbackQualityVal
=
BigDecimal
.
valueOf
(
maxWorkunitQuantityConst
);
}
}
else
{
// 有报工记录 判断报工数和可报工数和工单数
double
execTotle
=
execQuantityQualifySumConst
+
feedbackQualityDouConst
;
if
(
maxWorkunitQuantityConst
>
execTotle
)
{
feedbackQualityVal
=
BigDecimal
.
valueOf
(
Math
.
min
(
maxWorkunitQuantityConst
,
feedbackQualityDouConst
));
// 工单大于已报工数量 工单减去已报工数量
}
else
{
if
(
maxWorkunitQuantityConst
>
execQuantityQualifySumConst
)
{
feedbackQualityVal
=
BigDecimal
.
valueOf
(
maxWorkunitQuantityConst
-
execQuantityQualifySumConst
);
}
else
{
feedbackQualityVal
=
BigDecimal
.
ZERO
;
}
}
}
if
(
feedbackQualityDouConst
>=
taskQuantityWaitDouConst
)
{
taskWorkunit
.
setStatus
(
FINISHED
.
getStatus
());
}
quantityWaitVal
=
taskQuantityWaitConst
.
subtract
(
feedbackQualityVal
);
}
}
else
{
...
...
@@ -1309,13 +1279,15 @@ public class ProTaskServiceImpl implements IProTaskService {
@Override
public
ProTask
getNextTaskByTaskId
(
Long
taskId
)
{
ProTask
thisProTask
=
this
.
selectProTaskByTaskId
(
taskId
);
String
arrangeCode
=
thisProTask
.
getArrangeCode
();
QueryWrapper
<
ProTask
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
StringUtils
.
isNotEmpty
(
arrangeCode
),
"arrange_code"
,
arrangeCode
);
queryWrapper
.
eq
(
"task_batch"
,
thisProTask
.
getTaskBatch
()
);
queryWrapper
.
notIn
(
StringUtils
.
isNotEmpty
(
taskId
),
"task_id"
,
taskId
);
queryWrapper
.
ge
(
StringUtils
.
isNotEmpty
(
thisProTask
.
getOrdinal
()),
"ordinal"
,
thisProTask
.
getOrdinal
());
queryWrapper
.
orderByAsc
(
"ordinal"
);
List
<
ProTask
>
tasks
=
proTaskMapper
.
selectListByQw
(
queryWrapper
);
if
(
tasks
.
size
()==
0
){
return
null
;
}
return
tasks
.
get
(
0
);
}
...
...
@@ -1383,7 +1355,7 @@ public class ProTaskServiceImpl implements IProTaskService {
//搜索条件为工单号查询相应任务ID作为查询条件
if
(
StringUtils
.
isNotEmpty
(
proTask
.
getWorkorderCode
()))
{
QueryWrapper
<
ProTask
>
taskQuery
=
new
QueryWrapper
<>();
taskQuery
.
eq
(
"t
3
.workorder_code"
,
proTask
.
getWorkorderCode
());
taskQuery
.
eq
(
"t
2
.workorder_code"
,
proTask
.
getWorkorderCode
());
taskQuery
.
eq
(
proTask
.
getWorkunitId
()
!=
null
,
"t4.workunit_id"
,
proTask
.
getWorkunitId
());
List
<
ProTaskVo
>
taskVoList
=
proTaskMapper
.
selectProTaskJoinWorkorder
(
taskQuery
);
if
(
CollectionUtil
.
isEmpty
(
taskVoList
))
{
...
...
mes/src/main/java/com/ximai/mes/pro/service/impl/task/ProTaskWorkunitServiceImpl.java
View file @
b08bd1a2
...
...
@@ -518,6 +518,9 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
public
void
outsourceConfirm
(
List
<
Long
>
taskWorkunitIds
)
{
taskWorkunitIds
.
forEach
(
id
->{
ProTaskWorkunit
taskWorkunit
=
this
.
selectProTaskWorkunitByTaskWorkunitId
(
id
);
if
(
taskWorkunit
.
getVendorId
()==
null
){
throw
new
ServiceException
(
MessageUtils
.
message
(
"pro.schedule.error.not.null.vendor"
));
}
taskWorkunit
.
setOutsourced
(
1
);
taskWorkunit
.
setStatus
(
TaskStatusEnum
.
BEGINNING
.
getStatus
());
this
.
updateProTaskWorkunit
(
taskWorkunit
);
...
...
mes/src/main/resources/mapper/pro/task/ProTaskWorkunitMapper.xml
View file @
b08bd1a2
...
...
@@ -33,6 +33,9 @@
ptw.task_id,
ptw.idx,
ptw.workunit_id,
ptw.vendor_id,
ptw.vendor_name,
ptw.outsource_unit_price,
mw.workunit_code,
mw.workunit_name,
ptw.unit_of_measure,
...
...
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