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
a102052d
Commit
a102052d
authored
Jan 17, 2025
by
李驰骋
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
6b6b6e3a
0abf5625
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1594 additions
and
164 deletions
+1594
-164
application-dev.yml
admin/src/main/resources/application-dev.yml
+4
-4
logback.xml
admin/src/main/resources/logback.xml
+1
-6
Excel.java
common/src/main/java/com/ximai/common/annotation/Excel.java
+89
-132
ExcelHandlerAdapter.java
.../java/com/ximai/common/utils/poi/ExcelHandlerAdapter.java
+13
-0
ExcelUtil.java
...n/src/main/java/com/ximai/common/utils/poi/ExcelUtil.java
+1183
-0
WorkorderStatusEnum.java
...main/java/com/ximai/mes/constant/WorkorderStatusEnum.java
+26
-13
ProTaskWorkunitQuery.java
...om/ximai/mes/pro/domain/vo/task/ProTaskWorkunitQuery.java
+2
-0
ProTaskWorkunitServiceImpl.java
...mes/pro/service/impl/task/ProTaskWorkunitServiceImpl.java
+1
-0
FeedbackController.java
...a/com/ximai/mes/report/controller/FeedbackController.java
+177
-0
WorkOrderProgressController.java
...ai/mes/report/controller/WorkOrderProgressController.java
+13
-0
WorkOrderProgressRequest.java
...om/ximai/mes/report/request/WorkOrderProgressRequest.java
+3
-1
FeedbackResponse.java
.../java/com/ximai/mes/report/response/FeedbackResponse.java
+30
-5
WorkOrderProgressFeedbackListResponse.java
...eport/response/WorkOrderProgressFeedbackListResponse.java
+1
-0
WorkOrderProgressListResponse.java
...ai/mes/report/response/WorkOrderProgressListResponse.java
+20
-0
ProFeedbackMapper.xml
mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml
+21
-1
ProWorkorderMapper.xml
.../resources/mapper/pro/proWorkOrder/ProWorkorderMapper.xml
+10
-2
No files found.
admin/src/main/resources/application-dev.yml
View file @
a102052d
...
@@ -18,7 +18,7 @@ ximai-mes:
...
@@ -18,7 +18,7 @@ ximai-mes:
# 开发环境配置
# 开发环境配置
server
:
server
:
# 服务器的HTTP端口,默认为8080
# 服务器的HTTP端口,默认为8080
port
:
808
8
port
:
808
0
servlet
:
servlet
:
# 应用的访问路径
# 应用的访问路径
context-path
:
/
context-path
:
/
...
@@ -56,9 +56,9 @@ spring:
...
@@ -56,9 +56,9 @@ spring:
druid
:
druid
:
# 主库数据源
# 主库数据源
master
:
master
:
url
:
jdbc:mysql://
localhost:3307
/xm_mes_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url
:
jdbc:mysql://
192.168.222.136:3306
/xm_mes_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username
:
root
username
:
admin
password
:
123456
password
:
t0psunit
# 从库数据源
# 从库数据源
slave
:
slave
:
# 从数据源开关/默认关闭
# 从数据源开关/默认关闭
...
...
admin/src/main/resources/logback.xml
View file @
a102052d
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configuration>
<!-- 日志存放路径 -->
<!-- 日志存放路径 -->
<property
name=
"log.path"
value=
"
d:/logs/me
s"
/>
<property
name=
"log.path"
value=
"
/home/ximai/log
s"
/>
<!-- 日志输出格式 -->
<!-- 日志输出格式 -->
<property
name=
"log.pattern"
value=
"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"
/>
<property
name=
"log.pattern"
value=
"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"
/>
...
@@ -9,7 +9,6 @@
...
@@ -9,7 +9,6 @@
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<encoder>
<pattern>
${log.pattern}
</pattern>
<pattern>
${log.pattern}
</pattern>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
</appender>
</appender>
...
@@ -25,7 +24,6 @@
...
@@ -25,7 +24,6 @@
</rollingPolicy>
</rollingPolicy>
<encoder>
<encoder>
<pattern>
${log.pattern}
</pattern>
<pattern>
${log.pattern}
</pattern>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<!-- 过滤的级别 -->
<!-- 过滤的级别 -->
...
@@ -48,7 +46,6 @@
...
@@ -48,7 +46,6 @@
</rollingPolicy>
</rollingPolicy>
<encoder>
<encoder>
<pattern>
${log.pattern}
</pattern>
<pattern>
${log.pattern}
</pattern>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<filter
class=
"ch.qos.logback.classic.filter.LevelFilter"
>
<!-- 过滤的级别 -->
<!-- 过滤的级别 -->
...
@@ -71,7 +68,6 @@
...
@@ -71,7 +68,6 @@
</rollingPolicy>
</rollingPolicy>
<encoder>
<encoder>
<pattern>
${log.pattern}
</pattern>
<pattern>
${log.pattern}
</pattern>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
</appender>
</appender>
...
@@ -86,7 +82,6 @@
...
@@ -86,7 +82,6 @@
</rollingPolicy>
</rollingPolicy>
<encoder>
<encoder>
<pattern>
${log.pattern}
</pattern>
<pattern>
${log.pattern}
</pattern>
<charset>
UTF-8
</charset>
</encoder>
</encoder>
</appender>
</appender>
...
...
common/src/main/java/com/ximai/common/annotation/Excel.java
View file @
a102052d
package
com
.
ximai
.
common
.
annotation
;
package
com
.
ximai
.
common
.
annotation
;
import
com.ximai.common.utils.poi.ExcelHandlerAdapter
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
import
java.lang.annotation.Target
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
/**
/** 自定义导出Excel数据注解 */
* 自定义导出Excel数据注解
*
*/
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
@Target
(
ElementType
.
FIELD
)
@Target
(
ElementType
.
FIELD
)
public
@interface
Excel
public
@interface
Excel
{
{
/** 导出时在excel中排序 */
/**
int
sort
()
default
Integer
.
MAX_VALUE
;
* 导出时在excel中排序
*/
/** 导出到Excel中的名字. */
public
int
sort
()
default
Integer
.
MAX_VALUE
;
String
name
()
default
""
;
/**
/** 日期格式, 如: yyyy-MM-dd */
* 导出到Excel中的名字.
String
dateFormat
()
default
""
;
*/
public
String
name
()
default
""
;
/** 如果是字典类型,请设置字典的type值 (如: sys_user_sex) */
String
dictType
()
default
""
;
/**
* 日期格式, 如: yyyy-MM-dd
/** 读取内容转表达式 (如: 0=男,1=女,2=未知) */
*/
String
readConverterExp
()
default
""
;
public
String
dateFormat
()
default
""
;
/** 分隔符,读取字符串组内容 */
/**
String
separator
()
default
","
;
* 如果是字典类型,请设置字典的type值 (如: sys_user_sex)
*/
/** BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化) */
public
String
dictType
()
default
""
;
int
scale
()
default
-
1
;
/**
/** BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN */
* 读取内容转表达式 (如: 0=男,1=女,2=未知)
int
roundingMode
()
default
BigDecimal
.
ROUND_HALF_EVEN
;
*/
public
String
readConverterExp
()
default
""
;
/** 导出类型(0数字 1字符串) */
ColumnType
cellType
()
default
ColumnType
.
STRING
;
/**
* 分隔符,读取字符串组内容
/** 导出时在excel中每个列的高度 单位为字符 */
*/
double
height
()
default
14
;
public
String
separator
()
default
","
;
/** 导出时在excel中每个列的宽 单位为字符 */
/**
double
width
()
default
16
;
* BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
*/
/** 文字后缀,如% 90 变成90% */
public
int
scale
()
default
-
1
;
String
suffix
()
default
""
;
/**
/** 当值为空时,字段的默认值 */
* BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
String
defaultValue
()
default
""
;
*/
public
int
roundingMode
()
default
BigDecimal
.
ROUND_HALF_EVEN
;
/** 提示信息 */
String
prompt
()
default
""
;
/**
* 导出类型(0数字 1字符串)
/** 设置只能选择不能输入的列内容. */
*/
String
[]
combo
()
default
{};
public
ColumnType
cellType
()
default
ColumnType
.
STRING
;
/** 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写. */
/**
boolean
isExport
()
default
true
;
* 导出时在excel中每个列的高度 单位为字符
*/
/** 另一个类中的属性名称,支持多级获取,以小数点隔开 */
public
double
height
()
default
14
;
String
targetAttr
()
default
""
;
/**
/** 是否自动统计数据,在最后追加一行统计数据总和 */
* 导出时在excel中每个列的宽 单位为字符
boolean
isStatistics
()
default
false
;
*/
public
double
width
()
default
16
;
/** 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右) */
Align
align
()
default
Align
.
AUTO
;
/**
* 文字后缀,如% 90 变成90%
/** 自定义数据处理器 */
*/
Class
<?>
handler
()
default
ExcelHandlerAdapter
.
class
;
public
String
suffix
()
default
""
;
/** 自定义数据处理器参数 */
/**
String
[]
args
()
default
{};
* 当值为空时,字段的默认值
*/
/** 字段类型(0:导出导入;1:仅导出;2:仅导入) */
public
String
defaultValue
()
default
""
;
Type
type
()
default
Type
.
ALL
;
/**
enum
Align
{
* 提示信息
AUTO
(
0
),
*/
LEFT
(
1
),
public
String
prompt
()
default
""
;
CENTER
(
2
),
RIGHT
(
3
);
/**
* 设置只能选择不能输入的列内容.
*/
public
String
[]
combo
()
default
{};
/**
* 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写.
*/
public
boolean
isExport
()
default
true
;
/**
* 另一个类中的属性名称,支持多级获取,以小数点隔开
*/
public
String
targetAttr
()
default
""
;
/**
* 是否自动统计数据,在最后追加一行统计数据总和
*/
public
boolean
isStatistics
()
default
false
;
/**
* 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右)
*/
public
Align
align
()
default
Align
.
AUTO
;
/**
* 自定义数据处理器参数
*/
public
String
[]
args
()
default
{};
public
enum
Align
{
AUTO
(
0
),
LEFT
(
1
),
CENTER
(
2
),
RIGHT
(
3
);
private
final
int
value
;
private
final
int
value
;
Align
(
int
value
)
Align
(
int
value
)
{
{
this
.
value
=
value
;
this
.
value
=
value
;
}
}
public
int
value
()
public
int
value
()
{
{
return
this
.
value
;
return
this
.
value
;
}
}
}
}
/**
enum
Type
{
* 字段类型(0:导出导入;1:仅导出;2:仅导入)
ALL
(
0
),
*/
EXPORT
(
1
),
Type
type
()
default
Type
.
ALL
;
IMPORT
(
2
);
public
enum
Type
{
ALL
(
0
),
EXPORT
(
1
),
IMPORT
(
2
);
private
final
int
value
;
private
final
int
value
;
Type
(
int
value
)
Type
(
int
value
)
{
{
this
.
value
=
value
;
this
.
value
=
value
;
}
}
public
int
value
()
public
int
value
()
{
{
return
this
.
value
;
return
this
.
value
;
}
}
}
}
public
enum
ColumnType
enum
ColumnType
{
{
NUMERIC
(
0
),
NUMERIC
(
0
),
STRING
(
1
),
IMAGE
(
2
);
STRING
(
1
),
IMAGE
(
2
);
private
final
int
value
;
private
final
int
value
;
ColumnType
(
int
value
)
ColumnType
(
int
value
)
{
{
this
.
value
=
value
;
this
.
value
=
value
;
}
}
public
int
value
()
public
int
value
()
{
{
return
this
.
value
;
return
this
.
value
;
}
}
}
}
...
...
common/src/main/java/com/ximai/common/utils/poi/ExcelHandlerAdapter.java
0 → 100644
View file @
a102052d
package
com
.
ximai
.
common
.
utils
.
poi
;
/** Excel数据格式处理适配器 */
public
interface
ExcelHandlerAdapter
{
/**
* 格式化
*
* @param value 单元格数据值
* @param args excel注解args参数组
* @return 处理后的值
*/
Object
format
(
Object
value
,
String
[]
args
);
}
common/src/main/java/com/ximai/common/utils/poi/ExcelUtil.java
0 → 100644
View file @
a102052d
This diff is collapsed.
Click to expand it.
mes/src/main/java/com/ximai/mes/constant/WorkorderStatusEnum.java
View file @
a102052d
...
@@ -9,58 +9,71 @@ public enum WorkorderStatusEnum {
...
@@ -9,58 +9,71 @@ public enum WorkorderStatusEnum {
/**
/**
* 待发布
* 待发布
*/
*/
PREPARE
(
"PREPARE"
),
PREPARE
(
"PREPARE"
,
"待发布"
),
/**
/**
* 已发布
* 已发布
*/
*/
PUBLISHED
(
"PUBLISHED"
),
PUBLISHED
(
"PUBLISHED"
,
"已发布"
),
/**
/**
* 已组合
* 已组合
*/
*/
COMBINED
(
"COMBINED"
),
COMBINED
(
"COMBINED"
,
"已组合"
),
/**
/**
* 已编排
* 已编排
*/
*/
ORCHESTRATED
(
"ORCHESTRATED"
),
ORCHESTRATED
(
"ORCHESTRATED"
,
"已编排"
),
/**
/**
* 已排产
* 已排产
*/
*/
SCHEDULED
(
"SCHEDULED"
),
SCHEDULED
(
"SCHEDULED"
,
"已排产"
),
/**
/**
* 已完成
* 已完成
*/
*/
FINISHED
(
"FINISHED"
),
FINISHED
(
"FINISHED"
,
"已完成"
),
/**
/**
* 已取消
* 已取消
*/
*/
CANCELED
(
"CANCELED"
),
CANCELED
(
"CANCELED"
,
"已取消"
),
/**
/**
* 暂停
* 暂停
*/
*/
STOPPAGE
(
"STOPPAGE"
),
STOPPAGE
(
"STOPPAGE"
,
"待发布"
),
/**
/**
* 锁定
* 锁定
*/
*/
LOCK
(
"LOCK"
),
LOCK
(
"LOCK"
,
"锁定"
),
/**
/**
* 已下达
* 已下达
*/
*/
ISSUED
(
"ISSUED"
),
ISSUED
(
"ISSUED"
,
"已下达"
),
/**
/**
* 关闭/取消
* 关闭/取消
*/
*/
CLOSE
(
"CLOSE"
),
CLOSE
(
"CLOSE"
,
"关闭"
),
CANCEL
(
"CANCEL"
),
CANCEL
(
"CANCEL"
,
"取消"
),
/**
/**
* 生产中
* 生产中
*/
*/
PRODUCING
(
"PRODUCING"
);
PRODUCING
(
"PRODUCING"
,
"生产中"
);
/**
/**
* Lock type
* Lock type
*/
*/
private
final
String
status
;
private
final
String
status
;
/**
* 枚举名称
*/
public
String
enumName
;
WorkorderStatusEnum
(
String
status
,
String
enumName
)
{
this
.
status
=
status
;
this
.
enumName
=
enumName
;
}
public
String
getEnumName
()
{
return
enumName
;
}
/**
/**
* Constructor with field of type
* Constructor with field of type
*/
*/
...
...
mes/src/main/java/com/ximai/mes/pro/domain/vo/task/ProTaskWorkunitQuery.java
View file @
a102052d
...
@@ -93,4 +93,6 @@ public class ProTaskWorkunitQuery extends BaseEntity {
...
@@ -93,4 +93,6 @@ public class ProTaskWorkunitQuery extends BaseEntity {
@ApiModelProperty
(
"是否委外,1:是,0:否"
)
@ApiModelProperty
(
"是否委外,1:是,0:否"
)
private
Integer
outsourced
;
private
Integer
outsourced
;
private
String
taskBatch
;
}
}
mes/src/main/java/com/ximai/mes/pro/service/impl/task/ProTaskWorkunitServiceImpl.java
View file @
a102052d
...
@@ -450,6 +450,7 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
...
@@ -450,6 +450,7 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
query
.
eq
(
proTaskWorkunit
.
getOutsourced
()!=
null
,
"ptw.outsourced"
,
proTaskWorkunit
.
getOutsourced
());
query
.
eq
(
proTaskWorkunit
.
getOutsourced
()!=
null
,
"ptw.outsourced"
,
proTaskWorkunit
.
getOutsourced
());
query
.
eq
(
StringUtils
.
isNotEmpty
(
proTaskWorkunit
.
getCustomerProjectNo
()),
"wo.customer_project_no"
,
proTaskWorkunit
.
getCustomerProjectNo
());
query
.
eq
(
StringUtils
.
isNotEmpty
(
proTaskWorkunit
.
getCustomerProjectNo
()),
"wo.customer_project_no"
,
proTaskWorkunit
.
getCustomerProjectNo
());
query
.
eq
(
StringUtils
.
isNotEmpty
(
proTaskWorkunit
.
getOrderCode
()),
"wo.order_code"
,
proTaskWorkunit
.
getOrderCode
());
query
.
eq
(
StringUtils
.
isNotEmpty
(
proTaskWorkunit
.
getOrderCode
()),
"wo.order_code"
,
proTaskWorkunit
.
getOrderCode
());
query
.
eq
(
StringUtils
.
isNotEmpty
(
proTaskWorkunit
.
getTaskBatch
()),
"SUBSTRING_INDEX(t.task_batch, '-', -1)"
,
proTaskWorkunit
.
getTaskBatch
());
query
.
gt
(
"ptw.quantity"
,
0
);
query
.
gt
(
"ptw.quantity"
,
0
);
query
.
orderByAsc
(
"schedule_start_date"
);
query
.
orderByAsc
(
"schedule_start_date"
);
List
<
ProTaskWorkunit
>
list
=
proTaskWorkunitService
.
selectTaskWorkUnitJoinTask
(
query
);
List
<
ProTaskWorkunit
>
list
=
proTaskWorkunitService
.
selectTaskWorkUnitJoinTask
(
query
);
...
...
mes/src/main/java/com/ximai/mes/report/controller/FeedbackController.java
View file @
a102052d
This diff is collapsed.
Click to expand it.
mes/src/main/java/com/ximai/mes/report/controller/WorkOrderProgressController.java
View file @
a102052d
...
@@ -4,6 +4,8 @@ import com.ximai.common.annotation.Log;
...
@@ -4,6 +4,8 @@ import com.ximai.common.annotation.Log;
import
com.ximai.common.core.controller.BaseController
;
import
com.ximai.common.core.controller.BaseController
;
import
com.ximai.common.core.page.TableDataInfo
;
import
com.ximai.common.core.page.TableDataInfo
;
import
com.ximai.common.enums.BusinessType
;
import
com.ximai.common.enums.BusinessType
;
import
com.ximai.common.utils.poi.ExcelUtil
;
import
com.ximai.mes.constant.WorkorderStatusEnum
;
import
com.ximai.mes.report.request.FeedbackRequest
;
import
com.ximai.mes.report.request.FeedbackRequest
;
import
com.ximai.mes.report.request.WorkOrderProgressRequest
;
import
com.ximai.mes.report.request.WorkOrderProgressRequest
;
import
com.ximai.mes.report.response.FeedbackResponse
;
import
com.ximai.mes.report.response.FeedbackResponse
;
...
@@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -17,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
import
java.util.List
;
@Api
(
"生产进度"
)
@Api
(
"生产进度"
)
...
@@ -37,6 +40,16 @@ public class WorkOrderProgressController extends BaseController {
...
@@ -37,6 +40,16 @@ public class WorkOrderProgressController extends BaseController {
return
getDataTable
(
workOrderProgressListResponses
);
return
getDataTable
(
workOrderProgressListResponses
);
}
}
@PreAuthorize
(
"@ss.hasPermi('pro:materialReturn:export')"
)
@Log
(
title
=
"生产进度:明细界面导出"
,
businessType
=
BusinessType
.
EXPORT
)
@PostMapping
(
"/getList/export"
)
public
void
export
(
HttpServletResponse
response
,
WorkOrderProgressRequest
workOrderProgressRequest
)
{
List
<
WorkOrderProgressListResponse
>
workOrderProgressListResponses
=
workOrderProgressService
.
getList
(
workOrderProgressRequest
);
workOrderProgressListResponses
.
stream
().
forEach
(
workOrderProgressListResponse
->
workOrderProgressListResponse
.
setStatus
(
WorkorderStatusEnum
.
get
(
workOrderProgressListResponse
.
getStatus
()).
getEnumName
()));
ExcelUtil
<
WorkOrderProgressListResponse
>
util
=
new
ExcelUtil
<>(
WorkOrderProgressListResponse
.
class
);
util
.
exportExcel
(
response
,
workOrderProgressListResponses
,
"生产进度-明细界面导出"
);
}
@ApiOperation
(
"生产进度:工序明细"
)
@ApiOperation
(
"生产进度:工序明细"
)
@PreAuthorize
(
"@ss.hasPermi('mes:pro:feedback:get')"
)
@PreAuthorize
(
"@ss.hasPermi('mes:pro:feedback:get')"
)
@Log
(
title
=
"生产进度:工序明细"
,
businessType
=
BusinessType
.
QUERY
)
@Log
(
title
=
"生产进度:工序明细"
,
businessType
=
BusinessType
.
QUERY
)
...
...
mes/src/main/java/com/ximai/mes/report/request/WorkOrderProgressRequest.java
View file @
a102052d
...
@@ -4,6 +4,8 @@ import com.ximai.common.annotation.Excel;
...
@@ -4,6 +4,8 @@ import com.ximai.common.annotation.Excel;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
@Data
@Data
public
class
WorkOrderProgressRequest
{
public
class
WorkOrderProgressRequest
{
/**
/**
...
@@ -42,7 +44,7 @@ public class WorkOrderProgressRequest {
...
@@ -42,7 +44,7 @@ public class WorkOrderProgressRequest {
private
String
productName
;
private
String
productName
;
@ApiModelProperty
(
"工单状态"
)
@ApiModelProperty
(
"工单状态"
)
private
String
workOrderStatus
;
private
List
<
String
>
workOrderStatus
;
@ApiModelProperty
(
"产线"
)
@ApiModelProperty
(
"产线"
)
private
String
lineName
;
private
String
lineName
;
...
...
mes/src/main/java/com/ximai/mes/report/response/FeedbackResponse.java
View file @
a102052d
...
@@ -28,35 +28,43 @@ public class FeedbackResponse extends ProFeedback {
...
@@ -28,35 +28,43 @@ public class FeedbackResponse extends ProFeedback {
* 工单类型
* 工单类型
*/
*/
@ApiModelProperty
(
"工单类型"
)
@ApiModelProperty
(
"工单类型"
)
@Excel
(
name
=
"工单类型"
)
private
String
workorderType
;
private
String
workorderType
;
@ApiModelProperty
(
"客户项目号"
)
@ApiModelProperty
(
"客户项目号"
)
@Excel
(
name
=
"客户项目号"
)
private
String
customerProjectNo
;
private
String
customerProjectNo
;
@ApiModelProperty
(
"订单单号"
)
@ApiModelProperty
(
"订单单号"
)
@Excel
(
name
=
"订单单号"
)
private
String
orderCode
;
private
String
orderCode
;
@ApiModelProperty
(
"工单编码"
)
@ApiModelProperty
(
"工单编码"
)
@Excel
(
name
=
"生产工单"
)
private
String
workorderCode
;
private
String
workorderCode
;
@ApiModelProperty
(
"工单名称"
)
@ApiModelProperty
(
"工单名称"
)
//@Excel(name = "工单名称")
private
String
workorderName
;
private
String
workorderName
;
/**
/**
* 产品编号
* 产品编号
*/
*/
@ApiModelProperty
(
"产品编号"
)
@ApiModelProperty
(
"产品编号"
)
@Excel
(
name
=
"产品编号"
)
private
String
productCode
;
private
String
productCode
;
/**
/**
* 产品名称
* 产品名称
*/
*/
@ApiModelProperty
(
"产品名称"
)
@ApiModelProperty
(
"产品名称"
)
@Excel
(
name
=
"产品名称"
)
private
String
productName
;
private
String
productName
;
/**
/**
* 任务编号
* 任务编号
*/
*/
@ApiModelProperty
(
"工序任务号"
)
@ApiModelProperty
(
"工序任务号"
)
@Excel
(
name
=
"工序任务号"
)
private
String
taskCode
;
private
String
taskCode
;
...
@@ -65,11 +73,13 @@ public class FeedbackResponse extends ProFeedback {
...
@@ -65,11 +73,13 @@ public class FeedbackResponse extends ProFeedback {
* 工序名称
* 工序名称
*/
*/
@ApiModelProperty
(
"工序编码"
)
@ApiModelProperty
(
"工序编码"
)
@Excel
(
name
=
"工序编码"
)
private
String
processCode
;
private
String
processCode
;
/**
/**
* 工序名称
* 工序名称
*/
*/
@ApiModelProperty
(
"工序名称"
)
@ApiModelProperty
(
"工序名称"
)
@Excel
(
name
=
"工序名称"
)
private
String
processName
;
private
String
processName
;
...
@@ -77,12 +87,14 @@ public class FeedbackResponse extends ProFeedback {
...
@@ -77,12 +87,14 @@ public class FeedbackResponse extends ProFeedback {
* 工作中心编号
* 工作中心编号
*/
*/
@ApiModelProperty
(
"工作中心编号"
)
@ApiModelProperty
(
"工作中心编号"
)
@Excel
(
name
=
"工作中心编号"
)
private
String
workstationCode
;
private
String
workstationCode
;
/**
/**
* 工作中心名称
* 工作中心名称
*/
*/
@ApiModelProperty
(
"工作中心名称"
)
@ApiModelProperty
(
"工作中心名称"
)
@Excel
(
name
=
"工作中心名称"
)
private
String
workstationName
;
private
String
workstationName
;
...
@@ -90,27 +102,33 @@ public class FeedbackResponse extends ProFeedback {
...
@@ -90,27 +102,33 @@ public class FeedbackResponse extends ProFeedback {
*
*
*/
*/
@ApiModelProperty
(
"工作单元ID"
)
@ApiModelProperty
(
"工作单元ID"
)
@Excel
(
name
=
"工作单元ID"
)
private
Long
workunitId
;
private
Long
workunitId
;
/**
/**
*
*
*/
*/
@ApiModelProperty
(
"工作单元编码"
)
@ApiModelProperty
(
"工作单元编码"
)
@Excel
(
name
=
"工作单元编码"
)
private
String
workunitCode
;
private
String
workunitCode
;
@ApiModelProperty
(
"工作单元名称"
)
@ApiModelProperty
(
"工作单元名称"
)
@Excel
(
name
=
"工作单元名称"
)
private
String
workunitName
;
private
String
workunitName
;
@ApiModelProperty
(
"报工人员"
)
@ApiModelProperty
(
"报工人员"
)
@Excel
(
name
=
"报工人员"
)
private
String
userName
;
private
String
userName
;
@ApiModelProperty
(
"报工人员名称"
)
@ApiModelProperty
(
"报工人员名称"
)
@Excel
(
name
=
"报工人员名称"
)
private
String
nickName
;
private
String
nickName
;
/**
/**
* 排产数量
* 排产数量
*/
*/
@ApiModelProperty
(
"派工数量"
)
@ApiModelProperty
(
"派工数量"
)
@Excel
(
name
=
"派工数量"
)
private
BigDecimal
quantity
;
private
BigDecimal
quantity
;
...
@@ -118,37 +136,45 @@ public class FeedbackResponse extends ProFeedback {
...
@@ -118,37 +136,45 @@ public class FeedbackResponse extends ProFeedback {
* 本次报工数量
* 本次报工数量
*/
*/
@ApiModelProperty
(
"本次报工数量"
)
@ApiModelProperty
(
"本次报工数量"
)
@Excel
(
name
=
"本次报工数量"
)
private
BigDecimal
quantityFeedback
;
private
BigDecimal
quantityFeedback
;
/**
/**
* 合格品数量
* 合格品数量
*/
*/
@ApiModelProperty
(
"合格品数量"
)
@ApiModelProperty
(
"合格品数量"
)
@Excel
(
name
=
"合格品数量"
)
private
BigDecimal
quantityQualify
;
private
BigDecimal
quantityQualify
;
/**
/**
* 不良品数量
* 不良品数量
*/
*/
@ApiModelProperty
(
"不良品数量"
)
@ApiModelProperty
(
"不良品数量"
)
@Excel
(
name
=
"不良品数量"
)
private
BigDecimal
quantityUnqualify
;
private
BigDecimal
quantityUnqualify
;
/** 异常原因 */
/** 异常原因 */
@ApiModelProperty
(
"异常原因"
)
@ApiModelProperty
(
"异常原因"
)
@Excel
(
name
=
"异常原因"
)
private
String
abnormalReason
;
private
String
abnormalReason
;
@ApiModelProperty
(
"异常备注"
)
@ApiModelProperty
(
"异常备注"
)
@Excel
(
name
=
"异常备注"
)
private
String
abnormalRemark
;
private
String
abnormalRemark
;
@ApiModelProperty
(
"标准工时"
)
@ApiModelProperty
(
"标准工时"
)
@Excel
(
name
=
"标准工时"
)
private
BigDecimal
stdWorkingTime
;
private
BigDecimal
stdWorkingTime
;
@ApiModelProperty
(
"实际工时"
)
@ApiModelProperty
(
"实际工时"
)
@Excel
(
name
=
"实际工时"
)
private
String
machineTime
;
private
String
machineTime
;
/**
/**
* 预计结束时间
* 预计结束时间
*/
*/
@ApiModelProperty
(
"计划结束时间"
)
@ApiModelProperty
(
"计划结束时间"
)
@Excel
(
name
=
"计划结束时间"
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
scheduleEndDate
;
private
Date
scheduleEndDate
;
/**
/**
...
@@ -156,18 +182,17 @@ public class FeedbackResponse extends ProFeedback {
...
@@ -156,18 +182,17 @@ public class FeedbackResponse extends ProFeedback {
*/
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@ApiModelProperty
(
"报工时间"
)
@ApiModelProperty
(
"报工时间"
)
@Excel
(
name
=
"报工时间"
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
feedbackTime
;
private
Date
feedbackTime
;
@ApiModelProperty
(
"良率"
)
@ApiModelProperty
(
"良率"
)
@Excel
(
name
=
"良率"
)
private
String
qualificationRate
;
private
String
qualificationRate
;
@ApiModelProperty
(
"车间编号"
)
@ApiModelProperty
(
"车间编号"
)
@Excel
(
name
=
"车间编号"
)
private
String
workshopCode
;
private
String
workshopCode
;
@ApiModelProperty
(
"车间名称"
)
@ApiModelProperty
(
"车间名称"
)
@Excel
(
name
=
"车间名称"
)
private
String
workshopName
;
private
String
workshopName
;
}
}
mes/src/main/java/com/ximai/mes/report/response/WorkOrderProgressFeedbackListResponse.java
View file @
a102052d
...
@@ -25,4 +25,5 @@ public class WorkOrderProgressFeedbackListResponse {
...
@@ -25,4 +25,5 @@ public class WorkOrderProgressFeedbackListResponse {
@ApiModelProperty
(
"报工时间"
)
@ApiModelProperty
(
"报工时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
feedbackTime
;
private
Date
feedbackTime
;
private
String
taskBatch
;
}
}
mes/src/main/java/com/ximai/mes/report/response/WorkOrderProgressListResponse.java
View file @
a102052d
package
com
.
ximai
.
mes
.
report
.
response
;
package
com
.
ximai
.
mes
.
report
.
response
;
import
com.alibaba.excel.annotation.format.NumberFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.ximai.common.annotation.Excel
;
import
com.ximai.common.annotation.Excel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -15,46 +16,65 @@ public class WorkOrderProgressListResponse {
...
@@ -15,46 +16,65 @@ public class WorkOrderProgressListResponse {
* 项目号,订单号,生产工单,工单类型,产品编码,产品名称,计划数量,完工数量,在制进度(百分比),需求实际
* 项目号,订单号,生产工单,工单类型,产品编码,产品名称,计划数量,完工数量,在制进度(百分比),需求实际
*/
*/
@ApiModelProperty
(
"客户项目号"
)
@ApiModelProperty
(
"客户项目号"
)
@Excel
(
name
=
"客户项目号"
)
private
String
customerProjectNo
;
private
String
customerProjectNo
;
@ApiModelProperty
(
"订单单号"
)
@ApiModelProperty
(
"订单单号"
)
@Excel
(
name
=
"订单单号"
)
private
String
orderCode
;
private
String
orderCode
;
@ApiModelProperty
(
"工单编码"
)
@ApiModelProperty
(
"工单编码"
)
@Excel
(
name
=
"生产工单"
)
private
String
workorderCode
;
private
String
workorderCode
;
@ApiModelProperty
(
"产线"
)
@Excel
(
name
=
"产品名称"
)
private
String
lineName
;
@ApiModelProperty
(
"工单状态"
)
private
String
status
;
/**
/**
* 工单类型
* 工单类型
*/
*/
@ApiModelProperty
(
"工单类型"
)
@ApiModelProperty
(
"工单类型"
)
@Excel
(
name
=
"工单类型"
)
private
String
workorderType
;
private
String
workorderType
;
/**
/**
* 产品编号
* 产品编号
*/
*/
@ApiModelProperty
(
"产品编号"
)
@ApiModelProperty
(
"产品编号"
)
@Excel
(
name
=
"产品编号"
)
private
String
productCode
;
private
String
productCode
;
/**
/**
* 产品名称
* 产品名称
*/
*/
@ApiModelProperty
(
"产品名称"
)
@ApiModelProperty
(
"产品名称"
)
@Excel
(
name
=
"产品名称"
)
private
String
productName
;
private
String
productName
;
@ApiModelProperty
(
"计划数量"
)
@ApiModelProperty
(
"计划数量"
)
@Excel
(
name
=
"计划数量"
)
@NumberFormat
(
value
=
"0.00"
)
private
BigDecimal
quantity
;
private
BigDecimal
quantity
;
/**
/**
* 已生产数量
* 已生产数量
*/
*/
@ApiModelProperty
(
"已生产数量"
)
@ApiModelProperty
(
"已生产数量"
)
@Excel
(
name
=
"完工数量"
)
@NumberFormat
(
value
=
"0.00"
)
private
BigDecimal
quantityProduced
;
private
BigDecimal
quantityProduced
;
/**
/**
* 已生产数量
* 已生产数量
*/
*/
@ApiModelProperty
(
"在制进度"
)
@ApiModelProperty
(
"在制进度"
)
@Excel
(
name
=
"在制进度%"
)
@NumberFormat
(
value
=
"0.00"
)
private
BigDecimal
quantityMu
;
private
BigDecimal
quantityMu
;
@ApiModelProperty
(
"需求时间"
)
@ApiModelProperty
(
"需求时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@Excel
(
name
=
"需求时间"
,
dateFormat
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
requestDate
;
private
Date
requestDate
;
}
}
mes/src/main/resources/mapper/pro/ProFeedbackMapper.xml
View file @
a102052d
...
@@ -517,12 +517,32 @@
...
@@ -517,12 +517,32 @@
</select>
</select>
<select
id=
"getFeedbackList"
<select
id=
"getFeedbackList"
resultType=
"com.ximai.mes.report.response.WorkOrderProgressFeedbackListResponse"
>
resultType=
"com.ximai.mes.report.response.WorkOrderProgressFeedbackListResponse"
>
select feedback.*,workunit.std_working_time from pro_task_workunit workunit join pro_feedback feedback on feedback.task_workunit_id = workunit.task_workunit_id
SELECT
feedback.user_name,
sum(feedback.quantity) quantity,
sum(feedback.quantity_feedback) quantity_feedback,
sum(feedback.quantity_qualify) quantity_qualify,
sum(feedback.quantity_unqualify) quantity_unqualify,
sum(feedback.quantity_uncheck) quantity_uncheck,
feedback.nick_name,
workunit.std_working_time ,
pro_task.task_batch
FROM
pro_task_workunit workunit
JOIN pro_feedback feedback ON feedback.task_workunit_id = workunit.task_workunit_id
join pro_task on pro_task.task_id = workunit.task_id
<where>
<where>
workorder_code = #{workorderCode}
workorder_code = #{workorderCode}
<if
test=
"taskId != null"
>
and feedback.task_id = #{taskId}
</if>
<if
test=
"taskId != null"
>
and feedback.task_id = #{taskId}
</if>
<if
test=
"taskWorkunitId != null"
>
and feedback.task_workunit_id = #{taskWorkunitId}
</if>
<if
test=
"taskWorkunitId != null"
>
and feedback.task_workunit_id = #{taskWorkunitId}
</if>
</where>
</where>
group by
feedback.user_name,
feedback.nick_name,
workunit.std_working_time ,
pro_task.task_batch
order by
pro_task.idx
</select>
</select>
<select
id=
"getListByDefect"
resultType=
"com.ximai.mes.report.response.FeedbackResponse"
>
<select
id=
"getListByDefect"
resultType=
"com.ximai.mes.report.response.FeedbackResponse"
>
select
select
...
...
mes/src/main/resources/mapper/pro/proWorkOrder/ProWorkorderMapper.xml
View file @
a102052d
...
@@ -262,6 +262,7 @@
...
@@ -262,6 +262,7 @@
pw.in_drawing_no,
pw.in_drawing_no,
pw.erp_create_time,
pw.erp_create_time,
pw.erp_update_time ,
pw.erp_update_time ,
item.line_name,
sum(case task.is_last_process when 0 THEN 0 ELSE fe.quantity_qualify + fe.quantity_unqualify END) as quantity_produced
sum(case task.is_last_process when 0 THEN 0 ELSE fe.quantity_qualify + fe.quantity_unqualify END) as quantity_produced
FROM
FROM
pro_workorder pw
pro_workorder pw
...
@@ -274,7 +275,13 @@
...
@@ -274,7 +275,13 @@
<if
test=
"productCode != null and productCode != ''"
>
and pw.product_code = #{productCode}
</if>
<if
test=
"productCode != null and productCode != ''"
>
and pw.product_code = #{productCode}
</if>
<if
test=
"orderCode != null and orderCode !=''"
>
and pw.order_code = #{orderCode}
</if>
<if
test=
"orderCode != null and orderCode !=''"
>
and pw.order_code = #{orderCode}
</if>
<if
test=
"customerProjectNo != null and customerProjectNo !=''"
>
and pw.customer_project_no = #{customerProjectNo}
</if>
<if
test=
"customerProjectNo != null and customerProjectNo !=''"
>
and pw.customer_project_no = #{customerProjectNo}
</if>
<if
test=
"workOrderStatus != null and workOrderStatus !=''"
>
and pw.status = #{workOrderStatus}
</if>
<if
test=
"workOrderStatus != null"
>
and
<foreach
collection=
"workOrderStatus"
item=
"status"
separator=
" or "
open=
"("
close=
")"
>
pw.status = #{status}
</foreach>
</if>
<if
test=
"lineName != null and lineName !=''"
>
and item.line_name = #{lineName}
</if>
<if
test=
"lineName != null and lineName !=''"
>
and item.line_name = #{lineName}
</if>
</where>
</where>
GROUP BY
GROUP BY
...
@@ -352,7 +359,8 @@
...
@@ -352,7 +359,8 @@
pw.customer_project_no,
pw.customer_project_no,
pw.in_drawing_no,
pw.in_drawing_no,
pw.erp_create_time,
pw.erp_create_time,
pw.erp_update_time
pw.erp_update_time,
item.line_name
</select>
</select>
<insert
id=
"insertProWorkorder"
parameterType=
"ProWorkorder"
useGeneratedKeys=
"true"
keyProperty=
"workorderId"
>
<insert
id=
"insertProWorkorder"
parameterType=
"ProWorkorder"
useGeneratedKeys=
"true"
keyProperty=
"workorderId"
>
...
...
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