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
8532b5ba
Commit
8532b5ba
authored
Nov 22, 2024
by
李驰骋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
物料看板接口测试数据
parent
a0714286
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
263 additions
and
9 deletions
+263
-9
KanbanMaterialController.java
...ximai/mes/kanban/controller/KanbanMaterialController.java
+41
-0
BasicDailyData.java
...ava/com/ximai/mes/kanban/dto/material/BasicDailyData.java
+18
-0
ErpDataDto.java
...in/java/com/ximai/mes/kanban/dto/material/ErpDataDto.java
+53
-0
MesDataDto.java
...in/java/com/ximai/mes/kanban/dto/material/MesDataDto.java
+39
-0
KanbanEquipmentService.java
.../com/ximai/mes/kanban/service/KanbanEquipmentService.java
+2
-2
KanbanMaterialService.java
...a/com/ximai/mes/kanban/service/KanbanMaterialService.java
+104
-0
ErpService.java
mes/src/main/java/com/ximai/mes/remote/ErpService.java
+6
-7
No files found.
mes/src/main/java/com/ximai/mes/kanban/controller/KanbanMaterialController.java
0 → 100644
View file @
8532b5ba
package
com
.
ximai
.
mes
.
kanban
.
controller
;
import
com.ximai.common.core.domain.AjaxResult
;
import
com.ximai.mes.kanban.dto.material.ErpDataDto
;
import
com.ximai.mes.kanban.dto.material.MesDataDto
;
import
com.ximai.mes.kanban.dto.task.TaskPlanQuery
;
import
com.ximai.mes.kanban.dto.task.TaskPlanStatDto
;
import
com.ximai.mes.kanban.dto.task.TaskStatDto
;
import
com.ximai.mes.kanban.service.KanbanMaterialService
;
import
com.ximai.mes.kanban.service.KanbanTaskService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@Api
(
"看板物料数据接口"
)
@RestController
@RequestMapping
(
"/kanban/material"
)
public
class
KanbanMaterialController
{
@Autowired
private
KanbanMaterialService
kanbanMaterialService
;
@ApiOperation
(
"物料看板MES接口数据"
)
@PostMapping
(
"/mesData"
)
public
AjaxResult
<
MesDataDto
>
mesData
()
{
MesDataDto
rst
=
kanbanMaterialService
.
getMesData
();
return
AjaxResult
.
success
(
rst
);
}
@ApiOperation
(
"物料看板ERP接口数据"
)
@PostMapping
(
"/erpData"
)
public
AjaxResult
<
ErpDataDto
>
erpData
()
{
ErpDataDto
rst
=
kanbanMaterialService
.
getErpData
();
return
AjaxResult
.
success
(
rst
);
}
}
mes/src/main/java/com/ximai/mes/kanban/dto/material/BasicDailyData.java
0 → 100644
View file @
8532b5ba
package
com
.
ximai
.
mes
.
kanban
.
dto
.
material
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.math.BigDecimal
;
@Data
@AllArgsConstructor
public
class
BasicDailyData
{
@ApiModelProperty
(
"日"
)
int
day
;
@ApiModelProperty
(
"值"
)
BigDecimal
value
;
}
mes/src/main/java/com/ximai/mes/kanban/dto/material/ErpDataDto.java
0 → 100644
View file @
8532b5ba
package
com
.
ximai
.
mes
.
kanban
.
dto
.
material
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
ErpDataDto
{
@ApiModelProperty
(
"物料配送完成率"
)
BigDecimal
stockInCompleteRatio
;
@ApiModelProperty
(
"采购到货完成率"
)
BigDecimal
materialDistRatio
;
@ApiModelProperty
(
"salesTimelyDeliveryRatio"
)
BigDecimal
salesTimelyDeliveryRatio
;
@ApiModelProperty
(
"库存趋势图"
)
InventoryTrend
inventoryTrend
;
@ApiModelProperty
(
"销售出库计划"
)
List
<
SalesOutboundPlan
>
salesOutboundPlanList
;
@Data
public
static
class
InventoryTrend
{
@ApiModelProperty
(
"生产入库趋势"
)
List
<
BasicDailyData
>
stockInTrend
=
new
ArrayList
<>();
@ApiModelProperty
(
"发货出库趋势图"
)
List
<
BasicDailyData
>
stockOutTrend
=
new
ArrayList
<>();
}
@Data
public
static
class
SalesOutboundPlan
{
@ApiModelProperty
(
"通知单号"
)
String
outApplyNo
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@ApiModelProperty
(
"计划出库时间"
)
Date
planOutDate
;
@ApiModelProperty
(
"计划数量"
)
BigDecimal
planQuantity
;
@ApiModelProperty
(
"已出库数量"
)
BigDecimal
outQuantity
;
}
}
mes/src/main/java/com/ximai/mes/kanban/dto/material/MesDataDto.java
0 → 100644
View file @
8532b5ba
package
com
.
ximai
.
mes
.
kanban
.
dto
.
material
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
MesDataDto
{
@ApiModelProperty
(
"生产入库完成率"
)
BigDecimal
stockInCompleteRatio
;
@ApiModelProperty
(
"生产入库计划"
)
List
<
OrderInfoDto
>
orderInfoList
;
@Data
public
static
class
OrderInfoDto
{
@ApiModelProperty
(
"生产工单"
)
String
workorderNo
;
@ApiModelProperty
(
"产品名称"
)
String
itemName
;
@ApiModelProperty
(
"计划入库时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm"
)
Date
planFinishDate
;
@ApiModelProperty
(
"任务数量"
)
BigDecimal
planQuantity
;
@ApiModelProperty
(
"完成数量"
)
BigDecimal
finishQuantity
;
}
}
mes/src/main/java/com/ximai/mes/kanban/service/KanbanEquipmentService.java
View file @
8532b5ba
...
...
@@ -174,10 +174,10 @@ public class KanbanEquipmentService {
calTime
.
set
(
calTime
.
get
().
add
(
this
.
getCalTime
(
calPlanWorkunitList
,
mdWorkunit
)));
}
if
(
rst
.
getTotalOutput
().
compareTo
(
BigDecimal
.
ZERO
)>
0
){
rst
.
setQualifiedRatio
(
qualifiedRatioNumerator
.
get
().
divide
(
rst
.
getTotalOutput
(),
2
,
BigDecimal
.
ROUND_DOWN
).
multiply
(
new
BigDecimal
(
"100"
)));
//合格率
rst
.
setQualifiedRatio
(
qualifiedRatioNumerator
.
get
().
divide
(
rst
.
getTotalOutput
(),
3
,
BigDecimal
.
ROUND_DOWN
).
multiply
(
new
BigDecimal
(
"100"
)));
//合格率
}
if
(
calTime
.
get
().
compareTo
(
BigDecimal
.
ZERO
)>
0
){
rst
.
setEquipAvailability
(
machineTime
.
get
().
divide
(
calTime
.
get
(),
2
,
BigDecimal
.
ROUND_DOWN
).
multiply
(
new
BigDecimal
(
"100"
)));
//利用率
rst
.
setEquipAvailability
(
machineTime
.
get
().
divide
(
calTime
.
get
(),
3
,
BigDecimal
.
ROUND_DOWN
).
multiply
(
new
BigDecimal
(
"100"
)));
//利用率
}
}
...
...
mes/src/main/java/com/ximai/mes/kanban/service/KanbanMaterialService.java
0 → 100644
View file @
8532b5ba
package
com
.
ximai
.
mes
.
kanban
.
service
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.map.MapUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.ximai.common.utils.data.StringUtils
;
import
com.ximai.mes.cal.domain.CalPlanWorkunit
;
import
com.ximai.mes.cal.mapper.CalPlanWorkunitMapper
;
import
com.ximai.mes.constant.QcAbnormalTypeEnum
;
import
com.ximai.mes.kanban.dto.equipment.EquipmentQuery
;
import
com.ximai.mes.kanban.dto.equipment.EquipmentStatDto
;
import
com.ximai.mes.kanban.dto.material.BasicDailyData
;
import
com.ximai.mes.kanban.dto.material.ErpDataDto
;
import
com.ximai.mes.kanban.dto.material.MesDataDto
;
import
com.ximai.mes.md.domain.MdWorkunit
;
import
com.ximai.mes.md.service.IMdWorkunitService
;
import
com.ximai.mes.pro.domain.ProFeedback
;
import
com.ximai.mes.pro.domain.vo.ProFeedbackVo
;
import
com.ximai.mes.pro.dto.task.WorkunitProcessingDto
;
import
com.ximai.mes.pro.mapper.task.ProTaskWorkunitMapper
;
import
com.ximai.mes.pro.service.IProFeedbackService
;
import
com.ximai.mes.qc.domain.QcAbnormalReport
;
import
com.ximai.mes.qc.dto.QcAbnormalReportDto
;
import
com.ximai.mes.qc.dto.QcAbnormalReportStatusEnum
;
import
com.ximai.mes.qc.mapper.QcAbnormalReportMapper
;
import
com.ximai.mes.qc.service.IQcAbnormalReportService
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
java.math.BigDecimal
;
import
java.time.Duration
;
import
java.time.LocalDateTime
;
import
java.time.LocalTime
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.stream.Collectors
;
@Service
public
class
KanbanMaterialService
{
@Autowired
private
IProFeedbackService
feedbackService
;
@Autowired
private
ProTaskWorkunitMapper
taskWorkunitMapper
;
@Autowired
private
CalPlanWorkunitMapper
calPlanWorkunitMapper
;
@Autowired
private
IMdWorkunitService
workunitService
;
public
ErpDataDto
getErpData
(){
ErpDataDto
rst
=
new
ErpDataDto
();
rst
.
setMaterialDistRatio
(
new
BigDecimal
(
"42"
));
//趋势图
ErpDataDto
.
InventoryTrend
inventoryTrend
=
new
ErpDataDto
.
InventoryTrend
();
List
<
BasicDailyData
>
stockInTrend
=
new
ArrayList
<>();
LocalDateTime
start
=
LocalDateTime
.
now
().
withDayOfMonth
(
1
).
with
(
LocalTime
.
MIN
);
LocalDateTime
end
=
start
.
plusMonths
(
1
).
plusDays
(-
1
).
with
(
LocalTime
.
MAX
);
int
dayOfMonth
=
end
.
getDayOfMonth
();
for
(
int
i
=
1
;
i
<=
dayOfMonth
;
i
++){
stockInTrend
.
add
(
new
BasicDailyData
(
i
,
new
BigDecimal
(
new
Random
().
nextInt
(
10
))));
}
inventoryTrend
.
setStockInTrend
(
stockInTrend
);
List
<
BasicDailyData
>
stockOutTrend
=
new
ArrayList
<>();
inventoryTrend
.
setStockOutTrend
(
stockOutTrend
);
for
(
int
i
=
1
;
i
<=
dayOfMonth
;
i
++){
stockOutTrend
.
add
(
new
BasicDailyData
(
i
,
new
BigDecimal
(
new
Random
().
nextInt
(
10
))));
}
rst
.
setInventoryTrend
(
inventoryTrend
);
rst
.
setStockInCompleteRatio
(
new
BigDecimal
(
"24.2"
));
rst
.
setSalesTimelyDeliveryRatio
(
new
BigDecimal
(
"43.2"
));
List
<
ErpDataDto
.
SalesOutboundPlan
>
salesOutboundPlanList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
8
;
i
++){
ErpDataDto
.
SalesOutboundPlan
plan
=
new
ErpDataDto
.
SalesOutboundPlan
();
plan
.
setPlanOutDate
(
new
Date
());
plan
.
setOutApplyNo
(
"JS201232"
+
i
);
plan
.
setOutQuantity
(
new
BigDecimal
(
new
Random
().
nextInt
(
20
)));
plan
.
setPlanQuantity
(
new
BigDecimal
(
new
Random
().
nextInt
(
20
)));
salesOutboundPlanList
.
add
(
plan
);
}
rst
.
setSalesOutboundPlanList
(
salesOutboundPlanList
);
return
rst
;
}
public
MesDataDto
getMesData
(){
MesDataDto
rst
=
new
MesDataDto
();
rst
.
setStockInCompleteRatio
(
new
BigDecimal
(
"52"
));
List
<
MesDataDto
.
OrderInfoDto
>
orderInfoList
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
10
;
i
++){
MesDataDto
.
OrderInfoDto
temp
=
new
MesDataDto
.
OrderInfoDto
();
temp
.
setItemName
(
"测试"
+
i
);
temp
.
setWorkorderNo
(
"B20123212"
+
i
);
temp
.
setPlanFinishDate
(
new
Date
());
temp
.
setFinishQuantity
(
new
BigDecimal
(
"200"
));
temp
.
setPlanQuantity
(
new
BigDecimal
(
"300"
));
orderInfoList
.
add
(
temp
);
}
rst
.
setOrderInfoList
(
orderInfoList
);
return
rst
;
}
}
mes/src/main/java/com/ximai/mes/remote/ErpService.java
View file @
8532b5ba
...
...
@@ -41,37 +41,36 @@ public interface ErpService {
@PostMapping
(
value
=
"/invma/getInvmaList"
)
ErpResponseResult
<
List
<
MdItemTypeErpDto
>>
getInvmaList
(
MdItemTypeErpQuery
itemTypeErpQuery
);
@ApiLog
(
businessType
=
BusinessType
.
QUERY
,
inOutType
=
InOutType
.
OUT
)
@ApiOperation
(
value
=
"查询工单"
)
@ApiOperation
(
value
=
"查询
ERP
工单"
)
@PostMapping
(
value
=
"/mocta/getMoctaList"
)
ErpResponseResult
<
List
<
ProWorkorderErpDto
>>
getWorkorderList
(
ProWorkorderErpQuery
workorderErpQuery
);
@ApiLog
(
businessType
=
BusinessType
.
UPDATE
,
inOutType
=
InOutType
.
OUT
)
@ApiOperation
(
value
=
"工单同步标识"
)
@ApiOperation
(
value
=
"
ERP
工单同步标识"
)
@PostMapping
(
value
=
"/mocta/syncMark"
)
ErpResponseResult
<
Object
>
workorderSyncMark
(
ProWorkorderSyncMarkUpdate
syncMarkUpdate
);
@ApiLog
(
businessType
=
BusinessType
.
UPDATE
,
inOutType
=
InOutType
.
OUT
)
@ApiOperation
(
value
=
"物料同步标识"
)
@ApiOperation
(
value
=
"
ERP
物料同步标识"
)
@PostMapping
(
value
=
"/invmb/syncMark"
)
ErpResponseResult
<
Object
>
materialSyncMark
(
MdItemSyncMarkUpdate
syncMarkUpdate
);
@ApiLog
(
businessType
=
BusinessType
.
UPDATE
,
inOutType
=
InOutType
.
OUT
)
@ApiOperation
(
value
=
"工单状态更新"
)
@ApiOperation
(
value
=
"
ERP
工单状态更新"
)
@PostMapping
(
value
=
"/mocta/updateState"
)
ErpResponseResult
<
Object
>
updateWorkorderState
(
ProWorkorderStateUpdate
stateUpdate
);
@ApiLog
(
businessType
=
BusinessType
.
UPDATE
,
inOutType
=
InOutType
.
OUT
)
@ApiOperation
(
value
=
"请购单创建"
)
@ApiOperation
(
value
=
"
ERP
请购单创建"
)
@PostMapping
(
value
=
"/purta/create"
)
ErpResponseResult
<
Object
>
purchasingRequisitionCreate
(
PurchasingRequisitionCreate
create
);
@ApiLog
(
businessType
=
BusinessType
.
UPDATE
,
inOutType
=
InOutType
.
OUT
)
@ApiOperation
(
value
=
"完工入库创建"
)
@ApiOperation
(
value
=
"
ERP
完工入库创建"
)
@PostMapping
(
value
=
"/moctf/create"
)
ErpResponseResult
<
Object
>
finishStockInCreate
(
FinishStockInCreate
create
);
...
...
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