From 61d53be27a51f53d3c32171b906a5a79626a453f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 27 三月 2025 15:23:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 h5/pages/guidemap/guidemap.vue                                                                             |    3 
 server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java     |    1 
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                   |   20 +-
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java            |    5 
 h5/pages/staffLogin/login.vue                                                                              |    3 
 h5/utils/config.js                                                                                         |    4 
 h5/pages/driver/reservedGuide.vue                                                                          |    3 
 h5/pages/driver/reserved.vue                                                                               |   19 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java  |    9 +
 server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java                             |    3 
 server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java                          |    8 +
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java                 |    4 
 h5/pages/visitorApplication/visitorApplication.vue                                                         |   54 +++++-
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java    |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java   |   70 ++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java |    8 +
 h5/pages/staff/signin.vue                                                                                  |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java        |  117 +++++++++++---
 server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java                    |  110 +++++++++++++
 h5/manifest.json                                                                                           |    2 
 h5/pages/visitorSubGuide/index.vue                                                                         |    3 
 21 files changed, 404 insertions(+), 52 deletions(-)

diff --git a/h5/manifest.json b/h5/manifest.json
index 1367de7..98170d5 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -1,6 +1,6 @@
 {
     "name" : "laborVisitors",
-    "appid" : "__UNI__BCCF400",
+    "appid" : "__UNI__91B8BB7",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : "100",
diff --git a/h5/pages/driver/reserved.vue b/h5/pages/driver/reserved.vue
index 3571990..b5ff413 100644
--- a/h5/pages/driver/reserved.vue
+++ b/h5/pages/driver/reserved.vue
@@ -113,6 +113,7 @@
 			closeOnClickOverlay
 			:minDate="new Date().getTime()"
 			mode="datetime"
+			 :formatter="formatter"
 			@close="showDatetime = false"
 			@cancel="showDatetime = false"
 			@confirm="setinDate"
@@ -151,6 +152,24 @@
 		this.initData()
 	},
 	methods: {
+		formatter(type, value) {
+			if (type === 'year') {
+				return `${value}骞碻
+			}
+			if (type === 'month') {
+				return `${value}鏈坄
+			}
+			if (type === 'day') {
+				return `${value}鏃
+			}
+			if (type === 'hour') {
+				return `${value}鏃禶
+			}
+			if (type === 'minute') {
+				return `${value}鍒哷
+			}
+			return value
+		},
 		checkSurplus() {
 		      const { arriveDate, reasonId, totalNum } = this.param
 		      if(!arriveDate || !reasonId || !totalNum) return
diff --git a/h5/pages/driver/reservedGuide.vue b/h5/pages/driver/reservedGuide.vue
index 2841be5..aca4af5 100644
--- a/h5/pages/driver/reservedGuide.vue
+++ b/h5/pages/driver/reservedGuide.vue
@@ -1,6 +1,7 @@
 <template>
 	<view class="box">
-		<mp-html :content="content" />
+		<!-- <mp-html :content="content" /> -->
+		<u-parse :content="content"></u-parse>
 	</view>
 </template>
 
diff --git a/h5/pages/guidemap/guidemap.vue b/h5/pages/guidemap/guidemap.vue
index b2914b9..8da0c72 100644
--- a/h5/pages/guidemap/guidemap.vue
+++ b/h5/pages/guidemap/guidemap.vue
@@ -1,7 +1,8 @@
 <template>
   <view class="box">
     <!-- <view v-html="info"></view> -->
-		<mp-html :content="info" />
+		<!-- <mp-html :content="info" /> -->
+		<u-parse :content="info"></u-parse>
   </view>
 </template>
 <script>
diff --git a/h5/pages/staff/signin.vue b/h5/pages/staff/signin.vue
index d1d44ee..a748d77 100644
--- a/h5/pages/staff/signin.vue
+++ b/h5/pages/staff/signin.vue
@@ -1,7 +1,8 @@
 <template>
   <view class="box">
     <!-- <view v-html="info"></view> -->
-		<mp-html :content="info" />
+		<!-- <mp-html :content="info" /> -->
+		<u-parse :content="info"></u-parse>
   </view>
 </template>
 <script>
diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue
index 6b8785f..28a2a8e 100644
--- a/h5/pages/staffLogin/login.vue
+++ b/h5/pages/staffLogin/login.vue
@@ -68,7 +68,8 @@
 			<view class="modal">
 				<!-- <view v-html="htmlText"></view> -->
 				<view class="content">
-					<mp-html :content="htmlText" />
+					<!-- <mp-html :content="htmlText" /> -->
+					<u-parse :content="htmlText"></u-parse>
 				</view>
 			</view>
 		</u-popup>
diff --git a/h5/pages/visitorApplication/visitorApplication.vue b/h5/pages/visitorApplication/visitorApplication.vue
index 0fd3b21..20b6bd2 100644
--- a/h5/pages/visitorApplication/visitorApplication.vue
+++ b/h5/pages/visitorApplication/visitorApplication.vue
@@ -82,7 +82,7 @@
 					</view>
 				</view>
 			</view> -->
-			<view v-if="form1.type == '1'" class="list_item">
+			<view v-if="form1.type == 1" class="list_item">
 				<view class="list_item_label">
 					<text></text>
 					<text>鏂藉伐鍐呭</text>
@@ -106,13 +106,13 @@
 				</view>
 			</view>
 		</view>
-		<view class="footer">
-			<view class="footer_btn" @click="onSubmit">鎻愪氦</view>
+		<view class="footer-box">
+			<view class="submit-button" @click="onSubmit">鎻愪氦</view>
 		</view>
 		<!-- 鍏ュ洯鏃堕棿 -->
-		<u-datetime-picker :show="show4" :minDate="new Date().getTime()" mode="datetime" :formatter="formatter"
+		<u-datetime-picker :show="show4" :minDate="new Date().getTime()" :formatter="formatter" mode="datetime"
 			@cancel="show4 = false" @confirm="setstarttime"></u-datetime-picker>
-		<!-- 绂诲洯鏃堕棿 -->
+		<!-- 绂诲洯鏃堕棿  -->
 		<u-datetime-picker v-if="form1.starttime" :show="show5" :formatter="formatter"
 			:minDate="formatTimeStamp(form1.starttime)" :maxDate="formatTimeStamp(form1.starttime.slice(0,10) + ' 23:59')"
 			mode="datetime" @cancel="show5 = false" @confirm="setendtime"></u-datetime-picker>
@@ -416,6 +416,15 @@
 		},
 		methods: {
 			formatter(type, value) {
+				// if (type === 'year') {
+				// 	return `${value}骞碻
+				// }
+				// if (type === 'month') {
+				// 	return `${value}鏈坄
+				// }
+				// if (type === 'day') {
+				// 	return `${value}鏃
+				// }
 				if (type === 'year') {
 					return `${value}骞碻
 				}
@@ -425,9 +434,15 @@
 				if (type === 'day') {
 					return `${value}鏃
 				}
-// <<<<<<< HEAD
-				this.$forceUpdate()
-				this.closeInput()
+				if (type === 'hour') {
+					return `${value}鏃禶
+				}
+				if (type === 'minute') {
+					return `${value}鍒哷
+				}
+				// this.$forceUpdate()
+				// this.closeInput()
+				return value
 			},
 			closeInput() {
 				this.$refs.keyboard.close()
@@ -1361,6 +1376,29 @@
 				}
 			}
 		}
+		
+		.footer-box {
+			width: 100%;
+			position: fixed;
+			bottom: 30rpx;
+			height: 80rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			.submit-button {
+				width: calc(100% - 60rpx);
+				height: 88rpx;
+				line-height: 88rpx;
+				background: #4d99a8;
+				border-radius: 4rpx;
+				color: #fff;
+				border-radius: 44rpx;
+				font-size: 32rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+		}
 
 		.head {
 			width: 100%;
diff --git a/h5/pages/visitorSubGuide/index.vue b/h5/pages/visitorSubGuide/index.vue
index 3f50a81..23b337c 100644
--- a/h5/pages/visitorSubGuide/index.vue
+++ b/h5/pages/visitorSubGuide/index.vue
@@ -1,7 +1,8 @@
 <template>
   <view class="box">
     <!-- <view v-html="info"></view> -->
-		<mp-html :content="info" />
+		<!-- <mp-html :content="info" /> -->
+		<u-parse :content="info"></u-parse>
   </view>
 </template>
 <script>
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 08884a3..05ff784 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,8 +1,8 @@
 
-export const baseUrl = 'zhyq_interface/'
+// export const baseUrl = 'zhyq_interface/'
 // export const baseUrl = 'http://192.168.0.173/gateway_interface/'
 // export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/'
-// export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' 
+export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' 
 
 export const app_url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
 
diff --git a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
index 734a7aa..a7898d8 100644
--- a/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
+++ b/server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -374,6 +374,7 @@
         userAction.setRemark(info);
         userAction.setMemberId(id+"");
         userActionMapper.insert(userAction);
+
     }
 
     @Override
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index 4b0a54c..1405932 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -565,6 +565,16 @@
     int reason = 6;//鍏ュ洯鍘熷洜
 }
 
