From b7fa11ff11ea34ac0231fcdd41135b3def7129de Mon Sep 17 00:00:00 2001
From: jiazx0107 <jiazx0107@163.com>
Date: 星期日, 18 一月 2026 01:22:54 +0800
Subject: [PATCH] 调功工单功能

---
 fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrderPR.java              |   11 +
 fzzy-igdss-view/src/main/java/com/fzzy/work/WorkOrder.view.xml            |  127 +++++++++++++--
 fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java   |    2 
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/WorkOrderService.java |  158 ++++++++++++++-----
 fzzy-igdss-view/src/main/java/models/core.model.xml                       |   27 +++
 fzzy-igdss-core/src/main/java/com/fzzy/work/service/BizWorkService.java   |   53 +++++-
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysUserService.java   |   31 +++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java           |   15 +
 fzzy-igdss-view/src/main/java/com/fzzy/igds/CommonPR.java                 |   32 ++++
 9 files changed, 379 insertions(+), 77 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysUserService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysUserService.java
index c26b31d..17ffd9d 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysUserService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SysUserService.java
@@ -1,5 +1,6 @@
 package com.fzzy.igds.service;
 
+import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.utils.ContextUtil;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.StringUtils;
@@ -44,4 +45,34 @@
     public SysUser getUserByLoginName(String loginName) {
         return userMapper.selectUserByLoginName(loginName);
     }
+
+    /**
+     * 鏍规嵁褰撳墠鐧诲綍浜虹殑绫诲瀷鑾峰彇鐢ㄦ埛鍒楄〃
+     * @return
+     */
+    public List<SysUser> listUserByCurUserType() {
+        SysUser user = ContextUtil.getLoginUser();
+        SysUser param = new SysUser();
+        param.setCompanyId(user.getCompanyId());
+
+        param.setUserType(user.getUserType());
+
+        //鐩戠鐢ㄦ埛锛岃幏鍙栫洃绠$敤鎴峰垪琛�
+        if (Constant.USER_TYPE_10.equals(user.getUserType())) {
+            //
+        }
+
+        //搴撳尯鐢ㄦ埛锛屽鏋滄槸鍏徃鐢ㄦ埛鍙互鏌ョ湅鍏徃涓嬪睘鎵�鏈夊簱鍖猴紝濡傛灉涓哄綋鍓嶅簱鍖哄彧鏌ヨ褰撳墠搴撳尯
+        if (Constant.USER_TYPE_30.equals(user.getUserType())) {
+            param.setDeptId(user.getDeptId());
+        }
+
+        //閾惰鐢ㄦ埛锛屾牴鎹悎鍚屾煡璇㈤摱琛屼笅鎵�鏈夊簱鍖�
+        if (Constant.USER_TYPE_20.equals(user.getUserType())) {
+            if (StringUtils.isBlank(user.getUserData())) user.setUserData("1");
+            param.setUserData(user.getUserData());
+        }
+
+        return userMapper.selectUserList(param);
+    }
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java
index 5d04d50..e26df71 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/DateUtil.java
@@ -2,6 +2,8 @@
 
 import org.apache.commons.lang3.time.DateUtils;
 
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 
@@ -245,9 +247,22 @@
         cal.set(Calendar.MILLISECOND, 0);
         return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
     }
+    public static boolean isToday(Date date) {
+        if (date == null) {
+            return false;
+        }
 
+        LocalDate today = LocalDate.now();
+        LocalDate targetDate = date.toInstant()
+                .atZone(ZoneId.systemDefault())
+                .toLocalDate();
+
+        return today.equals(targetDate);
+    }
 
     public static void main(String[] args) {
         System.out.println(getMinute(new Date()));
     }
+
+
 }
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 9623e67..cd9dea8 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
@@ -11,6 +11,7 @@
 import com.fzzy.work.domain.WorkOrder;
 import com.fzzy.work.domain.WorkOrderConf;
 import com.fzzy.work.domain.WorkOrderProcess;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
