admin/src/api/business/member.js
@@ -36,6 +36,15 @@ export function updateById (data) { return request.post('/visitsAdmin/cloudService/business/member/updateById', data) } export function updateHead (data) { return request.post('/visitsAdmin/cloudService/business/member/updateHead', data) } export function updateWorkStatus (data) { return request.post('/visitsAdmin/cloudService/business/member/updateWorkStatus', data) } export function updateCanVisit (data) { return request.post('/visitsAdmin/cloudService/business/member/updateCanVisitById', data) } // æ¹éæé» export function batchBlock (ids) { admin/src/components/business/OperaMemberWindow.vue
@@ -22,20 +22,21 @@ </el-form-item> <el-form-item label="ææºå·" prop="phone"> <el-input v-model="form.phone" placeholder="请è¾å ¥ææºå·" v-trim/> <div style="color: #F56C6C;font-size: 12px">ï¼æ³¨ï¼åå·¥ææºå·å°ä½ä¸ºå¹³å°ç»å½è´¦å·ï¼åå§å¯ç 为系ç»é»è®¤å¯ç é 置项ï¼</div> </el-form-item> <el-form-item label="身份è¯å·" prop="idcardNo" v-if="form.id ==null"> <el-input v-model="form.idcardNo" placeholder="请è¾å ¥èº«ä»½è¯å·" v-trim/> </el-form-item> <el-form-item label="ä¿®æ¹èº«ä»½è¯å·" prop="idcardNoNew" v-if="form.id !=null"> <el-input v-model="form.idcardNoNew" placeholder="å¯ä¿®æ¹èº«ä»½è¯å·" v-trim/> <div v-if="form.id !=null"> ï¼æ³¨ï¼å½å身份è¯å·ä¸º<span style="color: red">ã{{form.idcardDecode}}ã</span>ï¼å¦éä¿®æ¹ï¼è¯·å¨è¾å ¥æ å¡«åæ°ç身份è¯å·!ï¼ <div style="font-size: 12px" v-if="form.id !=null"> ï¼æ³¨ï¼å½å身份è¯å·ä¸º<span style="color: #F56C6C">ã{{form.idcardDecode}}ã</span>ï¼å¦éä¿®æ¹ï¼è¯·å¨è¾å ¥æ å¡«åæ°ç身份è¯å·!ï¼ </div> </el-form-item> <el-form-item label="å·¥å·" prop="code"> <el-input v-model="form.code" placeholder="请è¾å ¥å工工å·" v-trim/> </el-form-item> <el-form-item label="人è¸ç §ç" prop="faceImgFull"> <el-form-item label="人è¸ç §ç" prop="faceImgFull" > <UploadAvatarImage :file="{ 'imgurlfull': form.faceImgFull, 'imgurl': form.faceImg }" :uploadData="uploadData" admin/src/views/business/internalMember.vue
@@ -31,6 +31,9 @@ <el-option label="åæ¥å¤±è´¥" value="2"></el-option> </el-select> </el-form-item> <el-form-item label="" > <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1" >æ¯å¦å å«ä¸çº§ç»ç»</el-checkbox> </el-form-item> <section> <el-button type="primary" @click="search">æç´¢</el-button> <el-button @click="reset">éç½®</el-button> @@ -76,7 +79,36 @@ <span v-if="row.status == 2" style="color: red">æé»/å»ç»</span> </template> </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.companyType == 0">ç¸å ³æ¹ç»ç»</span> <span v-if="row.companyType == 1">å é¨ç»ç»</span> </template> </el-table-column> <el-table-column label="å¨èç¶æ"> <template slot-scope="{row}"> <el-switch @change="changeWorkStatus($event, row)" v-model="row.workStatus" active-color="#13ce66" inactive-color="#ff4949" :active-value="0" :inactive-value="1"> </el-switch> </template> </el-table-column> <el-table-column label="æ¯å¦å¯æè®¿"> <template slot-scope="{row}"> <el-switch @change="changeCanvisit($event, row)" v-model="row.canVisit" active-color="#13ce66" inactive-color="#ff4949" :active-value="1" :inactive-value="0"> </el-switch> </template> </el-table-column> <el-table-column label="å¯æè®¿" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.canVisit != 1">å¦</span> @@ -91,11 +123,25 @@ <span v-if="row.hkStatus == 3" style="color: red">ä¸ç¬¦åä¸åæ¡ä»¶</span> </template> </el-table-column> <el-table-column label="æ¯å¦ææ" min-width="100px"> <template slot-scope="{row}"> <span v-if="row.authStatus == 1" style="color: green">æ¯</span> <span v-if="row.authStatus == 0" style="color: red">å¦</span> </template> </el-table-column> <el-table-column label="é¨ç¦è§è²" min-width="100px"> <template slot-scope="{row}"> <span>{{row.roleNames.join(',')}}</span> <span>{{(row.roleNames && row.roleNames.length) ?row.roleNames.join(','): '-'}}</span> </template> </el-table-column> <el-table-column prop="code" label="å·¥å·" min-width="100px"></el-table-column> <el-table-column label="å¡ç" min-width="80px"> <template slot-scope="{row}"> <el-button @click="$refs.cardOpeningRecord.open('å¼å¡è®°å½', row.id)" type="text">{{row.memberCardCount || '0'}}</el-button> </template> </el-table-column> <el-table-column prop="editorName" label="æä½äºº" min-width="100px"></el-table-column> <el-table-column prop="editDate" label="æåæä½æ¶é´" min-width="150px"></el-table-column> <el-table-column fixed="right" label="人è¸ä¿¡æ¯" min-width="100px"> <template slot-scope="{row}"> <el-image @@ -106,21 +152,18 @@ </el-image> </template> </el-table-column> <el-table-column fixed="right" label="å¡çä¿¡æ¯" min-width="100px"> <template slot-scope="{row}"> <el-button @click="$refs.cardOpeningRecord.open('å¼å¡è®°å½', row.id)" type="text">{{row.memberCardCount || '0'}}</el-button> </template> </el-table-column> <el-table-column v-if="containPermissions(['business:member:update', 'business:member:delete','business:empower:create'])" label="æä½" min-width="120" min-width="280" fixed="right" > <template slot-scope="{row}"> <el-button type="text" icon="el-icon-edit" @click="$refs.OperaMemberWindow.open('ç¼è¾å工信æ¯',row,department)" v-permissions="['business:empower:update']">ç¼è¾</el-button> <el-button type="text" icon="el-icon-delete" @click="empower(row.id)" v-permissions="['business:empower:delete']">å é¤</el-button> <el-button type="text" :loading="heading" icon="el-icon-delete" @click="updateHead(row,0)" v-if="row.headStatus ==1 " v-permissions="['business:member:head']">åæ¶ä¸»ç®¡</el-button> <el-button type="text" :loading="heading" icon="el-icon-edit" @click="updateHead(row,1)" v-if="row.headStatus == 0" v-permissions="['business:member:head']">设为主管</el-button> <el-button type="text" icon="el-icon-plus" @click="empower(row.id)" v-permissions="['business:empower:create']">éæ°ææ</el-button> <el-button type="text" icon="el-icon-delete" @click="empower(row.id)" v-permissions="['business:empower:delete']">å é¤</el-button> </template> </el-table-column> </el-table> @@ -145,11 +188,11 @@ import Tree from '@/components/common/Tree' import OperaMemberWindow from '@/components/business/OperaMemberWindow' import { fetchList } from '@/api/business/company' import { memberSync, roleAuth } from '@/api/business/member' import { memberSync, roleAuth, updateCanVisit, updateHead, updateWorkStatus } from '@/api/business/member' export default { name: 'internalMember', extends: BaseTable, components: { TableLayout1, Pagination, Tree, cardOpeningRecord,OperaMemberWindow }, components: { TableLayout1, Pagination, Tree, cardOpeningRecord, OperaMemberWindow }, data () { return { TreeList: [], @@ -158,6 +201,7 @@ name: '', status: '', hkStatus: '', includeChild: false, canVisit: '', keyword: '', type: 2, @@ -165,9 +209,12 @@ companyId: '', hasFace: '' }, loading:false, loading: false, heading: false, working: false, canvisiting: false, companyTree: [], department:[] department: [] } }, created () { @@ -181,7 +228,7 @@ this.getfindCompanyTreePage() }, methods: { empower(id) { empower (id) { var that = this this.$confirm('ç¡®å®éæ°ææå?', 'æç¤º', { confirmButtonText: 'ç¡®å®', @@ -190,11 +237,12 @@ }).then(() => { roleAuth(id) .then(res => { this.$tip.apiSuccess(res || 'æä½æå') that.search() }) }).catch(() => { }); this.$tip.apiSuccess( 'æä½å¤±è´¥') }) }, // è·åç»ç»æ getfindCompanyTreePage () { @@ -209,22 +257,22 @@ } }) }, getDepartmentTree(tree) { if(tree ==null){ getDepartmentTree (tree) { if (tree == null) { return [] } return tree.map(item => { let newItem = {...item} if(newItem){ newItem.children=newItem.childList const newItem = { ...item } if (newItem) { newItem.children = newItem.childList } if (item.children && item.children.length == 0) { this.$delete( newItem, 'children' ) this.$delete(newItem, 'children') } else { newItem.children = this.getDepartmentTree(newItem.children) } return newItem }); }) }, // åæ¥ä¿¡æ¯ async synchronous () { @@ -245,6 +293,54 @@ }) .catch(() => {}) }, async updateHead (row, type) { this.$dialog.actionConfirm('æ¨ç¡®è®¤è¿è¡å½åæä½åï¼', 'é¨é¨ä¸»ç®¡è®¾ç½®æä½æç¤º') .then(() => { this.heading = true updateHead({ id: row.id, headStatus: type }) .then(res => { this.$tip.apiSuccess(res || 'æä½æå') this.search() }) .catch(e => { this.$tip.apiFailed(e) }) .finally(() => { this.heading = false }) .catch(() => {}) }) }, changeWorkStatus (e, row) { this.working = true updateWorkStatus({ id: row.id, workStatus: e }) .then(res => { this.$tip.apiSuccess(res || 'æä½æå') this.search() }) .catch(e => { this.$tip.apiFailed(e) }) .finally(() => { this.working = false }) .catch(() => {}) }, changeCanvisit (e, row) { this.canvisiting = true updateCanVisit({ id: row.id, canVisit: e }) .then(res => { this.$tip.apiSuccess(res || 'æä½æå') this.search() }) .catch(e => { this.$tip.apiFailed(e) }) .finally(() => { this.canvisiting = false }) .catch(() => {}) }, callback (row) { this.searchForm.erpOrgId = row.erpId this.searchForm.companyId = row.id server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -591,6 +591,64 @@ } /** * å工信æ¯ç»´æ¤æä½åå²ç±»å 0è§£å» 1å»ç» 2æé» 3æ¢å¤ 4设为æè®¿äºº 5åæ¶æè®¿äºº 6设为é«çº§å®¡æ¹äºº 7åæ¶é«çº§å®¡æ¹äºº 8æå¨ç¦»åº 9å é¤ 10æ´æ° 11ææé¨ç¦æé 12离è 13æ¢å¤å¨è */ public enum UserActionType { CANCEL_FREEZE(0, "è§£å»","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãè§£å»ã" ), FREEZE(1, "å»ç»","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãå»ç»ã" ), BLACKLIST(2, "æé»","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãæé»ã"), CANCEL_BLACKLIST(3, "æ¢å¤","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãç§»åºé»ååã" ), CANVISIT(4, "设为æè®¿äºº","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ã设为æè®¿äººã" ), CANCEL_VISIT(5, "åæ¶æè®¿äºº","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãåæ¶æè®¿äººã" ), //ç»ä¿éç¥ HIGHCHECKOR(6, "设为é«çº§å®¡æ¹äºº","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ã设为é«çº§å®¡æ¹äººã" ), CANCEL_HIGHCHECKOR(7, "åæ¶é«çº§å®¡æ¹äºº","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãåæ¶é«çº§å®¡æ¹äººã" ), LEVEL(8, "æå¨ç¦»åº","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãæå¨ç¦»åºã" ), DELETE(9, "å é¤","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãå é¤ã" ), EDIT(10, "æ´æ°","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãæ´æ°ã" ), AUTH_ROLE(11, "ææé¨ç¦æé","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãææé¨ç¦æéã" ), WORK_OFF(12, "离è","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ã离èãæä½" ), WORK_ON(13, "å¨è","ç±ã${param1}ãäºãæä½æ¶é´ï¼${param2}ãï¼è¿è¡ãå¨èãæä½" ), ; // æååé private int key; private String name; private String info; // æé æ¹æ³ UserActionType(int key, String name,String info ) { this.key = key; this.info = info; this.name = name; } public int getKey() { return key; } public void setKey(int key) { this.key = key; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } } public enum NoticeObjectType { MEETING_BOOK_SUCCESS(0, "ä¼ä¸é¢å®æå","ä¼ä¸é¢å®æå"), MEETING_CACEL(1, "ä¼è®®åæ¶","ä¼è®®åæ¶"), server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -1876,11 +1876,10 @@ } public static int compareDate(String format, String str1, Date date2) { Date date1 = null; try { date1 = fromStringToDate(format, str1); } catch (ParseException e) { } catch (Exception e) { // TODO èªå¨çæ catch å e.printStackTrace(); } @@ -2785,7 +2784,7 @@ stringDate = getFomartDate(new Date(now), formate); } catch (ParseException e) { } catch (Exception e) { e.printStackTrace(); } @@ -2800,8 +2799,7 @@ long now = date.getTime() + (long) Integer.parseInt(days) * DAY_IN_MILLISECOND; date = new Date(now); } catch (ParseException e) { } catch (Exception e) { e.printStackTrace(); } @@ -2818,10 +2816,16 @@ * * å符串形å¼è½¬å为Dateç±»å Stringç±»åæç §formatæ ¼å¼è½¬ä¸ºDateç±»å **/ public static Date fromStringToDate(String format, String dateTime) throws ParseException { public static Date fromStringToDate(String format, String dateTime) { Date date = null; SimpleDateFormat sdf = new SimpleDateFormat(format); date = sdf.parse(dateTime); try { SimpleDateFormat sdf = new SimpleDateFormat(format); date = sdf.parse(dateTime); }catch (Exception e){ } return date; } server/system_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -122,7 +122,7 @@ @ApiModelProperty(value = "è´è´£äººç¼ç ï¼å ³èmember)") @ExcelColumn(name="è´è´£äººç¼ç ") private String headId; private Integer headId; @ApiModelProperty(value = "ERP忥æ¶é´") @ExcelColumn(name="ERP忥æ¶é´") server/visits/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -9,7 +9,6 @@ import com.doumee.core.utils.Constants; import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.request.MemberQuery; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.model.Member; import com.doumee.service.business.ext.ERPSyncService; import com.doumee.service.business.MemberService; @@ -63,7 +62,7 @@ @GetMapping("/delete/{id}") @RequiresPermissions("business:member:delete") public ApiResponse deleteById(@PathVariable Integer id) { memberService.deleteById(id); memberService.deleteById(id,this.getLoginUser(null)); return ApiResponse.success(null); } @@ -76,7 +75,7 @@ for (String id : idArray) { idList.add(Integer.valueOf(id)); } memberService.deleteByIdInBatch(idList); memberService.deleteByIdInBatch(idList,this.getLoginUser(null)); return ApiResponse.success(null); } @@ -123,28 +122,6 @@ return ApiResponse.success(null); } @ApiOperation("人åç§»é¤/è§£å»") @PostMapping("/updateRemoveStatusById") @RequiresPermissions("business:member:update") public ApiResponse updateRemoveStatusById(@RequestBody List<Member> list){ if(list.size()>0){ memberService.updateRemoveStatusById(list); return ApiResponse.success(null); }else{ return ApiResponse.failed("åæ°é误"); } } @ApiOperation("人åæé»/å»ç»") @PostMapping("/updateVisitsStatusById") @RequiresPermissions("business:member:update") public ApiResponse updateVisitsStatusById(@RequestBody Member member){ memberService.updateVisitsStatusById(member); return ApiResponse.success(null); } @ApiOperation("æ¹éæé»") @GetMapping("/batchBlock") @RequiresPermissions("business:member:delete") @@ -154,7 +131,7 @@ for (String id : idArray) { idList.add(Integer.valueOf(id)); } memberService.batchBlock(idList,2); memberService.batchBlock(idList,2,this.getLoginUser(null)); return ApiResponse.success(null); } @@ -167,7 +144,7 @@ for (String id : idArray) { idList.add(Integer.valueOf(id)); } memberService.batchBlock(idList,1); memberService.batchBlock(idList,1,this.getLoginUser(null)); return ApiResponse.success(null); } @@ -188,12 +165,6 @@ return ApiResponse.success(memberService.findPage(pageWrap)); } @ApiOperation("å页å³å¡ç¨æ·ä¿¡æ¯æ¥è¯¢") @PostMapping("/findLaborMemberInfoPage") @RequiresPermissions("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findLaborMemberInfoPage(@RequestBody PageWrap<MemberInfoDTO> pageWrap){ return ApiResponse.success(memberService.findLaborMemberInfoPage(pageWrap)); } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @@ -221,7 +192,7 @@ @ApiOperation("å页æ¥è¯¢å é¨äººåä¿¡æ¯") @PostMapping("/findMemberInfoPage") @RequiresPermissions("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap){ public ApiResponse<PageData<Member>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap){ if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){ return ApiResponse.success(memberService.findVisitPage(pageWrap)); }else if(pageWrap.getModel().getType().equals(Constants.memberType.internal)){ @@ -234,7 +205,7 @@ @ApiOperation("å页æ¥è¯¢è®¿å®¢äººåä¿¡æ¯") @PostMapping("/findVisitPage") @RequiresPermissions("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findVisitPage (@RequestBody PageWrap<MemberQuery> pageWrap) { public ApiResponse<PageData<Member>> findVisitPage (@RequestBody PageWrap<MemberQuery> pageWrap) { return ApiResponse.success(memberService.findVisitPage(pageWrap)); } @@ -242,7 +213,7 @@ @ApiOperation("å¼å¸¸äººåå»ç»/æé»") @PostMapping("/findUnusualPage") @RequiresPermissions("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap) { public ApiResponse<PageData<Member>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap) { return ApiResponse.success(memberService.findUnusualPage(pageWrap)); } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -11,7 +11,6 @@ import com.doumee.core.utils.Constants; import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.request.MemberQuery; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.model.Member; import com.doumee.service.business.MemberService; import com.doumee.service.business.ext.ERPSyncService; @@ -69,7 +68,7 @@ @GetMapping("/delete/{id}") @CloudRequiredPermission("business:member:delete") public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ memberService.deleteById(id); memberService.deleteById(id,this.getLoginUser(token)); return ApiResponse.success(null); } @@ -82,7 +81,7 @@ for (String id : idArray ){ idList.add(Integer.valueOf(id)); } memberService.deleteByIdInBatch(idList); memberService.deleteByIdInBatch(idList,this.getLoginUser(null)); return ApiResponse.success(null); } @@ -117,7 +116,16 @@ @PostMapping("/updateById") @CloudRequiredPermission("business:member:update") public ApiResponse updateById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ member.setLoginUserInfo(this.getLoginUser(token)); memberService.updateById(member); return ApiResponse.success(null); } @ApiOperation("设置æåæ¶ä¸»ç®¡") @PostMapping("/updateHead") @CloudRequiredPermission("business:member:head") public ApiResponse updateHead(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ member.setLoginUserInfo(this.getLoginUser(token)); memberService.updateHead(member); return ApiResponse.success(null); } @@ -125,56 +133,71 @@ @PostMapping("/updateStatusById") @CloudRequiredPermission("business:member:update") public ApiResponse updateStatusById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ member.setLoginUserInfo(this.getLoginUser(token)); memberService.updateStatusById(member); return ApiResponse.success(null); } @ApiOperation("人åç§»é¤/è§£å»") @PostMapping("/updateRemoveStatusById") @ApiOperation("æ ¹æ®ID 设置å¨èã离è ") @PostMapping("/updateWorkStatus") @CloudRequiredPermission("business:member:update") public ApiResponse updateRemoveStatusById(@RequestBody List<Member> list,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ if(list.size()>0){ memberService.updateRemoveStatusById(list); return ApiResponse.success(null); }else{ return ApiResponse.failed("åæ°é误"); } } @ApiOperation("人åæé»/å»ç»") @PostMapping("/updateVisitsStatusById") @CloudRequiredPermission("business:member:update") public ApiResponse updateVisitsStatusById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ public ApiResponse updateWorkStatus(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ member.setLoginUserInfo(this.getLoginUser(token)); memberService.updateVisitsStatusById(member); memberService.updateWorkStatus(member); return ApiResponse.success(null); } @ApiOperation("æ¹éæé»") @GetMapping("/batchBlock") @CloudRequiredPermission("business:member:delete") @CloudRequiredPermission("business:member:update") public ApiResponse batchBlock(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); for (String id : idArray ){ idList.add(Integer.valueOf(id)); } memberService.batchBlock(idList,2); memberService.batchBlock(idList,2,this.getLoginUser(token)); return ApiResponse.success(null); } @ApiOperation("æ¹éå»ç»") @GetMapping("/batchFreeze") @CloudRequiredPermission("business:member:delete") @CloudRequiredPermission("business:member:update") public ApiResponse batchFreeze(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); for (String id : idArray ){ idList.add(Integer.valueOf(id)); } memberService.batchBlock(idList,1); memberService.batchBlock(idList,1,this.getLoginUser(token)); return ApiResponse.success(null); } @ApiOperation("æ¹éç§»åºé»åå") @GetMapping("/batchRemoveBlock") @CloudRequiredPermission("business:member:update") public ApiResponse batchCancelBlock(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); for (String id : idArray ){ idList.add(Integer.valueOf(id)); } memberService.batchRemoveBlock(idList,2,this.getLoginUser(token)); return ApiResponse.success(null); } @ApiOperation("æ¹éè§£é¤å»ç»") @GetMapping("/batchRemoveFreeze") @CloudRequiredPermission("business:member:update") public ApiResponse batchRemoveFreeze(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); for (String id : idArray ){ idList.add(Integer.valueOf(id)); } memberService.batchRemoveBlock(idList,1,this.getLoginUser(token)); return ApiResponse.success(null); } @@ -184,6 +207,7 @@ @PostMapping("/updateCanVisitById") @CloudRequiredPermission("business:member:update") public ApiResponse updateCanVisitById(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ member.setLoginUserInfo(this.getLoginUser(token)); memberService.updateCanVisitById(member); return ApiResponse.success(null); } @@ -201,12 +225,6 @@ return ApiResponse.success(memberService.findList(model)); } @ApiOperation("å页å³å¡ç¨æ·ä¿¡æ¯æ¥è¯¢") @PostMapping("/findLaborMemberInfoPage") @CloudRequiredPermission("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findLaborMemberInfoPage(@RequestBody PageWrap<MemberInfoDTO> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(memberService.findLaborMemberInfoPage(pageWrap)); } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @@ -234,7 +252,7 @@ @ApiOperation("å页æ¥è¯¢å é¨äººåä¿¡æ¯") @PostMapping("/findMemberInfoPage") @CloudRequiredPermission("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ public ApiResponse<PageData<Member>> findMemberInfoPage(@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ if(pageWrap.getModel().getType().equals(Constants.memberType.visitor)){ return ApiResponse.success(memberService.findVisitPage(pageWrap)); }else if(pageWrap.getModel().getType().equals(Constants.memberType.internal)){ @@ -247,7 +265,7 @@ @ApiOperation("å页æ¥è¯¢è®¿å®¢äººåä¿¡æ¯") @PostMapping("/findVisitPage") @CloudRequiredPermission("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findVisitPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ public ApiResponse<PageData<Member>> findVisitPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(memberService.findVisitPage(pageWrap)); } @@ -255,7 +273,7 @@ @ApiOperation("å¼å¸¸äººåå»ç»/æé»") @PostMapping("/findUnusualPage") @CloudRequiredPermission("business:member:query") public ApiResponse<PageData<MemberInfoDTO>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ public ApiResponse<PageData<Member>> findUnusualPage (@RequestBody PageWrap<MemberQuery> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(memberService.findUnusualPage(pageWrap)); } server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
@@ -65,6 +65,8 @@ @ApiModelProperty(value = "erpæºæä¸»é® ") private String erpOrgId; @ApiModelProperty(value = "æºæä¸»é® ") private String companyId; private Integer companyId; @ApiModelProperty(value = "æ¯å¦å å«ä¸çº§ç»ç»ç¨æ·") private Boolean includeChild; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
ÎļþÒÑɾ³ý server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/MemberMapper.java
@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.model.CarEvent; import com.doumee.dao.business.model.Member; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -17,17 +15,6 @@ * @date 2023/11/30 15:33 */ public interface MemberMapper extends BaseMapper<Member> { @Select(" select m.* , c.name as companyName , " + " (select count(0) from member_card mc where mc.MEMBER_ID=m.id and mc.ISDELETED=0) as memberCardCount, " + " (select GROUP_CONCAT(dr.name) from member_role mr left join device_role dr on dr.id=mr.ROLE_ID " + " where mr.MEMBER_ID=m.id and mr.ISDELETED=0 GROUP BY mr.MEMBER_ID) as roleName "+ " from member m " + " left join company c on m.COMPANY_ID=c.id "+ " ${ew.customSqlSegment} ") IPage<MemberInfoDTO> getPage(IPage<MemberInfoDTO> page, @Param(Constants.WRAPPER) Wrapper wrapper); void insertBatchSomeColumn(List<Member> list); } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -82,7 +82,6 @@ @ApiModelProperty(value = "访客åç§°/å é¨äººå") @ExcelColumn(name="访客åç§°") private String name; @ApiModelProperty(value = "访客年é¾") @ExcelColumn(name="访客年é¾") @JsonFormat(pattern = "yyyy-MM-dd") @@ -95,6 +94,9 @@ @ApiModelProperty(value = "身份è¯å·ï¼MD4å å¯ï¼") @ExcelColumn(name="身份è¯å·ï¼MD4å å¯ï¼") private String idcardNo; @ApiModelProperty(value = "ä¿®æ¹ç身份è¯å· ") @TableField(exist = false) private String idcardNoNew; @ApiModelProperty(value = "è¯ä»¶æ¾ç¤ºä¿¡æ¯") @ExcelColumn(name="è¯ä»¶æ¾ç¤ºä¿¡æ¯") @@ -146,12 +148,18 @@ @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥 2åæ¥å¤±è´¥ 3ä¸ç¬¦åä¸åæ¡ä»¶ 4çå¾ å 餿é ", example = "1") @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥 2åæ¥å¤±è´¥ 3ä¸ç¬¦åä¸åæ¡ä»¶ 4çå¾ å 餿é") private Integer hkStatus; @ApiModelProperty(value = "海康ææç¶æ 0æªææ 1å·²ææ ", example = "1") @ExcelColumn(name="海康ææç¶æ 0æªææ 1å·²ææ ") private Integer authStatus; @ApiModelProperty(value = "海康æè¿åæ¥æ¶é´") @ExcelColumn(name="海康æè¿åæ¥æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date hkDate; @ApiModelProperty(value = "å¨èç¶æ 0å¨è 1离è", example = "1") @ExcelColumn(name="å¨èç¶æ 0å¨è 1离è") private Integer workStatus; @ApiModelProperty(value = "ERPæ è¯", example = "1") @ExcelColumn(name="ERPæ è¯") private String erpId; @@ -210,9 +218,18 @@ @ApiModelProperty(value = "ç»ç»åç§°") @TableField(exist = false) private String companyName; @ApiModelProperty(value = "æåæä½äºº") @TableField(exist = false) private String editorName; @ApiModelProperty(value = "ç»ç»ç±»å") @TableField(exist = false) private Integer companyType; @ApiModelProperty(value = "ç»ç»ç¼ç è·¯å¾") @TableField(exist = false) private String companyPath; @ApiModelProperty(value = "è´è´£äººç¼ç ï¼å ³èmember)") @TableField(exist = false) private Integer headId; @ApiModelProperty(value = "ç»ç»è·¯å¾") @TableField(exist = false) private String companyNamePath; @@ -235,6 +252,8 @@ @ApiModelProperty(value = "å§å/ææºå·/å·¥å·") @TableField(exist = false) private String keyword; @ApiModelProperty(value = "æ¯å¦æäººè¸ï¼0=æ ï¼1=æï¼") @TableField(exist = false) @@ -259,8 +278,22 @@ @ExcelColumn(name="é¨ç¦æææç»æ",index= 6,dateFormat = "yyyy-MM-dd") private Date endTime; @ApiModelProperty(value = "人è¸ç §ç宿´å°å") @TableField(exist = false) private String faceImgFull; @ApiModelProperty(value = "人è¸ç §ç宿´å°å") @TableField(exist = false) private String imgurlFull; @ApiModelProperty(value = "æ¯å¦ä¸»ç®¡ 0å¦ 1æ¯", example = "1") @TableField(exist = false) private Integer headStatus; @ApiModelProperty(value = "é¨ç¦è§è²åç§°") @TableField(exist = false) private String roleName; @ApiModelProperty(value = "é¨ç¦ç»åç§°éå") @TableField(exist = false) private List<String> roleNames; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/UserAction.java
@@ -51,8 +51,8 @@ @ExcelColumn(name="夿³¨") private String remark; @ApiModelProperty(value = "ç±»å 0è§£å» 1å»ç» 2æé» 3æ¢å¤ 4设为æè®¿äºº 5åæ¶æè®¿äºº 6设为é«çº§å®¡æ¹äºº 7åæ¶é«çº§å®¡æ¹äºº 8æå¨ç¦»åº 9å é¤", example = "1") @ExcelColumn(name="ç±»å 0è§£å» 1å»ç» 2æé» 3æ¢å¤ 4设为æè®¿äºº 5åæ¶æè®¿äºº 6设为é«çº§å®¡æ¹äºº 7åæ¶é«çº§å®¡æ¹äºº 8æå¨ç¦»åº 9å é¤") @ApiModelProperty(value = "ç±»å 0è§£å» 1å»ç» 2æé» 3æ¢å¤ 4设为æè®¿äºº 5åæ¶æè®¿äºº 6设为é«çº§å®¡æ¹äºº 7åæ¶é«çº§å®¡æ¹äºº 8æå¨ç¦»åº 9å é¤ 10æ´æ°", example = "1") @ExcelColumn(name="ç±»å 0è§£å» 1å»ç» 2æé» 3æ¢å¤ 4设为æè®¿äºº 5åæ¶æè®¿äºº 6设为é«çº§å®¡æ¹äºº 7åæ¶é«çº§å®¡æ¹äºº 8æå¨ç¦»åº 9å é¤ 10æ´æ°") private Integer type; @ApiModelProperty(value = "人åæä½è®°å½æ¥å¿") server/visits/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -1,11 +1,11 @@ package com.doumee.service.business; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.admin.request.LaborEmpowerDTO; import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.request.MemberQuery; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.admin.response.StagingDataVO; import com.doumee.dao.business.model.Member; import com.doumee.dao.web.reqeust.AccountLoginDTO; @@ -44,7 +44,7 @@ * * @param id ä¸»é® */ void deleteById(Integer id); void deleteById(Integer id,LoginUserInfo user); void roleAuthById(Integer id); @@ -60,9 +60,10 @@ * * @param ids 主é®é */ void deleteByIdInBatch(List<Integer> ids); void deleteByIdInBatch(List<Integer> ids,LoginUserInfo user); void batchBlock(List<Integer> ids,Integer type); void batchBlock(List<Integer> ids, Integer type, LoginUserInfo loginUserInfo); void batchRemoveBlock(List<Integer> ids, Integer type, LoginUserInfo loginUserInfo); /** * 䏻鮿´æ° @@ -72,7 +73,6 @@ void updateById(Member member); boolean updateFace(Member member); /** * 䏻鮿´æ°å³å¡äººåç¶æ * @@ -80,9 +80,6 @@ */ void updateStatusById(Member member); void updateVisitsStatusById(Member member); void updateRemoveStatusById(List<Member> members); void updateCanVisitById(Member member); /** @@ -127,14 +124,6 @@ /** * å页å³å¡ç¨æ·ä¿¡æ¯æ¥è¯¢ * * @param pageWrap å页对象 * @return PageData<Member> */ PageData<MemberInfoDTO> findLaborMemberInfoPage(PageWrap<MemberInfoDTO> pageWrap); /** * æ¡ä»¶ç»è®¡ * * @param member å®ä½å¯¹è±¡ @@ -157,11 +146,11 @@ * @param pageWrap * @return */ PageData<MemberInfoDTO> findMemberInfoPage(PageWrap<MemberQuery> pageWrap); PageData<Member> findMemberInfoPage(PageWrap<MemberQuery> pageWrap); PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap); PageData<Member> findVisitPage(PageWrap<MemberQuery> pageWrap); PageData<MemberInfoDTO> findUnusualPage(PageWrap<MemberQuery> pageWrap); PageData<Member> findUnusualPage(PageWrap<MemberQuery> pageWrap); /** * 宿¶å»ç»å é¨äººå @@ -207,4 +196,8 @@ void empowerByList(Member member); void delHkForce(Member member); void updateHead(Member member); void updateWorkStatus(Member member); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CarsServiceImpl.java
@@ -10,7 +10,6 @@ import com.doumee.core.utils.Utils; import com.doumee.dao.admin.request.CarsQuery; import com.doumee.dao.admin.response.CarsDTO; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.CarsMapper; import com.doumee.dao.business.join.CarJoinMapper; import com.doumee.dao.business.join.ParkBookJoinMapper; server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1,10 +1,12 @@ package com.doumee.service.business.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.PhoneUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.DataSyncConfig; import com.doumee.config.Jwt.JwtPayLoad; @@ -22,16 +24,12 @@ import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.HttpsUtil; import com.doumee.core.utils.Utils; import com.doumee.core.utils.*; import com.doumee.core.utils.redis.RedisUtil; import com.doumee.core.wx.WXConstant; import com.doumee.dao.admin.request.LaborEmpowerDTO; import com.doumee.dao.admin.request.LaborMemberDTO; import com.doumee.dao.admin.request.MemberQuery; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.admin.response.StagingDataVO; import com.doumee.dao.business.*; import com.doumee.dao.business.dao.CompanyMapper; @@ -40,8 +38,6 @@ import com.doumee.dao.business.join.UserActionJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.SystemDepartment; import com.doumee.dao.system.model.SystemDepartmentUser; import com.doumee.dao.system.model.SystemDictData; import com.doumee.dao.system.model.SystemUser; import com.doumee.dao.web.reqeust.AccountLoginDTO; @@ -50,10 +46,6 @@ import com.doumee.dao.web.response.MemberVO; import com.doumee.dao.web.response.WxAuthorizeVO; import com.doumee.service.business.MemberService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -67,6 +59,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.*; import java.util.stream.Collectors; @@ -189,10 +182,13 @@ insert.setCode(member.getCode()); insert.setType(Constants.TWO); insert.setHkDate(new Date()); insert.setWorkStatus(Constants.ONE);//é»è®¤å¨è insert.setCanVisit(Constants.ZERO);//é»è®¤ä¸å¯è®¿é® insert.setAuthStatus(Constants.ZERO); insert.setName(member.getName()); insert.setHkStatus(Constants.ONE); insert.setSex(IdcardUtil.getGenderByIdCard(member.getIdcardNo()) ==1?Constants.TWO:Constants.ONE);//æ ¹æ®èº«ä»½è¯å·è·åæ§å« insert.setBirthday( DateUtil.parse(IdcardUtil.getBirthByIdCard(member.getIdcardNo()), "yyyyMMdd")); insert.setSex(Constants.getSexByCardNo( member.getIdcardNo()));//æ ¹æ®èº«ä»½è¯å·è·åæ§å« insert.setBirthday( DateUtil.fromStringToDate("yyyyMMdd",IdcardUtil.getBirthByIdCard(member.getIdcardNo()))); insert.setPhone(member.getPhone()); insert.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo()));//身份è¯å·å å¯ insert.setIdcardDecode( Constants.getTuominStr(member.getIdcardNo())); @@ -246,22 +242,88 @@ } return false; } private boolean dealHkUserForUpdateBiz(Member update ) { String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); UserAddRequest hkAddRequest = HkSyncOrgUserToHKServiceImpl.getUserAddModel(update,path,Constants.ONE); //å¤çæ°å¢æ°æ® BaseResponse<UserAddResponse> result = HKService.editUser(hkAddRequest); if(result!=null && StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) ){ update.setHkStatus(Constants.ONE);//已忥 update.setRemark("人åä¿¡æ¯å·²åæ¥æå"); if(StringUtils.isNotBlank(update.getFaceImg()) && Constants.equalsInteger(update.getFaceStatus(),Constants.ZERO)){ //妿æäººè¸ç §çï¼å¤ç人è¸ç §ç忥 String faceid = HkSyncOrgUserToHKServiceImpl.dealMemberFace(update,path); if(StringUtils.isBlank(faceid)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å工人è¸ä¿¡æ¯ä¸åæ ¼ï¼è¯·æ´æ¢äººè¸ç §çéè¯ï¼"); }else{ update.setFaceId(faceid); update.setFaceStatus(Constants.ONE); //å¦æäººè¸è·ä½ ï¼éæ°ä¸åæéæ°æ® update.setRemark("人åå人è¸ä¿¡æ¯åæ¥æå"+result.getMsg()); //éæ°ææè®¾å¤æé // HkSyncOrgUserToHKServiceImpl.dealMemberRoleEmpowerDo(null,update,deviceRoleMapper,empowerMapper,deviceMapper); } } update.setHkDate(update.getEditDate()); return true; }else if(result!=null ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼åæ¥å®é²å¹³å°å¤±è´¥ã"+result.getMsg()+"ãï¼è¯·è系管çåï¼"); } return false; } /** * æ¸ é¤åå·¥çè®¾å¤æé * @param member */ private void cancelAllMemberEmpower(Member member) { //å é¤å ¨é¨æé memberRoleMapper.update(null,new UpdateWrapper<MemberRole>().lambda() .eq(MemberRole::getMemberId,member.getId()) .set(MemberRole::getIsdeleted,Constants.ONE) .set(MemberRole::getEdirot,member.getEditor()) .set(MemberRole::getEditDate,member.getEditDate())); //æææå¾ ä¸åç任塿¹æ 已忶 empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() .eq(Empower::getMemberId,member.getId()) .eq(Empower::getIsdeleted,Constants.ZERO) .eq(Empower::getSendStatus,Constants.EmpowerStatus.wait) .set(Empower::getIsdeleted,Constants.ONE) .set(Empower::getSendStatus,Constants.EmpowerStatus.cancel)); //ææä¸åè¿çä»»å¡ï¼æ¹ä¸ºå¾ å 餿é empowerMapper.update(null,new UpdateWrapper<Empower>().lambda() .eq(Empower::getMemberId,member.getId()) .set(Empower::getIsdeleted,Constants.ONE) .notIn(Empower::getSendStatus,Constants.EmpowerStatus.fail) .set(Empower::getRemark,"çå¾ åæ¥å é¤å®é²å¹³å°") .eq(Empower::getIsdeleted,Constants.ZERO) .eq(Empower::getIsdeleted,Constants.ZERO) .set(Empower::getSendStatus,Constants.ZERO)); } private void isMemberParamValid(Member member) { if (!PhoneUtil.isPhone(member.getPhone())){ if (StringUtils.isBlank(member.getPhone())||!PhoneUtil.isPhone(member.getPhone())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"çµè¯å·ç æ ¼å¼æè¯¯"); } if (!IdcardUtil.isValidCard(member.getIdcardNo())){ if (StringUtils.isBlank(member.getIdcardNo())||!IdcardUtil.isValidCard(member.getIdcardNo())){ if(memberMapper.selectCount(new QueryWrapper<Member>().lambda() .eq(Member::getIdcardNo,DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNo())) .eq(Member::getIsdeleted,Constants.ZERO) .ne(Member::getId,member.getId())) >0){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份è¯å·ã"+member.getIdcardNo()+"ã已被使ç¨ï¼ä¸è½éå¤"); } throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"身份è¯å·æ ¼å¼æè¯¯"); } SystemUser systemUser = new SystemUser(); SystemUser queryUserDto = new SystemUser(); queryUserDto.setUsername(member.getPhone()); queryUserDto.setDeleted(Boolean.FALSE); SystemUser user = systemUserMapper.selectOne(new QueryWrapper<>(queryUserDto).last("limit 1")); if (user != null) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "ææºå·ã"+systemUser.getUsername()+"ã已被使ç¨ï¼ä¸è½éå¤"); throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "ææºå·ã"+queryUserDto.getUsername()+"ã已被使ç¨ï¼ä¸è½éå¤"); } // éªè¯å·¥å· if (StringUtils.isNotBlank(member.getCode())) { @@ -273,6 +335,86 @@ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "å·¥å·ã"+member.getCode()+"ãå·²åå¨"); } } } private Member isMemberUpdateParamValid(Member member) { Member model = memberMapper.selectById(member.getId()); if(model ==null ||Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯¥å工信æ¯ä¸åå¨ï¼è¯·å·æ°é¡µé¢éè¯ï¼"); } if (StringUtils.isNotBlank(member.getPhone()) && !PhoneUtil.isPhone(member.getPhone())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"çµè¯å·ç æ ¼å¼æè¯¯"); } if (StringUtils.isNotBlank(member.getIdcardNoNew())){ String encrptNo = (DESUtil.encrypt(Constants.EDS_PWD, member.getIdcardNoNew()));//身份è¯å·å å¯ if( !StringUtils.equals(model.getIdcardNo(),encrptNo)&& !IdcardUtil.isValidCard(member.getIdcardNoNew())){ //妿åçæ¹åï¼å¹¶ä¸ä¸åæ³ï¼æç¤ºå¼å¸¸ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"ä¿®æ¹çæ°èº«ä»½è¯å·æ ¼å¼æè¯¯"); } if( !StringUtils.equals(model.getIdcardNo(),encrptNo) ){ if(memberMapper.selectCount(new QueryWrapper<Member>().lambda() .eq(Member::getIdcardNo,encrptNo) .eq(Member::getIsdeleted,Constants.ZERO) .ne(Member::getId,member.getId())) >0){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "身份è¯å·ã"+member.getIdcardNoNew()+"ã已被使ç¨ï¼ä¸è½éå¤"); } member.setSex(Constants.getSexByCardNo( member.getIdcardNoNew()));//æ ¹æ®èº«ä»½è¯å·è·åæ§å« member.setIdcardDecode( Constants.getTuominStr(member.getIdcardNoNew())); member.setIdcardNo(encrptNo); } } boolean isNeedUpdateUser = false; if(StringUtils.isNotBlank(member.getPhone()) && StringUtils.equals(member.getPhone(),model.getPhone())){ // å¦æææºå·åçä¿®æ¹ï¼æ ¡éªå¯ä¸æ§ SystemUser queryUserDto = new SystemUser(); queryUserDto.setUsername(member.getPhone()); queryUserDto.setDeleted(Boolean.FALSE); SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>(queryUserDto).lambda() .ne(SystemUser::getMemberId,model.getId()).last("limit 1")); if (user != null) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "ææºå·ã" + queryUserDto.getUsername() + "ã已被使ç¨ï¼ä¸è½éå¤"); } isNeedUpdateUser = true; } if(StringUtils.isNotBlank(member.getCode()) && StringUtils.equals(member.getPhone(),model.getCode())){ // éªè¯å·¥å· SystemUser queryUserDto = new SystemUser(); queryUserDto = new SystemUser(); queryUserDto.setDeleted(Boolean.FALSE); queryUserDto.setEmpNo(member.getCode()); SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>(queryUserDto).lambda() .ne(SystemUser::getMemberId,model.getId()).last("limit 1")); if (user != null) { throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "å·¥å·ã"+member.getCode()+"ãå·²åå¨"); } isNeedUpdateUser = true; } if(member.getCompanyId()!=null && !Constants.equalsInteger(member.getCompanyId(),model.getCompanyId())){ //妿ç»ç»åçåå Company company = companyMapper.selectById(member.getCompanyId()); if(company == null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯¥ç»ç»ä¿¡æ¯å·²è¢«å é¤ï¼è¯·å·æ°é¡µé¢éè¯ï¼"); } if(StringUtils.isBlank(company.getHkId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯¥ç»ç»ä¿¡æ¯æªåæ¥å®é²å¹³å°ï¼è¯·å åå¾ãç»ç»ç®¡çãèåè¿è¡ç»´æ¤ï¼"); } member.setHkOrgId(company.getHkId()); isNeedUpdateUser = true; } if(isNeedUpdateUser){ //æ´æ°ç³»ç»ç¨æ·è´¦å·ä¿¡æ¯ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() .set(SystemUser::getUpdateUser,member.getLoginUserInfo().getId()) .set(SystemUser::getUpdateTime,new Date()) .set(StringUtils.isNotBlank(model.getPhone()),SystemUser::getMobile,member.getPhone()) .set(StringUtils.isNotBlank(model.getName()),SystemUser::getRealname,member.getName()) .set(model.getCompanyId() !=null,SystemUser::getCompanyId,member.getCompanyId()) .set(StringUtils.isNotBlank(model.getCode()),SystemUser::getEmpNo,member.getCode()) .eq(SystemUser::getMemberId,model.getId())); } member.setHkId(model.getHkId()); member.setFaceId(model.getFaceId());//人è¸ç¼ç return model; } @Transactional @@ -293,8 +435,6 @@ //è±ææä½ String hide = IdcardUtil.hide(member.getIdcardNo(), 5, 14); //è½¬æ¢æ¥æ DateTime yyyyMMdd = DateUtil.parse(birthByIdCard, "yyyyMMdd"); Member insert = new Member(); insert.setCreator(loginUserInfo.getId()); insert.setCreateDate(new Date()); @@ -306,7 +446,7 @@ insert.setImgurl(member.getImgurl()); insert.setType(Constants.ZERO); insert.setName(member.getName()); insert.setBirthday(yyyyMMdd); insert.setBirthday(DateUtil.fromStringToDate("yyyyMMdd",birthByIdCard)); insert.setPhone(member.getPhone()); insert.setIdcardNo(Utils.Secure.encryptString(member.getIdcardNo())); IdcardUtil.isValidCard(member.getIdcardNo()); @@ -331,7 +471,7 @@ } @Override public void deleteById(Integer id) { public void deleteById(Integer id,LoginUserInfo user) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Member member=new Member(); @@ -339,7 +479,10 @@ member.setIsdeleted(Constants.ZERO); member.setEditor(loginUserInfo.getId()); member.setEditDate(new Date()); member.setHkStatus(Constants.ZERO); member.setRemark("人åå·²å é¤ï¼çå¾ å é¤é¨ç¦æé"); memberMapper.updateById(member); saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.DELETE,userActionJoinMapper); } @@ -374,81 +517,151 @@ } @Override public void deleteByIdInBatch(List<Integer> ids) { @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void deleteByIdInBatch(List<Integer> ids,LoginUserInfo loginUserInfo) { if (CollectionUtils.isEmpty(ids)) { return; } LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Member member=new Member(); ids.stream().forEach(s ->{ member.setId(s); member.setIsdeleted(Constants.ONE); member.setHkStatus(Constants.ZERO); member.setRemark("人åå·²å é¤ï¼çå¾ å é¤é¨ç¦æé"); member.setEditor(loginUserInfo.getId()); member.setEditDate(new Date()); memberMapper.updateById(member); UserAction userAction=new UserAction(); userAction.setIsdeleted(Constants.ZERO); userAction.setCreateDate(new Date()); userAction.setCreator(loginUserInfo.getId()); userAction.setType(9); userAction.setRemark("ç±ã"+loginUserInfo.getUsername()+"ãäºãæä½æ¶é´"+DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss")+"ãï¼è¿è¡ãå é¤ã"); userAction.setMemberId(s+""); userActionJoinMapper.insert(userAction); saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.DELETE,userActionJoinMapper); }); /* memberMapper.deleteBatchIds(ids);*/ } /** * æé»æè å»ç»åå·¥ä¿¡æ¯ * @param ids * @param type * @param loginUserInfo */ @Override public void batchBlock(List<Integer> ids,Integer type) { @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void batchBlock(List<Integer> ids,Integer type,LoginUserInfo loginUserInfo) { if (CollectionUtils.isEmpty(ids)) { return; } LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Member member=new Member(); for (Integer id:ids) { member = memberMapper.selectById(id); Member member = memberMapper.selectById(id); if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){ UserAction userAction=new UserAction(); // userAction.setBeforeStatus(member.getStatus()); member.setStatus(Constants.TWO); member.setEditor(loginUserInfo.getId()); member.setEditDate(new Date()); member.setAuthStatus(Constants.ZERO);//æªææ memberMapper.updateById(member); Date date = new Date(); member.setEditDate(date); member.setEditor(loginUserInfo.getId()); //å é¤åå·¥é¨ç¦æé cancelAllMemberEmpower(member); userAction.setIsdeleted(Constants.ZERO); userAction.setCreateDate(new Date()); userAction.setCreator(loginUserInfo.getId()); if(Constants.equalsInteger(type,Constants.ONE)){ userAction.setType(Constants.ONE); userAction.setRemark("ç±ã"+loginUserInfo.getUsername()+"ãäºãæä½æ¶é´"+DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss")+"ãï¼è¿è¡ãå»ç»ã"); saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.FREEZE,userActionJoinMapper); } if(Constants.equalsInteger(type,Constants.TWO)){ userAction.setType(Constants.TWO); userAction.setRemark("ç±ã"+loginUserInfo.getUsername()+"ãäºãæä½æ¶é´"+DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss")+"ãï¼è¿è¡ãæé»ã"); saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.BLACKLIST,userActionJoinMapper); } userAction.setMemberId(id+""); userActionJoinMapper.insert(userAction); } } /* memberMapper.deleteBatchIds(ids);*/ } /** * æé»æè å»ç»åå·¥ä¿¡æ¯ * @param ids * @param type * @param loginUserInfo */ @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void batchRemoveBlock(List<Integer> ids,Integer type,LoginUserInfo loginUserInfo) { if (CollectionUtils.isEmpty(ids)) { return; } for (Integer id:ids) { Member member = memberMapper.selectById(id); if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){ member.setStatus(Constants.ONE);//æ¢å¤æ£å¸¸ç¶æ member.setEditor(loginUserInfo.getId()); member.setEditDate(new Date()); member.setAuthStatus(Constants.ZERO);//æªææ memberMapper.updateById(member); Date date = new Date(); member.setEditDate(date); member.setEditor(loginUserInfo.getId()); if(Constants.equalsInteger(type,Constants.ONE)){ saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.CANCEL_FREEZE,userActionJoinMapper); } if(Constants.equalsInteger(type,Constants.TWO)){ saveUserActionBiz(member,loginUserInfo,Constants.UserActionType.CANCEL_BLACKLIST,userActionJoinMapper); } } } } @Override public void updateById(Member member) { memberMapper.updateById(member); @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updateById(Member updateMember) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(loginUserInfo == null){ loginUserInfo = updateMember.getLoginUserInfo(); } //æ ¡éªåæ° å¹¶ä¸æ´æ°systemuser ææºå·åå·¥å·ä¿¡æ¯ï¼å¦æéè¦ä¿®æ¹çè¯ï¼ Member model = isMemberUpdateParamValid(updateMember); updateMember.setEditor(loginUserInfo.getId()); updateMember.setEditDate(new Date()); //æµ·åº·äººåæ°å¢ä¸å¡ if(dealHkUserForUpdateBiz(updateMember)){ updateMember.setHkId(null); updateMember.setAuthStatus(Constants.ZERO); memberMapper.update(null,new UpdateWrapper<Member>().lambda() .set(Member::getStartTime,null) .set(Member::getEndTime,null) .set(StringUtils.isNotBlank(updateMember.getPhone()),Member::getPhone,updateMember.getPhone()) .set(StringUtils.isNotBlank(updateMember.getName()),Member::getName,updateMember.getName()) .set(Member::getEditDate,updateMember.getEditDate()) .set(Member::getEditor,updateMember.getEditor()) .set(StringUtils.isNotBlank(updateMember.getIdcardNo()),Member::getIdcardNo,updateMember.getIdcardNo()) .set(StringUtils.isNotBlank(updateMember.getIdcardDecode()),Member::getIdcardDecode,updateMember.getIdcardDecode()) .set(updateMember.getAuthStatus()!=null,Member::getAuthStatus,updateMember.getAuthStatus()) .set(updateMember.getHkStatus()!=null,Member::getHkStatus,updateMember.getHkStatus()) .set(updateMember.getSex()!=null,Member::getSex,updateMember.getSex()) .set(updateMember.getFaceStatus()!=null,Member::getFaceStatus,updateMember.getFaceStatus()) .set(updateMember.getHkDate()!=null,Member::getHkDate,updateMember.getHkDate()) .set(StringUtils.isNotBlank(updateMember.getRemark()),Member::getRemark,updateMember.getRemark()) .set(StringUtils.isNotBlank(updateMember.getFaceImg()),Member::getFaceImg,updateMember.getFaceImg()) .set(updateMember.getFaceId()!=null,Member::getFaceId,updateMember.getFaceId()) .set(updateMember.getCompanyId()!=null,Member::getCompanyId,updateMember.getCompanyId()) .set(StringUtils.isNotBlank(updateMember.getCode()),Member::getCode,updateMember.getCode()) .eq(Member::getId,updateMember.getId())); cancelAllMemberEmpower(updateMember); //è®°å½æä½æ¥å¿ saveUserActionBiz(updateMember,loginUserInfo,Constants.UserActionType.EDIT,userActionJoinMapper); }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对ä¸èµ·ï¼å工信æ¯åæ¥å®é²å¹³å°å¤±è´¥ï¼è¯·ç¨åéè¯ï¼"); } } private void saveUserActionBiz(Member updateMember,LoginUserInfo user, Constants.UserActionType type,UserActionJoinMapper userActionMapper) { UserAction userAction=new UserAction(); userAction.setIsdeleted(Constants.ZERO); userAction.setCreateDate(updateMember.getEditDate()); userAction.setCreator(updateMember.getEditor()); userAction.setType(type.getKey()); String info = type.getInfo(); userAction.setRemark(info.replace("${param1}",user!=null?user.getRealname():"").replace("${param2}", com.doumee.core.utils.DateUtil.getPlusTime2(updateMember.getEditDate()))); userAction.setMemberId(updateMember.getId()+""); userActionMapper.insert(userAction); } @Override public boolean updateFace(Member member) { QueryWrapper<Member> wrapper = new QueryWrapper<>(member); @@ -489,95 +702,95 @@ } HkSyncEmpowerServiceImpl.doHkDeleteUser(model.getId(),model.getHkId(),new Date(),memberMapper,memberCardMapper); } @Override public void updateHead(Member member) { Member model =memberMapper.selectById(member.getId()); if(model ==null) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼äººåä¿¡æ¯ä¸åå¨ï¼"); } if(model.getCompanyId()!=null) { if(Constants.equalsObject(member.getHeadStatus(),Constants.ONE)){ //妿æ¯åæ¶ä¸»ç®¡ companyMapper.update(null,new UpdateWrapper<Company>().lambda() .eq(Company::getId,model.getCompanyId()) .set(Company::getHeadId,member.getId())); }else{ //妿æ¯è®¾ä¸ºä¸»ç®¡ companyMapper.update(null,new UpdateWrapper<Company>().lambda() .eq(Company::getId,model.getCompanyId()) .set(Company::getHeadId,null) ); } } } @Override public void updateStatusById(Member member) { Member model =memberMapper.selectById(member.getId()); if(model ==null) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼äººåä¿¡æ¯ä¸åå¨ï¼"); } LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(loginUserInfo == null){ loginUserInfo = member.getLoginUserInfo(); } Member update = new Member(); update.setEditDate(new Date()); update.setEditor(loginUserInfo.getId()); update.setStatus(member.getStatus()); memberMapper.updateById(update); } @Override public void updateVisitsStatusById(Member member) { @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updateWorkStatus(Member member) { Member model =memberMapper.selectById(member.getId()); if(model ==null) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼äººåä¿¡æ¯ä¸åå¨ï¼"); } LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Member result=memberMapper.selectById(member.getId()); Integer status=result.getStatus(); if(loginUserInfo == null){ loginUserInfo = member.getLoginUserInfo(); } Member update = new Member(); update.setId(member.getId()); update.setEditDate(new Date()); update.setEditor(loginUserInfo.getId()); update.setStatus(Constants.Status.FREEZE.getValue()); update.setId(member.getId()); update.setWorkStatus(Constants.equalsInteger(member.getWorkStatus(),Constants.ONE)?Constants.ONE:Constants.ZERO); if(Constants.equalsInteger(member.getWorkStatus(),Constants.ONE)){ //妿æ¯ç¦»è cancelAllMemberEmpower(update); } update.setAuthStatus(Constants.ZERO); memberMapper.updateById(update); UserAction userAction=new UserAction(); userAction.setIsdeleted(Constants.ZERO); userAction.setCreateDate(new Date()); userAction.setCreator(loginUserInfo.getId()); if(Constants.equalsInteger(result.getType(),Constants.TWO)){ userAction.setType(Constants.ONE); userAction.setRemark("ç±ã"+loginUserInfo.getUsername()+"ãäºãæä½æ¶é´"+DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss")+"ãï¼è¿è¡ãå»ç»ã"); } if(Constants.equalsInteger(result.getType(),Constants.ZERO)){ userAction.setType(Constants.TWO); userAction.setRemark("ç±ã"+loginUserInfo.getUsername()+"ãäºãæä½æ¶é´"+DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss")+"ãï¼è¿è¡ãæé»ã"); } userAction.setMemberId(result.getId()+""); userAction.setBeforeStatus(status); userActionJoinMapper.insert(userAction); } @Override public void updateRemoveStatusById(List<Member> members) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Date date=new Date(); members.stream().forEach(s ->{ Member result=memberMapper.selectById(s.getId()); Integer status=result.getStatus(); Member update = new Member(); update.setEditDate(date); update.setEditor(loginUserInfo.getId()); update.setStatus(Constants.Status.ENABLE.getValue()); update.setId(s.getId()); memberMapper.updateById(update); //è§£å»ä¸å¡ å¤çç¨æ·ææå¯¼å ¥è®°å½ this.thawMember(result); UserAction userAction=new UserAction(); userAction.setIsdeleted(Constants.ZERO); userAction.setCreateDate(new Date()); userAction.setCreator(loginUserInfo.getId()); if(Constants.equalsInteger(result.getType(),Constants.TWO)){ userAction.setType(Constants.ZERO); userAction.setBeforeStatus(Constants.ONE); } if(Constants.equalsInteger(result.getType(),Constants.ONE)){ userAction.setBeforeStatus(status); userAction.setType(Constants.TWO); } userAction.setMemberId(result.getId()+""); userActionJoinMapper.insert(userAction); }); //è®°å½æä½æ¥å¿ saveUserActionBiz(member,loginUserInfo,Constants.equalsInteger(member.getWorkStatus(),Constants.ONE)?Constants.UserActionType.WORK_OFF:Constants.UserActionType.WORK_ON,userActionJoinMapper); } @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updateCanVisitById(Member member) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(loginUserInfo == null){ loginUserInfo = member.getLoginUserInfo(); } Member model =memberMapper.selectById(member.getId()); if(model ==null) { throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼äººåä¿¡æ¯ä¸åå¨ï¼"); } if(Constants.equalsInteger(member.getCanVisit(),model.getCanVisit())){ //å¦ææ²¡æåçååï¼ç´æ¥è¿å return; } Member update = new Member(); update.setEditDate(new Date()); update.setId(member.getId()); update.setEditor(loginUserInfo.getId()); update.setCanVisit(member.getCanVisit()); memberMapper.updateById(update); //è®°å½æä½æ¥å¿ saveUserActionBiz(member,loginUserInfo,Constants.equalsInteger(member.getCanVisit(),Constants.ONE)?Constants.UserActionType.CANVISIT:Constants.UserActionType.CANCEL_VISIT,userActionJoinMapper); } @Override @@ -606,8 +819,7 @@ MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) .selectAs(Company::getLinkName,MemberInfoDTO::getLinkName); .selectAs(Company::getName,Member::getCompanyName) ; if(null != member.getType()) { queryWrapper.eq(Member::getType,member.getType()); @@ -785,36 +997,6 @@ } @Override public PageData<MemberInfoDTO> findLaborMemberInfoPage(PageWrap<MemberInfoDTO> pageWrap) { IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); MemberInfoDTO model = pageWrap.getModel(); Utils.MP.blankToNull(model); Date end =pageWrap.getModel().getTrainTimeEndTime() !=null? Utils.Date.getEnd(pageWrap.getModel().getTrainTimeEndTime()):new Date(); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); /* .leftJoin(TrainTime.class,TrainTime::getMemberId,Member::getId) .leftJoin(Empower.class,Empower::getMemberId,Member::getId);*/ queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) .selectAs(Company::getLinkName,MemberInfoDTO::getLinkName) /*.select(" (select Max(tt.END_TIME) from train_time tt where tt.ISDELETED=0 and tt.MEMBER_ID=t.id) as trainTimeEndTime")*/ .select(" (select Max(e.END_TIME) from empower e where e.ISDELETED=0 and e.MEMBER_ID=t.id) as empowerEndTime"); queryWrapper.eq(Member::getType,Constants.ZERO); queryWrapper.eq(Objects.nonNull(model.getCompanyId()),Member::getCompanyId,model.getCompanyId()) .like(StringUtils.isNotBlank(model.getName()),Member::getName,model.getName()) .like(StringUtils.isNotBlank(model.getPhone()),Member::getPhone,model.getPhone()) .like(StringUtils.isNotBlank(model.getIdcardDecode()),Member::getIdcardDecode,model.getIdcardDecode()) .having(pageWrap.getModel().getTrainTimeEndTime()!=null,"trainTimeEndTime < "+ DateUtil.format(end,"yyyy-MM-dd HH:mm:ss")); IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); if (!CollectionUtils.isEmpty(memberIPage.getRecords())){ memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode()) ==1?Constants.TWO:Constants.ONE)); } return PageData.from(memberIPage); } @Override public long count(Member member) { QueryWrapper<Member> wrapper = new QueryWrapper<Member>(member); wrapper.lambda().like(StringUtils.isNotBlank(member.getRoleIdParam()), Member::getRoleId, member.getRoleIdParam()); @@ -839,16 +1021,22 @@ } @Override public PageData<MemberInfoDTO> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) { public PageData<Member> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) { IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Member.class); queryWrapper.selectAs(Company::getName,Member::getCompanyName); queryWrapper.selectAs(SystemUser::getRealname,Member::getEditorName); queryWrapper.selectAs(Company::getType,Member::getCompanyType); queryWrapper.selectAs(Company::getHeadId,Member::getHeadId); queryWrapper.selectAs(Company::getCompanyNamePath,Member::getCompanyNamePath); queryWrapper.selectAs(Company::getCompanyPath,Member::getCompanyPath); queryWrapper.select(" ( select count(1) from member_card mc where mc.isdeleted = 0 and mc.member_id = t.id ) as memberCardCount "); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Member::getEditor); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.eq(Member::getType,pageWrap.getModel().getType()); // queryWrapper.eq(Objects.nonNull(model.getCompanyId()),Member::getCompanyId,model.getCompanyId()) queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0, Member::getCompanyId,pageWrap.getModel().getCompanyIds()) .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()),ms->ms @@ -864,16 +1052,26 @@ .eq(Objects.nonNull(pageWrap.getModel().getIsdeleted()),Member::getIsdeleted,pageWrap.getModel().getIsdeleted()) .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) // .eq(Member::getStatus,Constants.Status.ENABLE.getValue()) .eq(Member::getType,Constants.memberType.internal) // .eq(Member::getType,Constants.memberType.internal) .eq(pageWrap.getModel().getHkStatus()!=null,Member::getHkStatus,pageWrap.getModel().getHkStatus()) .orderByDesc(!Constants.equalsObject(pageWrap.getModel().getIsdeleted(),Constants.ONE),Member::getCreateDate) .orderByDesc(Constants.equalsInteger(pageWrap.getModel().getIsdeleted(),Constants.ONE),Member::getEditDate); if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin())==DataSyncConfig.origin.erp){ queryWrapper.eq( StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId()); }else{ queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Member::getCompanyId,pageWrap.getModel().getCompanyId()); // queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Member::getCompanyId,pageWrap.getModel().getCompanyId()); } IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); if(pageWrap.getModel().getCompanyId()!=null){ if(pageWrap.getModel().getIncludeChild()!=null &&pageWrap.getModel().getIncludeChild() ){ //妿å å«ä¸çº§ç»ç» Company company = companyMapper.selectById(pageWrap.getModel().getCompanyId());//æ¥è¯¢ç»ç»ä¿¡æ¯ queryWrapper.likeRight(Company::getCompanyPath,company.getCompanyPath()); }else{ //ä¸å å«ä¸çº§ç»ç» queryWrapper.eq(Company::getId,pageWrap.getModel().getCompanyId()); } } IPage<Member> memberIPage = memberJoinMapper.selectJoinPage(page, Member.class,queryWrapper); if(CollectionUtils.isNotEmpty(memberIPage.getRecords())){ //FTPæä»¶è®¿é®åç¼ @@ -883,8 +1081,11 @@ List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .select(DeviceRole::getId,DeviceRole::getName) .eq(DeviceRole::getIsdeleted,Constants.ZERO)); for (MemberInfoDTO memberInfoDTO:memberIPage.getRecords()) { for (Member memberInfoDTO:memberIPage.getRecords()) { //è·å¾é¨ç¦ç»åç§°æ°ç» memberInfoDTO.setCanVisit(Constants.formatIntegerNum(memberInfoDTO.getCanVisit())); memberInfoDTO.setWorkStatus(Constants.formatIntegerNum(memberInfoDTO.getWorkStatus())); memberInfoDTO.setHeadStatus(Constants.equalsInteger(memberInfoDTO.getHeadId(),memberInfoDTO.getId())?Constants.ONE:Constants.ZERO); memberInfoDTO.setRoleNames(this.dealRoleDatas(memberInfoDTO.getRoleId(),deviceRoleList)); //æ¼æ¥åç¼ if(StringUtils.isNotBlank(memberInfoDTO.getFaceImg())){ @@ -925,13 +1126,13 @@ } @Override public PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap) { public PageData<Member> findVisitPage(PageWrap<MemberQuery> pageWrap) { IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) .selectAs(Member::getLastVisitDate,MemberInfoDTO::getVisitsLastDate) .selectAs(Company::getName,Member::getCompanyName) .selectAs(Member::getLastVisitDate,Member::getLastVisitDate) .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status in (7,8) ) as visitsCount"); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName()) .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone()) @@ -948,21 +1149,21 @@ if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin())==DataSyncConfig.origin.erp){ queryWrapper.eq( StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId()); }else{ queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Member::getCompanyId,pageWrap.getModel().getCompanyId()); queryWrapper.eq((pageWrap.getModel().getCompanyId())!=null,Member::getCompanyId,pageWrap.getModel().getCompanyId()); } IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); IPage<Member> memberIPage = memberJoinMapper.selectJoinPage(page, Member.class,queryWrapper); return PageData.from(memberIPage); } @Override public PageData<MemberInfoDTO> findUnusualPage(PageWrap<MemberQuery> pageWrap) { public PageData<Member> findUnusualPage(PageWrap<MemberQuery> pageWrap) { IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) .selectAs(Company::getName,Member::getCompanyName) .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 order by ua.CREATE_DATE desc limit 1) as optTime") .select(" (select s.REALNAME from user_action uac left join system_user s on uac.CREATOR = s.ID where uac.MEMBER_ID=t.id and uac.ISDELETED=0 order by uac.CREATE_DATE desc limit 1) as creatorName") .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc limit 1) as visitsLastDate") @@ -977,12 +1178,12 @@ .or().like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName())) .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo()) .eq(Member::getStatus,Constants.Status.FREEZE.getValue()) .eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Company::getId,pageWrap.getModel().getCompanyId()) .eq((pageWrap.getModel().getCompanyId())!=null,Company::getId,pageWrap.getModel().getCompanyId()) .eq(Objects.nonNull(pageWrap.getModel().getCode()),Member::getCode,pageWrap.getModel().getCode()) .orderByDesc(Member::getCreateDate); IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); IPage<Member> memberIPage = memberJoinMapper.selectJoinPage(page, Member.class,queryWrapper); return PageData.from(memberIPage); } @@ -1073,15 +1274,12 @@ return; } List<Integer> memberIds = memberList.stream().map(m->m.getId()).collect(Collectors.toList()); Date date = new Date(); for (Integer id:memberIds) { UserAction userAction=new UserAction(); userAction.setIsdeleted(Constants.ZERO); userAction.setCreateDate(new Date()); userAction.setType(1); userAction.setRemark("ç±å®æ¶ä»»å¡äºãæä½æ¶é´"+DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss")+"ãï¼è¿è¡ãå»ç»ã"); userAction.setMemberId(id+""); userActionJoinMapper.insert(userAction); Member updateMember = new Member(); updateMember.setId(id); updateMember.setEditDate(date); saveUserActionBiz(updateMember,null,Constants.UserActionType.FREEZE,userActionJoinMapper); } server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ParksServiceImpl.java
@@ -3,11 +3,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.ParksMapper; import com.doumee.dao.business.join.ParksJoinMapper; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.Parks; import com.doumee.service.business.ParksService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -1,22 +1,16 @@ package com.doumee.service.business.impl; import cn.hutool.core.date.DateUnit; import cn.hutool.core.util.IdcardUtil; import com.alibaba.fastjson.JSONObject; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.erp.ErpConstants; import com.doumee.core.erp.ErpTool; import com.doumee.core.erp.model.openapi.request.VisitListRequest; import com.doumee.core.erp.model.openapi.request.erp.ApproveAddRequest; import com.doumee.core.erp.model.openapi.request.erp.UserInfoRequest; import com.doumee.core.erp.model.openapi.response.VisitEventListResponse; import com.doumee.core.erp.model.openapi.response.erp.ApproveInfoResponse; import com.doumee.core.exception.BusinessException; import com.doumee.core.haikang.model.HKConstants; import com.doumee.core.haikang.model.HKTools; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.VisitAppointmentCancelRequest; import com.doumee.core.haikang.model.param.request.VisitAppointmentOutRequest; import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest; import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse; @@ -28,21 +22,17 @@ import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.core.wx.wxPlat.WxPlatNotice; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.*; import com.doumee.dao.business.dao.CompanyMapper; import com.doumee.dao.business.join.DeviceJoinMapper; import com.doumee.dao.business.join.VisitEventJoinMapper; import com.doumee.dao.business.join.VisitsJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.web.reqeust.AuditApproveDTO; import com.doumee.dao.web.reqeust.ErpVisitDTO; import com.doumee.dao.web.reqeust.ErpWithVisitDTO; import com.doumee.dao.web.reqeust.VisitRecordDTO; import com.doumee.dao.web.response.InternalHomeVO; import com.doumee.dao.web.response.VisitDetailVO; import com.doumee.dao.web.response.VisitRecordVO; import com.doumee.service.business.ApproveService; import com.doumee.service.business.InterfaceLogService; import com.doumee.service.business.VisitsService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -51,16 +41,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; import io.swagger.models.auth.In; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.DigestUtils; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors;