From 9ffe50c41999fee1c47bfd5d525b6141c4d22b7a Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 24 一月 2025 15:54:51 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderInfoResponse.java | 2
server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 9 +
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java | 37 +++++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java | 4
admin/src/views/statistics/platformStatic.vue | 36 +++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 30 ++---
admin/src/views/vehicle/cars.vue | 4
server/system_gateway/src/main/java/com/doumee/config/GlobalFilterConfig.java | 2
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 35 +++++-
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java | 2
admin/src/views/platform/LogisticsRecord/operation.vue | 12 +-
server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderDetailVOResponse.java | 21 ++++
admin/.env.development | 6
admin/src/views/business/smsEmail.vue | 4
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java | 1
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java | 31 +++--
admin/src/views/system/loginLog.vue | 6
admin/src/views/platform/LogisticsRecord/operationCity.vue | 4
server/system_gateway/src/main/resources/bootstrap.yml | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java | 9 +
server/system_gateway/src/main/java/com/doumee/config/CustomWebFilterConfig.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java | 15 ++-
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 1
25 files changed, 213 insertions(+), 69 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index 15fe399..b6d03dd 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -2,7 +2,7 @@
NODE_ENV = 'development'
# VUE_APP_API_URL = 'https://atwl.ahzyssl.com/zhyq_interface'
- # VUE_APP_API_URL = 'http://localhost:10010'
-# VUE_APP_API_URL = 'http://192.168.0.173/gateway_interface'
-VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface'
+# VUE_APP_API_URL = 'http://localhost:10010'
+VUE_APP_API_URL = 'https://atwl.ahzyssl.com/zhyq_interface'
+# #VUE_APP_API_URL = 'http://10.50.250.253:8088/gateway_interface'
diff --git a/admin/src/views/business/smsEmail.vue b/admin/src/views/business/smsEmail.vue
index 7ff336a..369cfdd 100644
--- a/admin/src/views/business/smsEmail.vue
+++ b/admin/src/views/business/smsEmail.vue
@@ -5,13 +5,13 @@
<el-form-item label="" prop="phone">
<el-input v-model="searchForm.phone" placeholder="璇疯緭鍏ユ墜鏈哄彿/閭鍦板潃" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="" prop="type">
+<!-- <el-form-item label="" prop="type">
<el-select v-model="searchForm.type" @keypress.enter.native="search" clearable placeholder="绫诲瀷">
<el-option label="鐭俊" value="0"></el-option>
<el-option label="閭" value="1"></el-option>
<el-option label="寰俊鍏紬鍙烽�氱煡" value="2"></el-option>
</el-select>
- </el-form-item>
+ </el-form-item>-->
<el-form-item label="" prop="objType">
<el-select v-model="searchForm.objType" @keypress.enter.native="search" clearable placeholder="涓氬姟绫诲瀷">
<el-option label="楠岃瘉鐮�" value="0"></el-option>
diff --git a/admin/src/views/platform/LogisticsRecord/operation.vue b/admin/src/views/platform/LogisticsRecord/operation.vue
index 2fe8765..ebb64e6 100644
--- a/admin/src/views/platform/LogisticsRecord/operation.vue
+++ b/admin/src/views/platform/LogisticsRecord/operation.vue
@@ -32,6 +32,7 @@
<el-table-column prop="doneDate" label="浣滀笟瀹屾垚鏃堕棿" min-width="150" show-overflow-tooltip />
<el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip />
<el-table-column prop="platformNames" label="鍙彿鏈堝彴" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150" show-overflow-tooltip />
<el-table-column label="浣滀笟鎯呭喌" fixed="right" min-width="100" show-overflow-tooltip>
<template v-slot="scope">
<span>{{ statusMap[scope.row.status] }}</span>
@@ -84,7 +85,7 @@
queryFormConfig: {
formItems: [
{
- filed: 'code',
+ filed: 'billCode',
type: 'input',
label: '杩愬崟鍙�'
},
@@ -107,7 +108,7 @@
{
type: 'slot',
filed: 'fastdate',
- label: ''
+ label: '浣滀笟鏃堕棿'
}
],
online: true
@@ -137,9 +138,10 @@
model: {
...filters,
jobType: '0',
- beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
- beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
+ createDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
+ createDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
},
+ sorts: [{ direction: 'DESC', property: 'create_date' }],
capacity: pagination.pageSize,
page: page || pagination.page,
}).then(res => {
@@ -215,4 +217,4 @@
color: #000000;
margin-bottom: 15px;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/admin/src/views/platform/LogisticsRecord/operationCity.vue b/admin/src/views/platform/LogisticsRecord/operationCity.vue
index 02f782d..86465e4 100644
--- a/admin/src/views/platform/LogisticsRecord/operationCity.vue
+++ b/admin/src/views/platform/LogisticsRecord/operationCity.vue
@@ -31,6 +31,7 @@
<el-table-column prop="doneDate" label="浣滀笟瀹屾垚鏃堕棿" min-width="150" show-overflow-tooltip />
<el-table-column prop="workTime" label="浣滀笟鏃堕暱" min-width="100" show-overflow-tooltip />
<el-table-column prop="platformName" label="鍙彿鏈堝彴" min-width="100" show-overflow-tooltip />
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150" show-overflow-tooltip />
<el-table-column label="浣滀笟鎯呭喌" fixed="right" min-width="100" show-overflow-tooltip>
<template v-slot="scope">
<span>{{ statusMap[scope.row.status] }}</span>
@@ -139,6 +140,7 @@
beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null,
beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null,
},
+ sorts: [{ direction: 'DESC', property: 'create_date' }],
capacity: pagination.pageSize,
page: page || pagination.page,
}).then(res => {
@@ -214,4 +216,4 @@
color: #000000;
margin-bottom: 15px;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/admin/src/views/statistics/platformStatic.vue b/admin/src/views/statistics/platformStatic.vue
index 520748a..598b986 100644
--- a/admin/src/views/statistics/platformStatic.vue
+++ b/admin/src/views/statistics/platformStatic.vue
@@ -16,6 +16,12 @@
<el-table-column prop="workCountTime" label="宸ヤ綔鏃堕暱" min-width="100" show-overflow-tooltip />
<el-table-column prop="useRata" label="鏈堝彴浣跨敤鐜�" min-width="100" show-overflow-tooltip />
</el-table>
+ <div v-if="this.list" style="width: 100%;display: flex;height: 50px;padding-top: 20px;font-size: 18px;color: red">
+ <div style="flex: 1;min-width: 100px"></div>
+ <div style="flex: 1;min-width: 100px;">鍚堣锛�</div>
+ <div style="flex: 1;min-width: 100px;"> <span style="font-weight: bold; ">{{totalStopCount}}</span>娆� </div>
+ <div style="flex: 2;min-width: 100px;"> <span style="font-weight: bold;">{{totalWorkTime.toFixed(2)}}</span>鏃�</div>
+ </div>
<!-- <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> -->
</div>
</template>
@@ -42,6 +48,8 @@
fastdate: 0,
selDate: []
},
+ totalStopCount:0,
+ totalWorkTime:0,
list: [],
total: 0,
queryFormConfig: {
@@ -79,6 +87,30 @@
this.getGroupList()
},
methods: {
+ getSummaries(param) {
+ const { columns, data } = param;
+ const sums = [];
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = '鍚堣';
+ } else {
+ const values = data.map(item => parseInt(item[column.property]));
+ if (!values.every(value => isNaN(value))) {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = parseInt(curr);
+ if (!isNaN(value)) {
+ return prev + curr;
+ } else {
+ return prev;
+ }
+ }, 0);
+ } else {
+ sums[index] = '0';
+ }
+ }
+ });
+ return sums;
+ },
changeRadio(day) {
const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')]
this.$set(this.filters, 'selDate', arr)
@@ -103,6 +135,8 @@
})
},
getList(page) {
+ this.totalStopCount = 0
+ this.totalWorkTime = 0
const { pagination, filters } = this
this.loading = true
platformWorkReportPage({
@@ -113,6 +147,8 @@
this.loading = false
this.list = res || []
this.list.forEach(item => {
+ this.totalStopCount = this.totalStopCount + (item.stopCount || 0)
+ this.totalWorkTime = this.totalWorkTime + (item.workCountTime || 0)
item.useRata = item.useRata + '%'
item.workCountTime = item.workCountTime + '鏃�'
// item.workTime = dayjs.duration(item.workTime, 'seconds').format('H鏃秏鍒唖绉�')
diff --git a/admin/src/views/system/loginLog.vue b/admin/src/views/system/loginLog.vue
index 617ddca..ff319ab 100644
--- a/admin/src/views/system/loginLog.vue
+++ b/admin/src/views/system/loginLog.vue
@@ -95,10 +95,10 @@
filters: {
// 鐧诲綍鐘舵��
statusText (value) {
- if (value) {
- return '鐧诲綍鎴愬姛'
+ if (value != null && !value) {
+ return '鐧诲綍澶辫触'
}
- return '鐧诲綍澶辫触'
+ return '鐧诲綍鎴愬姛'
}
},
methods: {
diff --git a/admin/src/views/vehicle/cars.vue b/admin/src/views/vehicle/cars.vue
index efd2bd9..5243461 100644
--- a/admin/src/views/vehicle/cars.vue
+++ b/admin/src/views/vehicle/cars.vue
@@ -54,7 +54,7 @@
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="code" label="杞︾墝鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="code" label="杞︾墝鍙�" fixed="left" min-width="100px"></el-table-column>
<el-table-column prop="memberName" label="杞︿富濮撳悕" min-width="100px"></el-table-column>
<el-table-column prop="memberPhone" label="杞︿富鎵嬫満鍙�" min-width="100px"></el-table-column>
<el-table-column prop="catePName" label="涓�绾у垎绫�" min-width="120px"></el-table-column>
@@ -104,7 +104,7 @@
<el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="140px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:member:update', 'business:member:delete', 'business:empower:create'])"
- label="鎿嶄綔" min-width="200" align="center" fixed="right">
+ label="鎿嶄綔" min-width="200" align="center">
<template slot-scope="{row}">
<el-button type="text" icon="el-icon-edit" @click="handleEdit(row)"
v-permissions="['business:cars:update']">缂栬緫</el-button>
diff --git a/server/system_gateway/src/main/java/com/doumee/config/CustomWebFilterConfig.java b/server/system_gateway/src/main/java/com/doumee/config/CustomWebFilterConfig.java
index bfd3b6f..9e34aa6 100644
--- a/server/system_gateway/src/main/java/com/doumee/config/CustomWebFilterConfig.java
+++ b/server/system_gateway/src/main/java/com/doumee/config/CustomWebFilterConfig.java
@@ -1,6 +1,7 @@
package com.doumee.config;
import com.doumee.config.GatewayFilterProperties;
+import com.doumee.config.jwt.JwtTokenUtil;
import com.doumee.core.utils.Constants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +26,8 @@
private RedisTemplate<String,Object> stringRedisTemplate;
@Resource
private GatewayFilterProperties notAuthUrlProperties;
-
+ @Resource
+ private JwtTokenUtil jwtTokenUtil;
@Bean
public WebFilter webFilter() {
return (exchange, chain) -> {
@@ -40,6 +42,7 @@
if (StringUtils.isBlank(userInfo)) {
return unAuthorize(exchange);
}
+ jwtTokenUtil.refreshTokenTime(token,userInfo);
//鎶婃柊鐨� exchange鏀惧洖鍒拌繃婊ら摼
ServerHttpRequest request = exchange.getRequest().mutate().header(Constants.HEADER_USER_TOKEN, token).build();
ServerWebExchange newExchange = exchange.mutate().request(request).build();
diff --git a/server/system_gateway/src/main/java/com/doumee/config/GlobalFilterConfig.java b/server/system_gateway/src/main/java/com/doumee/config/GlobalFilterConfig.java
index 640b163..4234cb5 100644
--- a/server/system_gateway/src/main/java/com/doumee/config/GlobalFilterConfig.java
+++ b/server/system_gateway/src/main/java/com/doumee/config/GlobalFilterConfig.java
@@ -1,5 +1,6 @@
package com.doumee.config;
+import com.doumee.config.jwt.JwtTokenUtil;
import com.doumee.core.utils.Constants;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -70,7 +71,6 @@
}
return false;
}
-
// 杩斿洖鏈櫥褰曠殑鑷畾涔夐敊璇�
private Mono<Void> unAuthorize(ServerWebExchange exchange) {
// 璁剧疆閿欒鐘舵�佺爜涓�401
diff --git a/server/system_gateway/src/main/resources/bootstrap.yml b/server/system_gateway/src/main/resources/bootstrap.yml
index 7a7cd02..099da4a 100644
--- a/server/system_gateway/src/main/resources/bootstrap.yml
+++ b/server/system_gateway/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
profiles:
- active: self
+ active: pro
application:
name: system_gateway
# 瀹夊叏閰嶇疆
diff --git a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
index 1f94820..ca998e5 100644
--- a/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
+++ b/server/system_service/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -234,4 +234,13 @@
}
return claims;
}
+
+ /**
+ * 鍚戝悗寤朵几鏈夋晥鏈熶繚鎸佷細璇濈户缁�
+ * @param token
+ */
+
+ public void refreshTokenTime(String token,String usrerInfo) {
+ redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token,usrerInfo,jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
+ }
}
\ No newline at end of file
diff --git a/server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderDetailVOResponse.java b/server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderDetailVOResponse.java
new file mode 100644
index 0000000..a5f5044
--- /dev/null
+++ b/server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderDetailVOResponse.java
@@ -0,0 +1,21 @@
+package com.doumee.service.business.third.model.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2023/11/23 14:03
+ */
+@Data
+@ApiModel("tms鍚堝悓璇︽儏鍝佽鏄庣粏杩斿洖鍙傛暟")
+public class TmsOrderDetailVOResponse {
+ @ApiModelProperty(value = "鍝佽鍚嶇О" )
+ private String productName;// 瀛楃涓� 鍝佽鍚嶇О
+ @ApiModelProperty(value = "鏁伴噺(涓囨敮锛�" )
+ private BigDecimal pnumber;// 鏁板瓧 鏁伴噺
+
+}
diff --git a/server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderInfoResponse.java b/server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderInfoResponse.java
index 854e149..da6234f 100644
--- a/server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderInfoResponse.java
+++ b/server/system_service/src/main/java/com/doumee/service/business/third/model/response/TmsOrderInfoResponse.java
@@ -52,6 +52,8 @@
private Integer overStock ;
@ApiModelProperty(value = "gis杞ㄨ抗缁忕含搴﹂泦鍚�" )
private List<TmsGisListResponse> gisList;
+ @ApiModelProperty(value = "瑙勬牸鍟嗗搧鏄庣粏" )
+ private List<TmsOrderDetailVOResponse> orderDetailVOList;
@ApiModelProperty(value = "鐢熷懡鍛ㄦ湡闆嗗悎" )
private List<TmsCircleStatusResultListResponse> cicleStatusList;
}
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index f0c5d38..0fdc117 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -155,9 +155,20 @@
throw e;
}
}
- LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),request);
- systemLoginLogService.create(loginLog);
- return user;
+ try {
+ LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),request);
+ systemLoginLogService.create(loginLog);
+ return user;
+ }catch (BusinessException e){
+ loginLog.setSuccess(Boolean.FALSE);
+ systemLoginLogService.create(loginLog);
+ throw e;
+
+ }catch (Exception e){
+ loginLog.setSuccess(Boolean.FALSE);
+ systemLoginLogService.create(loginLog);
+ throw e;
+ }
}
@Override
public LoginUserInfo loginH5 (LoginH5DTO dto, ServerHttpRequest request) {
@@ -191,6 +202,7 @@
loginLog.setPlatform(Utils.User_Client.getPlatform(request));
loginLog.setClientInfo(Utils.User_Client.getBrowser(request));
loginLog.setOsInfo(Utils.User_Client.getOS(request));
+ loginLog.setSuccess(Boolean.TRUE);
}
loginLog.setServerIp(Utils.Server.getIP());
return loginLog;
@@ -200,9 +212,20 @@
public LoginUserInfo loginH5ByPhone(LoginPhoneDTO dto, ServerHttpRequest request) {
isCaptcheValide(dto.getPhone(),dto.getCode());//妫�鏌ラ獙璇佺爜
SystemLoginLog loginLog = getInitLoginlog(dto.getPhone(),request);
- LoginUserInfo userInfo = dealLoginByPwdNewBiz(null,null,dto.getPhone(),dto.getOpenid(), request );
- systemLoginLogService.create(loginLog);
- return userInfo;
+ try{
+ LoginUserInfo userInfo = dealLoginByPwdNewBiz(null,null,dto.getPhone(),dto.getOpenid(), request );
+ systemLoginLogService.create(loginLog);
+ return userInfo;
+ }catch (BusinessException e){
+ loginLog.setSuccess(Boolean.FALSE);
+ systemLoginLogService.create(loginLog);
+ throw e;
+
+ }catch (Exception e){
+ loginLog.setSuccess(Boolean.FALSE);
+ systemLoginLogService.create(loginLog);
+ throw e;
+ }
}
private LoginUserInfo dealLoginByPwdNewBiz(String username,String pwd, String phone, String openid, ServerHttpRequest request) {
// 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java
index 4aabab3..6861738 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java
@@ -51,7 +51,7 @@
@GetMapping("/delete/{id}")
@CloudRequiredPermission("business:hiddendanger:delete")
public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
- hiddenDangerService.deleteById(id);
+ hiddenDangerService.deleteById(id,this.getLoginUser(token));
return ApiResponse.success(null);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java
index e29c243..65f8086 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKCarOpenService.java
@@ -156,7 +156,7 @@
}
}
Collections.sort(list, (o1, o2) -> {
- return (int) (o1.getTimeStamp() - o2.getTimeStamp()); //鎸夋暟閲忎粠澶у埌灏忔帓搴�
+ return (int) (o2.getTimeStamp() - o1.getTimeStamp()); //鎸夋椂闂村�掑簭
});
return list;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java
index 1ff61b8..94daa26 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDangerLog.java
@@ -63,8 +63,8 @@
@ExcelColumn(name="绠�浠�")
private String content;
- @ApiModelProperty(value = "鎿嶄綔绫诲瀷 0鍙戣捣鐢宠 1杞氦 2閫�鍥� 3鍙栨秷 4鏁存敼澶勭悊", example = "1")
- @ExcelColumn(name="鎿嶄綔绫诲瀷 0鍙戣捣鐢宠 1杞氦 2閫�鍥� 3鍙栨秷 4鏁存敼澶勭悊")
+ @ApiModelProperty(value = "鎿嶄綔绫诲瀷 0鍙戣捣鐢宠 1杞氦 2閫�鍥� 3鍙栨秷 4鏁存敼澶勭悊 5鍒犻櫎璁板綍", example = "1")
+ @ExcelColumn(name="鎿嶄綔绫诲瀷 0鍙戣捣鐢宠 1杞氦 2閫�鍥� 3鍙栨秷 4鏁存敼澶勭悊5鍒犻櫎璁板綍")
private Integer objType;
@ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index 4d0e689..b52fa8d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -145,6 +145,7 @@
@ApiModelProperty(value = "瑙掑害", example = "1")
@ExcelColumn(name="瑙掑害")
private BigDecimal angle;
+
@ApiModelProperty(value = "鏈堝彴浣滀笟鏁堢巼锛堜竾鏀�/灏忔椂锛�", example = "1")
@ExcelColumn(name="鏈堝彴浣滀笟鏁堢巼锛堜竾鏀�/灏忔椂锛�")
private BigDecimal workRate;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index b62d1ba..8e07e9c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -346,6 +346,14 @@
@JsonFormat(pattern = "yyyy-MM-dd")
@TableField(exist = false)
private Date beginWorkDateStart;
+ @ApiModelProperty(value = "寮�濮嬫椂闂磋捣")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @TableField(exist = false)
+ private Date createDateStart;
+ @ApiModelProperty(value = "寮�濮嬫椂闂存")
+ @TableField(exist = false)
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDateEnd;
@ApiModelProperty(value = "寮�濮嬩綔涓氭椂闂存")
@JsonFormat(pattern = "yyyy-MM-dd")
@@ -362,14 +370,6 @@
@TableField(exist = false)
private Date beginDoneDateEnd;
-
- @ApiModelProperty(value = "鍒涘缓鏃堕棿璧�")
- @TableField(exist = false)
- private Date createDateStart;
-
- @ApiModelProperty(value = "鍒涘缓鏃堕棿姝�")
- @TableField(exist = false)
- private Date createDateEnd;
@ApiModelProperty(value = "鏈堝彴缁勫悕绉�")
@TableField(exist = false)
@@ -415,18 +415,21 @@
public void dealTime(){
if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())
- || Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
- ){
+ || Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey()) ){
return;
}
if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
- this.setOptTime(this.getSignDate().getTime());
+ if(this.getSignDate()!=null)
+ this.setOptTime(this.getSignDate().getTime());
}else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())){
- this.setOptTime(this.getInwaitDate().getTime());
+ if(this.getInwaitDate()!=null)
+ this.setOptTime(this.getInwaitDate().getTime());
}else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
- this.setOptTime(this.getCallDate().getTime());
+ if(this.getCallDate()!=null)
+ this.setOptTime(this.getCallDate().getTime());
}else if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
- this.setOptTime(this.getStartDate().getTime());
+ if(this.getStartDate()!=null)
+ this.setOptTime(this.getStartDate().getTime());
}
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java
index cb20f7d..bfd3bd5 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
+import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.dao.business.model.HiddenDanger;
@@ -26,6 +27,7 @@
* @param id 涓婚敭
*/
void deleteById(Integer id);
+ void deleteById(Integer id, LoginUserInfo user);
/**
* 鍒犻櫎
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 7c3ed15..e12e744 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
@@ -239,6 +239,43 @@
public void deleteById(Integer id) {
hiddenDangerMapper.deleteById(id);
}
+ @Override
+ public void deleteById(Integer id,LoginUserInfo user) {
+ if( Objects.isNull(id) ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ HiddenDanger model = hiddenDangerMapper.selectJoinOne(HiddenDanger.class,new MPJLambdaWrapper<HiddenDanger>()
+ .selectAll(HiddenDanger.class)
+ .selectAs(Member::getName,HiddenDanger::getCheckorName)
+ .leftJoin(Member.class,Member::getId,HiddenDanger::getCheckUserId)
+ .eq(HiddenDanger::getId,id)
+ .eq(HiddenDanger::getIsdeleted,Constants.ZERO)
+ );
+ if(Objects.isNull(model)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌闅愭偅鏁版嵁");
+ }
+ if (!Constants.equalsInteger(model.getStatus(),Constants.ZERO)) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佸凡娴佽浆,璇峰埛鏂版煡鐪�!");
+ }
+ HiddenDanger hiddenDanger = new HiddenDanger();
+ hiddenDanger.setIsdeleted(Constants.ONE);
+ hiddenDanger.setId(id);
+ hiddenDanger.setEditor(user.getId());
+
+ hiddenDanger.setEditDate(new Date());
+ hiddenDangerMapper.updateById(hiddenDanger);
+ //瀛樺偍 鎿嶄綔鏃ュ織
+ HiddenDangerLog hiddenDangerLog = new HiddenDangerLog();
+ hiddenDangerLog.setIsdeleted(Constants.ZERO);
+ hiddenDangerLog.setCreateDate(new Date());
+ hiddenDangerLog.setCreator(hiddenDanger.getEditor());
+ hiddenDangerLog.setEditDate(hiddenDangerLog.getCreateDate());
+ hiddenDangerLog.setEditor(hiddenDanger.getCreator());
+ hiddenDangerLog.setTitle("鐢便��"+user.getRealname()+"銆戝垹闄よ褰�");
+ hiddenDangerLog.setHiddenDangerId(hiddenDanger.getId());
+ hiddenDangerLog.setObjType(Constants.FIVE);
+ hiddenDangerLogMapper.insert(hiddenDangerLog);
+ }
@Override
public void delete(HiddenDanger hiddenDanger) {
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 ea52c99..3135e0c 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
@@ -297,13 +297,13 @@
.apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')")
.apply(pageWrap.getModel().getQueryStatusForPower() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatusForPower()+"')")
.apply(pageWrap.getModel().getQueryType() != null, " find_in_set(t.TYPE,'"+pageWrap.getModel().getQueryType()+"')")
+ .ge(pageWrap.getModel().getCreateDateStart() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart()))
+ .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDateEnd()))
.ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
.le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
.ge(pageWrap.getModel().getBeginDoneDateStart() != null, PlatformJob::getDoneDate, Utils.Date.getStart(pageWrap.getModel().getBeginDoneDateStart()))
.le(pageWrap.getModel().getBeginDoneDateEnd() != null, PlatformJob::getDoneDate, Utils.Date.getEnd(pageWrap.getModel().getBeginDoneDateEnd()))
- .ge(pageWrap.getModel().getCreateDateStart() != null, PlatformWmsJob::getIoCreatedate, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart()))
- .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformWmsJob::getIoCreatedate, Utils.Date.getEnd(pageWrap.getModel().getCreateDateEnd()))
.isNotNull(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getContractNum)
.isNull(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getContractNum)
.exists(StringUtils.isNotBlank(pageWrap.getModel().getWmsContractNum()),
@@ -346,15 +346,12 @@
.apply("( t1.isdeleted = 0 or t.PLATFORM_ID is null )")
.eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
.like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront())
-
.apply(Objects.nonNull(pageWrap.getModel().getCallType())
&&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE),
" ( " +
" ( t.`STATUS` = "+Constants.PlatformJobStatus.WAIT_CALL.getKey()+" and t.PLATFORM_GROUP_ID = ( SELECT p.group_id FROM platform p WHERE p.id = "+pageWrap.getModel().getPlatformId()+" LIMIT 1 ) )" +
") "
)
-
-
.apply(Objects.nonNull(pageWrap.getModel().getCallType())
&&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.TWO),
" ( " +
@@ -365,8 +362,6 @@
" (t.`STATUS` = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" ) " +
") "
)
-
-
.and(Objects.nonNull(pageWrap.getModel().getCallType())
&&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.THREE),
i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or()
@@ -428,8 +423,6 @@
}
}
}
-
-
public void queryWaitNum(PlatformJob platformJob){
if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){
//鏌ヨ褰撳墠鎵�鏈夋帓闃熸暟閲�
@@ -442,11 +435,10 @@
.eq(PlatformJob::getPlatformGroupId,platformJob.getPlatformGroupId())
// .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(platformJob.getArriveDate(),"yyyy-MM-dd"))
);
-
- for (PlatformJob linePlatformJob:lineUpAllList) {
- this.getWmsJobData(linePlatformJob);
- }
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(lineUpAllList)){
+ for (PlatformJob linePlatformJob:lineUpAllList) {
+ this.getWmsJobData(linePlatformJob);
+ }
//鏌ヨ鎺掗槦鍦ㄦ垜鍓嶉潰鐨勬暟鎹�
List<PlatformJob> lineUpNum = lineUpAllList.stream().filter(i->Objects.nonNull(i.getSignDate())&&i.getSignDate().getTime()<platformJob.getSignDate().getTime()).collect(Collectors.toList());
platformJob.setLineUpNum(lineUpNum.size());
@@ -457,7 +449,10 @@
//璁$畻棰勮绛夊緟鏃堕棿
List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda()
.eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId()));
- BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ BigDecimal workRate = new BigDecimal(0);
+ if(platformList!=null){
+ workRate = platformList.stream().map(m->Constants.formatBigdecimal(m.getWorkRate())).reduce(BigDecimal.ZERO,BigDecimal::add);
+ }
if(sumWorkRate.compareTo(BigDecimal.ZERO) > Constants.ZERO && workRate.compareTo(BigDecimal.ZERO) > Constants.ZERO ){
BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
Integer sumMinuteInteger = sumMinute.intValue();
@@ -484,7 +479,7 @@
.orderByDesc(PlatformLog::getCreateDate)
.last(" limit 1")
);
- if(Objects.nonNull(platformLog)){
+ if(Objects.nonNull(platformLog) && platformJob.getWorkRate()!=null && platformJob.getWorkRate().compareTo(new BigDecimal(0))>0){
BigDecimal sumMinute = platformJob.getTotalNum().divide(platformJob.getWorkRate(),1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
platformJob.setFinishTimeStr(DateUtil.DateToStr(DateUtil.afterMinutesDate(platformLog.getCreateDate(),sumMinute.intValue()),"HH:mm"));
}
@@ -494,7 +489,9 @@
.isNotNull(PlatformLog::getParam3)
.ne(PlatformLog::getParam3,Constants.ZERO+"")
.orderByDesc(PlatformLog::getCreateDate));
- platformJob.setWorkTime(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum));
+ if(platformLogList!=null){
+ platformJob.setWorkTime(platformLogList.stream().map(m->Long.valueOf(StringUtils.defaultString(m.getParam3(),"0"))).reduce(Long.valueOf(0),Long::sum));
+ }
}
}
@@ -534,7 +531,6 @@
//鏌ヨ鍓嶆柟鎺掗槦鏁伴噺
this.queryWaitNum(platformJob);
}
-
driverHomeVO.setPlatformJobList(platformJobList);
// 鍥尯瀵艰鍥� 鍥剧墖
driverHomeVO.setReservationMap(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_GUIDEMAP).getCode());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java
index cfdece5..4c625f1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java
@@ -55,8 +55,9 @@
@Override
public void deleteById(Integer id) {
- retentionMapper.update(null,new UpdateWrapper<Retention>().lambda().set(Retention::getIsdeleted,Constants.ONE).eq(Retention::getId,id));
-// retentionMapper.deleteById(id);
+// retentionMapper.update(null,new UpdateWrapper<Retention>().lambda().set(Retention::getIsdeleted,Constants.ONE)
+// .eq(Retention::getId,id));
+ retentionMapper.deleteById(id);
}
@Override
@@ -231,8 +232,8 @@
.selectAs(Member::getPhone,Retention::getPhone)
.selectAs(Member::getVisitCompanyName,Retention::getVisitCompanyName)
.and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),w->{
- w.like( Retention::getPhone,pageWrap.getModel().getKeyWords())
- .or().like( Retention::getName,pageWrap.getModel().getKeyWords()); })
+ w.like( Member::getPhone,pageWrap.getModel().getKeyWords())
+ .or().like( Member::getName,pageWrap.getModel().getKeyWords()); })
.eq(Retention::getType,3)
.eq(Retention::getIsdeleted,Constants.ZERO)
.and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
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 65579fe..3ea7c15 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
@@ -1601,6 +1601,7 @@
.selectAll(Retention.class)
.selectAs(Company::getType,Retention::getCompanyType)
.leftJoin(Company.class,Company::getId,Retention::getCompanyId)
+ .eq(Retention::getIsdeleted,Constants.ZERO)
);
InoutDayCount inoutDayCount = inoutDayCountMapper.selectOne(new QueryWrapper<InoutDayCount>()
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
index 168daf3..9a84710 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java
@@ -1776,6 +1776,7 @@
.selectAll(Retention.class)
.selectAs(Company::getType,Retention::getCompanyType)
.leftJoin(Company.class,Company::getId,Retention::getCompanyId)
+ .eq(Retention::getIsdeleted,Constants.ZERO)
);
//浠婃棩鍦ㄥ洯浜烘暟
@@ -1888,9 +1889,13 @@
}else{
platformDurationVO.setWorkType(Constants.ZERO);//濡傛灉鏄嵏璐�
}
- Integer workMinute = Constants.formatBigdecimal(job.getWorkNum()).multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue();
- Date overDate = DateUtil.getXMinuteAfterDate(job.getNewStartDate(),workMinute + model.getWorkTimeoutAlarmTime());//棰勮瀹屾垚鏃堕棿
- platformDurationVO.setFinishTimeStr(DateUtil.DateToStr(overDate,"HH:mm"));
+ Integer workMinute = 0;
+ Date overDate =null;
+ if(model.getWorkRate()!=null && model.getWorkRate().compareTo(new BigDecimal(0)) !=0){
+ workMinute = Constants.formatBigdecimal(job.getWorkNum()).multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue();
+ overDate = DateUtil.getXMinuteAfterDate(job.getNewStartDate(),workMinute + model.getWorkTimeoutAlarmTime());//棰勮瀹屾垚鏃堕棿
+ platformDurationVO.setFinishTimeStr(DateUtil.DateToStr(overDate,"HH:mm"));
+ }
platformDurationVO.setWorkNum(Constants.formatBigdecimal(job.getWorkNum()).intValue());
platformDurationVO.setCarNo(job.getCarCodeFront());//杞︾墝鍙�
@@ -1899,7 +1904,7 @@
}else{
platformDurationVO.setStatus(Constants.ZERO); //浣滀笟涓�
platformDurationVO.setWorkTime(PlatformJobServiceImpl.getWorkTime(job,platformLogMapper));//宸插伐浣滄椂闂�
- if(overDate.getTime() < System.currentTimeMillis() ){
+ if(overDate!=null && overDate.getTime() < System.currentTimeMillis() ){
model.setStatus(Constants.TWO); //浣滀笟宸茶秴鏃�
}
}
@@ -2042,7 +2047,7 @@
.select("count(id)" ,PlatformJob::getCountum)
.eq(PlatformJob::getIsdeleted,Constants.ZERO)
.apply("to_days(create_date) = to_days(now())" )
- .groupBy(PlatformJob::getStatus )
+ .groupBy(PlatformJob::getStatus)
);
if(jobList!=null){
--
Gitblit v1.9.3