@@ -85,7 +86,7 @@
         process.setAssigneeName(work.getCreateBy());
         process.setAssigneeId(work.getCreateById());
         process.setNode(WorkNode.NODE_START.getCode());
-        orderProcessService.addData(process,false);
+        orderProcessService.addData(process, false);
 
         return BaseResp.success();
     }
@@ -130,7 +131,7 @@
         process.setAssigneeName(work.getCreateBy());
         process.setAssigneeId(work.getCreateById());
         process.setNode(WorkNode.NODE_START.getCode());
-        orderProcessService.addData(process,false);
+        orderProcessService.addData(process, false);
 
         return BaseResp.success();
     }
@@ -184,6 +185,15 @@
             return BaseResp.error("褰撳墠宸ュ崟宸插鐞嗭紝璇峰埛鏂伴〉闈㈤噸璇曪紒锛�");
         }
 
+
+        //鍒ゆ柇鏄笉鏄寚瀹氬鐞嗕汉
+        SysUser user = ContextUtil.getLoginUser();
+        if (StringUtils.isNotEmpty(work.getAssigneeId())) {
+            if (!work.getAssigneeId().equals(user.getLoginName())) {
+                return BaseResp.error("褰撳墠宸ュ崟宸插垎閰嶅叾浠栦汉澶勭悊锛岃鍕垮鐞�");
+            }
+        }
+
         String curNode = process.getNode();
         //鑾峰彇澶勭悊浜�
         if (!curNode.equals(work.getNode())) {
@@ -194,12 +204,13 @@
         WorkOrderConf conf = confService.selectById(work.getConfId());
         if (null == conf) return BaseResp.error("褰撳墠宸ュ崟鏈厤缃祦绋�");
 
+
         //娣诲姞璁板綍
         process.setId(ContextUtil.UUID());
         process.setCreateTime(new Date());
         process.setOrderId(work.getId());
-        process.setAssigneeName(ContextUtil.getLoginUserName());
-        process.setAssigneeId(ContextUtil.getLoginName());
+        process.setAssigneeName(user.getUserName());
+        process.setAssigneeId(user.getLoginName());
 
         WorkNode nextNode = this.getNextNode(work.getNode(), conf);
 
@@ -209,7 +220,6 @@
         if ("pass".equals(action)) {
             process.setAction("閫氳繃");
             process.setNode(work.getNode());
-
             //缁撴潫鍒ゆ柇锛屽鏋滄槸缁撴潫鑺傜偣锛屽垯缁撴潫宸ュ崟
             if (WorkNode.NODE_END.getCode().equals(nextNode.getCode())) {
                 work.setStatus(WorkStatus.STATUS_50.getCode());
@@ -218,20 +228,47 @@
                 work.setNode(nextNode.getCode());
                 orderService.complete(work);
             }
+
+            //澧炲姞瀹℃壒璁板綍
+            orderProcessService.addData(process, WorkNode.NODE_END.equals(nextNode));
+            return BaseResp.success();
         }
 
         //鎷掔粷鎿嶄綔
         if ("refuse".equals(action)) {
             process.setAction("鎷掔粷");
             process.setNode(WorkNode.NODE_END.getCode());
+
             work.setStatus(WorkStatus.STATUS_60.getCode());
 
             orderService.complete(work);
+            //澧炲姞瀹℃壒璁板綍
+            orderProcessService.addData(process, true);
+
+            return BaseResp.success();
         }
 
-        //澧炲姞瀹℃壒璁板綍
-        orderProcessService.addData(process,nextNode.equals(WorkNode.NODE_END));
+        //杞氦鎴栬�呮寚娲炬搷浣�
+        if ("transfer".equals(action)) {
 
-        return BaseResp.success();
+            if (StringUtils.isEmpty(process.getAssigneeName())) {
+                return BaseResp.error("璇烽�夋嫨澶勭悊浜�");
+            }
+
+            process.setAction("杞氦/鎸囨淳");
+            process.setNode(work.getNode());
+            String info = user.getUserName() + "杞氦缁�" + process.getAssigneeName() + "澶勭悊锛屽鐞嗗缓璁細" + process.getRemark();
+            process.setRemark(info);
+            //鏇存柊澶勭悊浜�
+            work.setAssigneeId(process.getAssigneeId());
+            work.setAssigneeName(process.getAssigneeName());
+
+            orderService.updateData(work);
+
+            orderProcessService.addData(process, false);
+            return BaseResp.success();
+        }
+
+        return BaseResp.error("绯荤粺娌℃湁璇嗗埆鍒版搷浣滃姩浣滐紝鏈墽琛岀浉鍏虫祦绋嬪鎵�");
     }
 }
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 8dace54..63afee6 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
@@ -17,11 +17,10 @@
 
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 import javax.annotation.Resource;
 
