From d1e55e8c1eecd46921ed43ad6525f37bb0593f07 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 24 五月 2024 18:13:36 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParkBookCloudController.java | 12 + server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ParkBookService.java | 3 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java | 5 admin/src/views/business/carsSync.vue | 0 admin/src/views/vehicle/cars.vue | 163 ++++++++++++++++++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 31 ++- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java | 82 +++++++-- server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java | 80 +++++--- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java | 114 ++++++++++++ server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java | 6 10 files changed, 427 insertions(+), 69 deletions(-) diff --git a/admin/src/views/business/cars.vue b/admin/src/views/business/carsSync.vue similarity index 100% rename from admin/src/views/business/cars.vue rename to admin/src/views/business/carsSync.vue diff --git a/admin/src/views/vehicle/cars.vue b/admin/src/views/vehicle/cars.vue new file mode 100644 index 0000000..e45c01d --- /dev/null +++ b/admin/src/views/vehicle/cars.vue @@ -0,0 +1,163 @@ +<template> + <TableLayout :permissions="['business:member:query']"> + <!-- 鎼滅储琛ㄥ崟 --> + <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="120px" inline> + <el-form-item label="杞︾墝鍙�" prop="code"> + <el-input v-model="searchForm.code" clearable placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input> + </el-form-item> + <el-form-item label="杞︿富濮撳悕/鎵嬫満鍙�" prop="memberName"> + <el-input v-model="searchForm.memberName" clearable placeholder="杞︿富濮撳悕/鎵嬫満鍙�" @keypress.enter.native="search"></el-input> + </el-form-item> + <el-form-item label="杞︿富閮ㄩ棬" prop="companyName"> + <el-input v-model="searchForm.companyName" clearable placeholder="杞︿富閮ㄩ棬鍚嶇О" @keypress.enter.native="search"></el-input> + </el-form-item> + <el-form-item label="鎺堟潈鐘舵��" prop="authStatus"> + <el-select v-model="searchForm.authStatus" @keypress.enter.native="search" clearable placeholder="鏄惁鎺堟潈"> + <el-option label="鏄�" value="1"></el-option> + <el-option label="鍚�" value="0"></el-option> + </el-select> + </el-form-item> + <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-option label="甯傚叕鍙稿叕杞�" value="3"></el-option> + </el-select> + </el-form-item> + <section> + <el-button type="primary" @click="search">鎼滅储</el-button> + <el-button @click="reset">閲嶇疆</el-button> + </section> + </el-form> + <!-- 琛ㄦ牸鍜屽垎椤� --> + <template v-slot:table-wrap> + <ul class="toolbar" v-permissions="['business:cars:create', 'business:parkBook:create']"> + <li><el-button type="primary" @click="$refs.operaCarsWindow.open('鏂板缓杞﹁締')" icon="el-icon-plus" v-permissions="['business:cars:create']">鏂板缓</el-button></li> + <li><el-button type="primary" @click="startEmpowerBatch" icon="el-icon-plus" v-permissions="['business:parkbook:create']">涓嬪彂鎺堟潈</el-button></li> + </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 label="杞﹁締绫诲瀷" min-width="100px"> + <template slot-scope="{row}"> + <span v-if="row.type == 0" >鍛樺伐杞﹁締</span> + <span v-if="row.type == 1">瀹夋嘲鍏姟杞�</span> + <span v-if="row.type == 2" >瀹夋嘲鐗╂祦杞�</span> + <span v-if="row.type == 3" >甯傚叕鍙稿叕杞�</span> + </template> + </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="companyName" label="杞︿富缁勭粐" min-width="200px"></el-table-column> + <el-table-column label="鏄惁鎺堟潈" align="center" min-width="100px"> + <template slot-scope="{row}"> + <span v-if="row.authStatus == 1" style="color: green">鏄�</span> + <span v-else style="color: red">鍚�</span> + </template> + </el-table-column> + <el-table-column prop="parksName" label="宸叉巿鏉冨仠杞﹀満" min-width="200px"> + <template slot-scope="{row}"> + <div v-if="row.parkBookList && row.parkBookList.length" > + <span v-for="item in row.parkBookList" :key="item.id" style="display: block"> + <span :style="(item.hkStatus== 0?'color:#2080f7':(item.hkStatus== 1?'color:green':(item.hkStatus== 2?'color:red':'')))">銆恵{item.hkStatus== 0?'绛夊緟涓嬪彂':(item.hkStatus== 1?'涓嬪彂鎴愬姛':(item.hkStatus== 2?'涓嬪彂澶辫触':''))}}銆� </span>{{item.parksName}} + </span> + </div> + <span v-if="row.parkBookList ==null ||row.parkBookList.length ==0">-</span> + </template> + </el-table-column> + <el-table-column label="涓嬪彂鏈夋晥鏈�" min-width="170px"> + <template slot-scope="{row}"> + <div v-if="row.authStatus !=null && row.authStatus == 1 && row.parkBookList!=null && row.parkBookList.length>0"> + <div v-if="!row.startTime || !row.endTime">闀挎湡鏈夋晥</div> + <div v-else> + <span>璧凤細{{row.startTime}}</span><br/> + <span>姝細{{row.endTime}}</span> + </div> + </div> + <div v-else >-</div> + </template> + </el-table-column> + <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column> + <el-table-column prop="editDate" label="鎿嶄綔鏃堕棿" min-width="100px"></el-table-column> + <el-table-column + v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])" + label="鎿嶄綔" + min-width="250" + fixed="right" + > + <template slot-scope="{row}"> + <el-button type="text" icon="el-icon-edit" @click="$refs.operaCarsWindow.open('缂栬緫杞﹁締淇℃伅',row)" v-permissions="['business:cars:update']">缂栬緫</el-button> + <el-button type="text" icon="el-icon-edit" @click="$refs.operaCarAuthWindow.open('涓嬪彂鎺堟潈',[row.id],[row.code])" v-permissions="['business:parkbook:create']">涓嬪彂鎺堟潈</el-button> + <el-button type="text" icon="el-icon-delete" @click="deleteById(row)" style="color: red" v-permissions="['business:empower:delete']">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + <pagination + @size-change="handleSizeChange" + @current-change="handlePageChange" + :pagination="tableData.pagination" + > + </pagination> + </template> + <!-- 鏂板缓/淇敼 --> + <OperaCarAuthWindow ref="operaCarAuthWindow" @success="handlePageChange"/> + <OperaCarsWindow ref="operaCarsWindow" @success="handlePageChange"/> + </TableLayout> +</template> + +<script> +import BaseTable from '@/components/base/BaseTable' +import TableLayout from '@/layouts/TableLayout' +import Pagination from '@/components/common/Pagination' +import OperaCarsWindow from '@/components/business/OperaCarsWindow' +import OperaCarAuthWindow from '@/components/business/OperaCarAuthWindow' +import { sync } from '@/api/business/cars' +export default { + name: 'Cars', + extends: BaseTable, + components: { TableLayout, Pagination, OperaCarsWindow,OperaCarAuthWindow }, + data () { + return { + // 鎼滅储 + searchForm: { + code: '', + memberName: '', + companyName: '', + type:null, + authStatus:null + } + } + }, + created () { + this.config({ + module: '杞﹁締淇℃伅琛�', + api: '/business/cars', + 'field.id': 'id', + 'field.main': 'id' + }) + this.search() + }, + methods: { + // 鍚屾淇℃伅 + startEmpowerBatch () { + if (this.tableData.selectedRows.length === 0) { + this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�') + return + } + var ids = [] + var codes = [] + this.tableData.selectedRows.forEach(item => { + ids.push(item.id) + codes.push(item.code) + }) + this.$refs.operaCarAuthWindow.open('杞﹁締涓嬪彂鎺堟潈', ids, codes) + }, + } +} +</script> diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParkBookCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParkBookCloudController.java index 8cc6a8c..3b28614 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParkBookCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/ParkBookCloudController.java @@ -8,10 +8,12 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; +import com.doumee.dao.business.model.Cars; import com.doumee.dao.business.model.ParkBook; import com.doumee.service.business.ParkBookService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -35,7 +37,16 @@ @PostMapping("/create") @CloudRequiredPermission("business:parkbook:create") public ApiResponse create(@RequestBody ParkBook parkBook,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + parkBook.setLoginUserInfo(this.getLoginUser(token)); return ApiResponse.success(parkBookService.create(parkBook)); + } + @PreventRepeat + @ApiOperation("鎵归噺涓嬪彂鎺堟潈") + @PostMapping("/batchAuth") + @CloudRequiredPermission("business:parkbook:create") + public ApiResponse batchAuth(@RequestBody Cars cars, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + cars.setLoginUserInfo(this.getLoginUser(token)); + return ApiResponse.success(parkBookService.batchAuth(cars)); } @ApiOperation("鏍规嵁ID鍒犻櫎") @@ -63,6 +74,7 @@ @PostMapping("/updateById") @CloudRequiredPermission("business:parkbook:update") public ApiResponse updateById(@RequestBody ParkBook parkBook,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ + parkBook.setLoginUserInfo(this.getLoginUser(token)); parkBookService.updateById(parkBook); return ApiResponse.success(null); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java index 8ec76cf..5707e3d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Cars.java @@ -11,6 +11,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; +import java.util.List; /** * 杞﹁締淇℃伅琛� @@ -42,10 +43,22 @@ @ApiModelProperty(value = "鏇存柊鏃堕棿") @ExcelColumn(name="鏇存柊鏃堕棿") private Date editDate; + @ApiModelProperty(value = "鎺堟潈寮�濮嬫椂闂�") + @ExcelColumn(name="鎺堟潈寮�濮嬫椂闂�") + private Date startTime; + @ApiModelProperty(value = "鎺堟潈缁撴潫鏃堕棿") + @ExcelColumn(name="鎺堟潈缁撴潫鏃堕棿") + private Date endTime; + @ApiModelProperty(value = "鏈�鍚庝竴娆¤繘鍘傛椂闂�") + @ExcelColumn(name="鏈�鍚庝竴娆¤繘鍘傛椂闂�") + private Date lastInDate; @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1") @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�") private Integer isdeleted; + @ApiModelProperty(value = "鎺堟潈鏃堕棿绫诲瀷 0闀挎湡鏈夋晥 1鑷畾涔� 2杞︿富鏈夋晥鏈�", example = "1") + @ExcelColumn(name="鎺堟潈鏃堕棿绫诲瀷 0闀挎湡鏈夋晥 1鑷畾涔� 2杞︿富鏈夋晥鏈�") + private Integer authTimeType; @ApiModelProperty(value = "澶囨敞") @ExcelColumn(name="澶囨敞") @@ -63,9 +76,9 @@ @ExcelColumn(name="杞︾墝鍙�") private String code; - @ApiModelProperty(value = "杞﹀簱缂栫爜锛堝叧鑱攑arks)", example = "1") - @ExcelColumn(name="杞﹀簱缂栫爜锛堝叧鑱攑arks)") - private Integer parkId; + @ApiModelProperty(value = "鎺堟潈鍋滆溅缂栫爜闆嗗悎锛堝叧鑱攑arks)", example = "1") + @ExcelColumn(name="鎺堟潈鍋滆溅缂栫爜闆嗗悎锛堝叧鑱攑arks)") + private String parkId; @ApiModelProperty(value = "娴峰悍鍚屾鐘舵�� 0鏈悓姝� 1宸插悓姝�", example = "1") @@ -92,38 +105,14 @@ @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1") @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤") private Integer status; + @ApiModelProperty(value = "鎺堟潈鐘舵�� 0鍚� 1鏄�", example = "1") + @ExcelColumn(name="鎺堟潈鐘舵�� 0鍚� 1鏄�") + private Integer authStatus; @ApiModelProperty(value = "鎵�灞炲垎缁勭紪鐮侊紙鍏宠仈car_group)", example = "1") @ExcelColumn(name="鎵�灞炲垎缁勭紪鐮侊紙鍏宠仈car_group)") private Integer groupId; - - - @ApiModelProperty(value = "鎺堟潈鏃堕棿绫诲瀷 0闀挎湡鏈夋晥 1鑷畾涔� 2杞︿富鏈夋晥鏈�", example = "1") - @ExcelColumn(name="鎺堟潈鏃堕棿绫诲瀷 0闀挎湡鏈夋晥 1鑷畾涔� 2杞︿富鏈夋晥鏈�") - private Integer authTimeType; - - - // -// @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1") -// @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤") -// private Integer status; -// -// -// @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1") -// @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤") -// private Integer status; -// -// @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1") -// @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤") -// private Integer status; -// -// @ApiModelProperty(value = "鐘舵�� 0绂佺敤 1鍚敤", example = "1") -// @ExcelColumn(name="鐘舵�� 0绂佺敤 1鍚敤") -// private Integer status; - - - @ApiModelProperty(value = "绫诲瀷 0鍛樺伐杞﹁締 1瀹夋嘲鍏姟杞� 2鑷湁鐗╂祦杞�3澶栧崗鐗╂祦杞� 4甯傚叕鍙哥墿娴佽溅 5甯傚叕鍙告敞鍐岃溅杈�", example = "1") @ExcelColumn(name="绫诲瀷 0鍛樺伐杞﹁締 1瀹夋嘲鍏姟杞� 2鑷湁鐗╂祦杞�3澶栧崗鐗╂祦杞� 4甯傚叕鍙哥墿娴佽溅 5甯傚叕鍙告敞鍐岃溅杈�") @@ -131,10 +120,14 @@ - @ApiModelProperty(value = "鍋滆溅鍦哄悕绉�", example = "1") - @ExcelColumn(name="鍋滆溅鍦哄悕绉�") + @ApiModelProperty(value = "鍋滆溅鍦哄悕绉伴泦鍚�", example = "1") + @ExcelColumn(name="鍋滆溅鍦哄悕绉伴泦鍚�") @TableField(exist = false) private String parksName; + @ApiModelProperty(value = "缂栬緫浜哄鍚�", example = "1") + @ExcelColumn(name="缂栬緫浜哄鍚�") + @TableField(exist = false) + private String editorName; @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴浜哄憳", example = "1") @ExcelColumn(name="鐢ㄦ埛绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹� 2鍐呴儴浜哄憳") @@ -158,5 +151,28 @@ @ExcelColumn(name="閮ㄩ棬") @TableField(exist = false) private String companyName; + @ApiModelProperty(value = "杞︿富鏄惁鍒犻櫎", example = "1") + @TableField(exist = false) + private Integer memberDeleted; + @ApiModelProperty(value = "杞︿富鎺堟潈鏈夋晥鏈熷紑濮�", example = "1") + @TableField(exist = false) + private Date memberStartTime; + @ApiModelProperty(value = "杞︿富鎺堟潈鏈夋晥鏈熺粨鏉�", example = "1") + @TableField(exist = false) + private Date memberEndTime; + @ApiModelProperty(value = "杞︿富鎺堟潈鐘舵��", example = "1") + @TableField(exist = false) + private Integer memberAuthStatus; + + @ApiModelProperty(value = "鎺堟潈鍋滆溅鍦虹紪鐮侀泦鍚�", example = "1") + @TableField(exist = false) + private List<Integer> parkIdList; + @ApiModelProperty(value = "杞﹁締缂栫爜闆嗗悎", example = "1") + @TableField(exist = false) + private List<Integer> idList; + @ApiModelProperty(value = "杞﹁締鍖呮湡璁板綍闆嗗悎", example = "1") + @TableField(exist = false) + private List<ParkBook> parkBookList; + } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java index 417ca14..0563086 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/ParkBook.java @@ -11,6 +11,7 @@ import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; +import java.util.List; /** * 杞﹁締棰勭害璁板綍淇℃伅琛� @@ -29,7 +30,7 @@ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�") @ExcelColumn(name="鍒涘缓浜虹紪鐮�") - private String creator; + private Integer creator; @ApiModelProperty(value = "鍒涘缓鏃堕棿") @ExcelColumn(name="鍒涘缓鏃堕棿") @@ -135,9 +136,7 @@ @TableField(exist = false) private String companyName; @ApiModelProperty(value = "鍋滆溅搴撴捣搴风紪鐮�", example = "1") - @ExcelColumn(name="鍋滆溅搴撴捣搴风紪鐮�") @TableField(exist = false) private String parkHkId; - } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ParkBookService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ParkBookService.java index 1c9f0c9..a989933 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ParkBookService.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ParkBookService.java @@ -2,6 +2,7 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; +import com.doumee.dao.business.model.Cars; import com.doumee.dao.business.model.ParkBook; import java.util.List; @@ -96,4 +97,6 @@ long count(ParkBook parkBook); void reUpdate(ParkBook parkBook); + + String batchAuth(Cars parkBook); } diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java index 91ef418..29a5552 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java @@ -18,6 +18,7 @@ import com.doumee.dao.business.join.CarJoinMapper; import com.doumee.dao.business.join.ParkBookJoinMapper; import com.doumee.dao.business.model.*; +import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.CarsService; import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -28,10 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.UUID; +import java.util.*; /** * 杞﹁締淇℃伅琛⊿ervice瀹炵幇 @@ -58,7 +56,7 @@ if(loginUserInfo == null){ loginUserInfo = model.getLoginUserInfo(); } - if(StringUtils.isNotBlank(model.getCode()) + if(StringUtils.isBlank(model.getCode()) ||model.getType()==null ||model.getType()<0 ||model.getType()>3 @@ -92,6 +90,7 @@ model.setStatus(Constants.ZERO); model.setIsdeleted(Constants.ZERO); model.setHkStatus(Constants.ZERO); + model.setAuthStatus(Constants.ZERO); model.setRemark(""); // model.setHkDate(model.getCreateDate()); // model.setHkId(UUID.randomUUID().toString().replace("-","")); @@ -116,14 +115,23 @@ model.setEdirot(user.getId()); model.setId(id); model.setIsdeleted(Constants.ONE); + carsMapper.update(null,new UpdateWrapper<Cars>().lambda() + .eq(Cars::getId,model.getId()) + .set(Cars::getStartTime,null) + .set(Cars::getEndTime,null) + .set(Cars::getAuthStatus,Constants.ZERO) + .set(Cars::getIsdeleted,Constants.ONE) + .set(Cars::getEditDate,model.getEditDate()) + .set(Cars::getEdirot,model.getEdirot()) + ); carsMapper.updateById(model); } public boolean dealCancelBookBiz(String code,Date date){ List<ParkBook> parkBooks = parkBookJoinMapper.selectJoinList(ParkBook.class,new MPJLambdaWrapper<ParkBook>() - .selectAll(ParkBook.class ) - .selectAs(Parks::getHkId,ParkBook::getParkHkId ) - .leftJoin(Parks.class,Parks::getId,ParkBook::getParkHkId) + .selectAll(ParkBook.class ) + .selectAs(Parks::getHkId,ParkBook::getParkHkId ) + .leftJoin(Parks.class,Parks::getId,ParkBook::getParkId) .eq(ParkBook::getCarCode,code) .eq(ParkBook::getIsdeleted,Constants.ZERO )); if(parkBooks !=null){ @@ -172,7 +180,7 @@ if(loginUserInfo == null){ loginUserInfo = model.getLoginUserInfo(); } - if(StringUtils.isNotBlank(model.getCode()) + if(StringUtils.isBlank(model.getCode()) ||model.getId()==null ||model.getType()==null ||model.getType()<0 @@ -211,8 +219,19 @@ model.setIsdeleted(Constants.ZERO); model.setHkStatus(Constants.ZERO); model.setRemark(""); + model.setAuthStatus(Constants.ZERO); dealCancelBookBiz(model.getCode(),model.getEditDate()); - carsMapper.updateById(model); + carsMapper.update(null,new UpdateWrapper<Cars>().lambda() + .eq(Cars::getId,model.getId()) + .set(Cars::getAuthStatus,Constants.ZERO) + .set(Cars::getType,model.getType()) + .set(Cars::getCode,model.getCode()) + .set(Cars::getEditDate,model.getEditDate()) + .set(Cars::getEdirot,model.getEdirot()) + .set(Cars::getMemberId,model.getMemberId()) + .set(Cars::getStartTime,null) + .set(Cars::getEndTime,null) + ); } @Override @@ -247,31 +266,56 @@ public PageData<Cars> findPage(PageWrap<Cars> pageWrap) { IPage<Cars> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Cars> queryWrapper = new MPJLambdaWrapper<>(); - queryWrapper.selectAll(Cars.class); - queryWrapper.selectAs(Parks::getName,Cars::getParksName); queryWrapper.selectAs(Member::getType,Cars::getMemberType); queryWrapper.selectAs(Member::getName,Cars::getMemberName); + queryWrapper.selectAs(SystemUser::getRealname,Cars::getEditorName); queryWrapper.selectAs(Member::getPhone,Cars::getMemberPhone); - queryWrapper.selectAs(Company::getName,Cars::getCompanyName); - - queryWrapper.leftJoin(Parks.class,Parks::getId,Cars::getParkId); + queryWrapper.selectAs(Company::getCompanyNamePath,Cars::getCompanyName); queryWrapper.leftJoin(Member.class,Member::getId,Cars::getMemberId); + queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Cars::getEdirot); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); - - queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) .or().like(Member::getPhone,pageWrap.getModel().getMemberName())); - queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()); + queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getCompanyNamePath,pageWrap.getModel().getCompanyName()); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getMemberType()),Member::getType,pageWrap.getModel().getMemberType()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()),Cars::getCode,pageWrap.getModel().getCode()); queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO); - + queryWrapper.eq(pageWrap.getModel().getType()!=null,Cars::getType,pageWrap.getModel().getType()); + queryWrapper.eq(pageWrap.getModel().getAuthStatus()!=null,Cars::getAuthStatus,pageWrap.getModel().getAuthStatus()); queryWrapper.orderByDesc(Cars::getCreateDate); IPage<Cars> result = carJoinMapper.selectJoinPage(page, Cars.class,queryWrapper); + if(result!=null && result.getRecords()!=null && result.getRecords().size()>0){ + List<String> codes = new ArrayList<>(); + for(Cars cars :result.getRecords()){ + codes.add(cars.getCode()); + } + List<ParkBook> parkBooks = parkBookJoinMapper.selectJoinList(ParkBook.class,new MPJLambdaWrapper<ParkBook>() + .selectAll(ParkBook.class) + .selectAs(Parks::getName,ParkBook::getParksName) + .leftJoin(Parks.class,Parks::getId,ParkBook::getParkId) + .in(ParkBook::getCarCode,codes) + .eq(ParkBook::getIsdeleted,Constants.ZERO) ); + for(Cars cars :result.getRecords()){ + cars.setParkBookList(getParkbookListByCode(cars.getCode(),parkBooks)); + } + } return PageData.from(result); } + private List<ParkBook> getParkbookListByCode(String code, List<ParkBook> parkBooks) { + List<ParkBook> list =null; + for(ParkBook p : parkBooks){ + if(StringUtils.equals(p.getCarCode(),code)){ + if(list == null){ + list = new ArrayList<>(); + } + list.add(p); + } + } + return list; + } + @Override public long count(Cars cars) { QueryWrapper<Cars> wrapper = new QueryWrapper<>(cars); diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index f394837..987e74d 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -202,6 +202,7 @@ insert.setCanVisit(Constants.ZERO);//榛樿涓嶅彲璁块棶 insert.setAuthStatus(Constants.ZERO); insert.setName(member.getName()); + insert.setHkId(UUID.randomUUID().toString().replace("-","")); insert.setHkStatus(Constants.ONE); insert.setSex(Constants.getSexByCardNo( member.getIdcardNo()));//鏍规嵁韬唤璇佸彿鑾峰彇鎬у埆 insert.setBirthday( DateUtil.fromStringToDate("yyyyMMdd",IdcardUtil.getBirthByIdCard(member.getIdcardNo()))); @@ -472,6 +473,10 @@ } member.setHkId(model.getHkId()); member.setFaceId(model.getFaceId());//浜鸿劯缂栫爜 + if(StringUtils.equals(model.getFaceImg(),member.getFaceImg())){ + //濡傛灉浜鸿劯娌″彉鍖� + member.setFaceImg(null); + } return model; } @@ -529,9 +534,7 @@ } @Override - public void deleteById(Integer id,LoginUserInfo user) { - LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); - + public void deleteById(Integer id,LoginUserInfo loginUserInfo) { Member member=new Member(); member.setId(id); member.setIsdeleted(Constants.ZERO); @@ -586,12 +589,12 @@ //濡傛灉鍛樺伐淇℃伅涓嶅悎娉曠洿鎺ヨ烦杩� continue; } + if(StringUtils.isNotBlank(member.getFaceId()) || !Constants.equalsInteger(member.getFaceStatus(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+member.getName()+"銆戠殑浜鸿劯淇℃伅涓嶆弧瓒虫巿鏉冩潯浠讹紝璇疯繑鍥炲畬鍠勫悗鍐嶈繘琛岃鎿嶄綔锛�"); + } member.setStartTime(memberRole.getStartTime()); member.setEndTime(memberRole.getEndTime()); Integer ischange = getRoleIdByParam(memberRole.getRoleIds(),member,memberRoleMapper,deviceRoleMapper); - if(ischange == 0){ - return;//鏈彂鐜版潈闄愬彉鍖栵紝鐩存帴杩斿洖 - } if(memberRole.getRoleIds()!=null && memberRole.getRoleIds().length>0 && StringUtils.isBlank(member.getRoleId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鏈煡璇㈠埌鏈夋晥闂ㄧ缁勬暟鎹�"); } @@ -1830,17 +1833,20 @@ private void dealHkUserBizBatch(List<Member> newList) { List<String> hkIds = new ArrayList<>(); try { - memberMapper.insertBatchSomeColumn(newList); - List<SystemUser> userList = new ArrayList<>(); for(Member insert: newList){ if(dealHkUserBiz(insert)){ //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛� - if(Constants.equalsInteger(insert.getCompanyType(),Constants.ONE)){ - //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿 - userList.add(createSystemUser(insert)); - } }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅銆�"+insert.getName()+"銆戝悓姝ュ畨闃插钩鍙板け璐ワ紝璇风◢鍚庨噸璇曪紒"); + } + } + memberMapper.insertBatchSomeColumn(newList); + List<SystemUser> userList = new ArrayList<>(); + for(Member insert: newList){ + //鍒涘缓绯荤粺鐧婚檰璐﹀彿锛堥粯璁ゆ棤浠讳綍瑙掕壊锛� + if(Constants.equalsInteger(insert.getCompanyType(),Constants.ONE)){ + //濡傛灉鏄唴閮ㄧ粍缁囦汉鍛橈紝鏂板绯荤粺鐧婚檰璐﹀彿 + userList.add(createSystemUser(insert)); } } if(userList.size()>0){ @@ -1852,7 +1858,6 @@ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鍛樺伐淇℃伅瀵煎叆澶辫触锛岃绋嶅悗閲嶈瘯锛�"); } } - private Member checkModelParam(MemberImport model, List<Member> newList ,int index ,LoginUserInfo loginUserInfo diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java index c12d4e2..e2b08a6 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParkBookServiceImpl.java @@ -7,7 +7,9 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; +import com.doumee.dao.business.CarsMapper; import com.doumee.dao.business.ParkBookMapper; +import com.doumee.dao.business.ParksMapper; import com.doumee.dao.business.join.ParkBookJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.service.business.ParkBookService; @@ -21,10 +23,13 @@ import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; /** * 杞﹁締棰勭害璁板綍淇℃伅琛⊿ervice瀹炵幇 @@ -37,7 +42,11 @@ @Autowired private ParkBookMapper parkBookMapper; @Autowired + private CarsMapper carsMapper; + @Autowired private HkSyncParkServiceImpl hkSyncParkService; + @Autowired + private ParksMapper parksMapper; @Autowired private ParkBookJoinMapper parkBookJoinMapper; @@ -112,6 +121,111 @@ } hkSyncParkService.syncParkBookBySingleModel(model); } + @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public String batchAuth(Cars cars) { + if(cars.getIdList() == null || cars.getIdList() == null + ||cars.getAuthTimeType() == null + ||cars.getAuthTimeType()>2 + ||cars.getAuthTimeType()<0 ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + MPJLambdaWrapper<Cars> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(Cars.class); + queryWrapper.selectAs(Member::getStartTime,Cars::getMemberStartTime); + queryWrapper.selectAs(Member::getEndTime,Cars::getMemberEndTime); + queryWrapper.selectAs(Member::getIsdeleted,Cars::getMemberDeleted); + queryWrapper.selectAs(Member::getAuthStatus,Cars::getMemberAuthStatus); + queryWrapper.leftJoin(Member.class,Member::getId,Cars::getMemberId); + queryWrapper.eq(Cars::getIsdeleted,Constants.ZERO) + .in(Cars::getId,cars.getIdList()); + List<Cars> carsList = carsMapper.selectList( queryWrapper); + if(carsList== null || carsList.size() ==0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"杞﹁締淇℃伅鏈夎锛岃杩斿洖鍒锋柊椤甸潰閲嶈瘯锛�"); + } + List<Parks> parksList = null; + if(cars.getParkIdList()!=null && cars.getParkIdList().size() > 0){ + MPJLambdaWrapper<Parks> queryWrapper1 = new MPJLambdaWrapper<>(); + queryWrapper1.selectAll(Parks.class); + queryWrapper1.eq(Parks::getIsdeleted,Constants.ZERO) + .in(Parks::getId,cars.getParkIdList()); + parksList = parksMapper.selectList( queryWrapper1); + if(parksList== null || parksList.size() ==0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍋滆溅鍦轰俊鎭湁璇紝璇疯繑鍥炲埛鏂伴〉闈㈤噸璇曪紒"); + } + } + + if(Constants.equalsInteger(cars.getAuthTimeType(),Constants.ONE)){ + if( cars.getStartTime() ==null || cars.getEndTime() == null ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇峰~鍐欐纭殑鏈夋晥鏈熻寖鍥�"); + } + if( cars.getEndTime().getTime() < System.currentTimeMillis()){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熸埅姝㈡棩鏈熶笉鑳藉皬浜庡綋鍓嶆椂闂达紒"); + } + if(cars.getEndTime().getTime() <= cars.getStartTime().getTime()){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈夋晥鏈熸埅姝㈡棩鏈熶笉鑳藉皬浜庡紑濮嬫椂闂达紒"); + } + } + Date date = new Date(); + for(Cars model : carsList){ + Date startTime = cars.getStartTime(); + Date endTime = cars.getEndTime(); + if(Constants.equalsInteger(cars.getAuthTimeType(),Constants.TWO)){ + if(!Constants.equalsInteger(model.getMemberAuthStatus(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝杞﹁締銆�"+model.getCode()+"銆戣溅涓诲皻鏈巿鏉冮棬绂佷俊鎭紝鎺堟潈鏃犳硶銆愯窡闅忚溅涓汇�戞湁鏁堟湡锛�"); + } + startTime = model.getMemberStartTime(); + endTime=model.getMemberEndTime(); + } + model.setAuthTimeType(cars.getAuthTimeType()); + model.setStartTime(startTime); + model.setEndTime(endTime); + dealCarAuthByModel(model,cars.getLoginUserInfo(),parksList,date); + model.setAuthStatus(Constants.ONE);//宸叉巿鏉� + carsMapper.update(null,new UpdateWrapper<Cars>().lambda() + .eq(Cars::getId,model.getId()) + .set(Cars::getEditDate,date) + .set(Cars::getEdirot,cars.getLoginUserInfo().getId()) + .set(Cars::getAuthStatus,Constants.ONE) + .set(Cars::getStartTime,startTime) + .set(Cars::getEndTime,endTime) + ); + } + return "鎺堟潈鎴愬姛"; + + } + + private int dealCarAuthByModel(Cars model, LoginUserInfo loginUserInfo, List<Parks> parksList,Date date) { + //鍒犻櫎杞﹂噺搴撹褰曟暟鎹� + parkBookMapper.update(null,new UpdateWrapper<ParkBook>().lambda() + .eq(ParkBook::getCarCode,model.getCode()) + .set(ParkBook::getIsdeleted,Constants.ONE) + .set(ParkBook::getHkStatus,Constants.ZERO) + ); + if(org.apache.commons.collections.CollectionUtils.isNotEmpty(parksList)){ + List<ParkBook> parkBookList = new ArrayList<>(); + for (Parks parks:parksList) { + ParkBook parkBook = new ParkBook(); + parkBook.setIsdeleted(Constants.ZERO); + parkBook.setCreateDate(date); + parkBook.setCreator(loginUserInfo.getId()); + parkBook.setEditor(loginUserInfo.getId()); + parkBook.setEditDate(date); + parkBook.setCarCode(model.getCode()); + parkBook.setParkId(parks.getId()); + parkBook.setOrigin(Constants.ZERO); + parkBook.setStartTime(model.getStartTime()); + parkBook.setEndTime(model.getEndTime()); + parkBook.setTimeType(model.getAuthTimeType()); + parkBook.setMemberId(model.getMemberId()); + parkBook.setHkStatus(Constants.ZERO); + parkBook.setRemark("寰呭悓姝ュ畨闃插钩鍙�"); + parkBookList.add(parkBook); + } + parkBookMapper.insertBatchSomeColumn(parkBookList); + } + return 0; + } @Override public ParkBook findOne(ParkBook parkBook) { diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java index a6ea67e..7765f13 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java @@ -861,12 +861,14 @@ model.setOrgIndexCode(c.getHkOrgId()); model.setJobNo(c.getCode()); model.setPhoneNo(c.getPhone()); - model.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo())); + if(StringUtils.isNotBlank(c.getIdcardNo())){ + model.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo())); + } model.setCertificateType(HKConstants.CertificateType.SHENFENZHENG.getKey()+""); model.setPersonId(type == 0 ?UUID.randomUUID().toString().replace("-", ""):c.getHkId()); model.setGender(Constants.formatIntegerNum(c.getSex())+""); model.setPersonName(c.getName()); - if(type== 0 && StringUtils.isNotBlank(c.getFaceImg())){ + if(StringUtils.isNotBlank(c.getFaceImg())){ model.setFaces(new ArrayList<>()); UserAddFaceRequest face = new UserAddFaceRequest(); String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg()); -- Gitblit v1.9.3