Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
topsun-bpm
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
鲁鑫
topsun-bpm
Commits
07737e86
Commit
07737e86
authored
Sep 09, 2024
by
鲁鑫
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MES异常单功能
parent
dad4000a
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1071 additions
and
2 deletions
+1071
-2
数据库变更记录
topsun-xt/src/main/resources/数据库变更记录
+12
-2
produceExceptionDetail.js
...biz/topsun/mes/produceException/produceExceptionDetail.js
+43
-0
produceExceptionDetail.jsp
...iz/topsun/mes/produceException/produceExceptionDetail.jsp
+59
-0
produceExceptionList.js
...p/biz/topsun/mes/produceException/produceExceptionList.js
+76
-0
produceExceptionList.jsp
.../biz/topsun/mes/produceException/produceExceptionList.jsp
+28
-0
ProduceExceptionApplication.java
...uceException/application/ProduceExceptionApplication.java
+26
-0
ProduceExceptionApplicationImpl.java
...ion/application/impl/ProduceExceptionApplicationImpl.java
+298
-0
ProduceExceptionController.java
...oduceException/controller/ProduceExceptionController.java
+99
-0
ProduceException.java
.../topsun/mes/produceException/domain/ProduceException.java
+133
-0
ProduceExceptionQueryRequest.java
...eException/domain/query/ProduceExceptionQueryRequest.java
+14
-0
ProduceExceptionFeedBack.java
.../produceException/domain/vo/ProduceExceptionFeedBack.java
+39
-0
ProduceExceptionVo.java
...un/mes/produceException/domain/vo/ProduceExceptionVo.java
+106
-0
ProduceExceptionRepository.java
...oduceException/repository/ProduceExceptionRepository.java
+12
-0
produceExceptionProc.bpmn
...bpm/topsun/mes/produceException/produceExceptionProc.bpmn
+111
-0
function.xml
topsun/src/main/resources/config/topsun/base/function.xml
+5
-0
produceException.xml
...s/config/topsun/mes/produceException/produceException.xml
+10
-0
No files found.
topsun-xt/src/main/resources/数据库变更记录
View file @
07737e86
...
...
@@ -33,4 +33,14 @@ ADD COLUMN `result` varchar(10) NULL COMMENT '评审结果' AFTER `msg`;
ALTER TABLE `topsun_dev`.`mes_unqualified_materials_item`
ADD COLUMN `explain` varchar(255) NULL COMMENT '说明' AFTER `version`;
\ No newline at end of file
ADD COLUMN `explain` varchar(255) NULL COMMENT '说明' AFTER `version`;
-- 2024-09-05 鲁鑫 物料主数据
ALTER TABLE `topsun_dev`.`sap_non_prod_apply_dept`
ADD COLUMN `length` decimal(10, 4) NULL COMMENT '长度cm' AFTER `fevor_name`,
ADD COLUMN `width_cm` decimal(10, 4) NULL COMMENT '宽度cm' AFTER `length`,
ADD COLUMN `thickness` decimal(10, 4) NULL COMMENT '厚度cm' AFTER `width_cm`,
ADD COLUMN `weight` decimal(10, 4) NULL COMMENT '克重g' AFTER `thickness`,
ADD COLUMN `width` decimal(10, 4) NULL COMMENT '宽度' AFTER `weight`,
ADD COLUMN `single_thickness` decimal(10, 4) NULL COMMENT '单层厚' AFTER `width`;
\ No newline at end of file
topsun-xt/src/main/webapp/biz/topsun/mes/produceException/produceExceptionDetail.js
0 → 100644
View file @
07737e86
$
(
document
).
ready
(
function
()
{
initialize
();
bindEvent
();
});
function
initialize
(){
UICtrl
.
layout
(
"#layout"
,
{
leftWidth
:
3
});
}
function
bindEvent
(){
// $("#result").combox({onChange:function(data){
// var handleOpinion = $("#handleOpinion").val();
// $("#handleOpinion").val(data.text + "-" + handleOpinion)
// }
// })
}
function
getExtendedData
(
processAction
)
{
var
handleResult
=
getHandleResult
();
//回退、打回、转交时,不需要验证必填项是否已经填写;
if
(
processAction
==
ProcessAction
.
BACK
||
processAction
==
ProcessAction
.
REPLENISH
||
processAction
==
ProcessAction
.
TRANSMIT
||
"2"
==
handleResult
)
{
//不验证
$
(
'#submitForm'
).
attr
(
'check'
,
false
);
}
return
true
;
}
/**
* 流程引擎回调设置打样的id
* @param value
*/
function
setId
(
id
)
{
$
(
"#id"
).
val
(
id
);
}
/**
* 流程引擎获取打样申请id的回掉方法。
* @return
*/
function
getId
()
{
return
$
(
"#id"
).
val
()
||
""
;
}
topsun-xt/src/main/webapp/biz/topsun/mes/produceException/produceExceptionDetail.jsp
0 → 100644
View file @
07737e86
<%@ page
language=
"java"
contentType=
"text/html; charset=utf-8"
%>
<%@taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,dateTime,combox,attachment,commonTree,comboDialog"
/>
<x:script
src=
'/biz/topsun/mes/produceException/produceExceptionDetail.js'
/>
</head>
<body>
<div
class=
"container-fluid"
>
<x:billTitle
title=
"异常单"
needStatus=
"false"
needPerson=
"true"
/>
<form
class=
"hg-form"
method=
"post"
action=
""
id=
"submitForm"
>
<x:hidden
name=
"id"
/>
<x:hidden
name=
"billCode"
/>
<x:hidden
name=
"fillinDate"
type=
"datetime"
/>
<x:hidden
name=
"fullId"
/>
<x:hidden
name=
"organId"
/>
<x:hidden
name=
"organName"
/>
<x:hidden
name=
"deptId"
/>
<x:hidden
name=
"deptName"
/>
<x:hidden
name=
"positionId"
/>
<x:hidden
name=
"positionName"
/>
<x:hidden
name=
"personMemberId"
/>
<x:hidden
name=
"personMemberName"
/>
<x:hidden
name=
"statusId"
/>
<x:hidden
name=
"result"
/>
<div
class=
"hg-form-cols"
>
<div
class=
"hg-form-row"
>
<x:inputC
name=
"exceptionNo"
required=
"false"
readonly=
"true"
label=
"异常单号"
labelCol=
"2"
fieldCol=
"2"
/>
<x:inputC
name=
"exceptionType"
required=
"false"
readonly=
"true"
label=
"异常类型"
labelCol=
"2"
fieldCol=
"2"
/>
<x:inputC
name=
"exceptionDate"
required=
"false"
readonly=
"true"
label=
"异常时间"
labelCol=
"2"
fieldCol=
"2"
/>
</div>
<div
class=
"hg-form-row"
>
<x:inputC
name=
"layoutNo"
required=
"false"
readonly=
"true"
label=
"编排单号"
labelCol=
"2"
fieldCol=
"2"
/>
<x:inputC
name=
"process"
required=
"false"
readonly=
"true"
label=
"工序名称"
labelCol=
"2"
fieldCol=
"2"
/>
<x:inputC
name=
"workerCenter"
required=
"false"
readonly=
"true"
label=
"工作中心名称"
labelCol=
"2"
fieldCol=
"2"
/>
</div>
<div
class=
"hg-form-row"
>
<x:inputC
name=
"workerUnit"
required=
"false"
readonly=
"true"
label=
"作业单元名称"
labelCol=
"2"
fieldCol=
"2"
/>
<x:hidden
name=
"submitter"
/>
<x:inputC
name=
"submitterName"
required=
"false"
readonly=
"true"
label=
"提交人"
labelCol=
"2"
fieldCol=
"2"
/>
<x:hidden
name=
"approvalCode"
/>
<x:inputC
name=
"approvalName"
required=
"false"
readonly=
"true"
label=
"审批人"
labelCol=
"2"
fieldCol=
"2"
/>
</div>
<div
class=
"hg-form-row"
>
<x:inputC
name=
"materialNo"
required=
"false"
readonly=
"true"
label=
"物料号"
labelCol=
"2"
fieldCol=
"2"
/>
<x:inputC
name=
"materialName"
required=
"false"
readonly=
"true"
label=
"物料名称"
labelCol=
"2"
maxLength=
"64"
fieldCol=
"6"
/>
</div>
<div
class=
"hg-form-row"
>
<x:textareaC
name=
"exceptionReason"
required=
"false"
label=
"异常原因"
labelCol=
"2"
fieldCol=
"10"
rows=
"3"
readonly=
"true"
/>
</div>
<div
class=
"hg-form-row"
>
<x:textareaC
name=
"exceptionDesc"
required=
"false"
label=
"异常描述"
labelCol=
"2"
fieldCol=
"10"
rows=
"3"
readonly=
"true"
/>
</div>
</div>
</form>
</div>
</body>
</html>
topsun-xt/src/main/webapp/biz/topsun/mes/produceException/produceExceptionList.js
0 → 100644
View file @
07737e86
var
gridManager
=
null
;
$
(
document
).
ready
(
function
()
{
initUI
();
loadGrid
();
})
function
initUI
()
{
UICtrl
.
initDefaultLayout
();
}
function
loadGrid
()
{
var
toolbarOptions
=
UICtrl
.
getDefaultToolbarOptions
({
});
gridManager
=
UICtrl
.
grid
(
"#maingrid"
,
{
columns
:
[
{
display
:
"单据编号"
,
name
:
"billCode"
,
width
:
150
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"创建日期"
,
name
:
"fillinDate"
,
width
:
120
,
minWidth
:
60
,
type
:
"date"
,
align
:
"left"
},
{
display
:
"申请人"
,
name
:
"personMemberName"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"申请部门"
,
name
:
"deptName"
,
width
:
120
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"异常单号"
,
name
:
"exceptionNo"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"编排单号"
,
name
:
"layoutNo"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"工序名称"
,
name
:
"process"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"工作中心名称"
,
name
:
"workerCenter"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"作业单元名称"
,
name
:
"workerUnit"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"物料号"
,
name
:
"materialNo"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"物料名称"
,
name
:
"materialName"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"异常类型"
,
name
:
"exceptionType"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"异常原因"
,
name
:
"exceptionReason"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"异常描述"
,
name
:
"exceptionDesc"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"异常时间"
,
name
:
"exceptionDate"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"提报人"
,
name
:
"submitterName"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"审批人"
,
name
:
"approvalName"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"处理结果"
,
name
:
"result"
,
width
:
200
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"审批状态"
,
name
:
"statusTextView"
,
width
:
100
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"状态码"
,
name
:
"code"
,
width
:
100
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
{
display
:
"消息"
,
name
:
"msg"
,
width
:
300
,
minWidth
:
60
,
type
:
"string"
,
align
:
"left"
},
],
dataAction
:
"server"
,
url
:
web_app
.
name
+
'/produceException/slicedProduceExceptionList.ajax'
,
pageSize
:
20
,
usePager
:
true
,
toolbar
:
toolbarOptions
,
width
:
"100%"
,
height
:
"100%"
,
heightDiff
:
-
8
,
sortName
:
'fillinDate'
,
sortOrder
:
'desc'
,
checkbox
:
true
,
fixedCellHeight
:
true
,
selectRowButtonOnly
:
true
,
onDblClickRow
:
function
(
data
,
rowindex
,
rowobj
)
{
doView
(
data
.
id
);
},
});
UICtrl
.
setSearchAreaToggle
(
gridManager
);
}
function
query
(
obj
)
{
var
param
=
$
(
obj
).
formToJSON
();
UICtrl
.
gridSearch
(
gridManager
,
param
);
}
function
reloadGrid
()
{
gridManager
.
loadData
();
}
function
resetForm
(
obj
)
{
$
(
obj
).
formClean
();
}
function
doView
(
id
)
{
UICtrl
.
addTabItem
({
tabid
:
'produceException'
+
id
,
text
:
"异常单"
,
url
:
web_app
.
name
+
'/produceException/showProduceExceptionDetail.job?bizId='
+
id
+
"&isReadOnly=true"
});
}
topsun-xt/src/main/webapp/biz/topsun/mes/produceException/produceExceptionList.jsp
0 → 100644
View file @
07737e86
<%@ page
contentType=
"text/html; charset=utf-8"
language=
"java"
%>
<%@ taglib
uri=
"/WEB-INF/taglib.tld"
prefix=
"x"
%>
<%@ taglib
uri=
"http://java.sun.com/jsp/jstl/core"
prefix=
"c"
%>
<html>
<head>
<x:base
include=
"layout,dialog,grid,tree,combox,commonTree"
/>
<x:script
src=
'/biz/topsun/mes/produceException/produceExceptionList.js'
/>
</head>
<body>
<div
class=
"container-fluid"
>
<div
class=
"ui-hide"
>
</div>
<div
id=
"layout"
>
<div
position=
"center"
title=
"异常单"
>
<x:title
title=
"common.button.search"
hideTable=
"queryMainForm"
isHide=
"true"
/>
<form
class=
"hg-form ui-hide"
method=
"post"
action=
""
id=
"queryMainForm"
>
<x:inputC
name=
"billCode"
required=
"false"
label=
"申请单号"
labelCol=
"1"
/>
<x:searchButtons/>
</form>
<div
class=
"blank_div clearfix"
></div>
<div
id=
"maingrid"
style=
"margin: 2px;"
></div>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
topsun/src/main/java/com/huigou/topsun/mes/produceException/application/ProduceExceptionApplication.java
0 → 100644
View file @
07737e86
package
com
.
huigou
.
topsun
.
mes
.
produceException
.
application
;
import
com.huigou.topsun.mes.produceException.domain.ProduceException
;
import
com.huigou.topsun.mes.produceException.domain.query.ProduceExceptionQueryRequest
;
import
com.huigou.topsun.mes.produceException.domain.vo.ProduceExceptionVo
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/12/10:29
* @Description:
*/
public
interface
ProduceExceptionApplication
{
public
static
final
String
QUERY_XML_FILE_PATH
=
"config/topsun/mes/produceException/produceException.xml"
;
String
PROCESS_DEFINITION_KEY
=
"produceExceptionProc"
;
ProduceException
findProduceExceptionById
(
String
id
);
ProduceException
saveProduceException
(
ProduceException
produceException
);
Map
<
String
,
Object
>
slicedProduceExceptionList
(
ProduceExceptionQueryRequest
queryRequest
);
void
saveMesProduceExceptionVo
(
ProduceExceptionVo
produceExceptionVo
);
}
topsun/src/main/java/com/huigou/topsun/mes/produceException/application/impl/ProduceExceptionApplicationImpl.java
0 → 100644
View file @
07737e86
This diff is collapsed.
Click to expand it.
topsun/src/main/java/com/huigou/topsun/mes/produceException/controller/ProduceExceptionController.java
0 → 100644
View file @
07737e86
package
com
.
huigou
.
topsun
.
mes
.
produceException
.
controller
;
import
com.huigou.context.Operator
;
import
com.huigou.context.OrgUnit
;
import
com.huigou.topsun.mes.produceException.application.ProduceExceptionApplication
;
import
com.huigou.topsun.mes.produceException.domain.ProduceException
;
import
com.huigou.topsun.mes.produceException.domain.query.ProduceExceptionQueryRequest
;
import
com.huigou.topsun.mes.produceException.domain.vo.ProduceExceptionVo
;
import
com.huigou.uasp.annotation.ControllerMapping
;
import
com.huigou.uasp.annotation.SkipAuth
;
import
com.huigou.uasp.bmp.common.BizBillStatus
;
import
com.huigou.uasp.client.CommonController
;
import
com.huigou.util.JSONUtil
;
import
com.huigou.util.SDO
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @Auther: xin.lu
* @Date: 2024/08/12/10:30
* @Description:
*/
@Controller
@ControllerMapping
(
"/produceException"
)
public
class
ProduceExceptionController
extends
CommonController
{
private
final
static
Logger
LOG
=
LoggerFactory
.
getLogger
(
ProduceExceptionController
.
class
);
@Autowired
private
ProduceExceptionApplication
produceExceptionApplication
;
@Override
protected
String
getPagePath
()
{
return
"/biz/topsun/mes/produceException/"
;
}
public
String
forwardProduceExceptionList
(){
return
forward
(
"produceExceptionList"
);
}
@SkipAuth
@RequestMapping
(
value
=
"/getMesProduceException"
)
@ResponseBody
public
HashMap
<
String
,
Object
>
getMesProduceException
(
@RequestBody
ProduceExceptionVo
produceExceptionVo
){
//SDO sdo = this.getSDO();
HashMap
<
String
,
Object
>
messageMap
=
new
HashMap
<>();
messageMap
.
put
(
"Message_Status"
,
"S"
);
messageMap
.
put
(
"Message_Text"
,
"成功"
);
LOG
.
info
(
"MES异常审批数据=={}"
,
JSONUtil
.
toString
(
produceExceptionVo
));
try
{
this
.
produceExceptionApplication
.
saveMesProduceExceptionVo
(
produceExceptionVo
);
}
catch
(
RuntimeException
e
){
messageMap
.
put
(
"Message_Status"
,
"E"
);
messageMap
.
put
(
"Message_Text"
,
e
.
getMessage
());
}
return
messageMap
;
}
public
String
slicedProduceExceptionList
(){
SDO
sdo
=
this
.
getSDO
();
ProduceExceptionQueryRequest
queryRequest
=
sdo
.
toQueryRequest
(
ProduceExceptionQueryRequest
.
class
);
Map
<
String
,
Object
>
map
=
produceExceptionApplication
.
slicedProduceExceptionList
(
queryRequest
);
return
toResult
(
map
);
}
public
String
forwardProduceExceptionDetail
(){
this
.
putAttribute
(
"processDefinitionKey"
,
ProduceExceptionApplication
.
PROCESS_DEFINITION_KEY
);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this
.
putAttribute
(
"procUnitId"
,
"Apply"
);
ProduceException
produceException
=
new
ProduceException
();
produceException
.
setStatusId
(
BizBillStatus
.
APPLYING
.
getId
());
/**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/
Operator
operator
=
getOperator
();
produceException
.
setDefaultValues
(
new
OrgUnit
(
operator
.
getFullId
(),
operator
.
getFullName
()));
return
forward
(
"produceExceptionDetail"
,
produceException
);
}
public
String
showProduceExceptionDetail
(){
SDO
sdo
=
this
.
getSDO
();
String
id
=
sdo
.
getBizId
();
ProduceException
produceException
=
produceExceptionApplication
.
findProduceExceptionById
(
id
);
return
forward
(
"produceExceptionDetail"
,
produceException
);
}
public
String
uploadFile
(){
SDO
sdo
=
this
.
getSDO
();
String
id
=
sdo
.
getId
();
this
.
putAttribute
(
"bizId"
,
id
);
return
forward
(
"attachment"
);
}
}
topsun/src/main/java/com/huigou/topsun/mes/produceException/domain/ProduceException.java
0 → 100644
View file @
07737e86
package
com
.
huigou
.
topsun
.
mes
.
produceException
.
domain
;
import
com.huigou.data.domain.model.FlowBillAbstractEntity
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @Auther: xin.lu
* @Date: 2024/08/12/10:25
* @Description: 生产异常
*/
@Entity
@Data
@Table
(
name
=
"mes_produce_exception"
)
public
class
ProduceException
extends
FlowBillAbstractEntity
{
/**
* 异常单号
*/
@Column
(
name
=
"exception_no"
)
private
String
exceptionNo
;
/**
* 编排单号
*/
@Column
(
name
=
"layout_no"
)
private
String
layoutNo
;
/**
* 工序名称
*/
@Column
(
name
=
"process"
)
private
String
process
;
/**
* 工作中心名称
*/
@Column
(
name
=
"worker_center"
)
private
String
workerCenter
;
/**
* 作业单元名称
*/
@Column
(
name
=
"worker_unit"
)
private
String
workerUnit
;
/**
* 物料号
*/
@Column
(
name
=
"material_no"
)
private
String
materialNo
;
/**
* 物料名称
*/
@Column
(
name
=
"material_name"
)
private
String
materialName
;
/**
* 异常类型
*/
@Column
(
name
=
"exception_type"
)
private
String
exceptionType
;
/**
* 异常原因
*/
@Column
(
name
=
"exception_reason"
)
private
String
exceptionReason
;
/**
* 异常描述
*/
@Column
(
name
=
"exception_desc"
)
private
String
exceptionDesc
;
/**
* 异常时间
*/
@Column
(
name
=
"exception_date"
)
private
Date
exceptionDate
;
/**
* 提交人
*/
@Column
(
name
=
"submitter"
)
private
String
submitter
;
/**
* 提交人
*/
@Column
(
name
=
"submitter_name"
)
private
String
submitterName
;
/**
* 审批人编码
*/
@Column
(
name
=
"approval_code"
)
private
String
approvalCode
;
/**
* 审批人名称
*/
@Column
(
name
=
"approval_name"
)
private
String
approvalName
;
/**
* 处理结果
*/
@Column
(
name
=
"result"
)
private
String
result
;
/**
* MES返回状态码
*/
@Column
(
name
=
"code"
)
private
String
code
;
/**
* MES返回消息
*/
@Column
(
name
=
"msg"
)
private
String
msg
;
@Override
protected
String
getCodeRuleId
()
{
return
"produceException"
;
}
}
topsun/src/main/java/com/huigou/topsun/mes/produceException/domain/query/ProduceExceptionQueryRequest.java
0 → 100644
View file @
07737e86
package
com
.
huigou
.
topsun
.
mes
.
produceException
.
domain
.
query
;
import
com.huigou.data.domain.query.QueryAbstractRequest
;
import
lombok.Data
;
/**
* @Auther: xin.lu
* @Date: 2024/08/12/10:26
* @Description:
*/
@Data
public
class
ProduceExceptionQueryRequest
extends
QueryAbstractRequest
{
private
String
billCode
;
}
topsun/src/main/java/com/huigou/topsun/mes/produceException/domain/vo/ProduceExceptionFeedBack.java
0 → 100644
View file @
07737e86
package
com
.
huigou
.
topsun
.
mes
.
produceException
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @Auther: xin.lu
* @Date: 2024/08/27/17:16
* @Description:
*/
@Data
public
class
ProduceExceptionFeedBack
implements
Serializable
{
/**
* 物料凭证号
*/
@JsonProperty
(
"exceptionNo"
)
private
String
exceptionNo
;
/**
* 凭证项次
*/
@JsonProperty
(
"status"
)
private
String
status
;
/**
* 固定值
*/
@JsonProperty
(
"actionType"
)
private
String
actionType
;
/**
* ng/pass/back/sort
*/
@JsonProperty
(
"result"
)
private
String
result
;
}
topsun/src/main/java/com/huigou/topsun/mes/produceException/domain/vo/ProduceExceptionVo.java
0 → 100644
View file @
07737e86
package
com
.
huigou
.
topsun
.
mes
.
produceException
.
domain
.
vo
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @Auther: xin.lu
* @Date: 2024/08/12/10:25
* @Description: 质量异常评审表
*/
@Data
public
class
ProduceExceptionVo
implements
Serializable
{
/**
* 异常单号
*/
@JsonProperty
(
"exceptionNo"
)
private
String
exceptionNo
;
/**
* 编排单号
*/
@JsonProperty
(
"layoutNo"
)
private
String
layoutNo
;
/**
* 工序名称
*/
@JsonProperty
(
"process"
)
private
String
process
;
/**
* 工作中心名称
*/
@JsonProperty
(
"workerCenter"
)
private
String
workerCenter
;
/**
* 作业单元名称
*/
@JsonProperty
(
"workerUnit"
)
private
String
workerUnit
;
/**
* 物料号
*/
@JsonProperty
(
"materialNo"
)
private
String
materialNo
;
/**
* 物料名称
*/
@JsonProperty
(
"materialName"
)
private
String
materialName
;
/**
* 异常类型
*/
@JsonProperty
(
"exceptionType"
)
private
String
exceptionType
;
/**
* 异常原因
*/
@JsonProperty
(
"exceptionReason"
)
private
String
exceptionReason
;
/**
* 异常描述
*/
@JsonProperty
(
"exceptionDesc"
)
private
String
exceptionDesc
;
/**
* 异常时间
*/
@JsonProperty
(
"exceptionDate"
)
private
String
exceptionDate
;
/**
* 提交人
*/
@JsonProperty
(
"submitter"
)
private
String
submitter
;
/**
* 提交人
*/
@JsonProperty
(
"submitterName"
)
private
String
submitterName
;
/**
* 审批人编码
*/
@JsonProperty
(
"approvalCode"
)
private
String
approvalCode
;
/**
* 审批人名称
*/
@JsonProperty
(
"approvalName"
)
private
String
approvalName
;
}
topsun/src/main/java/com/huigou/topsun/mes/produceException/repository/ProduceExceptionRepository.java
0 → 100644
View file @
07737e86
package
com
.
huigou
.
topsun
.
mes
.
produceException
.
repository
;
import
com.huigou.topsun.mes.produceException.domain.ProduceException
;
import
org.springframework.data.jpa.repository.JpaRepository
;
/**
* @Auther: xin.lu
* @Date: 2024/08/12/10:29
* @Description:
*/
public
interface
ProduceExceptionRepository
extends
JpaRepository
<
ProduceException
,
String
>
{
}
topsun/src/main/resources/config/bpm/topsun/mes/produceException/produceExceptionProc.bpmn
0 → 100644
View file @
07737e86
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:activiti=
"http://activiti.org/bpmn"
xmlns:bpmndi=
"http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc=
"http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi=
"http://www.omg.org/spec/DD/20100524/DI"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
typeLanguage=
"http://www.w3.org/2001/XMLSchema"
expressionLanguage=
"http://www.w3.org/1999/XPath"
targetNamespace=
"http://www.activiti.org/test"
>
<process
id=
"produceExceptionProc"
name=
"异常单"
isExecutable=
"true"
>
<extensionElements>
<activiti:executionListener
event=
"start"
delegateExpression=
"#{produceExceptionApplication}"
></activiti:executionListener>
<activiti:executionListener
event=
"end"
delegateExpression=
"#{produceExceptionApplication}"
></activiti:executionListener>
</extensionElements>
<startEvent
id=
"startevent1"
name=
"Start"
></startEvent>
<endEvent
id=
"endevent1"
name=
"End"
></endEvent>
<userTask
id=
"Apply"
name=
"异常单"
activiti:formKey=
"produceException/showProduceExceptionDetail.job"
>
<extensionElements>
<activiti:taskListener
event=
"all"
delegateExpression=
"#{produceExceptionApplication}"
></activiti:taskListener>
<activiti:taskListener
event=
"saveBizData"
delegateExpression=
"#{produceExceptionApplication}"
></activiti:taskListener>
</extensionElements>
</userTask>
<userTask
id=
"Approve"
name=
"异常单审批"
activiti:assignee=
"${assignee} "
activiti:formKey=
"produceException/showProduceExceptionDetail.job"
>
<extensionElements>
<activiti:taskListener
event=
"all"
delegateExpression=
"#{produceExceptionApplication}"
></activiti:taskListener>
<activiti:taskListener
event=
"saveBizData"
delegateExpression=
"#{produceExceptionApplication}"
></activiti:taskListener>
</extensionElements>
<multiInstanceLoopCharacteristics
isSequential=
"false"
activiti:collection=
"handlerList"
activiti:elementVariable=
"assignee"
>
<completionCondition>
${chiefApprovePassed}
</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
<sequenceFlow
id=
"flow1"
sourceRef=
"startevent1"
targetRef=
"Apply"
></sequenceFlow>
<sequenceFlow
id=
"flow2"
sourceRef=
"Apply"
targetRef=
"Approve"
></sequenceFlow>
<exclusiveGateway
id=
"ApproveFinished"
name=
"审批结束"
></exclusiveGateway>
<sequenceFlow
id=
"flow3"
name=
"审批通过"
sourceRef=
"ApprovePassed"
targetRef=
"ApproveFinished"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${approvePassed}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow4"
name=
"审批结束"
sourceRef=
"ApproveFinished"
targetRef=
"endevent1"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${approveFinished}]]>
</conditionExpression>
</sequenceFlow>
<sequenceFlow
id=
"flow5"
name=
"审批未结束"
sourceRef=
"ApproveFinished"
targetRef=
"Approve"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${!approveFinished}]]>
</conditionExpression>
</sequenceFlow>
<exclusiveGateway
id=
"ApprovePassed"
name=
"审批通过"
></exclusiveGateway>
<sequenceFlow
id=
"flow6"
sourceRef=
"Approve"
targetRef=
"ApprovePassed"
></sequenceFlow>
<sequenceFlow
id=
"flow9"
name=
"审批未通过"
sourceRef=
"ApprovePassed"
targetRef=
"Apply"
>
<conditionExpression
xsi:type=
"tFormalExpression"
>
<![CDATA[${!approvePassed}]]>
</conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram
id=
"BPMNDiagram_produceExceptionProc"
>
<bpmndi:BPMNPlane
bpmnElement=
"produceExceptionProc"
id=
"BPMNPlane_produceExceptionProc"
>
<bpmndi:BPMNShape
bpmnElement=
"startevent1"
id=
"BPMNShape_startevent1"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"355.0"
y=
"50.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"endevent1"
id=
"BPMNShape_endevent1"
>
<omgdc:Bounds
height=
"35.0"
width=
"35.0"
x=
"355.0"
y=
"550.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"Apply"
id=
"BPMNShape_Apply"
>
<omgdc:Bounds
height=
"55.0"
width=
"161.0"
x=
"292.0"
y=
"140.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"Approve"
id=
"BPMNShape_Approve"
>
<omgdc:Bounds
height=
"55.0"
width=
"161.0"
x=
"292.0"
y=
"240.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"ApproveFinished"
id=
"BPMNShape_ApproveFinished"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"352.0"
y=
"440.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape
bpmnElement=
"ApprovePassed"
id=
"BPMNShape_ApprovePassed"
>
<omgdc:Bounds
height=
"40.0"
width=
"40.0"
x=
"352.0"
y=
"349.0"
></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge
bpmnElement=
"flow1"
id=
"BPMNEdge_flow1"
>
<omgdi:waypoint
x=
"372.0"
y=
"85.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"140.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow2"
id=
"BPMNEdge_flow2"
>
<omgdi:waypoint
x=
"372.0"
y=
"195.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"240.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow3"
id=
"BPMNEdge_flow3"
>
<omgdi:waypoint
x=
"372.0"
y=
"389.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"440.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"48.0"
x=
"320.0"
y=
"396.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow4"
id=
"BPMNEdge_flow4"
>
<omgdi:waypoint
x=
"372.0"
y=
"480.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"550.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"48.0"
x=
"382.0"
y=
"489.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow5"
id=
"BPMNEdge_flow5"
>
<omgdi:waypoint
x=
"392.0"
y=
"460.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"519.0"
y=
"459.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"519.0"
y=
"317.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"519.0"
y=
"267.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"489.0"
y=
"267.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"453.0"
y=
"267.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"60.0"
x=
"459.0"
y=
"411.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow6"
id=
"BPMNEdge_flow6"
>
<omgdi:waypoint
x=
"372.0"
y=
"295.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"372.0"
y=
"349.0"
></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge
bpmnElement=
"flow9"
id=
"BPMNEdge_flow9"
>
<omgdi:waypoint
x=
"352.0"
y=
"369.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"231.0"
y=
"369.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"231.0"
y=
"167.0"
></omgdi:waypoint>
<omgdi:waypoint
x=
"292.0"
y=
"167.0"
></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds
height=
"14.0"
width=
"60.0"
x=
"257.0"
y=
"376.0"
></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
topsun/src/main/resources/config/topsun/base/function.xml
View file @
07737e86
...
...
@@ -65,6 +65,11 @@
SELECT o.FULL_ID, o.FULL_NAME
FROM sa_oporg o LEFT JOIN sap_cost_reimbursement_base_info t ON t.person_member_id = o.id WHERE t.id = ?
</sql>
<sql
name=
"fundApproval"
>
SELECT o.FULL_ID, o.FULL_NAME
FROM sa_oporg o LEFT JOIN mes_produce_exception t ON t.approval_code = o.code WHERE t.id = ?
</sql>
</query>
</query-mappings>
\ No newline at end of file
topsun/src/main/resources/config/topsun/mes/produceException/produceException.xml
0 → 100644
View file @
07737e86
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query
name=
"produceException"
label=
"异常单"
table=
"mes_produce_exception"
>
<sql-query>
select t.* from mes_produce_exception t
</sql-query>
<condition
column=
"bill_code"
name=
"billCode"
type=
"java.lang.String"
symbol=
"like"
alias=
"t"
/>
<condition
column=
"id"
name=
"id"
type=
"java.lang.String"
symbol=
"="
alias=
"t"
/>
</query>
</query-mappings>
\ No newline at end of file
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