@@ -30,6 +29,7 @@
  * @Author: Andy.jia
  * @Date: 2025/12/19
  */
+@Slf4j
 @Service
 public class WorkOrderService {
     @Resource
@@ -59,43 +59,12 @@
         //鑾峰彇褰撳墠鐧诲綍浜�
         SysUser user = ContextUtil.getLoginUser();
         QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("company_id", user.getCompanyId());
 
         String scope = param.getScope();
         if (StringUtils.isEmpty(scope)) scope = WorkOrderParam.SCOPE_SELF;
 
-        //鐩戠鐢ㄦ埛-鏌ョ湅鎵�鏈夊簱鍖哄拰寰呭姙
-        if (Constant.USER_TYPE_10.equals(user.getUserType())) {
-
-            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
-                queryWrapper.eq("node", WorkNode.NODE2.getCode());
-            }
-        }
-
-        //搴撳尯鐢ㄦ埛锛屽鏋滄槸鍏徃鐢ㄦ埛鍙互鏌ョ湅鍏徃涓嬪睘鎵�鏈夊簱鍖猴紝濡傛灉涓哄綋鍓嶅簱鍖哄彧鏌ヨ褰撳墠搴撳尯
-        if (Constant.USER_TYPE_30.equals(user.getUserType())) {
-            if (ContextUtil.isDepotUser(user.getDeptId() + "")) {
-                queryWrapper.eq("dept_id", user.getDeptId() + "");
-            } else {
-                queryWrapper.likeRight("dept_id", user.getDeptId() + "");
-            }
-            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
-                queryWrapper.eq("node", WorkNode.NODE1.getCode());
-            }
-
-        }
-
-        //閾惰鐢ㄦ埛锛屾牴鎹悎鍚屾煡璇㈤摱琛屼笅鎵�鏈夊簱鍖�
-        if (Constant.USER_TYPE_20.equals(user.getUserType())) {
-            //濡傛灉娌℃湁閰嶇疆閾惰锛岃缃竴涓笉瀛樺湪鐨勯摱琛屽彿
-            if (StringUtils.isBlank(user.getUserData())) user.setUserData("9");
-
-            queryWrapper.eq("bank_id", user.getUserData());
-
-            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
-                queryWrapper.eq("node", WorkNode.NODE3.getCode());
-            }
-        }
+        //鏇存柊鏌ヨ鏉′欢
+        this.updateQueryWrapper(queryWrapper, user, scope);
 
         queryWrapper.eq(null != param.getDeptId(), "dept_id", param.getDeptId());
         queryWrapper.like(null != param.getName(), "title", param.getName());
@@ -156,22 +125,116 @@
     }
 
     /**
-     * 鑾峰彇鐢ㄦ埛寰呭鐞嗗伐鍗曟暟
-     * @param status
-     * @param userId
+     * 鑾峰彇褰撳墠鐢ㄦ埛寰呭姙宸ュ崟锛屾牴鎹敤鎴风被鍨嬫垨鑰呮病鏈夋寚瀹氬鐞嗕汉鎴栬�呮寚瀹氫换鍔″鐞嗕汉鐨勫伐鍗曟暟閲�
+     * @param user
      * @return
      */