+public interface  noticesObjectType{
+    int visit = 0;//璁垮鐢宠
+    int visitReporting = 1;//璁垮鎶ュ
+    int useCar = 2;//鐢ㄨ溅鐢宠
+    int dangerDeal = 3;//闅愭偅澶勭悊
+    int logisticsCarUse = 4;//鐗╂祦杞﹀鎵�
+    int system = 5;//绯荤粺娑堟伅
+    int reason = 6;//鍏ュ洯鍘熷洜
+    int hknotice = 7;//娴峰悍鑰冨嫟浠e姙
+}
 
 
 public static Integer  approveTypeToNoticeType(Integer approveType){
@@ -588,16 +598,6 @@
 
 
 
-    public interface  noticesObjectType{
-    int visit = 0;//璁垮鐢宠
-    int visitReporting = 1;//璁垮鎶ュ
-    int useCar = 2;//鐢ㄨ溅鐢宠
-    int dangerDeal = 3;//闅愭偅澶勭悊
-    int logisticsCarUse = 4;//鐗╂祦杞﹀鎵�
-    int system = 5;//绯荤粺娑堟伅
-    int reason = 6;//鍏ュ洯鍘熷洜
-    int hknotice = 7;//娴峰悍鑰冨嫟浠e姙
-}
 
 
 public interface  approveStatus{
diff --git a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
index 6bec865..ae94947 100644
--- a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
+++ b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -92,6 +92,9 @@
     @GetMapping("/timer/sms/sendWaitingSmsNotice")
     ApiResponse sendWaitingSmsNotice();
 
+    @ApiOperation("銆愭暟瀛楀寲鏈堝彴銆戞湀鍙颁粖鏃ヤ綔涓氬瀹屾垚閫氱煡瀹氭椂")
+    @GetMapping("/timer/platformJob/sendUnFinishNotice")
+    ApiResponse sendUnFinishNotice();
 
 
 }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
index 14e26d6..77485ef 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
@@ -51,4 +51,12 @@
         return ApiResponse.success("鏈堝彴绛夊緟浣滀笟瓒呮椂涓氬姟");
     }
 
+
+    @ApiOperation("鏈堝彴浠婃棩浣滀笟澶栧畬鎴愰�氱煡瀹氭椂")
+    @GetMapping("/sendUnFinishNotice")
+    public ApiResponse sendUnFinishNotice() {
+        platformJobService.sendUnFinishNotice();
+        return ApiResponse.success("鏈堝彴浠婃棩浣滀笟澶栧畬鎴愰�氱煡瀹氭椂");
+    }
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
index f5d6ad6..3e49c6e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatConstants.java
@@ -142,6 +142,10 @@
         String platformJobNewJob = "platformJobNewJob";
         // 杩愯緭浠诲姟鍙栨秷 锛堢粰鍙告満锛�
         String platformJobCancel = "platformJobCancel";
+        //绛惧埌閫氱煡
+        String platformGroupSignIn = "platformGroupSignIn";
+        //浣滀笟鏈畬鎴愰�氱煡
+        String unFinishNotice = "unFinishNotice";
     }
 
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
index 42d8d40..408a033 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -629,10 +629,118 @@
         }catch (Exception e){
 
         }
