From 8ac3affc79126b0b8ec6f4f7e80b73a6b4a4634b Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期四, 12 二月 2026 09:21:16 +0800
Subject: [PATCH] APP

---
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCamera.java             |   23 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrolRecord.java       |   40 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PSnapDto.java                 |   34 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PQuantityDto.java             |   17 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5108.java |   88 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5208.java |   65 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5202.java |   28 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5402.java |  194 ++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5002.java |   60 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5102.java |  172 ++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5110.java |   83 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutHandle.java        |   26 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamVideo.java              |   14 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUserDto.java                 |   38 
 fzzy-igdss-core/src/main/java/com/fzzy/work/data/WorkBizType.java                    |   11 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCommon.java             |   28 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5201.java |   54 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutRecord.java        |   28 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5101.java |  131 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5401.java |  111 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PDetailDto.java               |   19 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamDepot.java              |   16 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5001.java |  153 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java             |   30 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamOrder.java              |   34 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5207.java |   95 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamUser.java               |   26 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PGrainDto.java                |   44 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/constant/PhoneConstant.java       |  113 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5103.java |   76 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5109.java |   60 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5111.java |   51 
 fzzy-igdss-inte/src/main/resources/mapper/PhoneMapper.xml                            |   15 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5106.java |  133 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrol.java             |   24 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/AuthUser.java                |   23 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5105.java |   62 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5205.java |  144 ++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5405.java |  122 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneUtil.java               |   88 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUploadDto.java               |   21 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutDto.java                |   66 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPatrolDto.java               |   26 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutSum.java                |   53 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5204.java |  154 ++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/mapper/PhoneMapper.java           |   20 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneRespUtil.java           |   72 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/manager/PhoneManager.java         |  274 ++++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5104.java |   86 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneResponse.java           |   85 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5107.java |   60 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PEventInfoDto.java            |   68 +
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/controller/PhoneController.java   |  138 ++
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PWorkOrderDto.java            |   72 +
 fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java              |   12 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPointDto.java                |   19 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/PhoneService.java         |   17 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5203.java |   28 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRespCodeEnum.java       |   37 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRequest.java            |   53 
 fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5206.java |   94 +
 61 files changed, 4,028 insertions(+), 0 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java
index ecd9d00..ebfcb1e 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/constant/InoutConstant.java
@@ -12,4 +12,16 @@
 
     //鐩戠閫氱煡鍗�
     public static final String NOTICE_IN_TYPE_20 = "20";
+
+    // 鍑哄叆搴撶被鍨�-鍏ュ簱
+    public static final String TYPE_IN = "IN";
+
+    // 鍑哄叆搴撶被鍨�-鍑哄簱
+    public static final String TYPE_OUT = "OUT";
+
+    // 娴佺▼-鍊间粨
+    public static final String PROGRESS_HANDLE = "HANDLE";
+
+    // 娴佺▼-澶囨锛堣〃绀烘祦绋嬫暣浣撳畬鎴愬悗澶囨锛�
+    public static final String PROGRESS_RECORD = "RECORD";
 }
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
index c31f47b..388987c 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/CoreDeptService.java
@@ -64,6 +64,36 @@
         return this.listDept(null,user.getCompanyId(),null);
     }
 