-    public Integer getNumByUser(String status, String userId) {
+    public Integer getTodoNumByUser(SysUser user) {
 
         QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
-        if (StringUtils.isBlank(userId) || StringUtils.isBlank(status)) {
-            return 0;
-        }
 
-        queryWrapper.eq("assignee_id", userId);
-        queryWrapper.eq("status", status);
+        this.updateQueryWrapper(queryWrapper, user, WorkOrderParam.SCOPE_SELF);
 
         return workOrderMapper.selectCount(queryWrapper);
+    }
+
+    /**
+     * 鑾峰彇椤甸潰姹囨�荤粺璁★紝鎴戠殑寰呭姙宸ュ崟锛涙垜鐨勬寚娲惧伐鍗曪紱浠婃棩寰呭姙宸ュ崟锛涙�诲緟鍔炲伐鍗�
+     *
+     * 鏌ヨ鎵�鏈夌殑寰呭姙宸ュ崟锛岀劧鍚庤繘琛屾眹鎬荤粺璁�
+     * @return
+     */
+    public Map<String, String> pageSummary() {
+        Map<String, String> result = new HashMap<>();
+
+        //鎴戠殑寰呭姙宸ュ崟
+        result.put("selfTodo", "0");
+        //鎴戠殑鎸囨淳宸ュ崟
+        result.put("assignTodo", "0");
+        //浠婃棩寰呭姙宸ュ崟
+        result.put("todayTodo", "0");
+        //鎬诲緟鍔炲伐鍗曟暟閲�
+        result.put("sumTodo", "0");
+
+        //鑾峰彇鎬诲緟鍔炲伐鍗�
+        SysUser user = ContextUtil.getLoginUser();
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
+
+        String scope = WorkOrderParam.SCOPE_SELF;
+        this.updateQueryWrapper(queryWrapper, user, scope);
+
+        //鑾峰彇鎵�鏈夌殑宸ュ崟
+        List<WorkOrder> list = workOrderMapper.selectList(queryWrapper);
+
+        if (null == list || list.isEmpty()) {
+            log.info("---------宸ュ崟姹囨�荤粨鏋�---------{}", result);
+            return result;
+        }
+
+        int selfTodo = 0, assignTodo = 0, todayTodo = 0, sumTodo = list.size();
+        for (WorkOrder work : list) {
+            if (null == work.getAssigneeId()) {
+                selfTodo++;
+            }
+            if (null != work.getAssigneeId() && work.getAssigneeId().equals(user.getLoginName())) {
+                selfTodo++;
+                assignTodo++;
+            }
+            if (DateUtil.isToday(work.getCreateTime())) {
+                todayTodo++;
+            }
+        }
+        //鎴戠殑寰呭姙宸ュ崟
+        result.put("selfTodo", selfTodo + "");
+        //鎴戠殑鎸囨淳宸ュ崟
+        result.put("assignTodo", assignTodo + "");
+        //浠婃棩寰呭姙宸ュ崟
+        result.put("todayTodo", todayTodo + "");
+        //鎬诲緟鍔炲伐鍗曟暟閲�
+        result.put("sumTodo", sumTodo + "");
+
+        log.info("---------宸ュ崟姹囨�荤粨鏋�---------{}", result);
+        return result;
+    }
+
+    private void updateQueryWrapper(QueryWrapper<WorkOrder> queryWrapper, SysUser user, String scope) {
+
+        queryWrapper.eq("company_id", user.getCompanyId());
+
+        //濡傛灉鏄釜浜哄伐鍗曪紝澶勭悊浜轰负绌烘垨鑰呬负褰撳墠浜�
+        if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+            queryWrapper.isNull("assignee_id").or().eq("assignee_id", user.getLoginName());
+        }
+
+        //鐩戠鐢ㄦ埛-鏌ョ湅鎵�鏈夊簱鍖哄拰寰呭姙
+        if (Constant.USER_TYPE_10.equals(user.getUserType())) {
+            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+                queryWrapper.eq("node", WorkNode.NODE2.getCode());
+            }
+        }
+
+        //搴撳尯鐢ㄦ埛锛屽鏋滄槸鍏徃鐢ㄦ埛鍙互鏌ョ湅鍏徃涓嬪睘鎵�鏈夊簱鍖猴紝濡傛灉涓哄綋鍓嶅簱鍖哄彧鏌ヨ褰撳墠搴撳尯
+        if (Constant.USER_TYPE_30.equals(user.getUserType())) {
+            if (ContextUtil.isDepotUser(user.getDeptId() + "")) {
+                queryWrapper.eq("dept_id", user.getDeptId() + "");
+            } else {
+                queryWrapper.likeRight("dept_id", user.getDeptId() + "");
+            }
+            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+                queryWrapper.eq("node", WorkNode.NODE1.getCode());
+            }
+
+        }
+
+        //閾惰鐢ㄦ埛锛屾牴鎹悎鍚屾煡璇㈤摱琛屼笅鎵�鏈夊簱鍖�
+        if (Constant.USER_TYPE_20.equals(user.getUserType())) {
+            //濡傛灉娌℃湁閰嶇疆閾惰锛岃缃竴涓笉瀛樺湪鐨勯摱琛屽彿
+            if (StringUtils.isBlank(user.getUserData())) user.setUserData("9");
+            queryWrapper.eq("bank_id", user.getUserData());
+            if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+                queryWrapper.eq("node", WorkNode.NODE3.getCode());
+            }
+        }
     }
 
 