-
     }
 
 
+    /**
+     * 鏈堝彴绛惧埌閫氱煡
+     * @param wxNoticeConfigMapper
+     * @param platformJob
+     * @param objCode
+     * @param token
+     * @param openIds
+     */
+    public void  sendPlatformJobSignNotice(WxNoticeConfigMapper wxNoticeConfigMapper, PlatformJob platformJob, String objCode,String token,
+                                               List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.platformJob)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //杞︾墝鍙�
+                Map<String, Object> car_number1 = new HashMap<String,Object>();
+                car_number1.put("value",platformJob.getCarCodeFront());
+                //鍙告満濮撳悕
+                Map<String, Object> thing2 = new HashMap<String,Object>();
+                thing2.put("value",platformJob.getDriverName());
+                //绛惧埌鏃堕棿
+                Map<String, Object> time5 = new HashMap<String,Object>();
+                time5.put("value", DateUtil.getFomartDate(platformJob.getSignDate(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss"));
+
+                dataMap.put("car_number1",car_number1);
+                dataMap.put("thing2",thing2);
+                dataMap.put("time5",time5);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("template_id", wxNoticeConfig.getTempId());
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭唴瀹癸細{}", JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+    }
+
+    public void  sendUnFinishNotice(WxNoticeConfigMapper wxNoticeConfigMapper,Integer unFinishNum,String objCode,String token,
+                                           List<String> openIds){
+        try{
+            if(CollectionUtils.isNotEmpty(openIds)){
+                WxNoticeConfig wxNoticeConfig =  wxNoticeConfigMapper.selectOne(new QueryWrapper<WxNoticeConfig>().lambda().eq(WxNoticeConfig::getObjType,WxPlatConstants.platformJob)
+                        .eq(WxNoticeConfig::getObjCode,objCode)
+                        .eq(WxNoticeConfig::getStatus, Constants.ZERO)
+                        .last(" limit 1")
+                );
+                if(Objects.isNull(wxNoticeConfig)){
+                    return;
+                }
+                String postUrL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token;
+                //鏁翠綋鍙傛暟map
+                Map<String, Object> paramMap = new HashMap<String, Object>();
+                //娑堟伅涓婚鏄剧ず鐩稿叧map
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                //杞︾墝鍙�
+                Map<String, Object> const1 = new HashMap<String,Object>();
+                const1.put("value","浣滀笟浠诲姟鏈畬鎴�");
+                //鍙告満濮撳悕
+                Map<String, Object> thing2 = new HashMap<String,Object>();
+                thing2.put("value",unFinishNum+"涓�");
+                //绛惧埌鏃堕棿
+                Map<String, Object> time3 = new HashMap<String,Object>();
+                time3.put("value", DateUtil.getFomartDate(new Date(),"yyyy骞碝M鏈坉d鏃� HH:mm:ss"));
+
+                dataMap.put("const1",const1);
+                dataMap.put("thing2",thing2);
+                dataMap.put("time3",time3);
+                for (String openId:openIds) {
+                    paramMap.clear();
+                    paramMap.put("template_id", wxNoticeConfig.getTempId());
+                    paramMap.put("touser", openId);
+                    paramMap.put("data", dataMap);
+                    String response = HttpsUtil.postJson(postUrL, JSONObject.toJSONString(paramMap));
+                    log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭唴瀹癸細{}", JSONObject.toJSONString(paramMap));
+                    if(StringUtils.isBlank(response)){
+                        log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", "澶辫触");
+                    }else{
+                        JSONObject json = JSONObject.parseObject(response);
+                        log.error("路==++--路鎺ㄩ�佸井淇℃ā鏉夸俊鎭細{}路--++==路", Constants.equalsInteger(json.getInteger("errcode"),Constants.ZERO)?"鎴愬姛":"澶辫触"+json.getString("errmsg"));
+                    }
+                }
+            }
+        }catch (Exception e){
+
+        }
+    }
+    
+
     public void  sendMeetTemplateNotice(SystemDictDataBiz systemDictDataBiz,SmsEmail smsEmail,String token){
         try{
                 String jumpUrl = Constants.getWxUrl(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.WX_REDIRECT_URL).getCode(),
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
index 7bf7502..9faa572 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -251,4 +251,9 @@
 
     PlatformJob getLastWaitJob(String uuid, LoginUserInfo loginUser);
 
+    /**
+     * 浣滀笟鏈畬鎴愬畾鏃堕�氱煡
+     */
+    void sendUnFinishNotice();
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
index 8cc0ade..2fb6fad 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarUseBookServiceImpl.java
@@ -58,6 +58,8 @@
 
     @Autowired
     private CarUseBookMapper carUseBookMapper;
+    @Autowired
+    private ApproveMapper approveMapper;
 
     @Autowired
     private UserActionMapper userActionMapper;
@@ -199,6 +201,11 @@
         params[2]=model.getCarCode()+"-銆愪箻杞︿汉锛�"+model.getMemberNames()+" 銆�-銆愰绾︿汉锛�"+model.getMemberName()+"銆�-銆愭椂闂达細"+DateUtil.getPlusTime2(model.getStartTime())+"-"+DateUtil.getPlusTime2(model.getEndTime())+"銆�";
         //璁板綍鍒犻櫎鏃ュ織
         UserActionServiceImpl.saveUserActionBiz(user,id,Constants.UserActionType.CAR_BOOK_DEL,userActionMapper,date,params, JSONObject.toJSONString(model));
+
+        VisitsServiceImpl.dealCancelNoticesData(noticesJoinMapper,approveMapper,"绯荤粺鍒犻櫎",model.getId(),
+                Constants.equalsInteger(model.getType(),Constants.ZERO)?Constants.approveObjectType.cityUseCar:Constants.approveObjectType.unCityUseCar,
+                Constants.noticesObjectType.useCar
+        );
     }
     @Override
     public void delete(CarUseBook carUseBook) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index af618a5..2b312cf 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -95,6 +95,9 @@
     @Autowired
     private WxNoticeConfigMapper wxNoticeConfigMapper;
 
+    @Autowired
+    private ApproveMapper approveMapper;
+
 
     @Override
     public Integer create(HiddenDanger hiddenDanger) {
@@ -290,6 +293,12 @@
         params[2]=model.getAreaName()+"-銆�"+model.getContent()+"銆�";
         //璁板綍鍒犻櫎鏃ュ織
         UserActionServiceImpl.saveUserActionBiz(user,id,Constants.UserActionType.HIDEN_DANGER_DEL,userActionMapper,date,params,JSONObject.toJSONString(model));
+
+        //鏍囪浠诲姟璁板綍
+        VisitsServiceImpl.dealCancelNoticesData(noticesJoinMapper,approveMapper,"绯荤粺鍒犻櫎",model.getId(),
+                null,
+                Constants.noticesObjectType.dangerDeal
+        );
     }
 
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index 43aadfa..1b03ea5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -107,6 +107,9 @@
     @Autowired
     private WxNoticeConfigMapper wxNoticeConfigMapper;
 
+    @Autowired
+    private ApproveMapper approveMapper;
+
     @Override
     public Integer create(PlatformBooks platformBooks) {
 
@@ -146,6 +149,11 @@
         params[2]="銆愬悎鍚屽彿锛�"+model.getContractNum()+"銆�-銆愬徃鏈猴細"+model.getDriverName()+" "+model.getDriverPhone()+"銆�-銆愯溅鐗屽ソ锛� "+model.getPlateNum()+"銆�";
         //璁板綍鍒犻櫎鏃ュ織
         UserActionServiceImpl.saveUserActionBiz(user,id,Constants.UserActionType.PLATFROM_BOOK_DEL,userActionMapper,date,params, JSONObject.toJSONString(model));
+        //鏍囪浠诲姟璁板綍
+        VisitsServiceImpl.dealCancelNoticesData(noticesJoinMapper,approveMapper,"绯荤粺鍒犻櫎",model.getId(),
+                Constants.approveObjectType.reason,
+                Constants.noticesObjectType.reason
+        );
     }
     @Override
     public void delete(PlatformBooks platformBooks) {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index b0d94cc..494e10b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -687,7 +687,76 @@
         //瀛樺偍鎿嶄綔鏃ュ織
         savePlatformLog(Constants.PlatformJobLogType.SIGN.getKey(),oldPlatformJob,platformJob,
                 Constants.PlatformJobLogType.SIGN.getInfo());
+        //绛惧埌寰俊閫氱煡 2025骞�3鏈�26鏃�14:25:00
+        if(!Constants.equalsInteger(platformJob.getSingType(),Constants.TWO)&&StringUtils.isNotBlank(platformGroup.getSignInNoticeUsers())){
+            List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda()
+                    .eq(SystemUser::getDeleted,Constants.ZERO).eq(SystemUser::getStatus,Constants.ZERO).isNotNull(SystemUser::getOpenid)
+                    .in(SystemUser::getId,Arrays.asList(platformGroup.getSignInNoticeUsers().split(",")))
+            );
+            if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemUserList)) {
+                WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                wxPlatNotice.sendPlatformJobSignNotice(wxNoticeConfigMapper, platformJob,
+                        WxPlatConstants.platformJobContent.platformGroupSignIn,
+                        systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                        systemUserList.stream().map(i->i.getOpenid()).collect(Collectors.toList())
+                );
+            }
+        }
     }
+
+
+    @Override
+    public void sendUnFinishNotice(){
+        //鐘舵�� 0寰呯‘璁� 1寰呯鍒� 2绛夊緟鍙彿 3鍏ュ洯绛夊緟 4宸插彨鍙� 5浣滀笟涓� 6浣滀笟瀹屾垚 7杞Щ涓� 8寮傚父鎸傝捣 9宸叉巿鏉冪鍥� 10宸茬鍥� 11 宸茶繃鍙�  12鍙栨秷锛圵MS锛�
+        List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
+                new MPJLambdaWrapper<PlatformJob>()
+                        .selectAll(PlatformJob.class)
+                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                        .isNotNull(PlatformJob::getPlatformGroupId)
+                        .apply(" CREATE_DATE < now() ")
+                        .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CONFIRM.getKey()
+                                ,Constants.PlatformJobStatus.WART_SIGN_IN.getKey()
+                                ,Constants.PlatformJobStatus.WAIT_CALL.getKey()
+                                ,Constants.PlatformJobStatus.IN_WAIT.getKey()
+                                ,Constants.PlatformJobStatus.CALLED.getKey()
+                                ,Constants.PlatformJobStatus.WORKING.getKey()
+                                ,Constants.PlatformJobStatus.TRANSFERING.getKey()
+                                ,Constants.PlatformJobStatus.EXCEPTION.getKey()
+                                ,Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+                        )
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+            List<Integer> platformGroupId = platformJobList.stream().map(i->i.getPlatformGroupId()).collect(Collectors.toList());
+            if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformGroupId)){
+                Set<Integer> setList = new HashSet<>(platformGroupId);
+                for (Integer groupId:setList) {
+                    PlatformGroup platformGroup = platformGroupMapper.selectById(groupId);
+                    if(Objects.nonNull(platformGroup)){
+                        List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda()
+                                .eq(SystemUser::getDeleted,Constants.ZERO).eq(SystemUser::getStatus,Constants.ZERO).isNotNull(SystemUser::getOpenid)
+                                .in(SystemUser::getId,Arrays.asList(platformGroup.getUnFinishNoticeUsers().split(",")))
+                        );
+                        if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemUserList)) {
+                            WxPlatNotice wxPlatNotice = new WxPlatNotice();
+                            wxPlatNotice.sendUnFinishNotice(
+                                    wxNoticeConfigMapper,
+                                    platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformGroupId(),groupId)).collect(Collectors.toList()).size(),
+                                    WxPlatConstants.platformJobContent.unFinishNotice,
+                                    systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),
+                                    systemUserList.stream().map(i->i.getOpenid()).collect(Collectors.toList())
+                            );
+                        }
+                    }
+                }
+            }
+        }
+
+
+
+    }
+
+
+
 
     public void distanceSignIn(SignInDTO signInDTO , PlatformJob platformJob){
         if(Objects.isNull(signInDTO.getLat())
@@ -961,6 +1030,7 @@
 
 
 
+
     private Logger logger = LoggerFactory.getLogger(PlatformJobServiceImpl.class);
 
     @Override
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index 26120a3..6360447 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -111,6 +111,8 @@
     private ErpTool erpTool;
 
     @Autowired
+    private VisitParkMapper visitParkMapper;
+    @Autowired
     private WxPlatNotice wxPlatNotice;
 
     @Autowired
@@ -1571,8 +1573,6 @@
                 .eq(Retention::getMemberId,visits.getMemberId()));
     }
 
