From d0abf3d3c2190d9d16b91a12a1a99fd94b8d63b4 Mon Sep 17 00:00:00 2001
From: jiazx0107 <jiazx0107@163.com>
Date: 星期四, 15 一月 2026 22:18:31 +0800
Subject: [PATCH] 提交工单处理逻辑。
---
fzzy-igdss-web/src/main/resources/templates/work/flow-his.html | 305 +++++++++++++++++++++++
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java | 26 ++
fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml | 375 +++++++++++++++++-----------
fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkBizType.java | 10
fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java | 15 +
fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java | 12
fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java | 19 +
7 files changed, 602 insertions(+), 160 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkBizType.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkBizType.java
index 12ff457..bd43fd1 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkBizType.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkBizType.java
@@ -28,14 +28,4 @@
public String getMsg() {
return msg;
}
-
- public static String getMsg(String code) {
- if(null == code) return null;
- if(WorkBizType.TYPE_10.getCode().equals(code)) return WorkBizType.TYPE_10.getMsg();
- if(WorkBizType.TYPE_20.getCode().equals(code)) return WorkBizType.TYPE_20.getMsg();
- if(WorkBizType.TYPE_30.getCode().equals(code)) return WorkBizType.TYPE_30.getMsg();
- if(WorkBizType.TYPE_40.getCode().equals(code)) return WorkBizType.TYPE_40.getMsg();
- if(WorkBizType.TYPE_99.getCode().equals(code)) return WorkBizType.TYPE_99.getMsg();
- return code;
- }
}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
index 599280c..50d4615 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java
@@ -10,6 +10,7 @@
import com.fzzy.work.domain.WorkOrder;
import com.fzzy.work.domain.WorkOrderConf;
import com.fzzy.work.domain.WorkOrderProcess;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -20,6 +21,7 @@
* @Author: Andy.jia
* @Date: 2026/1/15
*/
+@Slf4j
@Service
public class BizWorkService {
@Resource
@@ -112,4 +114,21 @@
return WorkNode.NODE_END;
}
+
+ /**
+ * 鑾峰彇寰呭鐞嗗伐鍗�
+ * @return 澶勭悊缁撴灉
+ */
+ public BaseResp todoByProcess(WorkOrderProcess data) {
+ // TODO Auto-generated method stub
+
+ log.info("-----宸ュ崟澶勭悊-----{}",data);
+ //鑾峰彇宸ュ崟
+ WorkOrder work = orderService.selectById(data.getOrderId());
+ if(null == work) return BaseResp.error("褰撳墠宸ュ崟宸蹭笉瀛樺湪");
+
+
+
+ return BaseResp.success();
+ }
}
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
index 80ed30d..90c3b89 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java
@@ -90,6 +90,14 @@
}
return list;
}
+
+ public List<SysDictData> triggerBizType() {
+ List<SysDictData> list = new ArrayList<SysDictData>();
+ for (WorkBizType w : WorkBizType.values()) {
+ list.add(new SysDictData(w.getMsg(), w.getCode()));
+ }
+ return list;
+ }
/**
* 鑾峰彇鐢ㄦ埛寰呭鐞嗗伐鍗曟暟
@@ -111,4 +119,8 @@
}
+ public WorkOrder selectById(String orderId) {
+ if(null == orderId) return null;
+ return workOrderMapper.selectById(orderId);
+ }
}
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
index 3fc6cc8..c7e3aae 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml
@@ -19,11 +19,12 @@
</PropertyDef>
<PropertyDef name="bizType">
<Property></Property>
- <Property name="label">涓氬姟鍒嗙被</Property>
- </PropertyDef>
- <PropertyDef name="category">
- <Property></Property>
<Property name="label">宸ュ崟鍒嗙被</Property>
+ <Property name="mapping">
+ <Property name="mapValues">${dorado.getDataProvider("workOrderPR#triggerBizType").getResult()}</Property>
+ <Property name="keyProperty">dictValue</Property>
+ <Property name="valueProperty">dictLabel</Property>
+ </Property>
</PropertyDef>
<PropertyDef name="status">
<Property></Property>
@@ -47,14 +48,14 @@
</PropertyDef>
<PropertyDef name="createTime">
<Property name="dataType">DateTime</Property>
- <Property name="label">宸ュ崟鍒涘缓鏃堕棿</Property>
+ <Property name="label">鍒涘缓鏃堕棿</Property>
</PropertyDef>
<PropertyDef name="createUserId">
<Property></Property>
</PropertyDef>
<PropertyDef name="createUserName">
<Property></Property>
- <Property name="label">宸ュ崟鍒涘缓浜�</Property>
+ <Property name="label">鍒涘缓浜�</Property>
</PropertyDef>
<PropertyDef name="businessId">
<Property></Property>
@@ -77,6 +78,27 @@
<Property name="keyProperty">id</Property>
<Property name="valueProperty">kqmc</Property>
</Property>
+ </PropertyDef>
+ <PropertyDef name="node">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="createById">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="bankId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="confId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="createBy">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="updateBy">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="updateTime">
+ <Property name="dataType">Date</Property>
</PropertyDef>
</DataType>
<DataType name="dtParam">
@@ -120,6 +142,23 @@
</PropertyDef>
<PropertyDef name="remark">
<Property></Property>
+ </PropertyDef>
+ <PropertyDef name="id">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="assigneeId">
+ <Property></Property>
+ </PropertyDef>
+ <PropertyDef name="assigneeName">
+ <Property></Property>
+ <Property name="label">澶勭悊浜�</Property>
+ </PropertyDef>
+ <PropertyDef name="node">
+ <Property></Property>
+ <Property name="label">褰撳墠鑺傜偣</Property>
+ </PropertyDef>
+ <PropertyDef name="createTime">
+ <Property name="dataType">Date</Property>
</PropertyDef>
</DataType>
</Model>
@@ -175,15 +214,12 @@
var dialog = view.get("#dialogMain");
if(1 == tabIndex){
cur = view.get("#dsMain2.data:#");
- dialog = view.get("#dialogMain");
}
dialog.show();

var orderId = cur.get("id");
- //璧嬪�肩粰瀹℃壒
- view.get("#dsWordProcess").set("data",{orderId:orderId});
- //鍘嗗彶璁板綍
- view.get("#iFrameProcess").set("path","com.fzzy.work.WorkProcess.d?orderId="+orderId);
+ //鍘嗗彶鏁版嵁
+ view.get('#iFrameFlowHis').set('path','/work/flow-his?orderId='+orderId);
//涓氬姟淇℃伅
if(cur.get("businessUrl")){
var url = cur.get("businessUrl")+"?businessId="+cur.get("businessId")+"&orderId="+orderId;
@@ -191,7 +227,35 @@
}else{
view.get("#iFrameBiz").set("path","/work/no-business?orderId="+orderId);
}
-}</ClientEvent>
+}
+//鎵ц瀹℃壒
+todo = function(action){
+ var cur = view.get("#dsMain.data:#");
+ var process = view.get("#dsProcess.data");
+ process.set("orderId", cur.get("id"));
+ process.set("action", action);
+ process.set("node", cur.get("node"));
+ 
+ var remark = process.get('remark');
+ if(!remark){
+ $notify("璇峰~鍐欏鎵规剰瑙佲�︹��");
+ return;
+ }
+ view.get("#ajaxTodo").set('parameter',process).execute(function(result){
+ if('200' != result.code){
+ $alert(result.msg);
+ }else{
+ $alert("鎵ц鎴愬姛锛�");
+ view.get('#dialogTodo').hide();
+ }
+ });
+}
+cancelTodo = function(){
+ var process = view.get("#dsProcess.data");
+ process.set('remark',null);
+ view.get('#dialogTodo').hide();
+}
+</ClientEvent>
<Property name="packages">font-awesome,css-common</Property>
<DataSet id="dsMain">
<ClientEvent name="onLoadData">$notify("鏁版嵁鍔犺浇瀹屾垚鈥︹��");</ClientEvent>
@@ -201,8 +265,7 @@
<Property name="loadMode">lazy</Property>
</DataSet>
<DataSet id="dsMain2">
- <ClientEvent name="onLoadData">$notify("鏁版嵁鍔犺浇瀹屾垚鈥︹��");
-</ClientEvent>
+ <ClientEvent name="onLoadData">$notify("鏁版嵁鍔犺浇瀹屾垚鈥︹��");</ClientEvent>
<Property name="dataType">[dtMain]</Property>
<Property name="dataProvider">workOrderPR#pageQuery2</Property>
<Property name="pageSize">10</Property>
@@ -212,7 +275,7 @@
<ClientEvent name="onReady">self.insert({});</ClientEvent>
<Property name="dataType">dtParam</Property>
</DataSet>
- <DataSet id="dsWordProcess">
+ <DataSet id="dsProcess">
<ClientEvent name="onReady">self.insert();</ClientEvent>
<Property name="dataType">dtWordProcess</Property>
</DataSet>
@@ -553,156 +616,116 @@
<Property name="closeable">false</Property>
<Property name="caption">宸ュ崟璇︾粏</Property>
<Property name="iconClass">fa fa-tasks</Property>
- <Property name="height">95%</Property>
- <Property name="width">95%</Property>
+ <Property name="width">90%</Property>
<Property name="showCaptionBar">false</Property>
<Property name="style">
<Property name="background-color">#e6e6e6</Property>
</Property>
- <Buttons>
- <Button>
- <ClientEvent name="onClick">view.get("#updateSave").execute(function(result){
- if(result){
- $alert(result);
- return;
- }
- $notify("鏁版嵁鎵ц瀹屾垚锛侊紒");
- self.get("parent").hide();
-});</ClientEvent>
- <Property name="caption">澶勭悊</Property>
- <Property name="iconClass">fa fa-check-circle</Property>
- <Property name="exClassName">btn1</Property>
- </Button>
- <Button>
- <ClientEvent name="onClick">view.get("#updateSave").execute(function(result){
- if(result){
- $alert(result);
- return;
- }
- $notify("鏁版嵁鎵ц瀹屾垚锛侊紒");
- self.get("parent").hide();
-});</ClientEvent>
- <Property name="caption">杞氦</Property>
- <Property name="iconClass">fa fa-check-circle</Property>
- <Property name="exClassName">btn2</Property>
- </Button>
- <Button>
- <ClientEvent name="onClick">view.get("#dsMain.data:#").cancel();
- self.get("parent").hide();</ClientEvent>
- <Property name="caption">鍏抽棴</Property>
- <Property name="exClassName">btn3</Property>
- <Property name="iconClass">fa fa-times-circle</Property>
- </Button>
- </Buttons>
+ <Property name="height">95%</Property>
+ <Buttons/>
<Children>
<TabControl>
<ControlTab>
<Property name="caption">宸ュ崟淇℃伅</Property>
<Property name="iconClass">fa fa-edit</Property>
+ <Property name="width">120</Property>
<Container>
- <AutoForm>
- <Property name="dataSet">dsMain</Property>
- <Property name="cols">*,*,*</Property>
- <Property name="labelAlign">right</Property>
- <Property name="labelSeparator">锛�</Property>
- <Property name="labelWidth">120</Property>
- <Property name="readOnly">true</Property>
- <AutoFormElement layoutConstraint="colSpan:2">
- <Property name="name">title</Property>
- <Property name="property">title</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
- <Property name="name">deptId</Property>
- <Property name="property">deptId</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement layoutConstraint="colSpan:3">
- <Property name="name">description</Property>
- <Property name="property">description</Property>
- <Property name="editorType">TextArea</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
- <Property name="name">bizType</Property>
- <Property name="property">bizType</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
- <Property name="name">status</Property>
- <Property name="property">status</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
- <Property name="name">assigneeName</Property>
- <Property name="property">assigneeName</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
- <Property name="name">createTime</Property>
- <Property name="property">createTime</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
- <Property name="name">createUserName</Property>
- <Property name="property">createUserName</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement>
- <Property name="name">receiveTime</Property>
- <Property name="property">receiveTime</Property>
- <Property name="labelWidth">140</Property>
- <Editor/>
- </AutoFormElement>
- <AutoFormElement layoutConstraint="colSpan:3">
- <Property name="name">remark</Property>
- <Property name="property">remark</Property>
- <Property name="editorType">TextArea</Property>
- <Editor/>
- </AutoFormElement>
- </AutoForm>
- <GroupBox>
- <Property name="caption">宸ュ崟瀹℃壒/澶勭悊</Property>
- <Property name="collapseable">false</Property>
- <Buttons/>
- <Children>
- <AutoForm>
- <Property name="dataSet">dsWordProcess</Property>
- <Property name="cols">*,*,*</Property>
- <Property name="labelAlign">right</Property>
- <Property name="labelSeparator">锛�</Property>
- <Property name="labelWidth">120</Property>
- <Property name="showLabel">false</Property>
- <AutoFormElement layoutConstraint="colSpan:3">
- <Property name="name">remark</Property>
- <Property name="property">remark</Property>
- <Editor>
- <TextArea>
- <Property name="blankText">-- 瀹℃壒/澶勭悊璇存槑 --</Property>
- </TextArea>
- </Editor>
- </AutoFormElement>
- <HtmlContainer layoutConstraint="colSpan:3">
- <Property name="content">1.宸ュ崟璇︾粏涓氬姟瑙併�愪笟鍔′俊鎭�戞煡鐪嬨��<br></Property>
- <Property name="exClassName">h-tip</Property>
- <Property name="contentOverflow">hidden</Property>
- </HtmlContainer>
- </AutoForm>
- </Children>
- </GroupBox>
+ <Container>
+ <Property name="exClassName">c-data</Property>
+ <AutoForm>
+ <Property name="dataSet">dsMain</Property>
+ <Property name="cols">*,*,*</Property>
+ <Property name="labelAlign">right</Property>
+ <Property name="labelSeparator">锛�</Property>
+ <Property name="labelWidth">100</Property>
+ <Property name="readOnly">true</Property>
+ <AutoFormElement layoutConstraint="colSpan:2">
+ <Property name="name">title</Property>
+ <Property name="property">title</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">deptId</Property>
+ <Property name="property">deptId</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement layoutConstraint="colSpan:3">
+ <Property name="name">description</Property>
+ <Property name="property">description</Property>
+ <Property name="editorType">TextArea</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">bizType</Property>
+ <Property name="property">bizType</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">status</Property>
+ <Property name="property">status</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">assigneeName</Property>
+ <Property name="property">assigneeName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createTime</Property>
+ <Property name="property">createTime</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">createUserName</Property>
+ <Property name="property">createUserName</Property>
+ <Editor/>
+ </AutoFormElement>
+ <AutoFormElement>
+ <Property name="name">receiveTime</Property>
+ <Property name="property">receiveTime</Property>
+ <Property name="labelWidth">140</Property>
+ <Editor/>
+ </AutoFormElement>
+ </AutoForm>
+ <ToolBar>
+ <Fill/>
+ <ToolBarButton>
+ <ClientEvent name="onClick">view.get("#dialogTodo").show();
+</ClientEvent>
+ <Property name="caption">澶勭悊</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <Property name="caption">杞氦</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn2</Property>
+ <Property name="iconClass">fa fa-check-circle</Property>
+ </ToolBarButton>
+ <ToolBarButton>
+ <ClientEvent name="onClick">view.get("#dsMain.data:#").cancel();
+view.get("#dialogMain").hide();</ClientEvent>
+ <Property name="caption">鍏抽棴</Property>
+ <Property name="width">80</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="iconClass">fa fa-times-circle</Property>
+ </ToolBarButton>
+ <Separator>
+ <Property name="width">30</Property>
+ </Separator>
+ </ToolBar>
+ </Container>
+ <IFrame id="iFrameFlowHis">
+ <Property name="path">/work/flow-his?orderId=1</Property>
+ </IFrame>
</Container>
</ControlTab>
<ControlTab>
<Property name="caption">涓氬姟淇℃伅</Property>
<Property name="iconClass">fa fa-file-o</Property>
+ <Property name="width">120</Property>
<IFrame id="iFrameBiz"/>
- </ControlTab>
- <ControlTab>
- <Property name="caption">瀹℃壒璁板綍</Property>
- <Property name="iconClass">fa fa-history</Property>
- <IFrame id="iFrameProcess">
- <Property name="path">com.fzzy.work.WorkProcess.d</Property>
- </IFrame>
</ControlTab>
</TabControl>
</Children>
@@ -717,5 +740,59 @@
<AjaxAction id="ajaxDel">
<Property name="confirmMessage">纭畾瑕佹墽琛屽垹闄や箞锛�</Property>
</AjaxAction>
+ <Dialog id="dialogTodo">
+ <Property name="width">600</Property>
+ <Property name="caption">瀹℃壒澶勭悊</Property>
+ <Property name="closeable">false</Property>
+ <Property name="iconClass">fa fa-bookmark</Property>
+ <Buttons>
+ <Button>
+ <ClientEvent name="onClick">todo('pass');</ClientEvent>
+ <Property name="caption">閫氳繃</Property>
+ <Property name="iconClass">fa fa-check</Property>
+ <Property name="exClassName">btn1</Property>
+ <Property name="width">90</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">todo('refuse');</ClientEvent>
+ <Property name="caption">鎷掔粷</Property>
+ <Property name="exClassName">btn4</Property>
+ <Property name="iconClass">fa fa-times</Property>
+ <Property name="width">90</Property>
+ </Button>
+ <Button>
+ <ClientEvent name="onClick">cancelTodo();</ClientEvent>
+ <Property name="caption">鍙栨秷鎿嶄綔</Property>
+ <Property name="iconClass">fa fa-times</Property>
+ <Property name="exClassName">btn3</Property>
+ <Property name="width">90</Property>
+ </Button>
+ </Buttons>
+ <Children>
+ <Container>
+ <AutoForm>
+ <Property name="cols">*</Property>
+ <Property name="dataSet">dsProcess</Property>
+ <AutoFormElement>
+ <Property name="name">remark</Property>
+ <Property name="property">remark</Property>
+ <Property name="showHint">false</Property>
+ <Property name="showLabel">false</Property>
+ <Editor>
+ <TextArea>
+ <Property name="blankText">-- 濉啓瀹℃壒寤鸿 --</Property>
+ <Property name="height">100</Property>
+ </TextArea>
+ </Editor>
+ </AutoFormElement>
+ </AutoForm>
+ </Container>
+ </Children>
+ <Tools/>
+ </Dialog>
+ <AjaxAction id="ajaxTodo">
+ <Property name="service">workOrderPR#todo</Property>
+ <Property name="executingMessage">澶勭悊涓�︹��</Property>
+ </AjaxAction>
</View>
</ViewConfig>
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
index 0c1f823..8ddf2f9 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java
@@ -11,6 +11,7 @@
import com.fzzy.work.data.WorkOrderParam;
import com.fzzy.work.domain.WorkOrderConf;
import com.fzzy.work.domain.WorkOrderProcess;
+import com.fzzy.work.service.BizWorkService;
import com.fzzy.work.service.WorkOrderConfService;
import com.fzzy.work.service.WorkOrderProcessService;
import com.fzzy.work.service.WorkOrderService;
@@ -37,6 +38,8 @@
private WorkOrderProcessService workOrderProcessService;
@Resource
private WorkOrderConfService workOrderConfService;
+ @Resource
+ private BizWorkService bizWorkService;
/**
*
@@ -93,6 +96,17 @@
@DataProvider
public List<SysDictData> triggerStatus() {
return workOrderService.triggerStatus();
+ }
+
+ /**
+ * 宸ュ崟绫诲瀷
+ * ${dorado.getDataProvider("workOrderPR#triggerBizType").getResult()}
+ *
+ * @return
+ */
+ @DataProvider
+ public List<SysDictData> triggerBizType() {
+ return workOrderService.triggerBizType();
}
@@ -166,4 +180,16 @@
public List<SysDictData> triggerType() {
return workOrderService.triggerType();
}
+
+ //-----------------------娴佺▼澶勭悊---------------------------//
+ /**
+ *
+ * workOrderPR#todo
+ * 淇℃伅鍒楄〃
+ *
+ */
+ @Expose
+ public BaseResp todo(WorkOrderProcess data) {
+ return bizWorkService.todoByProcess(data);
+ }
}
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java b/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
index dce8891..eeff0d3 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/work/WorkOrderController.java
@@ -52,7 +52,7 @@
*
*/
@GetMapping("/flow-conf")
- public String noBusiness(@RequestParam("id") String id, ModelMap mmap) {
+ public String flowConf(@RequestParam("id") String id, ModelMap mmap) {
WorkOrderConf conf = workOrderConfService.selectById(id);
if (null == conf) conf = new WorkOrderConf();
@@ -61,4 +61,17 @@
return prefix + "/flow-conf";
}
+
+
+ /**
+ * 宸ュ崟璁板綍
+ *
+ */
+ @GetMapping("/flow-his")
+ public String flowHis(@RequestParam("orderId") String orderId, ModelMap mmap) {
+
+ mmap.put("list", null);
+
+ return prefix + "/flow-his";
+ }
}
diff --git a/fzzy-igdss-web/src/main/resources/templates/work/flow-his.html b/fzzy-igdss-web/src/main/resources/templates/work/flow-his.html
new file mode 100644
index 0000000..0a9fb72
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/templates/work/flow-his.html
@@ -0,0 +1,305 @@
+<!DOCTYPE html>
+<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>宸ュ崟澶勭悊鍘嗗彶璁板綍</title>
+ <link rel="stylesheet" th:href="@{/ajax/libs/layui-ruoyi/css/layui.css}"/>
+ <style>
+ /* 闅愯棌婊氬姩鏉$殑鍩虹CSS */
+ .hide-scrollbar {
+ /* 闅愯棌鏍囧噯婊氬姩鏉� */
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE 鍜� Edge */
+ }
+
+ /* Chrome, Safari 鍜� Opera */
+ .hide-scrollbar::-webkit-scrollbar {
+ display: none;
+ }
+
+ /* 骞虫粦婊氬姩鏁堟灉 */
+ .smooth-scroll {
+ scroll-behavior: smooth;
+ }
+
+ html{
+ overflow: hidden ;
+ }
+
+ /* 椤甸潰鍩虹鏍峰紡 */
+ body {
+ background-color: #FFF;
+ padding: 20px;
+ font-family: "Microsoft YaHei", Arial, sans-serif;
+ font-size: 14px;
+ overflow-x: hidden;
+ }
+
+ .container {
+ margin: 0 auto;
+ background-color: #fff;
+ border-radius: 8px;
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+ overflow: hidden;
+ }
+
+ .header {
+ background-color: #e6e6e6;
+ padding: 15px;
+ font-weight: bold;
+ }
+
+ .summary-box {
+ margin: 20px;
+ padding: 15px;
+ background-color: #f0f9ff;
+ border-left: 4px solid #1E9FFF;
+ border-radius: 4px;
+ font-size: 14px;
+ }
+
+ .summary-box .layui-icon {
+ margin-right: 8px;
+ color: #1E9FFF;
+ }
+
+ .timeline-container {
+ padding: 0 20px 20px;
+ }
+
+ /* 鑷畾涔夋椂闂磋酱鏍峰紡 */
+ .custom-timeline {
+ position: relative;
+ padding: 20px 0;
+ }
+
+ .custom-timeline:before {
+ content: '';
+ position: absolute;
+ left: 18px;
+ top: 0;
+ bottom: 0;
+ width: 2px;
+ background-color: #e8e8e8;
+ }
+
+ .timeline-item {
+ position: relative;
+ padding-left: 50px;
+ margin-bottom: 25px;
+ }
+
+ .timeline-item:last-child {
+ margin-bottom: 0;
+ }
+
+ .timeline-icon {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 38px;
+ height: 38px;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: white;
+ z-index: 2;
+ }
+
+ .timeline-content {
+ background-color: #f9f9f9;
+ border-radius: 6px;
+ padding: 15px;
+ border-left: 3px solid #1E9FFF;
+ font-size: 14px;
+ }
+
+ .operator-info {
+ font-weight: bold;
+ color: #333;
+ margin-bottom: 5px;
+ }
+
+ .status-change {
+ color: #666;
+ margin-bottom: 5px;
+ }
+
+ .status-description {
+ color: #888;
+ font-size: 13px;
+ }
+
+ .time-info {
+ text-align: right;
+ color: #999;
+ font-size: 13px;
+ margin-top: 8px;
+ }
+
+ /* 涓嶅悓鐘舵�佺殑鍥炬爣棰滆壊 */
+ .status-created { background-color: #FFB800; }
+ .status-waiting { background-color: #FF5722; }
+ .status-processing { background-color: #1E9FFF; }
+ .status-completed { background-color: #009688; }
+
+ /* 鍙粴鍔ㄥ尯鍩熸牱寮� */
+ .scrollable-area {
+ max-height: 400px; /* 璁剧疆鏈�澶ч珮搴� */
+ overflow-y: auto; /* 鍨傜洿鏂瑰悜鍏佽婊氬姩 */
+ overflow-x: hidden; /* 姘村钩鏂瑰悜闅愯棌 */
+ }
+
+ /* 鏂规硶1锛氬畬鍏ㄩ殣钘忔粴鍔ㄦ潯 */
+ .method-1 {
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE 鍜� Edge */
+ }
+
+ .method-1::-webkit-scrollbar {
+ display: none; /* Chrome, Safari 鍜� Opera */
+ }
+
+ /* 鍝嶅簲寮忚皟鏁� */
+ @media (max-width: 768px) {
+ .container {
+ margin: 10px;
+ }
+ .timeline-item {
+ padding-left: 40px;
+ }
+ .timeline-icon {
+ width: 32px;
+ height: 32px;
+ }
+ .scrollable-area {
+ max-height: 300px; /* 绉诲姩绔皟鏁撮珮搴� */
+ }
+ }
+ /* 棰濆鐨勫伐鍗曡褰曠敤浜庢紨绀烘粴鍔� */
+ .extra-records {
+ display: none;
+ }
+ </style>
+</head>
+<body>
+<div class="container">
+<!-- <div class="header">-->
+<!-- <i class="layui-icon layui-icon-form"></i> 宸ュ崟澶勭悊璁板綍-->
+<!-- </div>-->
+ <div class="summary-box">
+ <i class="layui-icon layui-icon-tips"></i>
+ 澶勭悊璁板綍锛氳宸ュ崟绱澶勭悊鏃堕暱 <span style="color:#1E9FFF; font-weight:bold;">1鍒嗛挓</span>锛岀疮璁″鐞嗘鏁� <span style="color:#1E9FFF; font-weight:bold;">3娆�</span>
+ </div>
+
+ <div class="timeline-container">
+ <!-- 杩欓噷鏄彲婊氬姩鐨勬椂闂磋酱鍖哄煙 -->
+ <div class="custom-timeline scrollable-area method-1 smooth-scroll" id="timelineScroll">
+ <!-- 宸插畬鎴� -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-completed">
+ <i class="layui-icon layui-icon-ok"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">缁忓姙浜� 鏌崇櫧</div>
+ <div class="status-change">灏嗗伐鍗曠姸鎬佽缃负 宸插畬鎴�</div>
+ <div class="time-info">2026-01-06 13:56:21</div>
+ </div>
+ </div>
+
+ <!-- 澶勭悊涓� -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-processing">
+ <i class="layui-icon layui-icon-loading"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">缁忓姙浜� 鏌崇櫧</div>
+ <div class="status-change">灏嗗伐鍗曠姸鎬佽缃负 澶勭悊涓�</div>
+ <div class="status-description">宸叉帴鏀跺伐鍗�</div>
+ <div class="time-info">2026-01-06 13:56:01</div>
+ </div>
+ </div>
+
+ <!-- 寰呮帴鏀� -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-waiting">
+ <i class="layui-icon layui-icon-user"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">缁忓姙浜� 鏌崇櫧</div>
+ <div class="status-change">灏嗗伐鍗曠姸鎬佽缃负 寰呮帴鏀讹紝涓嬩釜鍙楃悊浜轰负 鏌崇櫧</div>
+ <div class="time-info">2026-01-06 13:55:20</div>
+ </div>
+ </div>
+
+ <!-- 鏂板缓宸ュ崟 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-created">
+ <i class="layui-icon layui-icon-add-circle"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="status-change">鏂板缓宸ュ崟</div>
+ <div class="status-description">鍏紬鍙仿稺GCLOUD</div>
+ <div class="time-info">2026-01-06 13:55:00</div>
+ </div>
+ </div>
+
+ <!-- 浠ヤ笅涓洪澶栬褰曪紝鐢ㄤ簬婕旂ず婊氬姩鏁堟灉 -->
+ <div class="extra-records">
+ <!-- 棰濆璁板綍1 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-waiting">
+ <i class="layui-icon layui-icon-user"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">绯荤粺鑷姩</div>
+ <div class="status-change">宸ュ崟宸插垱寤猴紝绛夊緟鍒嗛厤</div>
+ <div class="time-info">2026-01-06 13:54:30</div>
+ </div>
+ </div>
+
+ <!-- 棰濆璁板綍2 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-waiting">
+ <i class="layui-icon layui-icon-notice"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">绯荤粺鑷姩</div>
+ <div class="status-change">鍙戦�佸伐鍗曞垱寤洪�氱煡</div>
+ <div class="time-info">2026-01-06 13:54:15</div>
+ </div>
+ </div>
+
+ <!-- 棰濆璁板綍3 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-completed">
+ <i class="layui-icon layui-icon-ok"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">鐢ㄦ埛鎻愪氦</div>
+ <div class="status-change">宸ュ崟鎻愪氦鎴愬姛</div>
+ <div class="status-description">鐢ㄦ埛閫氳繃Web绔彁浜ゅ伐鍗�</div>
+ <div class="time-info">2026-01-06 13:54:00</div>
+ </div>
+ </div>
+
+ <!-- 棰濆璁板綍4 -->
+ <div class="timeline-item">
+ <div class="timeline-icon status-created">
+ <i class="layui-icon layui-icon-edit"></i>
+ </div>
+ <div class="timeline-content">
+ <div class="operator-info">鐢ㄦ埛 寮犱笁</div>
+ <div class="status-change">濉啓宸ュ崟淇℃伅</div>
+ <div class="status-description">闂鎻忚堪锛氬叕浼楀彿鏃犳硶姝e父鐧诲綍</div>
+ <div class="time-info">2026-01-06 13:53:45</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+</body>
+</html>
\ No newline at end of file
--
Gitblit v1.9.3