@@ -196,4 +259,9 @@
     }
 
 
+    public void updateData(WorkOrder work) {
+        workOrderMapper.updateById(work);
+    }
+
+
 }
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/CommonPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/CommonPR.java
new file mode 100644
index 0000000..b3c469f
--- /dev/null
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/CommonPR.java
@@ -0,0 +1,32 @@
+package com.fzzy.igds;
+
+import com.bstek.dorado.annotation.DataProvider;
+import com.fzzy.igds.service.SysUserService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Desc: 閫氱敤PR绠$悊灞傦紝濡傜敤鐢ㄦ埛淇℃伅绠$悊
+ * @Author: Andy.jia
+ * @Date: 2026/1/17
+ */
+@Component
+public class CommonPR {
+
+    @Resource
+    private SysUserService userService;
+
+    /**
+     * commonPR#listUserByCurUserType
+     * 鏍规嵁褰撳墠鐧诲綍浜虹殑绫诲瀷鑾峰彇鐢ㄦ埛鍒楄〃
+     * @return 鐢ㄦ埛鍒楄〃
+     */
+    @DataProvider
+    public List<SysUser> listUserByCurUserType(){
+        return userService.listUserByCurUserType();
+    }
+}
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 139eed1..a80f1eb 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
@@ -151,6 +151,7 @@
       </PropertyDef>
       <PropertyDef name="remark">
         <Property></Property>
+        <Property name="label">瀹℃壒寤鸿</Property>
       </PropertyDef>
       <PropertyDef name="id">
         <Property></Property>
@@ -182,13 +183,26 @@
 	}&#xD;
 	view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,param).flushAsync();&#xD;
 }&#xD;