-    @Autowired
-    private VisitParkMapper visitParkMapper;
 
 
     /**
@@ -1650,6 +1650,34 @@
                 updateWrapper.lambda().set(Visits::getHkStatus,Constants.ZERO).set(Visits::getHkDate,DateUtil.getCurrDateTime());
             }
         }
+
+        if(Constants.equalsInteger(visits.getStatus(),Constants.ZERO)||Constants.equalsInteger(visits.getStatus(),Constants.ONE)){
+            //鏇存柊瀹℃壒涓殑璁板綍涓哄彇娑�
+            approveMapper.update(null,
+                    new UpdateWrapper<Approve>().lambda()
+                            .set(Approve::getEditDate,new Date())
+                            .set(Approve::getStatus,Constants.approveStatus.cancel)
+                            .set(Approve::getStatusInfo,"鎵嬪姩鍙栨秷")
+                            .set(Approve::getCheckInfo,"鎵嬪姩鍙栨秷")
+                            .eq(Approve::getIsdeleted,Constants.ZERO)
+                            .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait)
+                            .eq(Approve::getObjId,visits.getId())
+                            .eq(Approve::getObjType,visits.getType()));
+            //鏇存柊寰呭姙娑堟伅鐘舵��
+            noticesJoinMapper.update(null,
+                    new UpdateWrapper<Notices>().lambda()
+                            .set(Notices::getEditDate,new Date())
+                            .set(Notices::getInfo,"鎵嬪姩鍙栨秷")
+//                        .set(Notices::getStatus,Constants.ONE)
+                            .set(Notices::getParam2,Constants.FOUR)//宸插彇娑�
+                            .eq(Notices::getIsdeleted,Constants.ZERO)
+                            .eq(Notices::getStatus,Constants.ZERO)
+                            .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞�
+                            .eq(Notices::getObjId,visits.getId())
+                            .eq(Notices::getObjType,Constants.equalsInteger(visits.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting)
+            );
+        }
+
         visitsMapper.update(null,updateWrapper);
     }
 
@@ -1995,29 +2023,68 @@
                 .set(Visits::getEditDate,date)
                 .set(Visits::getRemark,"棰勭害鎴鏃堕棿宸茶繃鏈鎵癸紝绯荤粺鑷姩鍙栨秷")
                 .eq(Visits::getId,s.getId()));
-        //鏇存柊瀹℃壒涓殑璁板綍涓哄彇娑�
-        approveMapper.update(null,
-                new UpdateWrapper<Approve>().lambda()
-                        .set(Approve::getEditDate,date)
-                        .set(Approve::getStatus,Constants.approveStatus.cancel)
-                        .set(Approve::getStatusInfo,"绯荤粺宸插彇娑�")
-                        .set(Approve::getCheckInfo,"璁块棶鏃堕棿宸茶繃锛岀郴缁熻嚜鍔ㄥ彇娑�")
-                        .eq(Approve::getIsdeleted,Constants.ZERO)
-                        .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait)
-                        .eq(Approve::getObjId,s.getId())
-                        .eq(Approve::getObjType,s.getType()));
-        //鏇存柊寰呭姙娑堟伅鐘舵��
-        noticesJoinMapper.update(null,
-                new UpdateWrapper<Notices>().lambda()
-                        .set(Notices::getEditDate,date)
-                        .set(Notices::getInfo,"宸插彇娑�")
-//                      .set(Notices::getStatus,Constants.ONE)
-                        .set(Notices::getParam2,Constants.FOUR)//宸插彇娑�
-                        .eq(Notices::getIsdeleted,Constants.ZERO)
-                        .eq(Notices::getStatus,Constants.ZERO)
-                        .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞�
-                        .eq(Notices::getObjId,s.getId())
-                        .eq(Notices::getObjType,Constants.equalsInteger(s.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting)
+
+        VisitsServiceImpl.dealCancelNoticesData(noticesJoinMapper,approveMapper,"绯荤粺鍙栨秷",s.getId(),
+                s.getType(),Constants.equalsInteger(s.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting
         );
+
+
+//        //鏇存柊瀹℃壒涓殑璁板綍涓哄彇娑�
+//        approveMapper.update(null,
+//                new UpdateWrapper<Approve>().lambda()
+//                        .set(Approve::getEditDate,date)
+//                        .set(Approve::getStatus,Constants.approveStatus.cancel)
+//                        .set(Approve::getStatusInfo,"绯荤粺宸插彇娑�")
+//                        .set(Approve::getCheckInfo,"璁块棶鏃堕棿宸茶繃锛岀郴缁熻嚜鍔ㄥ彇娑�")
+//                        .eq(Approve::getIsdeleted,Constants.ZERO)
+//                        .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait)
+//                        .eq(Approve::getObjId,s.getId())
+//                        .eq(Approve::getObjType,s.getType()));
+//        //鏇存柊寰呭姙娑堟伅鐘舵��
+//        noticesJoinMapper.update(null,
+//                new UpdateWrapper<Notices>().lambda()
+//                        .set(Notices::getEditDate,date)
+//                        .set(Notices::getInfo,"宸插彇娑�")
+////                        .set(Notices::getStatus,Constants.ONE)
+//                        .set(Notices::getParam2,Constants.FOUR)//宸插彇娑�
+//                        .eq(Notices::getIsdeleted,Constants.ZERO)
+//                        .eq(Notices::getStatus,Constants.ZERO)
+//                        .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞�
+//                        .eq(Notices::getObjId,s.getId())
+//                        .eq(Notices::getObjType,Constants.equalsInteger(s.getType(),Constants.ZERO)?Constants.noticesObjectType.visit:Constants.noticesObjectType.visitReporting)
+//        );
     }
+
+
+    public static void  dealCancelNoticesData(NoticesJoinMapper noticesJoinMapper,ApproveMapper approveMapper,String info,Integer objId,Integer approveObjectType,Integer noticesType){
+        if(Objects.nonNull(approveObjectType)){
+            approveMapper.update(null,
+                    new UpdateWrapper<Approve>().lambda()
+                            .set(Approve::getEditDate,new Date())
+                            .set(Approve::getStatus,Constants.approveStatus.cancel)
+                            .set(Approve::getStatusInfo,info)
+                            .set(Approve::getCheckInfo,info)
+                            .eq(Approve::getIsdeleted,Constants.ZERO)
+                            .in(Approve::getStatus,Constants.approveStatus.auditIng,Constants.approveStatus.wait)
+                            .eq(Approve::getObjId,objId)
+                            .eq(Approve::getObjType,approveObjectType));
+        }
+        if(Objects.nonNull(noticesType)){
+            //鏇存柊寰呭姙娑堟伅鐘舵��
+            noticesJoinMapper.update(null,
+                    new UpdateWrapper<Notices>().lambda()
+                            .set(Notices::getEditDate,new Date())
+                            .set(Notices::getInfo,info)
+                            .set(Notices::getParam2,Constants.FOUR)//宸插彇娑�
+                            .eq(Notices::getIsdeleted,Constants.ZERO)
+                            .eq(Notices::getStatus,Constants.ZERO)
+                            .eq(Notices::getParam2,Constants.ZERO)//寰呭鐞�
+                            .eq(Notices::getObjId,objId)
+                            .eq(Notices::getObjType,noticesType)
+            );
+        }
+    }
+
+
+
 }

--
Gitblit v1.9.3