+
+    /**
+     * 鏍规嵁鐢ㄦ埛绫诲瀷鑾峰彇瀵瑰簲搴撳尯鍒楄〃淇℃伅APP
+     *
+     * @param
+     * @return
+     */
+    public List<Dept> getDeptByUserTypeApp(String userType,String deptId) {
+
+
+        if (Constant.USER_TYPE_10.equals(userType)) {
+            //鐩戠鐢ㄦ埛锛岀洿鎺ユ煡璇㈢粍缁囦笅鎵�鏈夊簱鍖�
+            return this.listDept(null,userType,null);
+        }
+        if (Constant.USER_TYPE_20.equals(userType)) {
+            //閾惰鐢ㄦ埛锛屾牴鎹悎鍚屾煡璇㈤摱琛屼笅鎵�鏈夊簱鍖�
+            return this.getDeptByBank(userType);
+        }
+        if (Constant.USER_TYPE_30.equals(userType)) {
+            //搴撳尯鐢ㄦ埛
+            if(ContextUtil.isDepotUser(deptId)){
+                //鏌ヨ鐢ㄦ埛鎵�灞炲簱鍖�
+                return this.listDept(deptId,null,null);
+            }else {
+                //鏌ヨ鐢ㄦ埛鎵�灞炲叕鍙镐笅鎵�鏈夊簱鍖�
+                return this.listDept(null,null, deptId);
+            }
+        }
+        return this.listDept(null,ContextUtil.getCompanyId(),null);
+    }
     /**
      * 鏍规嵁閾惰id锛屽叧鑱斿悎鍚岃〃鏌ヨ搴撳尯鍒楄〃
      * @param bankId 閾惰鍙�
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 c739507..8d811b1 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
@@ -29,4 +29,15 @@
     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_50.getCode().equals(code)) return WorkBizType.TYPE_50.getMsg();
+        if(WorkBizType.TYPE_99.getCode().equals(code)) return WorkBizType.TYPE_99.getMsg();
+        return code;
+    }
 }
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/constant/PhoneConstant.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/constant/PhoneConstant.java
new file mode 100644
index 0000000..817c2e3
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/constant/PhoneConstant.java
@@ -0,0 +1,113 @@
+package com.fzzy.igds.app.v1.constant;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-12 15:11
+ **/
+public class PhoneConstant {
+
+    /**
+     *绮儏浠撳簱鍒楄〃
+     */
+    public static final String PHONE_DEPOT_GRAIN="grain";
+    public static final String PHONE_DEPOT_PEST="pest";
+    public static final String PHONE_DEPOT_GAS="gas";
+
+    /**
+     * 鍊间粨鎻愪氦
+     */
+    public static final String PHONE_INOUT_START="start";
+    public static final String PHONE_INOUT_END="end";
+    /**
+     * 鐧诲綍
+     */
+    public static final String API_PHONE_5001 = "5001";
+    /**
+     * 鑾峰彇搴撳尯鍒楄〃淇℃伅
+     */
+    public static final String API_PHONE_5002 = "5002";
+    /**
+     * 绯荤粺璀﹀憡
+     */
+    public static final String API_PHONE_5003 = "5003";
+    /**
+     * 鐢ㄦ埛淇℃伅鏇存敼
+     */
+    public static final String API_PHONE_5004 = "5004";
+    /**
+     * 绯荤粺璀﹀憡
+     */
+    public static final String API_PHONE_5005 = "5005";
+
+    /* ======= 鐩戠绠$悊 ====== */
+    /**
+     * 宸ュ崟绠$悊
+     */
+    public static final String API_PHONE_5101 = "5101";
+    public static final String API_PHONE_5102 = "5102";
+
+    /**
+     * 瑙嗛绠$悊
+     */
+    public static final String API_PHONE_5103 = "5103";
+    public static final String API_PHONE_5104 = "5104";
+
+    /**
+     * 宸℃鐩戠
+     */
+    public static final String API_PHONE_5105 = "5105";
+    public static final String API_PHONE_5106 = "5106";
+    public static final String API_PHONE_5107 = "5107";
+
+    /**
+     * 鎶撴媿绠$悊
+     */
+    public static final String API_PHONE_5108 = "5108";
+    public static final String API_PHONE_5109 = "5109";
+    /**
+     * AI浜嬩欢绠$悊
+     */
+    public static final String API_PHONE_5110 = "5110";
+    public static final String API_PHONE_5111 = "5111";
+
+    /* ======= 鏅鸿兘浠撳偍 ====== */
+    /**
+     * 绮儏鏁版嵁鏌ョ湅
+     */
+    public static final String API_PHONE_5201 = "5201";
+    public static final String API_PHONE_5202 = "5202";
+    public static final String API_PHONE_5203 = "5203";
+    public static final String API_PHONE_5204 = "5204";
+    public static final String API_PHONE_5205 = "5205";
+    /**
+     * 鏂欎綅鎬昏
+     */
+    public static final String API_PHONE_5206 = "5206";
+
+    /**
+     * 鏁伴噺鐩戞祴
+     */
+    public static final String API_PHONE_5207 = "5207";
+    public static final String API_PHONE_5208 = "5208";
+
+
+    /* ======= 瀹夐槻绠$悊 ====== */
+
+    public static final String API_PHONE_5301 = "5301";
+    public static final String API_PHONE_5302 = "5302";
+
+    /* ======= 绮璐攢 ====== */
+    /**
+     * 鍏ュ簱鍊间粨
+     */
+    public static final String API_PHONE_5401 = "5401";
+    public static final String API_PHONE_5402 = "5402";
+
+    /**
+     * 瀹炴椂璁板綍
+     */
+    public static final String API_PHONE_5405 = "5405";
+
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/controller/PhoneController.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/controller/PhoneController.java
new file mode 100644
index 0000000..43550e2
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/controller/PhoneController.java
@@ -0,0 +1,138 @@
+package com.fzzy.igds.app.v1.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.manager.PhoneManager;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+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.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-14 11:45
+ **/
+@Controller
+@RequestMapping("api/phone/v1")
+public class PhoneController {
+
+    @Autowired
+    private PhoneManager phoneManager;
+
+    /**
+     * 鐧诲綍鍏ュ彛
+     *
+     * @param req
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    @ResponseBody
+    @RequestMapping("/login")
+    public PhoneResponse<Object> phoneLogin(@RequestBody PhoneRequest<JSONObject> req) {
+
+        //鍒ゆ柇鍙傛暟
+        if (null == req) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, RespCodeEnum.CODE_1007.getMsg());
+        }
+
+        PhoneResponse<Object> result = PhoneRespUtil.error(RespCodeEnum.CODE_1111, RespCodeEnum.CODE_1111.getMsg());
+
+        try {
+            //鎵ц涓氬姟鎿嶄綔
+            result = phoneManager.execute(req, null);
+        } catch (Exception e) {
+            result = PhoneRespUtil.error(RespCodeEnum.CODE_1111,
+                    "鍚庣寮傚父锛�" + e.getMessage());
+        }
+
+        return result;
+    }
+
+    /**
+     * 涓氬姟鍒嗗彂鍏ュ彛
+     *
+     * @param req
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    @ResponseBody
+    @RequestMapping("/gateway")
+    public PhoneResponse<Object> phoneGateway(@RequestBody PhoneRequest<JSONObject> req) {
+
+        //鍒ゆ柇鍙傛暟
+        if (null == req) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, RespCodeEnum.CODE_1007.getMsg());
+        }
+
+        //鍒ゆ柇鎺ュ彛缂栫爜
+        if (null == req.getInterfaceId()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, RespCodeEnum.CODE_1007.getMsg());
+        }
+
+        //鑾峰彇鐢ㄦ埛淇℃伅锛屽鏋滄湁鍒欐洿鏂帮紝濡傛灉娌℃湁鍒欒烦鍑�
+        AuthUser phone35AuthUser = phoneManager.checkTokenAuth(req);
+        if (null == phone35AuthUser) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1006, "鎮ㄧ櫥褰曞凡瓒呮椂锛岃閲嶆柊鐧诲綍锛�");
+        }
+
+        PhoneResponse<Object> result = PhoneRespUtil.error(RespCodeEnum.CODE_1111, RespCodeEnum.CODE_1111.getMsg());
+
+        try {
+
+            //鎵ц涓氬姟鎿嶄綔
+            result = phoneManager.execute(req, phone35AuthUser);
+
+        } catch (Exception e) {
+            result = PhoneRespUtil.error(RespCodeEnum.CODE_1111,
+                    "鍚庣寮傚父锛�" + e.getMessage());
+        }
+        return result;
+    }
+
+
+    /**
+     * 鍊间粨涓婁紶
+     *
+     * @param files
+     * @param req
+     * @return
+     * @throws IOException
+     */
+    @ResponseBody
+    @RequestMapping("/upload-img")
+    public PhoneResponse<Object> phoneUploadImg(
+            @RequestParam("uploadkey") MultipartFile[] files,
+            HttpServletRequest req) throws IOException {
+
+        return phoneManager.phoneUploadImg(files[0], req);
+    }
+    /**
+     * 鍊间粨涓婁紶
+     *
+     * @param files
+     * @param req
+     * @return
+     * @throws IOException
+     */
+    @ResponseBody
+    @RequestMapping("/patrol-img")
+    public PhoneResponse<Object> phonePatrolImg(
+            @RequestParam("uploadkey") MultipartFile[] files,
+            HttpServletRequest req) throws IOException {
+
+        return phoneManager.phonePatrol(files[0], req);
+    }
+
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/AuthUser.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/AuthUser.java
new file mode 100644
index 0000000..ea4c57c
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/AuthUser.java
@@ -0,0 +1,23 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 鐧诲綍鍚庡瓨鍏ョ紦瀛樼殑淇℃伅
+ * @author chen
+ */
+@Data
+public class AuthUser {
+    private String companyId;
+    private String username;
+    private String cname;
+    private String mobile;
+    private String address;
+    private String email;
+
+    private String deptId;
+    private String deptName;
+    private HttpServletRequest request;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCamera.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCamera.java
new file mode 100644
index 0000000..f6f83b7
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCamera.java
@@ -0,0 +1,23 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+/**
+ * @author chen
+ */
+@Data
+public class ParamCamera extends ParamCommon {
+
+    private String cameraId;
+
+    private String playType;
+
+    //鏆傚畾浜戝彴鎺у埗浣跨敤
+    private String cameraSn;
+
+    private String videoPlayUrl;
+
+    private String command;
+
+    private String speed;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCommon.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCommon.java
new file mode 100644
index 0000000..29b869f
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamCommon.java
@@ -0,0 +1,28 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 閫氱敤鍙傛暟灏佽
+ */
+@Data
+public class ParamCommon {
+
+    private int pageSize = 15;
+
+    private int pageNo = 1;
+
+    private String tokenAuth;
+
+    private String type;
+
+    private String companyId;
+
+    private String deptId;
+
+    private Date startTime;
+
+    private Date endTime;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamDepot.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamDepot.java
new file mode 100644
index 0000000..1562a5d
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamDepot.java
@@ -0,0 +1,16 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-5 14:27
+ **/
+@Data
+public class ParamDepot extends ParamCommon {
+
+    private String depotId;
+    private String dateTime;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutHandle.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutHandle.java
new file mode 100644
index 0000000..c914d71
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutHandle.java
@@ -0,0 +1,26 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+/**
+ * 鍊间粨鍒楄〃銆佸�间粨鎻愪氦鏁版嵁灏佽
+ * @author chen
+ */
+@Data
+public class ParamInoutHandle extends ParamCommon {
+
+    private String id;
+
+    private String intelCard;
+
+    private String plateNum;
+
+    private String progress;
+
+    private Double deHandle;
+
+    private String fileName1;
+
+    private String fileName2;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutRecord.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutRecord.java
new file mode 100644
index 0000000..77a3b24
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamInoutRecord.java
@@ -0,0 +1,28 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鍏ュ簱璁板綍銆佸嚭搴撹褰曟暟鎹皝瑁�
+ *
+ * @author chen
+ */
+@Data
+public class ParamInoutRecord extends ParamCommon {
+
+
+
+    private String intelCard;
+
+    private String plateNum;
+
+    private String progress;
+
+    private Date date;
+
+    private Date end;
+
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamOrder.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamOrder.java
new file mode 100644
index 0000000..ffb5e2e
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamOrder.java
@@ -0,0 +1,34 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-13 14:33
+ **/
+@Data
+public class ParamOrder extends ParamCommon{
+
+    private String id;
+    private String orderId;
+
+    private String assigneeId;
+
+    private String assigneeName;
+
+    private String node;
+
+    private String action;
+
+    private Date createTime;
+
+    private String remark;
+
+    private String nodeName;
+
+    private String status;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrol.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrol.java
new file mode 100644
index 0000000..c51c205
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrol.java
@@ -0,0 +1,24 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-13 16:20
+ **/
+@Data
+public class ParamPatrol extends ParamCommon{
+
+    private String id;
+    private String longitude;
+    private String latitude;
+    private String imgName;
+    private Date createTime;
+    private String userName;
+
+
+    private Date dateTime;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrolRecord.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrolRecord.java
new file mode 100644
index 0000000..0c52303
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamPatrolRecord.java
@@ -0,0 +1,40 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 瀹夐槻-鐢靛瓙宸¢�昏褰�
+ *
+ * @author chen
+ */
+@Data
+public class ParamPatrolRecord implements Serializable {
+
+	/**
+	 * 鎵撳崱鎻愪氦浣跨敤
+	 */
+	private String longitude;
+
+	private String latitude;
+
+	private String imgName;
+
+	/**
+	 * 鎵撳崱璁板綍鏌ヨ浣跨敤
+	 */
+	private String userName;
+
+	private String companyId;
+
+	private String deptId;
+
+	private Date date;
+
+	private Date end;
+
+	private String id;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamUser.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamUser.java
new file mode 100644
index 0000000..a33d3ac
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamUser.java
@@ -0,0 +1,26 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+/**
+ * 鐧诲綍鍙婁慨鏀逛俊鎭皝瑁�
+ * @author chen
+ */
+@Data
+public class ParamUser {
+
+    /*鐧诲綍淇℃伅*/
+
+    private String username;
+    private String password;
+
+    /*淇敼鐢ㄦ埛淇℃伅*/
+
+    private String newPassword1;
+    private String newPassword2;
+    private String newMobile;
+    private String newCname;
+
+    private String salt;
+    private String companyId;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamVideo.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamVideo.java
new file mode 100644
index 0000000..ccb6a1c
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/ParamVideo.java
@@ -0,0 +1,14 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-13 16:01
+ **/
+@Data
+public class ParamVideo extends ParamCommon {
+    private String id;
+    private String playType;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRequest.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRequest.java
new file mode 100644
index 0000000..b1100f2
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRequest.java
@@ -0,0 +1,53 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 鎵嬫満APP鏈嶅姟缁熶竴瑙勮寖鎺ュ彛璇锋眰
+ *
+ * @author chen
+ */
+@Data
+public class PhoneRequest<T> implements Serializable {
+
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鎺ュ彛缂栧彿
+     */
+    private String interfaceId;
+
+    /**
+     *  绛惧悕
+     */
+    private String sign;
+
+    /**
+     * 鐢ㄦ埛鑷畾涔夊瓧娈�
+     */
+    private String outId;
+
+    /**
+     * 璇锋眰鏃堕棿
+     */
+    private String reqDateTime;
+
+    /**
+     * token鐨刱ey
+     */
+    private String tokenAuth;
+
+    /**
+     * 璇锋眰涓氬姟鏁版嵁
+     */
+    private T data;
+    /**
+     * 鎿嶄綔璁惧鐨勪笟鍔℃暟鎹�
+     */
+    private List<T> data1;
+
+}
\ No newline at end of file
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRespCodeEnum.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRespCodeEnum.java
new file mode 100644
index 0000000..2813c43
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneRespCodeEnum.java
@@ -0,0 +1,37 @@
+package com.fzzy.igds.app.v1.data;
+
+import lombok.Getter;
+
+/**
+ * 鍝嶅簲鐮佸畾涔�
+ * 
+ * @author Andy
+ *
+ */
+@Getter
+public enum PhoneRespCodeEnum {
+
+	/**
+	 *
+	 */
+	CODE_0000("0000", "鎴愬姛"),
+	CODE_1111("1111", "鍚庣鏈嶅姟寮傚父"),
+	CODE_1001("1001","鏁版嵁鏍煎紡鏍¢獙澶辫触"),
+	CODE_1002("1002","璇ュ簲鐢ㄦ棤婵�娲绘巿鏉�"),
+	CODE_1003("1003","璇ュ簲鐢ㄥ凡缁忔巿鏉冩垚鍔�"),
+	CODE_1004("1004","璁惧閫氳澶辫触"),
+	CODE_1005("1005","璇ヨ澶囦笉瀛樺湪"),
+	CODE_1006("1006","褰撳墠鐧诲綍浜哄凡鎺夌嚎"),
+	CODE_1007("1007","璇锋眰鍙傛暟寮傚父"),
+	CODE_1008("1008","娴佺▼涓嶆纭�"),
+	CODE_2000("2000","鍝嶅簲鏁版嵁涓虹┖")
+	;
+
+	private String code;
+	private String msg;
+
+	PhoneRespCodeEnum(String code, String msg) {
+		this.code = code;
+		this.msg = msg;
+	}
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneResponse.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneResponse.java
new file mode 100644
index 0000000..dd7edb9
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/data/PhoneResponse.java
@@ -0,0 +1,85 @@
+package com.fzzy.igds.app.v1.data;
+
+import com.fzzy.common.constant.RespCodeEnum;
+import lombok.Data;
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-12 10:53
+ **/
+@Data
+public class PhoneResponse<T> implements Serializable {
+
+    private String DATE_FORMAT_YMDHMS = "yyyy-MM-dd HH:mm:ss";
+
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鍝嶅簲鐮�
+     */
+    private String code;
+    /**
+     * 鍝嶅簲淇℃伅
+     */
+    private String msg;
+
+    /**
+     * 鍥炲~鐢ㄦ埛鑷畾涔変俊鎭�
+     */
+    private String outId;
+    /**
+     * 鍝嶅簲鏃堕棿
+     */
+    private String respDateTime;
+
+    /**
+     * 杩斿洖鏁版嵁
+     */
+    private T data;
+
+    public PhoneResponse() {
+        super();
+    }
+
+    public PhoneResponse(String code, String msg, String outId) {
+        this.code = code;
+        this.msg = msg;
+        this.outId = outId;
+    }
+
+    public PhoneResponse(String code, String msg, String outId, T data) {
+        this.code = code;
+        this.msg = msg;
+        this.outId = outId;
+        this.data = data;
+        this.respDateTime = DateFormatUtils.format(new Date(), DATE_FORMAT_YMDHMS);
+    }
+
+    public PhoneResponse(String code, String msg, T data) {
+        this.code = code;
+        this.msg = msg;
+        this.data = data;
+        this.respDateTime = DateFormatUtils.format(new Date(), DATE_FORMAT_YMDHMS);
+    }
+
+    public PhoneResponse(RespCodeEnum code, String outId, T data) {
+        this.code = code.getCode();
+        this.outId = outId;
+        this.data = data;
+        this.respDateTime = DateFormatUtils.format(new Date(), DATE_FORMAT_YMDHMS);
+    }
+    public PhoneResponse(RespCodeEnum code, String outId, String msg) {
+        this.code = code.getCode();
+        this.outId = outId;
+        this.msg = msg;
+        this.respDateTime = DateFormatUtils.format(new Date(), DATE_FORMAT_YMDHMS);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PDetailDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PDetailDto.java
new file mode 100644
index 0000000..dd74292
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PDetailDto.java
@@ -0,0 +1,19 @@
+package com.fzzy.igds.app.v1.dto;
+
+import lombok.Data;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-5 14:38
+ **/
+@Data
+public class PDetailDto {
+
+    private Double tempMin;
+    private Double tempMax;
+    private Double tempAve;
+    private int fz;
+    private String fzName;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PEventInfoDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PEventInfoDto.java
new file mode 100644
index 0000000..b1d4e8a
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PEventInfoDto.java
@@ -0,0 +1,68 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fzzy.igds.constant.WarnStatus;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-11 14:00
+ **/
+@Data
+public class PEventInfoDto {
+
+    private String id;
+
+    private String deptId;
+    private String deptName;
+
+    private String depotId;
+
+    private String serId;
+    private String name;
+
+    private String bizType;
+
+    private String type;
+
+    private String level;
+
+    private String status;
+
+    private String info;
+
+    private Date time;
+
+    private String noticeResult;
+
+    private String noticeUser;
+
+    private String completeUser;
+
+    private Date completeTime;
+
+    private String tags ;
+
+    private String remark;
+
+    private String imgName;
+
+    private String companyId;
+
+    private String createBy;
+
+    private Date createTime;
+
+    private String updateBy;
+
+    private Date updateTime;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PGrainDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PGrainDto.java
new file mode 100644
index 0000000..0e75de9
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PGrainDto.java
@@ -0,0 +1,44 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fzzy.igds.constant.DepotType;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-5 14:36
+ **/
+@Data
+public class PGrainDto {
+
+    private String depotId;
+    private String depotName;
+    private String depotType;
+    private String depotTypeName;
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date receiveDate;
+    private Double tempIn;
+    private Double humidityIn;
+    private Double tempOut;
+    private Double humidityOut;
+    private Double tempMax = 0.0;
+    private Double tempMin = 0.0;
+    private Double tempAve = 0.0;
+    private String cable;
+    private String cableCir;
+
+    private List<PPointDto> points;
+
+    private List<PDetailDto> details;
+
+    public String getDepotTypeName() {
+        if (null != this.depotType) {
+            return DepotType.getMsg(this.depotType);
+        }
+        return null;
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutDto.java
new file mode 100644
index 0000000..5f5a5a7
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutDto.java
@@ -0,0 +1,66 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fzzy.igds.constant.FoodLevel;
+import com.fzzy.igds.constant.FoodVariety;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-5 9:42
+ **/
+@Data
+public class PInoutDto {
+
+    private String id;
+    private String companyId;
+    private String intelCard;
+    private String plateNum;
+    private String type;
+    private String typeName;
+    private String depotId;
+    private String depotName;
+    private Double deHandle;
+    private String customerId;
+    private String customerName;
+    private String foodVariety;
+    private String foodVarietyName;
+    private Double recordWeight;
+    private String foodLevel;
+    private String foodLevelName;
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date handleStart;
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date handelEnd;
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date completeTime;
+    private String progress;
+    private String progressName;
+
+    private String storeKeeper;
+    private String storeKeeperName;
+
+    private String fileName1;
+    private String fileName2;
+
+    private String base64Img1;
+    private String base64Img2;
+
+    public String getFoodVarietyName() {
+        if (null != this.foodVariety) {
+            return FoodVariety.getMsg(this.foodVariety);
+        }
+        return null;
+    }
+
+    public String getFoodLevelName() {
+        if (null != this.foodLevel) {
+            return FoodLevel.getMsg(this.foodLevel);
+        }
+        return null;
+    }
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutSum.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutSum.java
new file mode 100644
index 0000000..5130c72
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PInoutSum.java
@@ -0,0 +1,53 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鍑哄叆搴撴暟鎹皝瑁� -- 鐢ㄤ簬鍑哄叆搴撹褰曞強瀹炴椂淇℃伅
+ * @author chen
+ */
+@Data
+public class PInoutSum {
+
+    /**
+     * 鍑哄叆搴撴祦姘翠俊鎭�
+     */
+    private List<PInoutDto> listInout;
+
+    /**
+     * 鍏ュ簱鐧昏鏁�
+     */
+    private Double inSumNum = 0.0;
+    /**
+     * 鍏ュ簱瀹屾垚鏁�
+     */
+    private Double inCompleteNum = 0.0;
+    /**
+     * 鍏ュ簱瀹屾垚鐜�
+     */
+    private Double perInComplete = 0.0;
+    /**
+     * 鍑哄簱鐧昏鏁�
+     */
+    private Double outSumNum = 0.0;
+    /**
+     * 鍑哄簱瀹屾垚鏁�
+     */
+    private Double outCompleteNum = 0.0;
+    /**
+     * 鍑哄簱瀹屾垚鐜�
+     */
+    private Double perOutComplete = 0.0;
+
+    /**
+     * 鍑哄叆搴撳悎璁℃暟(鐢ㄤ簬鍑哄叆搴撹褰�)
+     */
+    private Double sum = 0.0;
+
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date time;
+}
\ No newline at end of file
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPatrolDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPatrolDto.java
new file mode 100644
index 0000000..6769988
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPatrolDto.java
@@ -0,0 +1,26 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-13 16:24
+ **/
+@Data
+public class PPatrolDto {
+
+    private String id;
+    private String userName;
+    private String longitude;
+    private String latitude;
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    private String base64Img;
+    private String imgName;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPointDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPointDto.java
new file mode 100644
index 0000000..2b503a9
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PPointDto.java
@@ -0,0 +1,19 @@
+package com.fzzy.igds.app.v1.dto;
+
+import lombok.Data;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-5 14:38
+ **/
+@Data
+public class PPointDto {
+
+    private int z;
+    private int x;
+    private int y;
+    private int fz;
+    private Double temp;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PQuantityDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PQuantityDto.java
new file mode 100644
index 0000000..e74b357
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PQuantityDto.java
@@ -0,0 +1,17 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.fzzy.igds.domain.Quantity;
+import lombok.Data;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-6 10:16
+ **/
+@Data
+public class PQuantityDto extends Quantity {
+
+    private String deptName;
+    private Double errorValue;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PSnapDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PSnapDto.java
new file mode 100644
index 0000000..0824be8
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PSnapDto.java
@@ -0,0 +1,34 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-11 10:49
+ **/
+@Data
+public class PSnapDto {
+
+    private String id;
+
+    private String deptId;
+    private String deptName;
+
+    private String cameraId;
+
+    private String result;
+
+    private String tags ;
+
+    private Date snapTime;
+
+    private String imgName;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUploadDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUploadDto.java
new file mode 100644
index 0000000..bf6ef3c
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUploadDto.java
@@ -0,0 +1,21 @@
+package com.fzzy.igds.app.v1.dto;
+
+import lombok.Data;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-2-10 10:03
+ **/
+@Data
+public class PUploadDto {
+
+    private String status;
+
+    private String msg;
+
+    private String fileName;
+
+    private String base64Img;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUserDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUserDto.java
new file mode 100644
index 0000000..65c9341
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PUserDto.java
@@ -0,0 +1,38 @@
+package com.fzzy.igds.app.v1.dto;
+
+import lombok.Data;
+
+/**
+ * @Author: YYC
+ * @Description: 鐧诲綍鎴愬姛鍚庤繑鍥炰俊鎭皝瑁�
+ * @DateTime: 2026-1-13 11:19
+ **/
+@Data
+public class PUserDto {
+
+    private String tokenAuth;
+
+    private String username;
+
+    private String cname;
+
+    private String companyId;
+
+    private String deptId;
+    private String deptName;
+
+    private String mobile;
+
+    private String support;
+
+    private String email;
+
+    private String phone;
+
+    private String website;
+
+    private String address;
+
+    private String type;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PWorkOrderDto.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PWorkOrderDto.java
new file mode 100644
index 0000000..3f813ba
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/dto/PWorkOrderDto.java
@@ -0,0 +1,72 @@
+package com.fzzy.igds.app.v1.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-13 13:56
+ **/
+@Data
+public class PWorkOrderDto {
+    /**
+     *
+     */
+    private static final long serialVersionUID = 1L;
+
+    //宸ュ崟缂栧彿
+    private String id;
+
+    //宸ュ崟鏍囬/闂鎽樿
+    private String title;
+
+    //闂璇︾粏鎻忚堪
+    private String description;
+
+    //涓氬姟鍒嗙被
+    private String bizType;
+    //涓氬姟鍒嗙被
+    private String bizTypeName;
+
+    private String node;
+    private String nodeName;
+
+    //宸ュ崟鍒嗙被
+    private String category;
+
+    //鐘舵��
+    private String status;
+
+    //澶勭悊浜�
+    private String assigneeId;
+
+    //澶勭悊浜�
+    private String assigneeName;
+
+    //鎺ュ彈鏃堕棿
+    private Date receiveTime;
+
+    //鍒涘缓浜�
+    private String createBy;
+
+    //涓氬姟鍏宠仈涓婚敭
+    private String businessId;
+
+    //涓氬姟鍔熻兘璺緞
+    private String businessUrl;
+
+    //鎵�灞炲簱鍖�
+    private String deptId;
+    private String deptName;
+
+    //鐩戠閾惰
+    private String bankId;
+    //鍒涘缓鏃堕棿
+    private Date createTime;
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/manager/PhoneManager.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/manager/PhoneManager.java
new file mode 100644
index 0000000..d25ff65
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/manager/PhoneManager.java
@@ -0,0 +1,274 @@
+package com.fzzy.igds.app.v1.manager;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PUploadDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.app.v1.util.PhoneUtil;
+import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.igds.utils.DateUtil;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.sun.jna.platform.mac.MacFileUtils;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-14 11:47
+ **/
+@Component(PhoneManager.BEAN_ID)
+public class PhoneManager implements ApplicationContextAware {
+    public static final String BEAN_ID = "phone.phoneManager";
+    private static Map<String, PhoneService> serviceMap;
+    @Autowired
+    private RedisCache redisUtil;
+    @Resource
+    private FileService fileService;
+
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        Map<String, PhoneService> map = applicationContext
+                .getBeansOfType(PhoneService.class);
+        serviceMap = new HashMap<>();
+        for (String key : map.keySet()) {
+            serviceMap.put(map.get(key).getInterfaceId(), map.get(key));
+        }
+    }
+
+    /**
+     * 涓氬姟鎵ц鍏ュ彛
+     *
+     * @param req
+     * @param
+     * @return
+     * @throws Exception
+     */
+    @SuppressWarnings("unchecked")
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+
+        PhoneService service = serviceMap.get(req.getInterfaceId());
+        if (null == service) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111,
+                    "褰撳墠鎺ュ彛娌℃湁鎵惧埌瀹炵幇绫伙紝鏃犳硶鎵ц澶勭悊");
+        }
+
+        return service.execute(req, authUser);
+    }
+
+    /**
+     * 鏍规嵁tokenAuth鑾峰彇缂撳瓨涓殑tokenUser
+     *
+     * @param req
+     * @return
+     */
+    public AuthUser checkTokenAuth(PhoneRequest<JSONObject> req) {
+        String tokenAuth = req.getTokenAuth();
+        return redisUtil.getCacheObject(PhoneUtil.createKey(tokenAuth));
+    }
+
+
+    /**
+     * 鍊间粨鍥剧墖涓婁紶
+     *
+     * @param file
+     * @param req
+     * @return
+     * @throws IOException
+     */
+    @SuppressWarnings("unchecked")
+    public PhoneResponse<Object> phoneUploadImg(MultipartFile file,
+                                                HttpServletRequest req) throws IOException {
+        String plateNum = req.getParameter("plateNum");
+
+        PageResponse<String> result = upLoadInoutImg(file, plateNum);
+
+        if (result.getCode().equals(RespCodeEnum.CODE_0000.getCode())) {
+            //涓婁紶鎴愬姛
+            PUploadDto dtoUpload = new PUploadDto();
+            dtoUpload.setStatus("success");
+            dtoUpload.setMsg("涓婁紶鎴愬姛锛�");
+            dtoUpload.setFileName(result.getMsg());
+            return PhoneRespUtil.success(dtoUpload);
+        } else {
+            //涓婁紶澶辫触
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "涓婁紶澶辫触");
+        }
+    }
+
+
+    /**
+     * 鍊间粨鍥剧墖涓婁紶
+     *
+     * @param file
+     * @param req
+     * @return
+     * @throws IOException
+     */
+    @SuppressWarnings("unchecked")
+    public PhoneResponse<Object> phonePatrol(MultipartFile file,
+                                             HttpServletRequest req) throws IOException {
+
+        String deptId = req.getParameter("deptId");
+        PageResponse<String> result = upLoadPatrolImg(file, deptId);
+
+        if (result.getCode().equals(RespCodeEnum.CODE_0000.getCode())) {
+            //涓婁紶鎴愬姛
+            PUploadDto dtoUpload = new PUploadDto();
+            dtoUpload.setStatus("success");
+            dtoUpload.setMsg("涓婁紶鎴愬姛锛�");
+            dtoUpload.setFileName(result.getMsg());
+            return PhoneRespUtil.success(dtoUpload);
+        } else {
+            //涓婁紶澶辫触
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "涓婁紶澶辫触");
+        }
+    }
+
+    /**
+     * 鍑哄叆搴撶殑闄勪欢涓婃锛屽弬鏁版槸杞︾墝鍙�
+     *
+     * @param file
+     * @return
+     * @throws IOException
+     */
+    public PageResponse<String> upLoadInoutImg(MultipartFile file, String plateNum)
+            throws IOException {
+
+        // 鑾峰彇榛樿缂栫爜鐨勫瓧鑺傛暟缁�
+        byte[] fileByte = file.getBytes();
+
+        // 鑾峰彇鏂囦欢鐨勬簮鏂囦欢鍚嶇О
+        String oldFileName = file.getOriginalFilename();
+
+        // 鑾峰彇鏂囦欢淇濆瓨璺緞
+        String filePath = fileService.getInoutFilePath();
+
+        // 鑾峰彇鏂扮殑ID
+        String newFileName = ContextUtil.UUID();
+
+        // 鏂囦欢鍚庣紑鍚�
+        String suffixName = oldFileName.substring(oldFileName.lastIndexOf("."));
+
+        // 鍚堟垚鏂扮殑鏂囦欢鍚�
+        if (StringUtils.isEmpty(plateNum)) {
+            newFileName = newFileName + suffixName;
+        } else {
+            newFileName = plateNum + "_" + newFileName + suffixName;
+        }
+
+        // 鏂囦欢涓婁紶
+        boolean flag = uploadFile(fileByte, filePath, newFileName);
+
+        // 鍒ゆ柇鏂囦欢涓婁紶鏄惁鎴愬姛,鎴愬姛杩斿洖鏂囦欢鍚�
+        if (flag) {
+            return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(),
+                    newFileName);
+        } else {
+            return new PageResponse<String>(RespCodeEnum.CODE_1111.getCode(),
+                    "涓婁紶澶辫触");
+        }
+    }
+
+    /**
+     * 鎵撳崱鐨勯檮浠朵笂娆★紝鍙傛暟鏄溅鐗屽彿
+     *
+     * @param file
+     * @return
+     * @throws IOException
+     */
+    public PageResponse<String> upLoadPatrolImg(MultipartFile file, String deptId)
+            throws IOException {
+
+        // 鑾峰彇榛樿缂栫爜鐨勫瓧鑺傛暟缁�
+        byte[] fileByte = file.getBytes();
+
+        // 鑾峰彇鏂囦欢鐨勬簮鏂囦欢鍚嶇О
+        String oldFileName = file.getOriginalFilename();
+
+        // 鑾峰彇鏂囦欢淇濆瓨璺緞
+        String filePath = fileService.getPatrolFilePath();
+
+        // 鑾峰彇鏂扮殑ID
+        String newFileName = DateUtils.dateTimeNow();
+
+        // 鏂囦欢鍚庣紑鍚�
+        String suffixName = oldFileName.substring(oldFileName.lastIndexOf("."));
+
+        // 鍚堟垚鏂扮殑鏂囦欢鍚�
+        if (StringUtils.isEmpty(deptId)) {
+            newFileName = newFileName + suffixName;
+        } else {
+            newFileName = deptId + "_" + newFileName + suffixName;
+        }
+
+        // 鏂囦欢涓婁紶
+        boolean flag = uploadFile(fileByte, filePath, newFileName);
+
+        // 鍒ゆ柇鏂囦欢涓婁紶鏄惁鎴愬姛,鎴愬姛杩斿洖鏂囦欢鍚�
+        if (flag) {
+            return new PageResponse<String>(RespCodeEnum.CODE_0000.getCode(),
+                    newFileName);
+        } else {
+            return new PageResponse<String>(RespCodeEnum.CODE_1111.getCode(),
+                    "涓婁紶澶辫触");
+        }
+    }
+
+    /**
+     * 鏂囦欢娴佷笂浼犳枃浠�
+     *
+     * @param file
+     * @param filePath
+     * @param fileName
+     * @return
+     */
+    public static boolean uploadFile(byte[] file, String filePath, String fileName) throws IOException {
+        // 榛樿鏂囦欢涓婁紶鎴愬姛
+        boolean flag = true;
+        // new涓�涓枃浠跺璞″疄渚�
+        File targetFile = new File(filePath);
+        // 濡傛灉褰撳墠鏂囦欢鐩綍涓嶅瓨鍦ㄥ氨鑷姩鍒涘缓璇ユ枃浠舵垨鑰呯洰褰�
+        if (!targetFile.exists()) {
+            targetFile.mkdirs();
+        }
+        // 鍒涘缓鏂囦欢娴�
+        FileOutputStream fileOutputStream = new FileOutputStream(filePath + fileName);
+        try {
+            fileOutputStream.write(file);
+        } catch (FileNotFoundException e) {
+            flag = false;
+        } catch (IOException ioException) {
+            flag = false;
+        } finally {
+            fileOutputStream.flush();
+            fileOutputStream.close();
+        }
+        return flag;
+    }
+
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/mapper/PhoneMapper.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/mapper/PhoneMapper.java
new file mode 100644
index 0000000..79cc18f
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/mapper/PhoneMapper.java
@@ -0,0 +1,20 @@
+package com.fzzy.igds.app.v1.mapper;
+
+import com.fzzy.igds.app.v1.data.ParamOrder;
+import org.springframework.data.repository.query.Param;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-13 9:54
+ **/
+public interface PhoneMapper {
+
+    /**
+     * 宸ュ崟瀹℃牳
+     * @param param
+     * @return
+     */
+    int updateOrder(@Param("param") ParamOrder param);
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/PhoneService.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/PhoneService.java
new file mode 100644
index 0000000..fd27357
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/PhoneService.java
@@ -0,0 +1,17 @@
+package com.fzzy.igds.app.v1.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+
+
+/**
+ *
+ */
+public interface PhoneService {
+
+    public String getInterfaceId();
+
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception;
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5001.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5001.java
new file mode 100644
index 0000000..1e90417
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5001.java
@@ -0,0 +1,153 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamUser;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PUserDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.app.v1.util.PhoneUtil;
+import com.fzzy.igds.service.SysDeptService;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.constant.UserConstants;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.enums.UserStatus;
+import com.ruoyi.common.exception.user.*;
+import com.ruoyi.common.utils.IpUtils;
+import com.ruoyi.common.utils.MessageUtils;
+import com.ruoyi.common.utils.ShiroUtils;
+import com.ruoyi.framework.manager.AsyncManager;
+import com.ruoyi.framework.manager.factory.AsyncFactory;
+import com.ruoyi.framework.shiro.service.SysPasswordService;
+import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+
+
+/**
+ * 鐧诲綍鎺ュ彛瀹炵幇
+ *
+ * @author chen
+ */
+@Slf4j
+@Service
+public class ServiceImpl5001 implements PhoneService {
+
+    //RSA-绉侀挜
+    private static final String PRIVATE_KEY = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJo3SjBOwXnr97QrRjKcGsJnm8xuWw3bEGsqJseNTEwgYOm2+7L6wMVyIQjJfIG3UO27hubhf4r4iadfaocyCw1dNA82tRNlgGr/B9c68uSLcvFIBlKsd2z29FPC3yA+TKRpyoXC5iUS15PVzPji+d3qR8FgR2LoDmXVcah2UWhzAgMBAAECgYEAkyR8CfmrCyzFrMe5c+KUebcn5XfKMz84vDd8xtwf12bxcS4hnFU7B2ls8ZhlztLdSeeqwLKZ4jxgAy28VADAn2WKHI6z5PCezZpkcS4JbhqU4XhSeXw5UwNeBX0nnXzwO1kRgyMfMyNsUx0pDV6w42ZybufFeG3uEGt76J45j0ECQQDHhqq7LNg9nm6G0XnLERB2wz7YVfdXZKRVlwN38H/98wOIGVDhtgz/t4QGZgBBPEUbxXq1vcXhynRr7LP/W6ThAkEAxd2HbOLcWYG+h/c82/9N8BDZzZWVPzEfhq4MHGuNAvQ5R0SssfunQCQAhoAPnL++8Mz4FOKTExG+1DYAmDXj0wJAX91UKpphSznT4PLEkcyhHG6ywz6KmHLCgl0MTZQ/6sPX7ow7UDcoB7Ukue5IMQ/EJJO9YZTMfq/HQBN6aDagAQJBAMF0UpA3TlGE9RBivnIqL71j/E9wzLc4BCbdzKGM1hXpSodPsbli3qdri8f1NU6AeuNcw8FHtZyTYQyCsBohtlkCQB0Lv67uM0Wz628bfxQ1kCREoMMIuIEZPo6nRfTF4ASjnvERQehBhT2ZBWyGaDPKgG1YElOHAdI9jQvs22DtQ+4=";
+    @Autowired
+    private SysPasswordService passwordService;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private SysDeptService deptService;
+    @Autowired
+    private RedisCache redisUtil;
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5001;
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser auth)
+            throws Exception {
+        ParamUser param = JSONObject.parseObject(req.getData().toString(), ParamUser.class);
+
+        //楠岃瘉鍙傛暟
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "鐢ㄦ埛鍚嶅拰瀵嗙爜閿欒锛岃閲嶆柊鐧诲綍锛�");
+        }
+        if (StringUtils.isEmpty(param.getUsername())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "鐢ㄦ埛鍚嶅拰瀵嗙爜閿欒锛岃閲嶆柊鐧诲綍锛�");
+        }
+        if (StringUtils.isEmpty(param.getPassword())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "鐢ㄦ埛鍚嶅拰瀵嗙爜閿欒锛岃閲嶆柊鐧诲綍锛�");
+        }
+        // 鐢ㄦ埛鍚嶆垨瀵嗙爜涓虹┖ 閿欒
+        if (StringUtils.isEmpty(param.getUsername()) || StringUtils.isEmpty(param.getPassword())) {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("not.null")));
+            throw new UserNotExistsException();
+        }
+        // 瀵嗙爜濡傛灉涓嶅湪鎸囧畾鑼冨洿鍐� 閿欒
+        if (param.getPassword().length() < UserConstants.PASSWORD_MIN_LENGTH
+                || param.getPassword().length() > UserConstants.PASSWORD_MAX_LENGTH) {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+            throw new UserPasswordNotMatchException();
+        }
+        // 鐢ㄦ埛鍚嶄笉鍦ㄦ寚瀹氳寖鍥村唴 閿欒
+        if (param.getUsername().length() < UserConstants.USERNAME_MIN_LENGTH
+                || param.getUsername().length() > UserConstants.USERNAME_MAX_LENGTH) {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match")));
+            throw new UserPasswordNotMatchException();
+        }
+
+        // 鏌ヨ鐢ㄦ埛淇℃伅
+        SysUser user = userService.selectUserByLoginName(param.getUsername());
+
+        // IP榛戝悕鍗曟牎楠�
+        String blackStr = configService.selectConfigByKey("sys.login.blackIPList", user.getCompanyId());
+        if (IpUtils.isMatchedIp(blackStr, ShiroUtils.getIp())) {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("login.blocked")));
+            throw new BlackListException();
+        }
+        if (user == null) {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.not.exists")));
+            throw new UserNotExistsException();
+        }
+
+        if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.password.delete")));
+            throw new UserDeleteException();
+        }
+
+        if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
+            AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_FAIL, MessageUtils.message("user.blocked")));
+            throw new UserBlockedException();
+        }
+
+        passwordService.validate(user, param.getPassword());
+
+        AsyncManager.me().execute(AsyncFactory.recordLogininfor(param.getUsername(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
+        PUserDto phoneUserDto = new PUserDto();
+        //璁剧疆鐢ㄦ埛淇℃伅
+        phoneUserDto.setCname(user.getUserName());
+        phoneUserDto.setMobile(user.getPhonenumber());
+        phoneUserDto.setUsername(user.getLoginName());
+        phoneUserDto.setTokenAuth(UUID.randomUUID().toString().replaceAll("-", ""));
+
+        //璁剧疆AuthUser淇℃伅鍒扮紦瀛�
+        AuthUser authUser = new AuthUser();
+        authUser.setCompanyId(user.getCompanyId());
+        authUser.setUsername(user.getLoginName());
+        authUser.setCname(user.getUserName());
+        authUser.setEmail(user.getEmail());
+        authUser.setMobile(user.getPhonenumber());
+        //璁剧疆鐧诲綍鐢ㄦ埛鎵�灞炲垎搴撲俊鎭�
+        SysDept dept = deptService.getCacheDept(user.getCompanyId(),user.getDeptId().toString());
+
+        phoneUserDto.setCompanyId(authUser.getCompanyId());
+        phoneUserDto.setDeptId(dept.getDeptId().toString());
+        phoneUserDto.setDeptName(dept.getDeptName());
+        phoneUserDto.setType(dept.getType());
+
+        redisUtil.setCacheObject(PhoneUtil.createKey(phoneUserDto.getTokenAuth()),
+                authUser, 60 * 60 * 24, TimeUnit.SECONDS);
+        return PhoneRespUtil.success(phoneUserDto, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5002.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5002.java
new file mode 100644
index 0000000..e455033
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5002.java
@@ -0,0 +1,60 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamCommon;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.Dept;
+import com.fzzy.igds.service.CoreDeptService;
+import com.fzzy.igds.service.SysDeptService;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 鑾峰彇搴撳尯鍒楄〃淇℃伅
+ *
+ * @author chen
+ */
+@Service
+public class ServiceImpl5002 implements PhoneService {
+
+    @Autowired
+    private CoreDeptService deptService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5002;
+    }
+
+    @SuppressWarnings("unchecked")
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser)
+            throws Exception {
+
+        //杞寲涓哄璞�
+        ParamCommon param = JSONObject.parseObject(req.getData().toString(), ParamCommon.class);
+
+        if (null == param || StringUtils.isEmpty(param.getCompanyId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃鏍告煡锛�");
+        }
+
+
+        List<Dept> deptList = deptService.getDeptByUserTypeApp(null,authUser.getDeptId());
+
+
+        if (null == deptList || deptList.isEmpty()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_2000, "鏈幏鍙栧埌搴撳尯鍒楄〃淇℃伅锛�");
+        }
+
+        return PhoneRespUtil.success(deptList, req);
+    }
+}
\ No newline at end of file
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5101.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5101.java
new file mode 100644
index 0000000..d671aef
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5101.java
@@ -0,0 +1,131 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamOrder;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PWorkOrderDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.service.SysDeptService;
+import com.fzzy.igds.service.SysUserService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.work.data.WorkBizType;
+import com.fzzy.work.data.WorkNode;
+import com.fzzy.work.data.WorkOrderParam;
+import com.fzzy.work.data.WorkStatus;
+import com.fzzy.work.domain.WorkOrder;
+import com.fzzy.work.mapper.WorkOrderMapper;
+import com.fzzy.work.service.WorkOrderService;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 宸ュ崟绠$悊-鏌ヨ宸ュ崟鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5101 implements PhoneService {
+    @Resource
+    private WorkOrderMapper workOrderMapper;
+    @Autowired
+    private SysDeptService deptService;
+    @Autowired
+    private SysUserService userService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5101;
+    }
+
+    @Override
+    public PhoneResponse execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamOrder param = JSONObject.parseObject(req.getData().toString(), ParamOrder.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+
+        param.setCompanyId(authUser.getCompanyId());
+        QueryWrapper<WorkOrder> queryWrapper = new QueryWrapper<>();
+//        queryWrapper.eq(null != param.getStatus(), "status", WorkStatus.STATUS_30.getCode());
+        String scope = WorkOrderParam.SCOPE_SELF;
+        SysUser user = userService.getUserByLoginName(authUser.getUsername());
+        this.updateQueryWrapper(queryWrapper, user, scope);
+        List<WorkOrder> list = workOrderMapper.selectList(queryWrapper);
+        SysDept dept = deptService.getCacheDept(param.getCompanyId(), param.getDeptId().toString());
+        List<PWorkOrderDto> reqList = new ArrayList<>();
+        PWorkOrderDto orderDto;
+        if (null != dept) {
+            for (WorkOrder workOrder : list) {
+                orderDto = new PWorkOrderDto();
+                BeanUtils.copyProperties(workOrder, orderDto);
+                orderDto.setDeptName(dept.getDeptName());
+                orderDto.setBizTypeName(WorkBizType.getMsg(workOrder.getBizType()));
+                reqList.add(orderDto);
+            }
+        }
+        return PhoneRespUtil.success(reqList, req);
+    }
+
+
+    private void updateQueryWrapper(QueryWrapper<WorkOrder> queryWrapper, SysUser user, String scope) {
+
+        queryWrapper.eq("company_id", user.getCompanyId());
+
+        //濡傛灉鏄釜浜哄伐鍗曪紝澶勭悊浜轰负绌烘垨鑰呬负褰撳墠浜�
+        if (WorkOrderParam.SCOPE_SELF.equals(scope)) {
+            queryWrapper.and((wrapper)->{
+                wrapper.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());
+            }
+        }
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5102.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5102.java
new file mode 100644
index 0000000..f5d0cd7
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5102.java
@@ -0,0 +1,172 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamOrder;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.mapper.PhoneMapper;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.data.BaseResp;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.work.data.WorkNode;
+import com.fzzy.work.data.WorkStatus;
+import com.fzzy.work.domain.WorkOrder;
+import com.fzzy.work.domain.WorkOrderConf;
+import com.fzzy.work.domain.WorkOrderProcess;
+import com.fzzy.work.mapper.WorkOrderMapper;
+import com.fzzy.work.service.WorkOrderConfService;
+import com.fzzy.work.service.WorkOrderProcessService;
+import com.fzzy.work.service.WorkOrderService;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @Author: YYC
+ * @Description: 宸ュ崟绠$悊-宸ュ崟瀹℃牳
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5102 implements PhoneService {
+
+    @Resource
+    private WorkOrderService orderService;
+    @Resource
+    private WorkOrderConfService confService;
+    @Resource
+    private WorkOrderProcessService orderProcessService;
+
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5102;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamOrder param = JSONObject.parseObject(req.getData().toString(), ParamOrder.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鑾峰彇宸ュ崟
+        WorkOrder work = orderService.selectById(param.getOrderId());
+        if (null == work) return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "褰撳墠宸ュ崟宸蹭笉瀛樺湪");
+
+        if (work.getStatus().equals(WorkStatus.STATUS_50.getCode())
+                || work.getStatus().equals(WorkStatus.STATUS_60.getCode())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "褰撳墠宸ュ崟宸插鐞嗭紝璇峰埛鏂伴〉闈㈤噸璇曪紒锛�");
+        }
+        WorkOrderProcess process = new WorkOrderProcess();
+        BeanUtils.copyProperties(param, process);
+        //鍒ゆ柇鏄笉鏄寚瀹氬鐞嗕汉
+        if (StringUtils.isNotEmpty(work.getAssigneeId())) {
+            if (!work.getAssigneeId().equals(authUser.getUsername())) {
+                return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "褰撳墠宸ュ崟宸插垎閰嶅叾浠栦汉澶勭悊锛岃鍕垮鐞�");
+            }
+        }
+
+        String curNode = process.getNode();
+        //鑾峰彇澶勭悊浜�
+        if (!curNode.equals(work.getNode())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "褰撳墠宸ュ崟宸茶澶勭悊锛岃鍒锋柊椤甸潰閲嶈瘯锛侊紒");
+        }
+
+        //鑾峰彇閰嶇疆淇℃伅
+        WorkOrderConf conf = confService.selectById(work.getConfId());
+        if (null == conf) PhoneRespUtil.error(RespCodeEnum.CODE_1111, "褰撳墠宸ュ崟鏈厤缃祦绋�");
+
+
+        //娣诲姞璁板綍
+        process.setId(ContextUtil.UUID());
+        process.setCreateTime(new Date());
+        process.setOrderId(work.getId());
+        process.setAssigneeName(authUser.getCname());
+        process.setAssigneeId(authUser.getUsername());
+
+        WorkNode nextNode = this.getNextNode(work.getNode(), conf);
+
+        //閫氳繃鎿嶄綔
+        if ("pass".equals(param.getStatus())) {
+            process.setAction("閫氳繃");
+            process.setNode(work.getNode());
+            //缁撴潫鍒ゆ柇锛屽鏋滄槸缁撴潫鑺傜偣锛屽垯缁撴潫宸ュ崟
+            if (WorkNode.NODE_END.getCode().equals(nextNode.getCode())) {
+                work.setStatus(WorkStatus.STATUS_50.getCode());
+                work.setAssigneeName(process.getAssigneeName());
+                work.setAssigneeId(process.getAssigneeId());
+                work.setNode(nextNode.getCode());
+                orderService.complete(work);
+            } else {
+                work.setNode(nextNode.getCode());
+                work.setStatus(WorkStatus.STATUS_30.getCode());
+                orderService.updateData(work);
+            }
+
+            //澧炲姞瀹℃壒璁板綍
+            orderProcessService.addData(process, WorkNode.NODE_END.equals(nextNode));
+            return PhoneRespUtil.success(RespCodeEnum.CODE_0000.getCode(), req);
+        }
+
+        //鎷掔粷鎿嶄綔
+        if ("refuse".equals(param.getStatus())) {
+            process.setAction("鎷掔粷");
+            process.setNode(work.getNode());
+
+            work.setStatus(WorkStatus.STATUS_60.getCode());
+
+            orderService.complete(work);
+
+            //澧炲姞瀹℃壒璁板綍
+            orderProcessService.addData(process, true);
+
+            return PhoneRespUtil.success(RespCodeEnum.CODE_0000.getCode(), req);
+        }
+
+        return PhoneRespUtil.success(RespCodeEnum.CODE_0000.getCode(), req);
+    }
+
+
+    /**
+     * 鏍规嵁褰撳墠鑺傜偣鑾峰彇涓嬩竴涓妭鐐�
+     *
+     * @param curNode
+     * @param conf
+     * @return
+     */
+    private WorkNode getNextNode(String curNode, WorkOrderConf conf) {
+
+        if (null == conf) return WorkNode.NODE_END;
+
+        if (WorkNode.NODE_START.getCode().equals(curNode)) {
+            if (Constant.YN_Y.equals(conf.getNodeVal1())) return WorkNode.NODE1;
+            if (Constant.YN_Y.equals(conf.getNodeVal2())) return WorkNode.NODE2;
+            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
+        }
+
+        if (WorkNode.NODE1.getCode().equals(curNode)) {
+            if (Constant.YN_Y.equals(conf.getNodeVal2())) return WorkNode.NODE2;
+            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
+        }
+
+        if (WorkNode.NODE2.getCode().equals(curNode)) {
+            if (Constant.YN_Y.equals(conf.getNodeVal3())) return WorkNode.NODE3;
+        }
+
+        return WorkNode.NODE_END;
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5103.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5103.java
new file mode 100644
index 0000000..0299c94
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5103.java
@@ -0,0 +1,76 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamOrder;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.domain.Camera;
+import com.fzzy.igds.mapper.CameraMapper;
+import com.fzzy.igds.service.SecCameraService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 瑙嗛鐩戠-鐩戞帶鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5103 implements PhoneService {
+
+    @Resource
+    private CameraMapper cameraMapper;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5103;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+
+        //杞寲瀵硅薄
+        ParamOrder param = JSONObject.parseObject(req.getData().toString(), ParamOrder.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        QueryWrapper<Camera> queryWrapper = new QueryWrapper<>();
+
+        if (StringUtils.isNotBlank(authUser.getCompanyId())) {
+            queryWrapper.eq("company_id", authUser.getCompanyId());
+        }
+        if (StringUtils.isNotBlank(param.getDeptId())) {
+            queryWrapper.likeRight("dept_id", param.getDeptId());
+        }
+        List<Camera> list = cameraMapper.selectList(queryWrapper);
+
+        if (list == null || list.isEmpty()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_2000, "娌℃湁鏌ュ埌鐩戞帶璁惧淇℃伅锛�");
+        }
+
+        //杩囨护鎵嬫満鏄剧ず
+        List<Camera> result = new ArrayList<>();
+        for (Camera secCameraDto : list) {
+            if (StringUtils.isNotEmpty(secCameraDto.getPhoneShowTag()) && Constant.YN_Y.equals(secCameraDto.getPhoneShowTag())) {
+                result.add(secCameraDto);
+            }
+        }
+        return PhoneRespUtil.success(list, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5104.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5104.java
new file mode 100644
index 0000000..7bb69da
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5104.java
@@ -0,0 +1,86 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.*;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.camera.ApiCameraManager;
+import com.fzzy.igds.camera.data.ApiCameraData;
+import com.fzzy.igds.camera.data.ApiCameraResp;
+import com.fzzy.igds.domain.Camera;
+import com.fzzy.igds.service.SecCameraService;
+import com.fzzy.igds.utils.ContextUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 瑙嗛鐩戠-鐩戞帶鎾斁
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5104 implements PhoneService {
+
+    @Autowired
+    private SecCameraService secCameraService;
+    @Resource
+    private ApiCameraManager apiCameraManager;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5104;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamVideo param = JSONObject.parseObject(req.getData().toString(), ParamVideo.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        if ("DEFAULT".equals(param.getPlayType())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "绯荤粺鏈厤缃綋鍓嶆憚鍍忓ご鎾斁鏂瑰紡锛屼笉鎵ц棰勮");
+        }
+        if (com.ruoyi.common.utils.StringUtils.isEmpty(param.getId()) || com.ruoyi.common.utils.StringUtils.isEmpty(param.getPlayType())) {
+
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1005, "娌℃湁鑾峰彇鍒扮洃鎺т俊鎭紒");
+        }
+
+        // 鏍规嵁id鑾峰彇璁惧淇℃伅
+        Camera camera = secCameraService.getCameraById(ContextUtil.getCompanyId(), param.getId());
+        if (null == camera) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1005, "缂撳瓨涓病鏈夎幏鍙栧埌鎽勫儚澶翠俊鎭紒");
+        }
+
+        //閫氳繃缁熶竴鍏ュ彛鑾峰彇鎾斁鍦板潃
+        ApiCameraData apiCameraData = new ApiCameraData();
+        apiCameraData.setCompanyId(camera.getCompanyId());
+        apiCameraData.setDeptId(camera.getDeptId());
+        apiCameraData.setCameraId(camera.getId());
+        apiCameraData.setIp(camera.getIp());
+        apiCameraData.setCtrlPort(camera.getControlPort());
+        apiCameraData.setWebPort(camera.getWebPort());
+        apiCameraData.setPlayType(param.getPlayType());
+        apiCameraData.setSnapType(camera.getSnapType());
+        apiCameraData.setSn(camera.getSn());
+        apiCameraData.setChannel(camera.getChanNum());
+        apiCameraData.setLoginId(camera.getLoginId());
+        apiCameraData.setPwd(camera.getPwd());
+        apiCameraData.setUrlIn(camera.getUrlIn());
+        apiCameraData.setUrlOut(camera.getUrlOut());
+        apiCameraData.setMediaAddr(camera.getMediaAddr());
+        ApiCameraResp resp = apiCameraManager.getApiCameraService(apiCameraData.getPlayType()).getPlayAddr(apiCameraData);
+
+        return PhoneRespUtil.success(resp, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5105.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5105.java
new file mode 100644
index 0000000..f957e8a
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5105.java
@@ -0,0 +1,62 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.common.utils.DateUtil;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PPatrolDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.Patrol;
+import com.fzzy.igds.domain.PatrolRecord;
+import com.fzzy.igds.mapper.PatrolMapper;
+import com.fzzy.igds.service.PatrolService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 宸℃鐩戠-鐢靛瓙宸℃洿璁板綍
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5105 implements PhoneService {
+
+    @Resource
+    private PatrolService patrolService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5105;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (null == param.getDateTime()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        List<PatrolRecord> list = patrolService.getRecordByPatrolId(DateFormatUtils.format(param.getDateTime(), "yyyyMMdd"));
+        return PhoneRespUtil.success(list, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5106.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5106.java
new file mode 100644
index 0000000..09f39f7
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5106.java
@@ -0,0 +1,133 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.Patrol;
+import com.fzzy.igds.domain.PatrolConf;
+import com.fzzy.igds.domain.PatrolRecord;
+import com.fzzy.igds.mapper.PatrolConfMapper;
+import com.fzzy.igds.mapper.PatrolMapper;
+import com.fzzy.igds.mapper.PatrolRecordMapper;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.service.PatrolService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.config.FrameworkConfig;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 宸℃鐩戠-鐢靛瓙宸℃洿鎵撳崱
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5106 implements PhoneService {
+
+    @Resource
+    private PatrolConfMapper patrolConfMapper;
+    @Resource
+    private PatrolMapper patrolMapper;
+    @Resource
+    private PatrolRecordMapper patrolRecordMapper;
+    @Resource
+    private FileService fileService;
+
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5106;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getLongitude())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getLatitude())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getUserName())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        PatrolRecord patrolRecord = new PatrolRecord();
+        String longitude = param.getLongitude();
+        String latitude = param.getLatitude();
+        patrolRecord.setLongitude(longitude.substring(0, (longitude.indexOf(".") + 6)));
+        patrolRecord.setLatitude(latitude.substring(0, (latitude.indexOf(".") + 6)));
+        patrolRecord.setCreateTime(new Date());
+        patrolRecord.setPatrolId(DateFormatUtils.format(patrolRecord.getCreateTime(), "yyyyMMdd"));
+        patrolRecord.setId(ContextUtil.generateId());
+        patrolRecord.setCompanyId(authUser.getCompanyId());
+        patrolRecord.setCreateBy(authUser.getCname());
+        patrolRecord.setUpdateTime(new Date());
+        patrolRecord.setUpdateBy(authUser.getCname());
+        String path = fileService.getFileSavePath("PATROL") + param.getImgName();
+        patrolRecord.setImgName(path.replace(FrameworkConfig.getProfile(), "/profile/"));
+
+        QueryWrapper<Patrol> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("id", patrolRecord.getPatrolId());
+        List<Patrol> patrolList = patrolMapper.selectList(queryWrapper);
+        if (null == patrolList) {
+            Patrol patrol = new Patrol();
+            patrol.setId(patrolRecord.getPatrolId());
+
+            patrol.setDeptId(authUser.getDeptId());
+            patrol.setUserId(authUser.getUsername());
+            patrol.setUserName(authUser.getCname());
+            patrol.setCompanyId(authUser.getCompanyId());
+            patrol.setCreateBy(authUser.getCname());
+            patrol.setCreateTime(new Date());
+            patrol.setUpdateBy(authUser.getCname());
+            patrol.setUpdateTime(new Date());
+
+            QueryWrapper<PatrolConf> queryConfWrapper = new QueryWrapper<>();
+            queryConfWrapper.ge("start", new Date());
+            queryConfWrapper.le("end", new Date());
+            queryConfWrapper.eq("company_id", authUser.getCompanyId());
+            queryConfWrapper.eq("dept_id", authUser.getDeptId());
+            List<PatrolConf> confList = patrolConfMapper.selectList(queryConfWrapper);
+            if (null == confList) {
+                return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "璇峰~鍐欑浉鍏崇殑鐝淇℃伅锛侊紒");
+            }
+            PatrolConf patrolConf = confList.get(0);
+            patrol.setConfId(patrolConf.getId());
+            patrol.setConfName(patrolConf.getName());
+
+            int insert = patrolMapper.insert(patrol);
+            if (insert > 0) {
+                return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "淇濆瓨澶辫触锛侊紒");
+            }
+        }
+        int insert = patrolRecordMapper.insert(patrolRecord);
+        if (insert > 0) {
+            return PhoneRespUtil.success(RespCodeEnum.CODE_0000, req);
+        }
+        return PhoneRespUtil.error(RespCodeEnum.CODE_1007, "淇濆瓨澶辫触锛侊紒");
+
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5107.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5107.java
new file mode 100644
index 0000000..1f731ba
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5107.java
@@ -0,0 +1,60 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.common.utils.Base64Util;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.PatrolRecord;
+import com.fzzy.igds.mapper.PatrolRecordMapper;
+import com.fzzy.igds.service.FileService;
+import com.ruoyi.common.config.FrameworkConfig;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 宸℃鐩戠-宸℃洿鐓х墖鏌ョ湅
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5107 implements PhoneService {
+
+    @Resource
+    private PatrolRecordMapper patrolRecordMapper;
+    @Resource
+    private FileService fileService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5107;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        param.setCompanyId(authUser.getCompanyId());
+        PatrolRecord patrolRecord = patrolRecordMapper.selectById(param.getId());
+        if (StringUtils.isNotEmpty(patrolRecord.getImgName())) {
+            String imgData = Base64Util.getImageStr(patrolRecord.getImgName().replace("/profile/", FrameworkConfig.getProfile()));
+            patrolRecord.setImgName(imgData);
+        }
+        return PhoneRespUtil.success(patrolRecord, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5108.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5108.java
new file mode 100644
index 0000000..4c724de
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5108.java
@@ -0,0 +1,88 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PSnapDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.Dept;
+import com.fzzy.igds.domain.PatrolRecord;
+import com.fzzy.igds.domain.SnapRecord;
+import com.fzzy.igds.mapper.SnapRecordMapper;
+import com.fzzy.igds.service.CoreDeptService;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.igds.utils.DateUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 鎶撴媿绠$悊-鎶撴媿璁板綍鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5108 implements PhoneService {
+
+    @Resource
+    private SnapRecordMapper snapRecordMapper;
+    @Resource
+    private CoreDeptService deptService;
+
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5108;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (null == param.getDateTime()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        QueryWrapper<SnapRecord> queryWrapper = new QueryWrapper<>();
+
+        param.setCompanyId(ContextUtil.getCompanyId());
+        queryWrapper.eq("company_id", param.getCompanyId());
+        queryWrapper.likeRight("dept_id", param.getDeptId());
+        queryWrapper.ge("snap_time", DateUtil.getCurZero(param.getDateTime()));
+        queryWrapper.le("snap_time", DateUtil.getNextZero(param.getDateTime()));
+
+        List<SnapRecord> list = snapRecordMapper.selectList(queryWrapper);
+        PSnapDto snapDto;
+        Dept dept;
+        List<PSnapDto> snapDtoList = new ArrayList<>();
+        for (SnapRecord snapRecord:list){
+            snapDto = new PSnapDto();
+            BeanUtils.copyProperties(snapRecord,snapDto);
+            dept = deptService.getDeptById(snapRecord.getDeptId());
+            snapDto.setDeptName(dept.getKqmc());
+            snapDtoList.add(snapDto);
+        }
+        return PhoneRespUtil.success(snapDtoList, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5109.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5109.java
new file mode 100644
index 0000000..0de2004
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5109.java
@@ -0,0 +1,60 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.common.utils.Base64Util;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.PatrolRecord;
+import com.fzzy.igds.domain.SnapRecord;
+import com.fzzy.igds.mapper.SnapRecordMapper;
+import com.fzzy.igds.service.FileService;
+import com.ruoyi.common.config.FrameworkConfig;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @Author: YYC
+ * @Description: 鎶撴媿绠$悊-鎶撴媿鐓х墖鏌ョ湅
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5109 implements PhoneService {
+
+    @Resource
+    private SnapRecordMapper snapRecordMapper;
+    @Resource
+    private FileService fileService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5109;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        param.setCompanyId(authUser.getCompanyId());
+        SnapRecord snapRecord = snapRecordMapper.selectById(param.getId());
+        if (StringUtils.isNotEmpty(snapRecord.getImgName())) {
+            String imgData = Base64Util.getImageStr(snapRecord.getImgName().replace("/profile/", FrameworkConfig.getProfile()));
+            snapRecord.setImgName(imgData);
+        }
+        return PhoneRespUtil.success(snapRecord, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5110.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5110.java
new file mode 100644
index 0000000..774b106
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5110.java
@@ -0,0 +1,83 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PEventInfoDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.Dept;
+import com.fzzy.igds.domain.EventInfo;
+import com.fzzy.igds.domain.SnapRecord;
+import com.fzzy.igds.mapper.EventInfoMapper;
+import com.fzzy.igds.service.CoreDeptService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.igds.utils.DateUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: AI浜嬩欢绠$悊-AI璁板綍鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5110 implements PhoneService {
+
+    @Resource
+    private EventInfoMapper eventInfoMapper;
+    @Resource
+    private CoreDeptService deptService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5110;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (null == param.getDateTime()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        QueryWrapper<EventInfo> queryWrapper = new QueryWrapper<>();
+
+        param.setCompanyId(ContextUtil.getCompanyId());
+        queryWrapper.eq("company_id", param.getCompanyId());
+        queryWrapper.likeRight("dept_id", param.getDeptId());
+        queryWrapper.ge("time", DateUtil.getCurZero(param.getDateTime()));
+        queryWrapper.le("time", DateUtil.getNextZero(param.getDateTime()));
+
+        List<EventInfo> list = eventInfoMapper.selectList(queryWrapper);
+        List<PEventInfoDto> dtoList = new ArrayList<>();
+        PEventInfoDto eventInfoDto;
+        Dept dept;
+        for (EventInfo eventInfo:list){
+            eventInfoDto = new PEventInfoDto();
+            BeanUtils.copyProperties(eventInfo,eventInfoDto);
+            dept = deptService.getDeptById(eventInfo.getDeptId());
+            eventInfoDto.setDeptName(dept.getKqmc());
+            dtoList.add(eventInfoDto);
+        }
+        return PhoneRespUtil.success(dtoList, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5111.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5111.java
new file mode 100644
index 0000000..8d3a52f
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5111.java
@@ -0,0 +1,51 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.common.utils.Base64Util;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PPatrolDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.SnapRecord;
+import com.ruoyi.common.config.FrameworkConfig;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: YYC
+ * @Description: AI浜嬩欢绠$悊-AI宸℃洿鐓х墖鏌ョ湅
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5111 implements PhoneService {
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5111;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getImgName())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_2000, "鏈壘鍒版姄鎷嶇収鐗囷紒锛�");
+        }
+        PPatrolDto patrolDto = new PPatrolDto();
+        if (StringUtils.isNotEmpty(param.getImgName())) {
+            String imgData = Base64Util.getImageStr(param.getImgName().replace("/profile/", FrameworkConfig.getProfile()));
+            patrolDto.setImgName(imgData);
+        }
+
+        return PhoneRespUtil.success(patrolDto, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5201.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5201.java
new file mode 100644
index 0000000..d8f0a86
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5201.java
@@ -0,0 +1,54 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamCommon;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.service.DepotService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 绮儏鏁版嵁鏌ョ湅-浠撴埧鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5201 implements PhoneService {
+
+    @Resource
+    private DepotService depotService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5201;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+
+        //杞寲涓哄璞�
+        ParamCommon param = JSONObject.parseObject(req.getData().toString(), ParamCommon.class);
+        if (null == param || StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃鏍告煡锛�");
+        }
+
+        //鑾峰彇浠撳簱淇℃伅
+        List<Depot> depotList = depotService.getData(authUser.getCompanyId(), param.getDeptId(), false);
+
+        if (null == depotList || depotList.isEmpty()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鏈煡鍒版暟鎹紒");
+        }
+
+        return PhoneRespUtil.success(depotList, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5202.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5202.java
new file mode 100644
index 0000000..d2a575f
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5202.java
@@ -0,0 +1,28 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: YYC
+ * @Description: 绮儏鏁版嵁鏌ョ湅-骞虫埧浠撶伯鎯呮帴鍙�
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5202 implements PhoneService {
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5202;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        return null;
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5203.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5203.java
new file mode 100644
index 0000000..e58b8e5
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5203.java
@@ -0,0 +1,28 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: YYC
+ * @Description: 绮儏鏁版嵁鏌ョ湅-鍦嗙瓛浠撶伯鎯呮帴鍙�
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5203 implements PhoneService {
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5203;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        return null;
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5204.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5204.java
new file mode 100644
index 0000000..dbf04b2
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5204.java
@@ -0,0 +1,154 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.common.utils.DateUtil;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamDepot;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PDetailDto;
+import com.fzzy.igds.app.v1.dto.PGrainDto;
+import com.fzzy.igds.app.v1.dto.PPointDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.app.v1.util.PhoneUtil;
+import com.fzzy.igds.data.GrainData;
+import com.fzzy.igds.data.GrainLay;
+import com.fzzy.igds.data.GrainParam;
+import com.fzzy.igds.data.GrainPoint;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.DepotConf;
+import com.fzzy.igds.domain.Grain;
+import com.fzzy.igds.service.DepotConfService;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.GrainService;
+import com.fzzy.igds.utils.GrainDataBuilder;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 绮儏鏁版嵁鏌ョ湅-鍘嗗彶鏁版嵁(鏍规嵁椤电爜鏌ヨ)鎺ュ彛
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5204 implements PhoneService {
+
+    @Autowired
+    private PhoneUtil phoneUtil;
+    @Autowired
+    private DepotService depotService;
+    @Autowired
+    private GrainService coreGrainService;
+    @Autowired
+    private DepotConfService depotConfService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5204;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        ParamDepot param = JSONObject.parseObject(req.getData().toString(), ParamDepot.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId()) || StringUtils.isEmpty(param.getDepotId()) || null == param.getDateTime()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        GrainParam grainParam = new GrainParam();
+        grainParam.setDepotId(param.getDepotId());
+        grainParam.setCompanyId(authUser.getCompanyId());
+        Date date = DateUtils.parseDate(param.getDateTime(), "yyyy-MM");
+        //璁剧疆鏌ヨ鏃堕棿,鏈堢殑绗竴澶╁埌鏈�鍚庝竴澶�
+        grainParam.setStart(DateUtil.getMonthFirst(date));
+        grainParam.setEnd(DateUtil.getNextMonthFirst(date));
+        grainParam.setDeptId(param.getDeptId());
+
+        //鏌ヨ绮儏鏁版嵁
+        List<Grain> list = coreGrainService.listData(grainParam);
+        Depot depot = depotService.getCacheDepot(authUser.getCompanyId(), param.getDepotId());
+        if (null == list || list.isEmpty()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1005, "璇ヤ粨搴撴殏鏃犵伯鎯呮暟鎹紒");
+        }
+
+        //杩斿洖鏁版嵁灏佽
+        List<PGrainDto> dtoList = new ArrayList<>();
+        PGrainDto dto;
+        List<PPointDto> listPoints;
+        List<PDetailDto> listDetail;
+        PPointDto pointDto;
+        PDetailDto detailDto;
+
+        DepotConf depotConf;
+        GrainData data;
+        Depot depotData;
+        List<GrainData> result = new ArrayList<>();
+        for (Grain grain : list) {
+            depotConf = depotConfService.getCacheDepotConfByDepotId(grain.getCompanyId(), grain.getDepotId());
+            data = new GrainData();
+            BeanUtils.copyProperties(grain, data);
+            // 娣诲姞浠撳簱淇℃伅
+            depotData = depotService.getCacheDepot(param.getCompanyId(), param.getDepotId());
+            GrainDataBuilder.updateGrainData(data, depotConf, depotData.getDepotType());
+            result.add(data);
+        }
+        for (GrainData grainData : result) {
+            dto = new PGrainDto();
+            dto.setDepotId(grainData.getDepotId());
+            dto.setDepotName(phoneUtil.getDepotName(authUser.getCompanyId(),dto.getDepotId()));
+            dto.setDepotType(depot.getDepotType());
+            dto.setReceiveDate(grainData.getReceiveDate());
+            dto.setTempIn(grainData.getTempIn());
+            dto.setHumidityIn(grainData.getHumidityIn());
+            dto.setTempOut(grainData.getTempOut());
+            dto.setHumidityOut(grainData.getHumidityOut());
+            dto.setTempMax(grainData.getTempMax());
+            dto.setTempMin(grainData.getTempMin());
+            dto.setTempAve(grainData.getTempAve());
+            dto.setCable(grainData.getCable().replaceAll(",","-"));
+            if(StringUtils.isNotEmpty(grainData.getCableCir())){
+                dto.setCableCir(grainData.getCableCir().replaceAll(",", "-"));
+            }
+
+            listPoints = new ArrayList<>();
+            for (GrainPoint point : grainData.getListPoints()) {
+                pointDto = new PPointDto();
+                pointDto.setX(point.getX());
+                pointDto.setY(point.getY());
+                pointDto.setZ(point.getZ());
+                pointDto.setFz(point.getFz());
+                pointDto.setTemp(point.getTemp());
+                listPoints.add(pointDto);
+            }
+            dto.setPoints(listPoints);
+
+            listDetail = new ArrayList<>();
+            for (GrainLay lay : grainData.getListLays()) {
+                detailDto = new PDetailDto();
+                detailDto.setFz(lay.getFz());
+                detailDto.setFzName(lay.getFz() + "灞�");
+                detailDto.setTempMax(lay.getTempMax());
+                detailDto.setTempMin(lay.getTempMin());
+                detailDto.setTempAve(lay.getTempAve());
+                listDetail.add(detailDto);
+            }
+            dto.setDetails(listDetail);
+
+            dtoList.add(dto);
+        }
+        return PhoneRespUtil.success(dtoList, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5205.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5205.java
new file mode 100644
index 0000000..477b12a
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5205.java
@@ -0,0 +1,144 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamDepot;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PDetailDto;
+import com.fzzy.igds.app.v1.dto.PGrainDto;
+import com.fzzy.igds.app.v1.dto.PPointDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.app.v1.util.PhoneUtil;
+import com.fzzy.igds.data.GrainData;
+import com.fzzy.igds.data.GrainLay;
+import com.fzzy.igds.data.GrainParam;
+import com.fzzy.igds.data.GrainPoint;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.DepotConf;
+import com.fzzy.igds.domain.Grain;
+import com.fzzy.igds.service.DepotConfService;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.GrainService;
+import com.fzzy.igds.utils.GrainDataBuilder;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 绮儏鏁版嵁鏌ョ湅-骞虫埧浠撶伯鎯呮帴鍙�
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5205 implements PhoneService {
+
+    @Autowired
+    private PhoneUtil phoneUtil;
+    @Autowired
+    private GrainService grainService;
+    @Autowired
+    private DepotService depotService;
+    @Autowired
+    private DepotConfService depotConfService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5205;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        ParamDepot param = JSONObject.parseObject(req.getData().toString(), ParamDepot.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId()) || StringUtils.isEmpty(param.getDepotId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        GrainParam grainParam = new GrainParam();
+        grainParam.setDeptId(param.getDeptId());
+        grainParam.setDepotId(param.getDepotId());
+        grainParam.setCompanyId(authUser.getCompanyId());
+        grainParam.setLimit(1);//璁剧疆榛樿鍙幏鍙栦竴鏉℃暟鎹�
+
+        //鏌ヨ绮儏鏁版嵁
+        List<Grain> list = grainService.listData(grainParam);
+
+        Depot depot = depotService.getCacheDepot(authUser.getCompanyId(), param.getDepotId());
+        if (null == list || list.isEmpty()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_2000, req, "璇ヤ粨搴撴殏鏃犵伯鎯呮暟鎹紒");
+        }
+        DepotConf depotConf;
+        GrainData data;
+        Depot depotData;
+        List<GrainData> result = new ArrayList<>();
+        for (Grain grain : list) {
+            depotConf = depotConfService.getCacheDepotConfByDepotId(grain.getCompanyId(), grain.getDepotId());
+            data = new GrainData();
+            BeanUtils.copyProperties(grain, data);
+            // 娣诲姞浠撳簱淇℃伅
+            depotData = depotService.getCacheDepot(param.getCompanyId(), param.getDepotId());
+            GrainDataBuilder.updateGrainData(data, depotConf, depotData.getDepotType());
+            result.add(data);
+        }
+
+        //鍙栨渶杩戞椂闂寸殑绮儏鏁版嵁
+        GrainData grainData = result.get(0);
+
+        //杞崲鍝嶅簲鏁版嵁
+        PGrainDto dto = new PGrainDto();
+        dto.setDepotId(grainData.getDepotId());
+        dto.setDepotName(phoneUtil.getDepotName(authUser.getCompanyId(), dto.getDepotId()));
+        dto.setDepotType(depot.getDepotType());
+        dto.setReceiveDate(grainData.getReceiveDate());
+        dto.setTempIn(grainData.getTempIn());
+        dto.setHumidityIn(grainData.getHumidityIn());
+        dto.setTempOut(grainData.getTempOut());
+        dto.setHumidityOut(grainData.getHumidityOut());
+        dto.setTempMax(grainData.getTempMax());
+        dto.setTempMin(grainData.getTempMin());
+        dto.setTempAve(grainData.getTempAve());
+        dto.setCable(grainData.getCable().replaceAll(",","-"));
+        if(StringUtils.isNotEmpty(grainData.getCableCir())){
+            dto.setCableCir(grainData.getCableCir().replaceAll(",", "-"));
+        }
+
+        List<PPointDto> listPoints = new ArrayList<>();
+        PPointDto pointDto;
+        for (GrainPoint point : grainData.getListPoints()) {
+            pointDto = new PPointDto();
+            pointDto.setX(point.getX());
+            pointDto.setY(point.getY());
+            pointDto.setZ(point.getZ());
+            pointDto.setFz(point.getFz());
+            pointDto.setTemp(point.getTemp());
+            listPoints.add(pointDto);
+        }
+        dto.setPoints(listPoints);
+
+        List<PDetailDto> listDetail = new ArrayList<>();
+        PDetailDto detailDto;
+
+        for (GrainLay lay : grainData.getListLays()) {
+            detailDto = new PDetailDto();
+            detailDto.setFz(lay.getFz());
+            detailDto.setFzName(lay.getFz() + "灞�");
+            detailDto.setTempMax(lay.getTempMax());
+            detailDto.setTempMin(lay.getTempMin());
+            detailDto.setTempAve(lay.getTempAve());
+            listDetail.add(detailDto);
+        }
+        dto.setDetails(listDetail);
+
+        return PhoneRespUtil.success(dto, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5206.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5206.java
new file mode 100644
index 0000000..1ca7edc
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5206.java
@@ -0,0 +1,94 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamDepot;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PQuantityDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.constant.DepotType;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.Quantity;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.QuantityService;
+import com.fzzy.igds.service.SysDeptService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 鏂欎綅鎬昏-鏂欎綅鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5206 implements PhoneService {
+
+    @Resource
+    private DepotService depotService;
+    @Resource
+    private QuantityService quantityService;
+    @Autowired
+    private SysDeptService deptService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5206;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+
+        ParamDepot param = JSONObject.parseObject(req.getData().toString(), ParamDepot.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            param.setDeptId(authUser.getDeptId());
+        }
+        //鑾峰彇鎵�鏈夌瓛浠撳強娴呭渾浠�
+        List<Depot> depotList = depotService.getCacheDepotList(param.getDeptId());
+        if (null == depotList || depotList.isEmpty()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鏈煡鍒颁俊鎭紒锛�");
+        }
+
+        List<PQuantityDto> list = new ArrayList<>();
+        List<Quantity> quantityList;
+        PQuantityDto quantity;
+        SysDept dept;
+        for (Depot depot : depotList) {
+            if (DepotType.TYPE_02.getCode().equals(depot.getDepotType()) || DepotType.TYPE_04.getCode().equals(depot.getDepotType())) {
+                quantityList = quantityService.getQuantityList(depot.getId(), 1);
+                quantity = new PQuantityDto();
+                if (null == quantityList || quantityList.isEmpty()) {
+                    quantity.setDepotId(depot.getId());
+                } else {
+                    BeanUtils.copyProperties(quantityList.get(0),quantity);
+                }
+
+                dept = deptService.getCacheDept(depot.getCompanyId(),depot.getDeptId());
+                quantity.setDepotData(depot);
+                quantity.setDeptName(dept.getDeptName());
+                list.add(quantity);
+            }
+        }
+
+        return PhoneRespUtil.success(list, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5207.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5207.java
new file mode 100644
index 0000000..4b92d98
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5207.java
@@ -0,0 +1,95 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PQuantityDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.Quantity;
+import com.fzzy.igds.domain.SnapRecord;
+import com.fzzy.igds.mapper.QuantityMapper;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.SysDeptService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.igds.utils.DateUtil;
+import com.ruoyi.common.core.domain.entity.SysDept;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 鏁伴噺鐩戞祴-鏁伴噺鐩戞祴鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5207 implements PhoneService {
+    @Resource
+    private QuantityMapper quantityMapper;
+    @Autowired
+    private SysDeptService deptService;
+    @Resource
+    private DepotService depotService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5207;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (null == param.getDateTime()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        QueryWrapper<Quantity> queryWrapper = new QueryWrapper<>();
+
+        param.setCompanyId(ContextUtil.getCompanyId());
+        queryWrapper.eq("company_id", param.getCompanyId());
+        queryWrapper.likeRight("dept_id", param.getDeptId());
+        queryWrapper.ge("receive_date", DateUtil.getCurZero(param.getDateTime()));
+        queryWrapper.le("receive_date", DateUtil.getNextZero(param.getDateTime()));
+
+        List<Quantity> list = quantityMapper.selectList(queryWrapper);
+
+        if (null == list || list.isEmpty()) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鏈煡鍒颁俊鎭紒锛�");
+        }
+        PQuantityDto quantityDto;
+        SysDept dept;
+        Depot depot;
+        List<PQuantityDto> dtoList = new ArrayList<>();
+        for (Quantity quantity : list) {
+            dept = deptService.getCacheDept(quantity.getCompanyId(), quantity.getDeptId());
+            depot = depotService.getCacheDepot(quantity.getCompanyId(), quantity.getDepotId());
+            quantityDto = new PQuantityDto();
+            BeanUtils.copyProperties(quantity, quantityDto);
+            quantityDto.setDeptName(dept.getDeptName());
+            quantityDto.setDepotData(depot);
+
+            dtoList.add(quantityDto);
+        }
+        return PhoneRespUtil.success(dtoList, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5208.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5208.java
new file mode 100644
index 0000000..26e1f3a
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5208.java
@@ -0,0 +1,65 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.common.utils.Base64Util;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamPatrol;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PPatrolDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.domain.FileInfo;
+import com.fzzy.igds.domain.PatrolRecord;
+import com.fzzy.igds.service.FileService;
+import com.ruoyi.common.config.FrameworkConfig;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 鏁伴噺鐩戞祴-鐩戞祴鐓х墖
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5208 implements PhoneService {
+    @Autowired
+    private FileService fileService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5208;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+        //杞寲瀵硅薄
+        ParamPatrol param = JSONObject.parseObject(req.getData().toString(), ParamPatrol.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        param.setCompanyId(authUser.getCompanyId());
+        List<FileInfo> fileList = fileService.listFile(param.getCompanyId(), param.getId());
+        List<PPatrolDto> patrolDtoList = new ArrayList<>();
+        PPatrolDto patrolDto;
+        for (FileInfo fileInfo : fileList) {
+            if (StringUtils.isNotEmpty(fileInfo.getFilePath())) {
+                String imgData = Base64Util.getImageStr(fileInfo.getFilePath().replace("/profile/", FrameworkConfig.getProfile()));
+                patrolDto = new PPatrolDto();
+                patrolDto.setBase64Img(imgData);
+                patrolDtoList.add(patrolDto);
+            }
+        }
+        return PhoneRespUtil.success(patrolDtoList, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5401.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5401.java
new file mode 100644
index 0000000..5fd3ce3
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5401.java
@@ -0,0 +1,111 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamInoutHandle;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PInoutDto;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.FoodLevel;
+import com.fzzy.igds.constant.FoodVariety;
+import com.fzzy.igds.constant.InoutConstant;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.domain.InoutRecord;
+import com.fzzy.igds.mapper.InoutRecordMapper;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.InoutRecordService;
+import com.fzzy.igds.utils.DateUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 绮璐攢-鍏ュ簱寰呭�间粨鍒楄〃
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5401 implements PhoneService {
+    @Resource
+    private InoutRecordMapper inoutRecordMapper;
+    @Resource
+    private DepotService depotService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5401;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+
+        ParamInoutHandle param = JSONObject.parseObject(req.getData().toString(), ParamInoutHandle.class);
+
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId()) || StringUtils.isEmpty(param.getType())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+
+        if (StringUtils.isEmpty(param.getCompanyId())) {
+            param.setCompanyId(authUser.getCompanyId());
+        }
+        //璁剧疆娴佺▼涓哄�间粨娴佺▼
+        param.setProgress(InoutConstant.PROGRESS_HANDLE);
+        QueryWrapper<InoutRecord> queryWrapper = new QueryWrapper<>();
+        if (com.ruoyi.common.utils.StringUtils.isNotBlank(param.getCompanyId())) {
+            queryWrapper.eq("company_id", param.getCompanyId());
+        }
+        if (StringUtils.isNotBlank(param.getDeptId())) {
+            queryWrapper.likeRight("dept_id", param.getDeptId());
+        }
+
+        if (StringUtils.isNotBlank(param.getId())) {
+            queryWrapper.eq("id", param.getId());
+        }
+        if (StringUtils.isNotBlank(param.getPlateNum())) {
+            queryWrapper.like("plate_num", param.getPlateNum());
+        }
+
+        if (StringUtils.isNotBlank(param.getProgress())) {
+            queryWrapper.eq("progress", param.getProgress());
+        }
+        if (StringUtils.isNotBlank(param.getType())) {
+            queryWrapper.eq("type", param.getType());
+        }
+
+        queryWrapper.ne("record_status", Constant.RECORD_STATUS_DEL); //涓嶆槸鍒犻櫎鐨勫崟瀛愶紝鍗虫甯哥殑鍗曞瓙
+        queryWrapper.orderByDesc("create_time");
+        List<InoutRecord> list = inoutRecordMapper.selectList(queryWrapper);
+        List<PInoutDto> listDto = new ArrayList<>();
+        PInoutDto inoutData ;
+        for (InoutRecord record : list) {
+            inoutData = new PInoutDto();
+            BeanUtils.copyProperties(record, inoutData);
+            Depot depot = depotService.getCacheDepot(authUser.getCompanyId(), record.getDepotId());
+
+            //璁剧疆浠撳簱銆佺伯椋熷搧绉嶃�佺伯椋熺瓑绾с�佷繚绠″憳绛夊悕绉�
+            inoutData.setDepotName(depot.getName());
+            inoutData.setStoreKeeper(depot.getStoreKeeper());
+            inoutData.setStoreKeeperName(depot.getStoreKeeperName());
+            inoutData.setFoodVarietyName(FoodVariety.getMsg(record.getFoodVariety()));
+            inoutData.setFoodLevelName(FoodLevel.getMsg(record.getFoodLevel()));
+            listDto.add(inoutData);
+        }
+        return PhoneRespUtil.success(listDto, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5402.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5402.java
new file mode 100644
index 0000000..78324c2
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5402.java
@@ -0,0 +1,194 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamInoutHandle;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.constant.InoutConstant;
+import com.fzzy.igds.data.FileData;
+import com.fzzy.igds.data.InoutData;
+import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.domain.FileInfo;
+import com.fzzy.igds.domain.InoutRecord;
+import com.fzzy.igds.domain.InoutSysConf;
+import com.fzzy.igds.mapper.InoutRecordMapper;
+import com.fzzy.igds.service.FileService;
+import com.fzzy.igds.service.InoutConfService;
+import com.fzzy.igds.service.InoutRecordService;
+import com.fzzy.igds.utils.ContextUtil;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 绮璐攢-鍏ュ簱鍊间粨鎻愪氦
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5402 implements PhoneService {
+    @Resource
+    private InoutRecordMapper inoutRecordMapper;
+    @Resource
+    private InoutRecordService inoutRecordService;
+    @Resource
+    private InoutConfService inoutConfService;
+    @Resource
+    private FileService fileService;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5402;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+
+        //杞寲涓哄璞�
+        ParamInoutHandle param = JSONObject.parseObject(req.getData().toString(), ParamInoutHandle.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        param.setCompanyId(authUser.getCompanyId());
+        param.setDeptId(authUser.getDeptId());
+
+        QueryWrapper<InoutRecord> queryWrapper = new QueryWrapper<>();
+        if (StringUtils.isNotBlank(param.getCompanyId())) {
+            queryWrapper.eq("company_id", param.getCompanyId());
+        }
+        if (StringUtils.isNotBlank(param.getId())) {
+            queryWrapper.eq("id", param.getId());
+        }
+        //鍊间粨鎻愪氦鍓嶏紝鍐嶆纭褰撳墠娴佹按鏄惁涓哄�间粨娴佺▼
+        InoutRecord inoutRecord = inoutRecordMapper.selectOne(queryWrapper);
+        if (!InoutConstant.PROGRESS_HANDLE.equals(inoutRecord.getProgress())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "璇ュ崟瀛愪笉鍦ㄥ�间粨鐘舵�侊紝涓嶈兘杩涜鍊间粨鎻愪氦锛�");
+        }
+
+        InoutData data = new InoutData();
+        BeanUtils.copyProperties(inoutRecord, data);
+        //鍊间粨缁撴潫鎻愪氦,闇�鏇存柊娴佺▼鐘舵�併�佸�间粨缁撴潫鏃堕棿銆佸�间粨浜恒�佸�间粨鎵i噸绛�
+        data.setDeOther(param.getDeHandle());
+        data.setHandleUser(authUser.getCname());
+        //璁剧疆鍊间粨鍥剧墖淇℃伅
+        List<FileInfo> files = new ArrayList<>();
+        FileInfo fileData1 = new FileInfo();
+        FileInfo fileData2 = new FileInfo();
+        fileData1.setFileName(param.getFileName1());
+        fileData2.setFileName(param.getFileName2());
+        files.add(fileData1);
+        files.add(fileData2);
+        data.setFiles(files);
+
+        if (null == data.getHandleUser()) {
+            data.setHandleUser(authUser.getUsername());
+        }
+        InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(authUser.getCompanyId(), data.getDeptId());
+        if (null == inoutSysConf) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鎻愮ず锛氬綋鍓嶇郴缁熶腑娴佺▼閰嶇疆寮傚父锛岃鑱旂郴绠$悊鍛�");
+        }
+
+        // 鑾峰彇涓嬩竴涓祦绋嬬姸鎬�
+        String curProgress = data.getProgress();
+        String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
+        data.setProgress(nextProgress);
+        data.setHandleEnd(new Date());
+
+        // 鎵ц鏁版嵁鏇存柊
+        int num = inoutRecordService.updateInoutRecord(data);
+        if (num == 0) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鎻愪氦澶辫触锛�");
+        }
+        //闄勪欢澶勭悊
+        fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
+
+        return PhoneRespUtil.success(RespCodeEnum.CODE_0000, req);
+//        if (param.getType().equals(PhoneConstant.PHONE_INOUT_START)) {
+//            //鍊间粨寮�濮嬫彁浜わ紝鍙洿鏂板�间粨寮�濮嬫椂闂�
+//            int i = inoutRecordService.updateInoutRecord(data);
+//            if (i > 0) {
+//                return PhoneRespUtil.success(RespCodeEnum.CODE_0000, req);
+//            }
+//            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鎻愪氦澶辫触锛�");
+//        } else {
+//            //鍊间粨缁撴潫鎻愪氦,闇�鏇存柊娴佺▼鐘舵�併�佸�间粨缁撴潫鏃堕棿銆佸�间粨浜恒�佸�间粨鎵i噸绛�
+//            data.setDeOther(param.getDeHandle());
+//            data.setHandleUser(authUser.getCname());
+//            //璁剧疆鍊间粨鍥剧墖淇℃伅
+//            List<FileInfo> files = new ArrayList<>();
+//            FileInfo fileData1 = new FileInfo();
+//            FileInfo fileData2 = new FileInfo();
+//            fileData1.setFileName(param.getFileName1());
+//            fileData2.setFileName(param.getFileName2());
+//            files.add(fileData1);
+//            files.add(fileData2);
+//            data.setFiles(files);
+//
+//            if (null == data.getHandleUser()) {
+//                data.setHandleUser(authUser.getUsername());
+//            }
+//            InoutSysConf inoutSysConf = inoutConfService.getCacheInoutSysConf(authUser.getCompanyId(), data.getDeptId());
+//            if (null == inoutSysConf) {
+//                return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鎻愮ず锛氬綋鍓嶇郴缁熶腑娴佺▼閰嶇疆寮傚父锛岃鑱旂郴绠$悊鍛�");
+//            }
+//
+//            // 鑾峰彇涓嬩竴涓祦绋嬬姸鎬�
+//            String curProgress = data.getProgress();
+//            String nextProgress = getNextProgress(curProgress, data.getType(), inoutSysConf);
+//            data.setProgress(nextProgress);
+//            data.setHandleEnd(new Date());
+//
+//            // 鎵ц鏁版嵁鏇存柊
+//            int num = inoutRecordService.updateInoutRecord(data);
+//            if (num == 0) {
+//                return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鎻愪氦澶辫触锛�");
+//            }
+//            //闄勪欢澶勭悊
+//            fileService.saveInoutFiles(data.getFiles(), data.getId(), curProgress, "INOUT");
+//
+//            return PhoneRespUtil.success(RespCodeEnum.CODE_0000, req);
+//        }
+    }
+
+
+    /**
+     * 鑾峰彇涓嬩竴娴佺▼
+     *
+     * @param curProgress
+     * @param type
+     * @param sysConf
+     * @return
+     */
+    private String getNextProgress(String curProgress, String type, InoutSysConf sysConf) {
+        String nextProgress = null;
+        List<String> list = null;
+        if (Constant.TYPE_IN.equals(type)) {
+            list = Arrays.asList(sysConf.getProgressIn().split("-"));
+        }
+        if (Constant.TYPE_OUT.equals(type)) {
+            list = Arrays.asList(sysConf.getProgressOut().split("-"));
+        }
+        if (list != null) {
+            for (int i = 0; i < list.size() - 1; i++) {
+                if (curProgress.equals(list.get(i))) {
+                    nextProgress = list.get(i + 1);
+                    break;
+                }
+            }
+        }
+        return nextProgress;
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5405.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5405.java
new file mode 100644
index 0000000..03ff056
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/service/impl/ServiceImpl5405.java
@@ -0,0 +1,122 @@
+package com.fzzy.igds.app.v1.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.constant.PhoneConstant;
+import com.fzzy.igds.app.v1.data.AuthUser;
+import com.fzzy.igds.app.v1.data.ParamInoutRecord;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+import com.fzzy.igds.app.v1.dto.PInoutDto;
+import com.fzzy.igds.app.v1.dto.PInoutSum;
+import com.fzzy.igds.app.v1.service.PhoneService;
+import com.fzzy.igds.app.v1.util.PhoneRespUtil;
+import com.fzzy.igds.app.v1.util.PhoneUtil;
+import com.fzzy.igds.constant.FoodVariety;
+import com.fzzy.igds.constant.InoutConstant;
+import com.fzzy.igds.constant.InoutProgress;
+import com.fzzy.igds.data.InoutData;
+import com.fzzy.igds.data.InoutParam;
+import com.fzzy.igds.domain.InoutRecord;
+import com.fzzy.igds.service.InoutRecordService;
+import com.fzzy.igds.utils.NumberUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: YYC
+ * @Description: 绮疄鏃惰褰�
+ * @DateTime: 2026-1-12 14:43
+ **/
+@Service
+public class ServiceImpl5405 implements PhoneService {
+
+    @Resource
+    private InoutRecordService inoutRecordService;
+    @Resource
+    private PhoneUtil phoneUtil;
+
+    @Override
+    public String getInterfaceId() {
+        return PhoneConstant.API_PHONE_5405;
+    }
+
+    @Override
+    public PhoneResponse<Object> execute(PhoneRequest<JSONObject> req, AuthUser authUser) throws Exception {
+
+        //杞寲涓哄璞�
+        ParamInoutRecord param = JSONObject.parseObject(req.getData().toString(), ParamInoutRecord.class);
+        if (null == param) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        //鍙傛暟楠岃瘉
+        if (StringUtils.isEmpty(param.getDeptId())) {
+            return PhoneRespUtil.error(RespCodeEnum.CODE_1111, "鍙傛暟鏈夎锛岃閲嶈瘯锛侊紒");
+        }
+        InoutParam inoutParam = new InoutParam();
+        inoutParam.setDeptId(param.getDeptId());
+        inoutParam.setStart(new Date());
+        inoutParam.setEnd(new Date());
+        //褰撳墠娴佺▼涓�
+        List<InoutRecord> listProgress = inoutRecordService.listInout(inoutParam);
+
+        PInoutSum dto = new PInoutSum();
+
+        double inNum = 0.0;
+        double inCompleteNum = 0.0;
+        double outNum = 0.0;
+        double outCompleteNum = 0.0;
+
+        //缁熻鏈畬鎴愭儏鍐�
+        List<PInoutDto> listDto = new ArrayList<>();
+        PInoutDto inoutDto;
+        if (listProgress != null && !listProgress.isEmpty()) {
+            for (InoutRecord inoutData : listProgress) {
+                inoutDto = new PInoutDto();
+                BeanUtils.copyProperties(inoutData, inoutDto);
+
+                if (InoutConstant.TYPE_IN.equals(inoutData.getType())) {
+                    inoutDto.setTypeName("鍏ュ簱");
+                    inNum++;
+                } else {
+                    inoutDto.setTypeName("鍑哄簱");
+                    outNum++;
+                }
+                if (InoutConstant.TYPE_IN.equals(inoutData.getType()) && InoutConstant.PROGRESS_RECORD.equals(inoutData.getProgress())) {
+                    inCompleteNum++;
+                } else if (InoutConstant.TYPE_OUT.equals(inoutData.getType()) && InoutConstant.PROGRESS_RECORD.equals(inoutData.getProgress())) {
+                    outCompleteNum++;
+                }
+
+                inoutDto.setProgressName(InoutProgress.getMsg(inoutData.getProgress()));
+                inoutDto.setDepotName(phoneUtil.getDepotName(authUser.getCompanyId(), inoutData.getDepotId()));
+                inoutDto.setFoodVarietyName(FoodVariety.getMsg(inoutData.getFoodVariety()));
+                if (!InoutConstant.PROGRESS_RECORD.equals(inoutData.getProgress())) {
+                    listDto.add(inoutDto);
+                }
+            }
+        }
+        dto.setListInout(listDto);
+
+        //璁剧疆鐧昏鏁般�佸畬鎴愭暟浠ュ強瀹屾垚鐜�
+        dto.setInCompleteNum(inCompleteNum);
+        dto.setInSumNum(inNum);
+        if (dto.getInSumNum() != 0) {
+            dto.setPerInComplete(NumberUtil.keepPrecision(inCompleteNum / inNum * 100, 2));
+        }
+
+        dto.setOutCompleteNum(outCompleteNum);
+        dto.setOutSumNum(outNum);
+        if (dto.getOutSumNum() != 0) {
+            dto.setPerOutComplete(NumberUtil.keepPrecision(outCompleteNum / outNum * 100, 2));
+        }
+        dto.setTime(new Date());
+        return PhoneRespUtil.success(dto, req);
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneRespUtil.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneRespUtil.java
new file mode 100644
index 0000000..3655ad7
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneRespUtil.java
@@ -0,0 +1,72 @@
+package com.fzzy.igds.app.v1.util;
+
+
+import com.fzzy.common.constant.RespCodeEnum;
+import com.fzzy.igds.app.v1.data.PhoneRequest;
+import com.fzzy.igds.app.v1.data.PhoneResponse;
+
+/**
+ * @Author: YYC
+ * @Description:
+ * @DateTime: 2026-1-12 17:53
+ **/
+public class PhoneRespUtil {
+
+    /**
+     * 鍝嶅簲鎴愬姛锛屾牴鎹畆eq鑷姩鍥炲~闇�瑕佺殑鍙傛暟
+     *
+     * @param data
+     * @param req
+     * @return
+     */
+    public static PhoneResponse success(Object data, PhoneRequest req) {
+        return new PhoneResponse(RespCodeEnum.CODE_0000.getCode(),RespCodeEnum.CODE_0000.getMsg(), req.getOutId(), data);
+    }
+
+    public static PhoneResponse success(Object data) {
+        return new PhoneResponse(RespCodeEnum.CODE_0000.getCode(),RespCodeEnum.CODE_0000.getMsg(), data);
+    }
+
+    /**
+     * 鍝嶅簲寮傚父鐨勫皝瑁咃紝鑷畾涔夊紓甯哥紪鐮佸拰鍘熷洜
+     *
+     * @param code
+     * @param msg
+     * @param req
+     * @return
+     */
+    public static PhoneResponse error(RespCodeEnum code, PhoneRequest req, String msg) {
+        return error(code,req.getOutId(),msg);
+    }
+
+    public static PhoneResponse error(RespCodeEnum code, String msg) {
+        return new PhoneResponse(code,null, msg);
+    }
+
+    /**
+     *
+     * @param code
+     * @param outId
+     * @param msg
+     * @return
+     */
+    public static PhoneResponse error(RespCodeEnum code, String outId, String msg) {
+        if (null == msg) {
+            return new PhoneResponse(code,outId, code.getMsg() );
+        }
+        return new PhoneResponse(code, outId, msg);
+    }
+
+    /**
+     * 鍝嶅簲寮傚父鐨勫皝瑁咃紝閫氳繃缂栫爜鑾峰彇寮傚父鍘熷洜
+     *
+     * @param code
+     * @param req
+     * @return
+     */
+    public static PhoneResponse error(RespCodeEnum code, PhoneRequest req) {
+        return new PhoneResponse(code.getCode(),code.getMsg(), req.getOutId(),null);
+    }
+
+
+}
diff --git a/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneUtil.java b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneUtil.java
new file mode 100644
index 0000000..827e453
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/java/com/fzzy/igds/app/v1/util/PhoneUtil.java
@@ -0,0 +1,88 @@
+package com.fzzy.igds.app.v1.util;
+
+import com.fzzy.igds.constant.Constant;
+import com.fzzy.igds.domain.Depot;
+import com.fzzy.igds.service.DepotService;
+import com.fzzy.igds.service.DicService;
+import com.ruoyi.common.core.domain.entity.SysDictData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author chen
+ */
+@Component
+public class PhoneUtil {
+    @Autowired
+    private DicService triggerService;
+    @Resource
+    private DepotService depotService;
+
+
+    private static final String KEY_API_PHONE_TOKEN = "KEY_API_PHONE_TOKEN";
+
+    /**
+     * 鍒涘缓缂撳瓨Key
+     *
+     * @param token
+     * @return
+     */
+    public static String createKey(String token) {
+        return Constant.APP_NAME + ":" + KEY_API_PHONE_TOKEN + ":" + token;
+    }
+
+    /**
+     * 鑾峰彇鍑哄叆搴撴祦绋嬪悕绉�
+     *
+     * @param companyId
+     * @param progress
+     * @return
+     */
+    public String getProgressName(String companyId, String progress) {
+        List<SysDictData> list = triggerService.getDictDataByType(companyId, "PROCESS_STATUS_");
+        String progressName = "";
+        for (SysDictData dicTrigger : list) {
+            if (dicTrigger.getDictValue().equals(progress)) {
+                progressName = dicTrigger.getDictLabel();
+                break;
+            }
+        }
+        return progressName;
+    }
+
+    /**
+     * 鑾峰彇浠撳簱鍚嶇О
+     *
+     * @param companyId
+     * @param depotId
+     * @return
+     */
+    public String getDepotName(String companyId, String depotId) {
+        Depot depot = depotService.getCacheDepot(companyId,depotId);
+        return depot.getName();
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾浠撳簱鐨勪俊鎭�
+     *
+     * @param companyId
+     * @param depotId
+     * @return
+     */
+    public Depot getDepot(String companyId, String depotId) {
+        List<Depot> depotList = depotService.getCacheDepotList(companyId);
+        Depot depots = new Depot();
+        if (depotList != null && depotList.size() > 0) {
+            for (Depot depot : depotList) {
+                if (depot.getId().equals(depotId)) {
+                    depots = depot;
+                    break;
+                }
+            }
+        }
+        return depots;
+    }
+}
diff --git a/fzzy-igdss-inte/src/main/resources/mapper/PhoneMapper.xml b/fzzy-igdss-inte/src/main/resources/mapper/PhoneMapper.xml
new file mode 100644
index 0000000..51f24c3
--- /dev/null
+++ b/fzzy-igdss-inte/src/main/resources/mapper/PhoneMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fzzy.igds.app.v1.mapper.PhoneMapper">
+
+    <update id="updateOrder">
+        update work_order
+        <set>
+            <if test="param.status != null and param.status != ''">status = #{param.status},</if>
+            <if test="param.receiveTime != null and param.receiveTime != ''">recive_time = #{param.status},</if>
+        </set>
+        where id = #{param.id}
+    </update>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3