+//姹囨�讳俊鎭�&#xD;
+summaryCount = function(){&#xD;
+	view.get(&quot;#ajaxSummary&quot;).execute(function(result){&#xD;
+		console.log(result);&#xD;
+		jQuery('#child-num1').text(result.selfTodo);&#xD;
+		jQuery('#child-num2').text(result.assignTodo);&#xD;
+		jQuery('#child-num3').text(result.todayTodo);&#xD;
+		jQuery('#child-num4').text(result.sumTodo);&#xD;
+	});&#xD;
+}&#xD;
+&#xD;
+summaryCount();&#xD;
+	&#xD;
 query();&#xD;
       &#xD;
 //瀹d紶鎿嶄綔&#xD;
 renderCell1 = function(arg,self){&#xD;
    var tabIndex = view.get(&quot;#tabMain.currentIndex&quot;);&#xD;
    var data = arg.data;&#xD;
-   var htm = &quot;&lt;a onClick='audit()' class='a-btn1'>鎸囨淳&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='showDetail()' class='a-btn2'>璇︾粏&lt;/a>&quot;;&#xD;
+   var htm = &quot;&lt;a onClick='selectUser()' class='a-btn1'>鎸囨淳&lt;/a>&amp;nbsp;|&amp;nbsp;&lt;a onClick='showDetail()' class='a-btn2'>璇︾粏&lt;/a>&quot;;&#xD;
    if(1 == tabIndex){&#xD;
    		htm = &quot;&lt;a onClick='showDetail()' class='a-btn2'>璇︾粏&lt;/a>&quot;;&#xD;
    }&#xD;
@@ -218,18 +232,14 @@
     arg.dom.innerHTML = htm;&#xD;
 }&#xD;
 &#xD;
-//鐐瑰嚮瀹℃牳&#xD;
-audit = function(){&#xD;
-	&#xD;
-}&#xD;
 //鐐瑰嚮璇︾粏&#xD;
 showDetail = function(){&#xD;
 	var tabIndex = view.get(&quot;#tabMain.currentIndex&quot;);&#xD;
 	var cur = view.get(&quot;#dsMain.data:#&quot;);&#xD;
 	var dialog = view.get(&quot;#dialogMain&quot;);&#xD;
-	view.get('^btnTag').set('visible',true);&#xD;
+	view.get('^btnTag').set('disabled',false);&#xD;
 	if(1 == tabIndex){&#xD;
-		view.get('^btnTag').set('visible',false);&#xD;
+		view.get('^btnTag').set('disabled',true);&#xD;
 	}&#xD;
 	dialog.show();&#xD;
 	&#xD;
@@ -269,7 +279,15 @@
 	var process = view.get(&quot;#dsProcess.data&quot;);&#xD;
 	process.set(&quot;action&quot;,null);&#xD;
 	process.set('remark',null);&#xD;
+	process.set('assigneeId',null);&#xD;
+	process.set('assigneeName',null);&#xD;
 	view.get('#dialogTodo').hide();&#xD;
+	view.get('#dialogSelectUser').hide();&#xD;
+}&#xD;
+selectUser = function(){&#xD;
+	var process = view.get(&quot;#dsProcess.data&quot;);&#xD;
+	process.set('action','transfer')&#xD;
+	view.get(&quot;#dialogSelectUser&quot;).show();&#xD;
 }&#xD;
 </ClientEvent>
     <Property name="packages">font-awesome,css-common</Property>
@@ -377,35 +395,35 @@
     &#xD;
     &lt;!-- 蹇嵎鏂瑰紡 -->&#xD;
     &lt;div class=&quot;parent&quot;>&#xD;
-   &#xD;
+  &#xD;
         &lt;div class=&quot;child&quot;>&#xD;
             &lt;div class=&quot;console-link-block&quot;>&#xD;
-                &lt;div class=&quot;console-link-block-num&quot;>0&lt;/div>&#xD;
-                &lt;div class=&quot;console-link-block-text&quot;>浠婃棩宸ュ崟缁熻&lt;/div>&#xD;
+                &lt;div class=&quot;console-link-block-num&quot; id=&quot;child-num1&quot;>0&lt;/div>&#xD;
+                &lt;div class=&quot;console-link-block-text&quot;>鎴戠殑寰呭姙宸ュ崟&lt;/div>&#xD;
                 &lt;img class=&quot;console-icon&quot; src=&quot;/img/icon-wj.png&quot;>&#xD;
             &lt;/div>&#xD;
         &lt;/div>&#xD;
         &#xD;
         &lt;div class=&quot;child&quot;>&#xD;
             &lt;div class=&quot;console-link-block bg2&quot;>&#xD;
-                &lt;div class=&quot;console-link-block-num&quot;>0&lt;/div>&#xD;
-                &lt;div class=&quot;console-link-block-text&quot;>浠婃棩寰呭畬鎴愬伐鍗�&lt;/div>&#xD;
+                &lt;div class=&quot;console-link-block-num&quot; id=&quot;child-num2&quot;>0&lt;/div>&#xD;
+                &lt;div class=&quot;console-link-block-text&quot;>鎴戠殑鎸囨淳宸ュ崟&lt;/div>&#xD;
                 &lt;img class=&quot;console-icon&quot; src=&quot;/img/icon-wj2.png&quot;>&#xD;
             &lt;/div>&#xD;
         &lt;/div>&#xD;
         &#xD;
         &lt;div class=&quot;child&quot;>&#xD;
             &lt;div class=&quot;console-link-block bg3&quot;>&#xD;
-                &lt;div class=&quot;console-link-block-num&quot;>0&lt;/div>&#xD;
-                &lt;div class=&quot;console-link-block-text&quot;>鎬诲伐鍗曠粺璁�&lt;/div>&#xD;
+                &lt;div class=&quot;console-link-block-num&quot; id=&quot;child-num3&quot;>0&lt;/div>&#xD;
+                &lt;div class=&quot;console-link-block-text&quot;>浠婃棩宸ュ崟&lt;/div>&#xD;
                 &lt;img class=&quot;console-icon&quot; src=&quot;/img/icon-tj.png&quot;>&#xD;
             &lt;/div>&#xD;
         &lt;/div>&#xD;
         &#xD;
        &lt;div class=&quot;child&quot;>&#xD;
-            &lt;div class=&quot;console-link-block bg4&quot;>&#xD;
-                &lt;div class=&quot;console-link-block-num&quot;>0&lt;/div>&#xD;
-                &lt;div class=&quot;console-link-block-text&quot;>鎬绘湭瀹屾垚宸ュ崟&lt;/div>&#xD;
+            &lt;div class=&quot;console-link-block bg5&quot;>&#xD;
+                &lt;div class=&quot;console-link-block-num&quot; id=&quot;child-num4&quot;>0&lt;/div>&#xD;
+                &lt;div class=&quot;console-link-block-text&quot;>鎬诲緟鍔炲伐鍗�&lt;/div>&#xD;
                 &lt;img class=&quot;console-icon&quot; src=&quot;/img/icon-tj2.png&quot;>&#xD;
             &lt;/div>&#xD;
         &lt;/div>&#xD;
@@ -421,7 +439,7 @@
         <Property name="margin-top">10px</Property>
       </Property>
       <AutoForm>
-        <Property name="cols">*,*,*,*,90,90</Property>
+        <Property name="cols">*,300,300,90,90,*</Property>
         <Property name="dataSet">dsQuery</Property>
         <Property name="labelAlign">right</Property>
         <Property name="labelWidth">100</Property>
@@ -429,11 +447,6 @@
           <Property name="name">deptId</Property>
           <Property name="property">deptId</Property>
           <Property name="trigger">autoMappingDropDown2</Property>
-          <Editor/>
-        </AutoFormElement>
-        <AutoFormElement>
-          <Property name="name">name</Property>
-          <Property name="property">name</Property>
           <Editor/>
         </AutoFormElement>
         <AutoFormElement>
@@ -720,6 +733,7 @@
                     <Property name="tags">btnTag</Property>
                   </ToolBarButton>
                   <ToolBarButton>
+                    <ClientEvent name="onClick">selectUser();</ClientEvent>
                     <Property name="caption">杞氦</Property>
                     <Property name="width">80</Property>
                     <Property name="exClassName">btn2</Property>
@@ -810,5 +824,72 @@
       <Property name="service">workOrderPR#todo</Property>
       <Property name="executingMessage">澶勭悊涓�︹��</Property>
     </AjaxAction>
+    <DataSet id="dsSysUser">
+      <Property name="dataType">[dtSysUser]</Property>
+      <Property name="dataProvider">commonPR#listUserByCurUserType</Property>
+    </DataSet>
+    <DataSetDropDown id="selectUser">
+      <Property name="dataSet">dsSysUser</Property>
+      <Property name="property">userName</Property>
+      <Property name="assignmentMap">assigneeId=loginName,assigneeName=userName</Property>
+    </DataSetDropDown>
+    <Dialog id="dialogSelectUser">
+      <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();</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">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>
+            <Property name="labelAlign">right</Property>
+            <Property name="labelWidth">100</Property>
+            <AutoFormElement>
+              <Property name="name">assigneeName</Property>
+              <Property name="property">assigneeName</Property>
+              <Property name="trigger">selectUser</Property>
+              <Editor/>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">remark</Property>
+              <Property name="property">remark</Property>
+              <Editor>
+                <TextArea>
+                  <Property name="blankText">-- 濉啓瀹℃壒寤鸿 --</Property>
+                  <Property name="height">100</Property>
+                </TextArea>
+              </Editor>
+            </AutoFormElement>
+            <AutoFormElement>
+              <Property name="name">assigneeId</Property>
+              <Property name="property">assigneeId</Property>
+              <Property name="visible">false</Property>
+              <Editor/>
+            </AutoFormElement>
+          </AutoForm>
+        </Container>
+      </Children>
+      <Tools/>
+    </Dialog>
+    <AjaxAction id="ajaxSummary">
+      <Property name="service">workOrderPR#pageSummary</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 06dfe90..ce38f11 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
@@ -20,6 +20,7 @@
 import org.springframework.stereotype.Component;
 
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
@@ -62,6 +63,16 @@
 
 
     /**
+     * workOrderPR#pageSummary
+     * 宸ュ崟姹囨�荤粺璁�
+     */
+    @Expose
+    public Map<String,String> pageSummary() {
+       return workOrderService.pageSummary();
+    }
+
+
+    /**
      * 宸ュ崟鐘舵��
      * ${dorado.getDataProvider("workOrderPR#triggerStatus").getResult()}
      *
diff --git a/fzzy-igdss-view/src/main/java/models/core.model.xml b/fzzy-igdss-view/src/main/java/models/core.model.xml
index b5a16e7..adf1ee5 100644
--- a/fzzy-igdss-view/src/main/java/models/core.model.xml
+++ b/fzzy-igdss-view/src/main/java/models/core.model.xml
@@ -2020,4 +2020,31 @@
       <Property name="label">楦熺灠鍥�</Property>
     </PropertyDef>
   </DataType>
+  <DataType name="dtSysUser">
+    <Property name="creationType">com.ruoyi.common.core.domain.entity.SysUser</Property>
+    <PropertyDef name="companyId">
+      <Property/>
+    </PropertyDef>
+    <PropertyDef name="userId">
+      <Property name="dataType">Long</Property>
+    </PropertyDef>
+    <PropertyDef name="deptId">
+      <Property name="dataType">Long</Property>
+    </PropertyDef>
+    <PropertyDef name="parentId">
+      <Property name="dataType">Long</Property>
+    </PropertyDef>
+    <PropertyDef name="roleId">
+      <Property name="dataType">Long</Property>
+    </PropertyDef>
+    <PropertyDef name="loginName">
+      <Property/>
+    </PropertyDef>
+    <PropertyDef name="userName">
+      <Property/>
+    </PropertyDef>
+    <PropertyDef name="userType">
+      <Property/>
+    </PropertyDef>
+  </DataType>
 </Model>
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java
index 9ba2825..7b438ae 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/common/manager/CommonManager.java
@@ -244,7 +244,7 @@
         MainData mainData = new MainData();
 
         //寰呭姙宸ュ崟鏁�
-        Integer orderNum = workOrderService.getNumByUser(WorkStatus.STATUS_30.getCode(), user.getLoginName());
+        Integer orderNum = workOrderService.getTodoNumByUser(user);
         mainData.setOrderNum(orderNum);
 
         //缁熻鍑哄叆搴撲俊鎭�

--
Gitblit v1.9.3