Merge remote-tracking branch 'origin/master'
已添加5个文件
已修改25个文件
已重命名1个文件
| | |
| | | public ApiResponse findById(@PathVariable Integer id) { |
| | | return ApiResponse.success(visitsService.findById(id)); |
| | | } |
| | | |
| | | @ApiOperation("æ»ç人å") |
| | | @PostMapping("/retentionPage") |
| | | // @RequiresPermissions("business:visits:query") |
| | | public ApiResponse<PageData<Visits>> retentionPage (@RequestBody PageWrap<Visits> pageWrap) { |
| | | return ApiResponse.success(visitsService.retentionPage(pageWrap)); |
| | | } |
| | | } |
| | |
| | | |
| | | import com.doumee.service.business.impl.hksync.HkSyncImgServiceImpl; |
| | | import com.doumee.service.business.impl.hksync.HkSyncOrgUserServiceImpl; |
| | | import com.doumee.service.business.impl.hksync.HkSyncVisitServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.scheduling.annotation.EnableScheduling; |
| | |
| | | private HkSyncImgServiceImpl hkSyncImgService; |
| | | @Autowired |
| | | private HkSyncOrgUserServiceImpl hkSyncOrgUserService; |
| | | @Autowired |
| | | private HkSyncVisitServiceImpl hkSyncVisitService; |
| | | /** |
| | | * æ¯å¦å¼åè
|
| | | */ |
| | |
| | | hkSyncOrgUserService.syncOrgData(); |
| | | } |
| | | /** |
| | | * 宿¶åæ¥ç»ç»ä¿¡æ¯å°æµ·åº·ç³»ç» |
| | | * @throws Exception |
| | | */ |
| | | @Scheduled(fixedDelay= 60*1000) |
| | | public void syncVisitData() { |
| | | hkSyncVisitService.syncVisitData(); |
| | | } |
| | | /** |
| | | * 宿¶åæ¥ç¨æ·ä¿¡æ¯å°æµ·åº·ç³»ç» |
| | | * @throws Exception |
| | | */ |
| | |
| | | private List<String> cardList; |
| | | @ApiModelProperty(value = "ææé¨ç¦ç»ç¼ç éå,ã访客端ãå¯ä¸æ è¯" ) |
| | | private Integer[] roleIds; |
| | | |
| | | @ApiModelProperty(value = "æææææï¼å¼å§æ¶é´ï¼ï¼ä¸ºç©ºæ¶é»è®¤é¿æææï¼å¦2023-11-24 11:39:23" ) |
| | | private Date validStartTime; |
| | | @ApiModelProperty(value = "æææææï¼æªæ¢æ¶é´ï¼ï¼ä¸ºç©ºæ¶é»è®¤é¿æææï¼å¦2023-11-24 11:39:23" ) |
| | | private Date validEndTime; |
| | | } |
| | |
| | | public class DoorEventListResponse { |
| | | |
| | | @ApiModelProperty(value = "å¯ä¸æ è¯" ,example = "1") |
| | | private Integer eventId; |
| | | private String eventId; |
| | | @ApiModelProperty(value = "äºä»¶ç±»å 0-人è¸è®¤è¯éè¿ï¼196893ï¼ 1-å·å¡è®¤è¯éè¿ï¼198915ï¼" ) |
| | | private String eventType; |
| | | @ApiModelProperty(value = "æ§å« 1-ç· 2-女" ,example = "1") |
| | |
| | | @ApiModel("人åä¿¡æ¯åæ¥è¿åä¿¡æ¯") |
| | | public class UserListRespone { |
| | | @ApiModelProperty(value = "å¯ä¸æ è¯" ,example = "1") |
| | | private Integer id; |
| | | private String id; |
| | | @ApiModelProperty(value = "å§å" ) |
| | | private String name; |
| | | @ApiModelProperty(value = "身份è¯å·" ) |
| | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´,å¦2023-11-24 09:47:36") |
| | | private Date editDate; |
| | | @ApiModelProperty(value = "æå±ç»ç»ç¼ç ") |
| | | private String orgId; |
| | | private Integer orgId; |
| | | @ApiModelProperty(value = "人è¸ç
§çå°å,å¾çå
¬ç½è®¿é®å°å") |
| | | private String faceImg; |
| | | @ApiModelProperty(value = "å·¥å·") |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "ææºå·" , required = true) |
| | | private String phone; |
| | | @ApiModelProperty(value = "å¡å·éå" ) |
| | |
| | | public class HKConstants { |
| | | public static final String IMG_INDEX ="HKIMG=" ; |
| | | public static final String IMG_INDEX_ERROR ="HKIMG_ERROR=" ; |
| | | public static final String RES_INDEX = "DM_"; |
| | | public static final String RES_ORG_INDEX = "DMO"; |
| | | public static final String RES_USER_INDEX = "DMU"; |
| | | private Logger logger = LoggerFactory.getLogger(HKConstants.class); |
| | | //æµ·åº·å¹³å°æ ¹æ®ç°åºç¯å¢é
ç½®httpè¿æ¯https |
| | | public static final String RESPONSE_SUCCEE = "0"; |
| | |
| | | } |
| | | |
| | | } |
| | | public enum ReturnCode { |
| | | |
| | | PARK_LINE_IN("0x00072001", "èµæºä¿¡æ¯ä¸åå¨" ) |
| | | ; |
| | | // æååé |
| | | private String name; |
| | | private String key; |
| | | |
| | | // æé æ¹æ³ |
| | | ReturnCode(String key, String name ) { |
| | | this.name = name; |
| | | this.key = key; |
| | | } |
| | | |
| | | |
| | | // get set æ¹æ³ |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getKey() { |
| | | return key; |
| | | } |
| | | |
| | | public void setKey(String key) { |
| | | this.key = key; |
| | | } |
| | | |
| | | } |
| | | /** |
| | | * é¡è²æä¸¾ |
| | | */ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.haikang.model.param.request; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * ç¨æ·æ°å¢è¯·æ±åæ° |
| | | */ |
| | | @Data |
| | | public class UserDelRequest { |
| | | private String[] personIds;// string[] True 人åIdï¼å次æä½ä¸é为1000æ¡ã è·å人åå表v2 æ¥å£è·åè¿ååæ°personId |
| | | } |
| | |
| | | |
| | | private String clientId;// number False è°ç¨æ¹æå®Id |
| | | private String orgIndexCode;// string False æå¡ç«¯çæçå¯ä¸æ è¯ |
| | | private String personId;// string False æå¡ç«¯çæçå¯ä¸æ è¯ |
| | | } |
ÎļþÃû´Ó server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/respose/VisitAppointmentVistorResponse.java ÐÞ¸Ä |
| | |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class VisitAppointmentVistorResponse { |
| | | public class VisitAppointmentMDJResponse { |
| | | |
| | | private String visitorName ;//string False 访客å§åï¼æ¯æä¸è±æå符ï¼ä¸è½å
å« â / \ : * ? " < > |
| | | private String appointRecordId ;// string False é¢çº¦è®°å½ID |
| | |
| | | *æ¹éå é¤äººåä¿¡æ¯ |
| | | * @return |
| | | */ |
| | | public static BaseResponse<OrgOrUserAddFailureResponse> delBatchUser(List<UserAddRequest> param){ |
| | | public static BaseResponse<List<UserDelResponse>> delBatchUser(UserDelRequest param){ |
| | | log.info("ãæµ·åº·æ¹éæ°å¢äººåã================å¼å§===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.delBatchUser(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<OrgOrUserAddFailureResponse>>(){}; |
| | | BaseResponse<OrgOrUserAddFailureResponse> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | BaseResponse<List<UserDelResponse >> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康æ¹éæ°å¢äººå"); |
| | | return result; |
| | | }catch (Exception e){ |
| | |
| | | *访客å
ç»è®°é¢çº¦ |
| | | * @return |
| | | */ |
| | | public static BaseResponse<VisitAppointmentVistorResponse> visitAppiontmentMDJ(VisitAppointmentMDJRequest param){ |
| | | public static BaseResponse<VisitAppointmentMDJResponse> visitAppiontmentMDJ(VisitAppointmentMDJRequest param){ |
| | | log.info("ãæµ·åº·è®¿å®¢å
ç»è®°é¢çº¦ã================å¼å§===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.visitAppiontmentMDJ(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<VisitAppointmentVistorResponse> >(){}; |
| | | BaseResponse<VisitAppointmentVistorResponse> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | new TypeReference< BaseResponse<VisitAppointmentMDJResponse> >(){}; |
| | | BaseResponse<VisitAppointmentMDJResponse> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康访客å
ç»è®°é¢çº¦"); |
| | | return result; |
| | | }catch (Exception e){ |
| | |
| | | public static boolean DEALING_HK_IMG = false; |
| | | public static boolean DEALING_HK_ORG = false; |
| | | public static boolean DEALING_HK_USER = false; |
| | | public static boolean DEALING_HK_VISIT = false; |
| | | public static boolean DEALING_HK_EMPOWER = false; |
| | | // ERPæ¥å£é
ç½® |
| | | public static final String ERP_CONFIG = "ERP_CONFIG"; |
| | | // ERP ACCESS_KEY |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.core.utils; |
| | | |
| | | import org.apache.commons.codec.binary.Base64; |
| | | import sun.misc.BASE64Decoder; |
| | | import sun.misc.BASE64Encoder; |
| | | |
| | | import java.io.*; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | |
| | | public class ImageBase64Util { |
| | | |
| | | /** |
| | | * å°å¾çè½¬æ¢æBase64ç¼ç |
| | | * @param imgFile å¾
å¤çå¾ç |
| | | * @return |
| | | */ |
| | | public static String getImgStr(String imgFile) { |
| | | // å°å¾çæä»¶è½¬å为åèæ°ç»å符串ï¼å¹¶å¯¹å
¶è¿è¡Base64ç¼ç å¤ç |
| | | |
| | | InputStream in = null; |
| | | byte[] data = null; |
| | | // 读åå¾çåèæ°ç» |
| | | try { |
| | | in = new FileInputStream(imgFile); |
| | | data = new byte[in.available()]; |
| | | in.read(data); |
| | | in.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return Base64.encodeBase64String(data); |
| | | } |
| | | |
| | | /** |
| | | * 对åèæ°ç»å符串è¿è¡Base64è§£ç å¹¶çæå¾ç |
| | | * @param imgStr å¾çæ°æ® |
| | | * @param imgFilePath ä¿åå¾çå
¨è·¯å¾å°å |
| | | * @return |
| | | */ |
| | | public static boolean generateImage(String imgStr, String imgFilePath) { |
| | | // |
| | | if (imgStr == null) // å¾åæ°æ®ä¸ºç©º |
| | | return false; |
| | | BASE64Decoder decoder = new BASE64Decoder(); |
| | | try { |
| | | // Base64è§£ç |
| | | byte[] b = decoder.decodeBuffer(imgStr); |
| | | for (int i = 0; i < b.length; ++i) { |
| | | if (b[i] < 0) {// è°æ´å¼å¸¸æ°æ® |
| | | b[i] += 256; |
| | | } |
| | | } |
| | | // çæjpgå¾ç |
| | | OutputStream out = new FileOutputStream(imgFilePath); |
| | | out.write(b); |
| | | out.flush(); |
| | | out.close(); |
| | | return true; |
| | | } catch (Exception e) { |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * è¿ç¨è¯»åimage转æ¢ä¸ºBase64å符串 |
| | | * @param imgUrl |
| | | * @return |
| | | */ |
| | | public static String Image2Base64(String imgUrl) { |
| | | URL url = null; |
| | | InputStream is = null; |
| | | ByteArrayOutputStream outStream = null; |
| | | HttpURLConnection httpUrl = null; |
| | | try{ |
| | | url = new URL(imgUrl); |
| | | httpUrl = (HttpURLConnection) url.openConnection(); |
| | | httpUrl.connect(); |
| | | httpUrl.getInputStream(); |
| | | is = httpUrl.getInputStream(); |
| | | |
| | | outStream = new ByteArrayOutputStream(); |
| | | //å建ä¸ä¸ªBufferå符串 |
| | | byte[] buffer = new byte[1024]; |
| | | //æ¯æ¬¡è¯»åçå符串é¿åº¦ï¼å¦æä¸º-1ï¼ä»£è¡¨å
¨é¨è¯»å宿¯ |
| | | int len = 0; |
| | | //使ç¨ä¸ä¸ªè¾å
¥æµä»bufferéææ°æ®è¯»ååºæ¥ |
| | | while( (len=is.read(buffer)) != -1 ){ |
| | | //ç¨è¾åºæµå¾bufferéåå
¥æ°æ®ï¼ä¸é´åæ°ä»£è¡¨ä»åªä¸ªä½ç½®å¼å§è¯»ï¼len代表读åçé¿åº¦ |
| | | outStream.write(buffer, 0, len); |
| | | } |
| | | // 对åèæ°ç»Base64ç¼ç |
| | | return new BASE64Encoder().encode(outStream.toByteArray()); |
| | | }catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | finally{ |
| | | if(is != null) |
| | | { |
| | | try { |
| | | is.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if(outStream != null) |
| | | { |
| | | try { |
| | | outStream.close(); |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | if(httpUrl != null) |
| | | { |
| | | httpUrl.disconnect(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | String url= "http://doumeetest.oss-cn-beijing.aliyuncs.com/member/20210515/de923f81-b417-47fc-a702-472d60d7870a.png";// å¾
å¤ççå¾ç |
| | | String imgbese = Image2Base64(url); |
| | | System.out.println(imgbese); |
| | | |
| | | // String url= "D:\\1.jpg";// æ°çæçå¾ç |
| | | // generateImage(imgbese, url); |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | IPage<MemberInfoDTO> getPage(IPage<MemberInfoDTO> page, @Param(Constants.WRAPPER) Wrapper wrapper); |
| | | |
| | | |
| | | |
| | | void insertBatchSomeColumn(List<Member> list); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.join; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.doumee.dao.business.model.Empower; |
| | | import com.github.yulichang.base.mapper.MPJJoinMapper; |
| | | |
| | | /** |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | public interface EmpowerJoinMapper extends MPJJoinMapper<Empower> { |
| | | |
| | | } |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | |
| | | |
| | | @TableId(type = IdType.AUTO) |
| | | @ApiModelProperty(value = "主é®", example = "1") |
| | | @ExcelColumn(name="主é®") |
| | | private Integer id; |
| | | |
| | | @ApiModelProperty(value = "å建人ç¼ç ") |
| | | @ExcelColumn(name="å建人ç¼ç ") |
| | | private String creator; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createDate; |
| | | |
| | | |
| | | @ApiModelProperty(value = "æ´æ°äººç¼ç ") |
| | | @ExcelColumn(name="æ´æ°äººç¼ç ") |
| | | private String edirot; |
| | | |
| | | @ApiModelProperty(value = "æ´æ°æ¶é´") |
| | | @ExcelColumn(name="æ´æ°æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date editDate; |
| | | |
| | | @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦å é¤0å¦ 1æ¯") |
| | | private Integer isdeleted; |
| | | |
| | | @ApiModelProperty(value = "夿³¨") |
| | | @ExcelColumn(name="夿³¨") |
| | | private String remark; |
| | | |
| | | @ApiModelProperty(value = "é¢çº¦æ è¯", example = "1") |
| | | @ExcelColumn(name="é¢çº¦æ è¯") |
| | | private String hkId; |
| | | |
| | | @ApiModelProperty(value = "æåºç ", example = "1") |
| | | @ExcelColumn(name="æåºç ") |
| | | private Integer sortnum; |
| | | |
| | | @ApiModelProperty(value = "人åç¼ç ", example = "1") |
| | | @ExcelColumn(name="人åç¼ç ") |
| | | private Integer memberId; |
| | | |
| | | @ApiModelProperty(value = "é¨ç¦æææå¼å§") |
| | | @ExcelColumn(name="é¨ç¦æææå¼å§") |
| | | private Date startTime; |
| | | |
| | | @ApiModelProperty(value = "é¨ç¦æææç»æ", example = "1") |
| | | @ExcelColumn(name="é¨ç¦æææç»æ") |
| | | private Date endTime; |
| | | |
| | | @ApiModelProperty(value = "导å
¥ç¶æ", example = "1") |
| | | @ExcelColumn(name="导å
¥ç¶æ") |
| | | private Integer importStatus; |
| | | |
| | | @ApiModelProperty(value = "导å
¥å¤æ³¨") |
| | | @ExcelColumn(name="导å
¥å¤æ³¨") |
| | | private String importInfo; |
| | | |
| | | @ApiModelProperty(value = "ä¸åç¶æ 0å¾
ä¸å 1å·²ä¸å 2已忶", example = "1") |
| | | @ExcelColumn(name="ä¸åç¶æ 0å¾
ä¸å 1å·²ä¸å 2已忶") |
| | | private Integer sendStatus; |
| | | |
| | | @ApiModelProperty(value = "ä¸åç±»å 0宿¶ 1宿¶ ", example = "1") |
| | | @ExcelColumn(name="ä¸åç±»å 0宿¶ 1宿¶ ") |
| | | private Integer sendType; |
| | | |
| | | @ApiModelProperty(value = "ä¸å夿³¨") |
| | | @ExcelColumn(name="ä¸å夿³¨") |
| | | private String sendInfo; |
| | | |
| | | @ApiModelProperty(value = "ä¸åæ¶é´") |
| | | @ExcelColumn(name="ä¸åæ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date sendDate; |
| | | |
| | | @ApiModelProperty(value = "ä¸å人å", example = "1") |
| | | @ExcelColumn(name="ä¸å人å") |
| | | private Integer sendUserId; |
| | | |
| | | @ApiModelProperty(value = "åæ¶äººå", example = "1") |
| | | @ExcelColumn(name="åæ¶äººå") |
| | | private Integer cancelUserId; |
| | | |
| | | @ApiModelProperty(value = "åæ¶æ¶é´") |
| | | @ExcelColumn(name="åæ¶æ¶é´") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date cancelDate; |
| | | |
| | | @ApiModelProperty(value = "忶夿³¨") |
| | | @ExcelColumn(name="忶夿³¨") |
| | | private String cANCElInfo; |
| | | |
| | | @ApiModelProperty(value = "æå±å
¬å¸ç¼ç ") |
| | | @TableField(exist = false) |
| | | private String companyId; |
| | | |
| | | @ApiModelProperty(value = "å§å") |
| | | @ExcelColumn(name="å§å",index = 1) |
| | | @TableField(exist = false) |
| | | private String memberName; |
| | | |
| | | @ApiModelProperty(value = "ææºå·") |
| | | @ExcelColumn(name="ææºå·" ,index = 2) |
| | | @TableField(exist = false) |
| | | private String memberPhone; |
| | | |
| | | @ApiModelProperty(value = "身份è¯") |
| | | @ExcelColumn(name="身份è¯",index= 3) |
| | | @TableField(exist = false) |
| | | private String memberidCard; |
| | | |
| | | @ApiModelProperty(value = "æå±å
¬å¸") |
| | | @ExcelColumn(name="æå±å
¬å¸",index= 4) |
| | | @TableField(exist = false) |
| | | private String companyName; |
| | | |
| | | @ApiModelProperty(value = "é¨ç¦æææå¼å§") |
| | | @ExcelColumn(name="é¨ç¦æææå¼å§",index= 5,dateFormat = "yyyy-MM-dd") |
| | | private Date startTime; |
| | | |
| | | @ApiModelProperty(value = "é¨ç¦æææç»æ", example = "1") |
| | | @ExcelColumn(name="é¨ç¦æææç»æ",index= 6,dateFormat = "yyyy-MM-dd") |
| | | private Date endTime; |
| | | |
| | | @ApiModelProperty(value = "å建æ¶é´") |
| | | @ExcelColumn(name="å建æ¶é´",index= 7,dateFormat = "yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date createDate; |
| | | |
| | | @ApiModelProperty(value = "æä½äºº") |
| | | @ExcelColumn(name="æä½äºº",index= 7) |
| | | @TableField(exist = false) |
| | | private String createrName; |
| | | |
| | | @ApiModelProperty(value = "ä¸åç¶æ 0å¾
ä¸å 1å·²ä¸å 2已忶", example = "1") |
| | | @ExcelColumn(name="ä¸åç¶æ",index= 8,valueMapping ="0=å¾
ä¸å;1=å·²ä¸å;2=已忶" ) |
| | | private Integer sendStatus; |
| | | |
| | | @ApiModelProperty(value = "ä¸åç±»å 0宿¶ 1宿¶ ", example = "1") |
| | | @ExcelColumn(name="ä¸åç±»å",index= 9,valueMapping ="0=宿¶;1=宿¶" ) |
| | | private Integer sendType; |
| | | |
| | | |
| | | |
| | | @ApiModelProperty(value = "ä¸åæ¶é´") |
| | | @ExcelColumn(name="ä¸åæ¶é´",index= 10,dateFormat = "yyyy-MM-dd") |
| | | @JsonFormat(pattern = "yyyy-MM-dd") |
| | | private Date sendDate; |
| | | |
| | | @ApiModelProperty(value = "ä¸å夿³¨") |
| | | @ExcelColumn(name="ä¸å夿³¨",index= 11) |
| | | private String sendInfo; |
| | | |
| | | @ApiModelProperty(value = "ä¸åå¼å§æ¶é´") |
| | | @TableField(exist = false) |
| | | private String sendStartDate; |
| | | @ApiModelProperty(value = "ä¸åç»ææ¶é´") |
| | | @TableField(exist = false) |
| | | private String sendEndDate; |
| | | |
| | | @ApiModelProperty(value = "æ¶é´æ®µ0ï¼7,30") |
| | | @TableField(exist = false) |
| | | private Integer timeDn; |
| | | |
| | | } |
| | |
| | | @ExcelColumn(name="å·¥å·") |
| | | private String code; |
| | | |
| | | @ApiModelProperty(value = "çæ¬¡") |
| | | @ExcelColumn(name="çæ¬¡") |
| | | private String classes; |
| | | @ApiModelProperty(value = "çæ¬¡ 0ç½ç 1å¤ç") |
| | | @ExcelColumn(name="çæ¬¡ 0ç½ç 1å¤ç") |
| | | private Integer classes; |
| | | |
| | | @ApiModelProperty(value = "ç¶æ 0æ£å¸¸ 1ç¦ç¨ 2æé»/å»ç»", example = "1") |
| | | @ExcelColumn(name="ç¶æ 0æ£å¸¸ 1ç¦ç¨ 2æé»/å»ç»") |
| | |
| | | @ApiModelProperty(value = "ç»ç»åç§°") |
| | | @TableField(exist = false) |
| | | private String companyName; |
| | | |
| | | @ApiModelProperty(value = "ç»ç»æµ·åº·ç¼ç ") |
| | | @TableField(exist = false) |
| | | private String companyHkId; |
| | | } |
| | |
| | | @ExcelColumn(name="è§è²ç¼ç ï¼å
³èdoor_role)") |
| | | private String roleId; |
| | | |
| | | @ApiModelProperty(value = "海康æ è¯") |
| | | @ExcelColumn(name="海康æ è¯") |
| | | private String hkId; |
| | | |
| | | @ApiModelProperty(value = "æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") |
| | | @ExcelColumn(name="æµ·åº·åæ¥ç¶æ 0æªåæ¥ 1已忥") |
| | | private Integer hkStatus; |
| | | |
| | | @ApiModelProperty(value = "海康æè¿åæ¥æ¶é´") |
| | | @ExcelColumn(name="海康æè¿åæ¥æ¶é´") |
| | | private Date hkDate; |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value = "çæ¬¡") |
| | | @ExcelColumn(name="çæ¬¡") |
| | | private String classes; |
| | | private Integer classes; |
| | | @ApiModelProperty(value = "海康é¨ç¦åç§°") |
| | | @ExcelColumn(name="海康é¨ç¦åç§°") |
| | | private String deviceName; |
| | |
| | | @ApiModelProperty(value = "æ®é访客ç³è¯·é访人å") |
| | | @TableField(exist = false) |
| | | private List<Visits> withUserList; |
| | | @ApiModelProperty(value = "çæ¬¡") |
| | | private String memberClasses; |
| | | // @ApiModelProperty(value = "çæ¬¡") |
| | | // private String memberClasses; |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0å³å¡è®¿å®¢ 1æ®é访客 2å
é¨äººå", example = "1") |
| | | @TableField(exist = false) |
| | |
| | | @ExcelColumn(name="被访人åå§å") |
| | | @TableField(exist = false) |
| | | private String receptMemberName; |
| | | @ApiModelProperty(value = "è¢«è®¿äººåæµ·åº·ç¼ç ", example = "1") |
| | | @ExcelColumn(name="被访人åå§å") |
| | | @TableField(exist = false) |
| | | private String receptMemberHkId; |
| | | |
| | | @ApiModelProperty(value = "被访人åé¨é¨", example = "1") |
| | | @ExcelColumn(name="被访人åé¨é¨") |
| | |
| | | @TableField(exist = false) |
| | | private List<Visits> visitsList; |
| | | |
| | | @ApiModelProperty(value = "è¶
æ¶æ¶é¿", example = "1") |
| | | @TableField(exist = false) |
| | | private Integer timeOut; |
| | | |
| | | } |
| | |
| | | void syncOrgData(); |
| | | |
| | | void syncUserData(); |
| | | |
| | | void syncVisitData(); |
| | | void syncEmpowerData(); |
| | | } |
| | |
| | | * @return Integer |
| | | */ |
| | | Integer create(Visits visits); |
| | | |
| | | Integer createFk(Visits visits); |
| | | |
| | | /** |
| | |
| | | */ |
| | | PageData<Visits> findPage(PageWrap<Visits> pageWrap); |
| | | |
| | | PageData<Visits> retentionPage(PageWrap<Visits> pageWrap); |
| | | |
| | | /** |
| | | * æ¡ä»¶ç»è®¡ |
| | | * |
| | |
| | | |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.Date; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.admin.response.MemberInfoDTO; |
| | | import com.doumee.dao.business.EmpowerMapper; |
| | | import com.doumee.dao.business.join.EmpowerJoinMapper; |
| | | import com.doumee.dao.business.model.Company; |
| | | import com.doumee.dao.business.model.Empower; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.EmpowerService; |
| | | 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.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Calendar; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * äººåææå¯¼å
¥è®°å½Serviceå®ç° |
| | |
| | | |
| | | @Autowired |
| | | private EmpowerMapper empowerMapper; |
| | | |
| | | @Autowired |
| | | private EmpowerJoinMapper empowerJoinMapper; |
| | | |
| | | |
| | | @Override |
| | | public Integer create(Empower empower) { |
| | |
| | | @Override |
| | | public PageData<Empower> findPage(PageWrap<Empower> pageWrap) { |
| | | IPage<Empower> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | QueryWrapper<Empower> queryWrapper = new QueryWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.lambda().eq(Empower::getId, pageWrap.getModel().getId()); |
| | | } |
| | | if (pageWrap.getModel().getCreator() != null) { |
| | | queryWrapper.lambda().eq(Empower::getCreator, pageWrap.getModel().getCreator()); |
| | | } |
| | | if (pageWrap.getModel().getCreateDate() != null) { |
| | | queryWrapper.lambda().ge(Empower::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); |
| | | queryWrapper.lambda().le(Empower::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); |
| | | } |
| | | if (pageWrap.getModel().getEdirot() != null) { |
| | | queryWrapper.lambda().eq(Empower::getEdirot, pageWrap.getModel().getEdirot()); |
| | | } |
| | | if (pageWrap.getModel().getEditDate() != null) { |
| | | queryWrapper.lambda().ge(Empower::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); |
| | | queryWrapper.lambda().le(Empower::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); |
| | | } |
| | | if (pageWrap.getModel().getIsdeleted() != null) { |
| | | queryWrapper.lambda().eq(Empower::getIsdeleted, pageWrap.getModel().getIsdeleted()); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.lambda().eq(Empower::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getHkId() != null) { |
| | | queryWrapper.lambda().eq(Empower::getHkId, pageWrap.getModel().getHkId()); |
| | | } |
| | | if (pageWrap.getModel().getSortnum() != null) { |
| | | queryWrapper.lambda().eq(Empower::getSortnum, pageWrap.getModel().getSortnum()); |
| | | } |
| | | if (pageWrap.getModel().getMemberId() != null) { |
| | | queryWrapper.lambda().eq(Empower::getMemberId, pageWrap.getModel().getMemberId()); |
| | | } |
| | | if (pageWrap.getModel().getStartTime() != null) { |
| | | queryWrapper.lambda().eq(Empower::getStartTime, pageWrap.getModel().getStartTime()); |
| | | } |
| | | if (pageWrap.getModel().getEndTime() != null) { |
| | | queryWrapper.lambda().eq(Empower::getEndTime, pageWrap.getModel().getEndTime()); |
| | | } |
| | | if (pageWrap.getModel().getImportStatus() != null) { |
| | | queryWrapper.lambda().eq(Empower::getImportStatus, pageWrap.getModel().getImportStatus()); |
| | | } |
| | | if (pageWrap.getModel().getImportInfo() != null) { |
| | | queryWrapper.lambda().eq(Empower::getImportInfo, pageWrap.getModel().getImportInfo()); |
| | | } |
| | | if (pageWrap.getModel().getSendStatus() != null) { |
| | | queryWrapper.lambda().eq(Empower::getSendStatus, pageWrap.getModel().getSendStatus()); |
| | | } |
| | | if (pageWrap.getModel().getSendType() != null) { |
| | | queryWrapper.lambda().eq(Empower::getSendType, pageWrap.getModel().getSendType()); |
| | | } |
| | | if (pageWrap.getModel().getSendInfo() != null) { |
| | | queryWrapper.lambda().eq(Empower::getSendInfo, pageWrap.getModel().getSendInfo()); |
| | | } |
| | | if (pageWrap.getModel().getSendDate() != null) { |
| | | queryWrapper.lambda().ge(Empower::getSendDate, Utils.Date.getStart(pageWrap.getModel().getSendDate())); |
| | | queryWrapper.lambda().le(Empower::getSendDate, Utils.Date.getEnd(pageWrap.getModel().getSendDate())); |
| | | } |
| | | if (pageWrap.getModel().getSendUserId() != null) { |
| | | queryWrapper.lambda().eq(Empower::getSendUserId, pageWrap.getModel().getSendUserId()); |
| | | } |
| | | if (pageWrap.getModel().getCancelUserId() != null) { |
| | | queryWrapper.lambda().eq(Empower::getCancelUserId, pageWrap.getModel().getCancelUserId()); |
| | | } |
| | | if (pageWrap.getModel().getCancelDate() != null) { |
| | | queryWrapper.lambda().ge(Empower::getCancelDate, Utils.Date.getStart(pageWrap.getModel().getCancelDate())); |
| | | queryWrapper.lambda().le(Empower::getCancelDate, Utils.Date.getEnd(pageWrap.getModel().getCancelDate())); |
| | | } |
| | | if (pageWrap.getModel().getCANCElInfo() != null) { |
| | | queryWrapper.lambda().eq(Empower::getCANCElInfo, pageWrap.getModel().getCANCElInfo()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); |
| | | |
| | | queryWrapper.selectAll(Empower.class); |
| | | queryWrapper.selectAs(Member::getName,Empower::getMemberName); |
| | | queryWrapper.selectAs(Member::getPhone,Empower::getMemberPhone); |
| | | queryWrapper.selectAs(Member::getIdcardNo,Empower::getMemberidCard); |
| | | queryWrapper.selectAs(Company::getName,Empower::getCompanyName); |
| | | queryWrapper.selectAs(SystemUser::getUsername,Empower::getCreaterName); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,Empower::getMemberId); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); |
| | | queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Empower::getCreator); |
| | | |
| | | queryWrapper.eq(Empower::getIsdeleted, Constants.ZERO) |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName()) |
| | | .or().like(Member::getPhone,pageWrap.getModel().getCompanyName())); |
| | | queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getSendStatus()),Empower::getSendStatus,pageWrap.getModel().getSendStatus()); |
| | | queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCompanyId()),Company::getId,pageWrap.getModel().getCompanyId()); |
| | | queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getSendStartDate()),Empower::getSendDate,pageWrap.getModel().getSendStartDate()); |
| | | queryWrapper.le(Objects.nonNull(pageWrap.getModel().getSendEndDate()),Empower::getSendDate,pageWrap.getModel().getSendEndDate()); |
| | | |
| | | SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); |
| | | Calendar cal=Calendar.getInstance(); |
| | | if(Objects.nonNull(pageWrap.getModel().getTimeDn())){ |
| | | if(Constants.equalsInteger(pageWrap.getModel().getTimeDn(),0)){ |
| | | String now=format.format(cal.getTime())+" :00:00:00"; |
| | | queryWrapper.ge(Empower::getSendDate,now); |
| | | } |
| | | if(Constants.equalsInteger(pageWrap.getModel().getTimeDn(),7)){ |
| | | |
| | | cal.add(Calendar.DAY_OF_MONTH,-7); |
| | | queryWrapper.ge(Empower::getSendDate,cal.getTime()); |
| | | } |
| | | if(Constants.equalsInteger(pageWrap.getModel().getTimeDn(),30)){ |
| | | cal.add(Calendar.DAY_OF_MONTH,-30); |
| | | queryWrapper.ge(Empower::getSendDate,cal.getTime()); |
| | | } |
| | | } |
| | | return PageData.from(empowerMapper.selectPage(page, queryWrapper)); |
| | | queryWrapper.orderByDesc(Empower::getCreateDate); |
| | | IPage<Empower> result = empowerJoinMapper.selectJoinPage(page, Empower.class,queryWrapper); |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (!CollectionUtils.isEmpty(memberIPage.getRecords())){ |
| | | memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode()))); |
| | | }*/ |
| | | IPage<MemberInfoDTO> memberIPage = memberMapper.getPage(pageWrap.toPage(),new QueryWrapper<MemberInfoDTO>() |
| | | .in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,"m.COMPANY_ID",pageWrap.getModel().getCompanyIds()) |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like("m.ohone",pageWrap.getModel().getKeyWords()) |
| | | .or().like("m.name",pageWrap.getModel().getKeyWords()) |
| | | .or().like("m.code",pageWrap.getModel().getKeyWords())) |
| | | .isNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),"m.FACE_ID") |
| | | .isNotNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),"m.FACE_ID") |
| | | .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),"m.CAN_VISIT",pageWrap.getModel().getCanVisit()) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getStatus()),"m.CAN_VISIT",pageWrap.getModel().getStatus()) |
| | | .eq("m.ISDELETED",0) |
| | | .orderByDesc("m.CREATE_DATE") |
| | | ); |
| | | IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); |
| | | |
| | | queryWrapper.selectAll(Member.class); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); |
| | | queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,Member::getCompanyId,pageWrap.getModel().getCompanyIds()) |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getKeyWords()) |
| | | .or().like(Member::getName,pageWrap.getModel().getKeyWords()) |
| | | .or().like(Member::getCode,pageWrap.getModel().getKeyWords())) |
| | | .isNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) |
| | | .isNotNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit()) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getCanVisit,pageWrap.getModel().getStatus()) |
| | | .eq(Member::getIsdeleted,0) |
| | | .orderByDesc(Member::getCreateDate); |
| | | |
| | | IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); |
| | | return PageData.from(memberIPage); |
| | | } |
| | | |
| | |
| | | import cn.hutool.core.util.IdcardUtil; |
| | | 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.erp.ApproveAddRequest; |
| | | import com.doumee.core.erp.model.openapi.request.erp.UserInfoRequest; |
| | | 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.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | import org.springframework.util.DigestUtils; |
| | | |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 访客ç³è¯·ä¿¡æ¯è¡¨Serviceå®ç° |
| | |
| | | //è·åç³è¯·ç海康访é®é¨ç¦ç»ä¿¡æ¯ |
| | | String[] hkIds = getHkDeviceRoles(visits); |
| | | //æ£éªæè®¿äººæ¯å¦åæ³ |
| | | isValideVisitedUser(visits.getReceptMemberId()); |
| | | Member visitMember = isValideVisitedUser(visits.getReceptMemberId()); |
| | | if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType()) &&!IdcardUtil.isValidCard(visits.getIdcardNo())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对ä¸èµ·ï¼èº«ä»½è¯å·ç æè¯¯ï¼è¯·æ ¸å®åéè¯ï¼"); |
| | | } |
| | |
| | | //åå§åè®¿å®¢ä¿¡æ¯ |
| | | initVisitInfo(visits,date); |
| | | //åèµ·ERP审æ¹ç³è¯· |
| | | String erpid = startSendErpCheck(visits); |
| | | if(StringUtils.isNotBlank(erpid)){ |
| | | visits.setErpId(erpid); |
| | | String erpId = startSendErpCheck(visits,visitMember); |
| | | if(StringUtils.isNotBlank(erpId)){ |
| | | visits.setErpId(erpId); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼åèµ·æè®¿å®¡æ¹ç³è¯·å¤±è´¥ï¼"); |
| | | } |
| | |
| | | visits.setCreateDate(date); |
| | | } |
| | | |
| | | private String startSendErpCheck(Visits visits) { |
| | | //TODO ------------RK-------------- |
| | | // ErpTool.submitApprove() |
| | | private String startSendErpCheck(Visits visits,Member visitMember) { |
| | | ApproveAddRequest param = new ApproveAddRequest(); |
| | | List<Visits> withUserVisitsList = visits.getWithUserList(); |
| | | List<UserInfoRequest> withUserList = new ArrayList<>(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(withUserVisitsList)){ |
| | | for (Visits v:withUserVisitsList) { |
| | | UserInfoRequest userInfoRequest = new UserInfoRequest(); |
| | | userInfoRequest.setName(v.getName()); |
| | | userInfoRequest.setIdNo(v.getIdcardNo()); |
| | | userInfoRequest.setSex(v.getSex()); |
| | | userInfoRequest.setPhone(v.getPhone()); |
| | | userInfoRequest.setFaceImg(v.getFaceImg()); |
| | | userInfoRequest.setHealthImg(v.getImgurl()); |
| | | withUserList.add(userInfoRequest); |
| | | } |
| | | param.setWithUserList(withUserList); |
| | | } |
| | | param.setId(visits.getId()); |
| | | param.setBeVisitedUserId(visitMember.getErpId()); |
| | | param.setVisitorWorkUint(visits.getCompanyName()); |
| | | param.setPurpose(visits.getReason()); |
| | | param.setStartTime(DateUtil.getDate(visits.getStarttime(),"yyyy-MM-dd HH:mm:ss")); |
| | | param.setEndTime(DateUtil.getDate(visits.getEndtime(),"yyyy-MM-dd HH:mm:ss")); |
| | | if(StringUtils.isNotBlank(visits.getCarNos())){ |
| | | param.setCarNo(Arrays.asList(visits.getCarNos().split(","))); |
| | | } |
| | | if(StringUtils.isNotBlank(visits.getDoors())){ |
| | | List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda().in(DeviceRole::getId,Arrays.asList(visits.getDoors().split(",")))); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(deviceRoleList)){ |
| | | param.setRoleIds(deviceRoleList.stream().map(m->m.getId()).collect(Collectors.toList())); |
| | | param.setRoleNames(deviceRoleList.stream().map(m->m.getName()).collect(Collectors.toList())); |
| | | } |
| | | } |
| | | ApproveInfoResponse response = ErpTool.submitApprove(ErpConstants.approveUrl,param); |
| | | if(!Objects.isNull(response)){ |
| | | return response.getId().toString(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | |
| | | QueryWrapper<Visits> wrapper = new QueryWrapper<>(visits); |
| | | return visitsMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public PageData<Visits> retentionPage(PageWrap<Visits> pageWrap) { |
| | | IPage<Visits> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); |
| | | |
| | | queryWrapper.selectAll(Visits.class); |
| | | queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName); |
| | | queryWrapper.select("TIMESTAMPDIFF(MINUTE,t.ENDTIME , NOW()) AS timeOut"); |
| | | queryWrapper.selectAs(Member::getType,Visits::getMemberType); |
| | | queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); |
| | | |
| | | queryWrapper.eq(Visits::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Visits::getType,pageWrap.getModel().getType()); |
| | | queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Visits::getPhone,pageWrap.getModel().getName()) |
| | | .or().like(Visits::getPhone,pageWrap.getModel().getName())) |
| | | .eq(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Visits::getIdcardNo,StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo())) |
| | | .eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Visits::getCompanyName,pageWrap.getModel().getCompanyName()) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Visits::getStatus,pageWrap.getModel().getStatus()); |
| | | queryWrapper.isNull(Visits::getOutDate); |
| | | queryWrapper.orderByDesc(Visits::getEditDate); |
| | | IPage<Visits> result = visitsJoinMapper.selectJoinPage(page, Visits.class,queryWrapper); |
| | | |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | } |
| | |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 忥ERP人åä¿¡æ¯ |
| | | * @param param |
| | | * @return |
| | | */ |
| | | @Override |
| | | public String syncUsers(UserListRequest param){ |
| | | //TODO----------------RK------------------ |
| | | List<UserListRespone> allList = ErpTool.getErpUserList(ErpConstants.userListUrl,param); |
| | | public String syncUsers(UserListRequest param){ |
| | | List<UserListRespone> list = ErpTool.getErpUserList(ErpConstants.userListUrl,param); |
| | | if(list !=null && list.size()>0) { |
| | | List<Member> addList = new ArrayList<>(); |
| | | List<Member> updateList = new ArrayList<>(); |
| | | List<Integer> delIds = new ArrayList<>(); |
| | | List<Member> allList = memberMapper.selectList(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getIsdeleted,Constants.ZERO) |
| | | .eq(Member::getType, Constants.memberType.internal)); |
| | | dealUserChangeList(list,addList,updateList,delIds,allList); |
| | | |
| | | if(addList.size()>0){ |
| | | memberMapper.insertBatchSomeColumn(addList); |
| | | } |
| | | if(updateList.size()>0){ |
| | | for(Member c : updateList){ |
| | | memberMapper.updateById(c); |
| | | } |
| | | } |
| | | if(delIds.size()>0){ |
| | | //å 餿æéè¦å é¤çç»ç»ä¿¡æ¯(é»è¾å é¤ï¼ |
| | | memberMapper.update(null,new UpdateWrapper<Member>().lambda().set(Member::getHkStatus,Constants.ZERO) |
| | | .set(Member::getIsdeleted, Constants.ONE).in(Member::getId,delIds)); |
| | | } |
| | | |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "忥ERPæ°æ®ä¸ºç©ºï¼"); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private void dealUserChangeList(List<UserListRespone> list, List<Member> addList, List<Member> updateList, List<Integer> delIds, List<Member> allList) { |
| | | Date date = new Date(); |
| | | for(UserListRespone response : list){ |
| | | //æ ¹æ® erpId æ¥è¯¢ç¨æ·ä¿¡æ¯ï¼å¤ææ¯æ°å¢è¿æ¯æ´æ° |
| | | Member member = findUserByERPId(allList,response.getId()); |
| | | if(member == null){ |
| | | //å¦ææ¯æ°å¢ |
| | | if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){ |
| | | continue; |
| | | } |
| | | //å°è£
æ°å¢ç»ç»å¯¹è±¡æ°æ® |
| | | addList.add(getAddMemberModel(response,date)); |
| | | }else{ |
| | | //å¦ææ¯æ´æ° |
| | | if(Constants.formatIntegerNum(response.getIsdeleted()) == Constants.ONE){ |
| | | //妿已å é¤ï¼å å
¥å é¤éåä¸ |
| | | delIds.add(member.getId()); |
| | | continue; |
| | | } |
| | | updateList.add(addUpdateMemberModel(response,member,date)); |
| | | } |
| | | } |
| | | if(allList!=null && allList.size()>0){ |
| | | for(Member c : allList){ |
| | | if(isUserDeleted(c,list)){ |
| | | delIds.add(c.getId()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private Member getAddMemberModel(UserListRespone param, Date date) { |
| | | Member member = new Member(); |
| | | BeanUtils.copyProperties(param,member); |
| | | member.setCreateDate(new Date()); |
| | | member.setHkStatus(Constants.ZERO); |
| | | member.setErpStatus(Constants.ONE); |
| | | member.setErpDate(new Date()); |
| | | member.setErpId(param.getId()); |
| | | member.setFsStatus(Constants.ZERO); |
| | | member.setType(Constants.memberType.internal); |
| | | String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); |
| | | member.setIdcardNo(encryptIdNo); |
| | | member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); |
| | | member.setCompanyId(param.getOrgId()); |
| | | member.setHkStatus(Constants.ZERO); |
| | | return member; |
| | | } |
| | | |
| | | private Member addUpdateMemberModel(UserListRespone param,Member member,Date date) { |
| | | BeanUtils.copyProperties(param,member); |
| | | String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); |
| | | member.setIdcardNo(encryptIdNo); |
| | | member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); |
| | | member.setCompanyId(param.getOrgId()); |
| | | member.setEditDate(new Date()); |
| | | member.setErpDate(new Date()); |
| | | member.setHkStatus(Constants.ZERO); |
| | | return member; |
| | | } |
| | | |
| | | private boolean isUserDeleted(Member c, List<UserListRespone> list) { |
| | | for(UserListRespone m : list){ |
| | | if(StringUtils.equals(c.getErpId(),m.getId().toString())){ |
| | | return true; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | private Member findUserByERPId(List<Member> allList, String id) { |
| | | if(allList!=null){ |
| | | for(Member com :allList){ |
| | | if(StringUtils.equals(com.getErpId(),id)){ |
| | | return com; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | Company company = companyMapper.selectOne(new QueryWrapper<Company>().lambda().eq(Company::getErpId,param.getId()).last("limit 1")); |
| | | if(Objects.isNull(company)){ |
| | | company = new Company(); |
| | | BeanUtils.copyProperties(param,company); |
| | | // BeanUtils.copyProperties(param,company); |
| | | company.setId(null); |
| | | company.setCreateDate(new Date()); |
| | | company.setHkStatus(Constants.ZERO); |
| | | company.setErpStatus(Constants.ONE); |
| | | company.setErpDate(new Date()); |
| | | company.setErpId(param.getId()); |
| | | company.setErpParentId(param.getParentId()); |
| | | company.setFsStatus(Constants.ZERO); |
| | | company.setType(Constants.ONE); |
| | | company.setLinkName(param.getLinkName()); |
| | | company.setLinkPhone(param.getLinkPhone()); |
| | | companyMapper.insert(company); |
| | | //TODO æµ·åº·æ°æ®å建 |
| | | }else{ |
| | | BeanUtils.copyProperties(param,company); |
| | | // BeanUtils.copyProperties(param,company); |
| | | company.setEditDate(new Date()); |
| | | company.setErpId(param.getId()); |
| | | company.setHkStatus(Constants.ZERO); |
| | | company.setErpDate(new Date()); |
| | | company.setErpParentId(param.getParentId()); |
| | | company.setLinkName(param.getLinkName()); |
| | | company.setLinkPhone(param.getLinkPhone()); |
| | | companyMapper.updateById(company); |
| | | //TODO æµ·åº·æ°æ®æ´æ° |
| | | } |
| | |
| | | member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); |
| | | member.setCompanyId(param.getOrgId()); |
| | | memberMapper.insert(member); |
| | | |
| | | //TODO æµ·åº·æ°æ®å建 |
| | | }else{ |
| | | BeanUtils.copyProperties(param,member); |
| | |
| | | visitsList.forEach(i->{ |
| | | i.setStatus(param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass); |
| | | i.setEndCheckDate(DateUtil.StringToDate(param.getApproveDate(),"yyyy-MM-dd HH:mm:ss")); |
| | | i.setHkStatus(Constants.ZERO); |
| | | visitsMapper.updateById(i); |
| | | }); |
| | | } |
| | |
| | | @Override |
| | | public void syncOrgData( ){ |
| | | } |
| | | @Override |
| | | public void syncVisitData() { |
| | | } |
| | | @Override |
| | | public void syncEmpowerData() { |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl.hksync; |
| | | |
| | | import com.doumee.core.haikang.model.HKConstants; |
| | | import com.doumee.core.haikang.model.param.BaseResponse; |
| | | import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest; |
| | | import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse; |
| | | import com.doumee.core.haikang.service.HKService; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.dao.business.join.EmpowerJoinMapper; |
| | | import com.doumee.dao.business.join.VisitsJoinMapper; |
| | | import com.doumee.dao.business.model.Empower; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Visits; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 海康é¨ç¦ææä¸å¡Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class HkSyncEmpowerServiceImpl extends HkSyncBaseServiceImpl { |
| | | @Autowired |
| | | private EmpowerJoinMapper empowerJoinMapper; |
| | | |
| | | /** |
| | | * åæ¥æµ·åº·ç»ç»ä¿¡æ¯,æ ¹æ®erp忥ç»ç»ç»æï¼å®æ¶æ£æ¥éè¦ä¸åå°æµ·åº·çç»ç»ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | public void syncEmpowerData(){ |
| | | if(Constants.DEALING_HK_EMPOWER){ |
| | | return ; |
| | | } |
| | | Constants.DEALING_HK_EMPOWER =true; |
| | | try { |
| | | //æ¥è¯¢ææéè¦åæ¥çä¼ä¸æ°æ® |
| | | |
| | | MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Empower.class); |
| | | queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName) |
| | | .select("t1.hk_id as receptMemberHkId") |
| | | .leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); |
| | | queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.pass)//审æ¹éè¿ |
| | | .eq(Visits::getHkStatus,Constants.ZERO)//æªåæ¥å°æµ·åº· |
| | | .orderByAsc(Visits::getCreateDate); |
| | | List<Empower> list = empowerJoinMapper.selectJoinList(Empower.class,queryWrapper); |
| | | if(list ==null || list.size()==0){ |
| | | return; |
| | | } |
| | | Date date = new Date(); |
| | | for(Empower c : list) { |
| | | //å é¤çæ°æ®ï¼è¿è¡å é¤ |
| | | VisitAppointmentRequest request = new VisitAppointmentRequest(); |
| | | BaseResponse<VisitAppointmentResponse> response = HKService.visitAppiontment(request); |
| | | if (response != null |
| | | && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) |
| | | &&response.getData()!=null |
| | | &&StringUtils.isNotBlank(response.getData().getAppointRecordId())) { |
| | | //海康ä¸åæå |
| | | c.setHkId( response.getData().getAppointRecordId());//é¢çº¦æ è¯ |
| | | } else { |
| | | //海康ä¸åæå |
| | | } |
| | | empowerJoinMapper.updateById(c); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | | Constants.DEALING_HK_EMPOWER =false; |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest; |
| | | 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.OrgAddRequest; |
| | | import com.doumee.core.haikang.model.param.request.OrgDelRequest; |
| | | import com.doumee.core.haikang.model.param.request.ParkListRequest; |
| | | import com.doumee.core.haikang.model.param.respose.OrgOrUserAddResponse; |
| | | import com.doumee.core.haikang.model.param.respose.OrgOrUserAddSuccessResponse; |
| | | import com.doumee.core.haikang.model.param.respose.OrgUpdateFailureResponse; |
| | | import com.doumee.core.haikang.model.param.respose.ParkListResponse; |
| | | import com.doumee.core.haikang.model.param.request.*; |
| | | import com.doumee.core.haikang.model.param.respose.*; |
| | | import com.doumee.core.haikang.service.HKService; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.ImageBase64Util; |
| | | import com.doumee.dao.business.CompanyMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.ParksMapper; |
| | | import com.doumee.dao.business.join.CompanyJoinMapper; |
| | | import com.doumee.dao.business.model.Company; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Parks; |
| | | import com.doumee.service.business.ERPSyncService; |
| | | import com.github.yulichang.query.MPJQueryWrapper; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.checkerframework.checker.units.qual.C; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import java.util.UUID; |
| | | |
| | | /** |
| | | * 海康å车åºåæ¥Serviceå®ç° |
| | | * 海康ç»ç»äººåéè¿æ¥Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl { |
| | | |
| | | @Autowired |
| | | private CompanyMapper companyMapper; |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | @Autowired |
| | | private ERPSyncService erpSyncService; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | |
| | | /** |
| | | * åæ¥æµ·åº·ç»ç»ä¿¡æ¯ |
| | | * @return |
| | | * åæ¥æµ·åº·ç»ç»ä¿¡æ¯,æ ¹æ®erp忥ç»ç»ç»æï¼å®æ¶æ£æ¥éè¦ä¸åå°æµ·åº·çç»ç»ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | public void syncOrgData(){ |
| | |
| | | .select("*,(select b.hk_id from company b where company.erp_parent_id = b.id limit 1) as hkParentId") |
| | | .lambda() |
| | | .eq(Company::getHkStatus,Constants.ZERO) |
| | | .orderByDesc(Company::getErpDate)); |
| | | .orderByAsc(Company::getErpDate)); |
| | | if(list ==null || list.size()==0){ |
| | | return; |
| | | } |
| | |
| | | */ |
| | | private void doHkAddOrg(List<Company> updateList, List<OrgAddRequest> addList) { |
| | | Date date = new Date(); |
| | | |
| | | BaseResponse<OrgOrUserAddResponse> result = HKService.addBatchOrg(addList); |
| | | if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){ |
| | | OrgOrUserAddResponse data = result.getData(); |
| | |
| | | |
| | | private OrgAddRequest getOrgAddModel(Company c,String rootOrgId) { |
| | | OrgAddRequest model = new OrgAddRequest(); |
| | | model.setOrgIndexCode(HKConstants.RES_INDEX+UUID.randomUUID().toString()); |
| | | model.setOrgIndexCode(HKConstants.RES_ORG_INDEX+UUID.randomUUID().toString().replace("-","")); |
| | | model.setOrgName(c.getName()); |
| | | model.setOrgCode(c.getCode()); |
| | | model.setOrgIndexCode(c.getHkParentId()); |
| | | // model.setOrgCode(c.getCode()); |
| | | model.setParentIndexCode(c.getHkParentId()); |
| | | return model; |
| | | |
| | | } |
| | |
| | | * @param date |
| | | */ |
| | | private void doHkDeleteOrg(List<Integer> delIds,List<String> delHkIds, Date date) { |
| | | if(delHkIds.size() == 0){ |
| | | return; |
| | | } |
| | | OrgDelRequest request = new OrgDelRequest(); |
| | | request.setIndexCodes((String[]) delHkIds.toArray()); |
| | | request.setIndexCodes( delHkIds.toArray(new String[]{})); |
| | | BaseResponse<List<OrgUpdateFailureResponse>> result = HKService.delBatchOrg(request); |
| | | if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){ |
| | | List<String> fIds = new ArrayList<>(); |
| | | if(result.getData()!=null){ |
| | | for(OrgUpdateFailureResponse r : result.getData()){ |
| | | fIds.add(r.getOrgIndexCode());//å é¤å¤±è´¥çæ°æ®éå |
| | | if(!r.getCode().equals("0x00072001")){ |
| | | //ä¸åå¨çä¹ç®å 餿å |
| | | fIds.add(r.getOrgIndexCode());//å é¤å¤±è´¥çæ°æ®éå |
| | | } |
| | | } |
| | | } |
| | | //æ è®°å 餿åçæ°æ®ï¼æµ·åº·å¯¹æ¥ç¶æä¸ºå·²åæ¥ï¼ï¼åæ¥å¤±è´¥çä»ä¸ºå¾
忥ï¼çä¸ä¸æ¬¡ç»§ç»å¤çï¼ç¥éå
¨é¨å é¤å®æ¯ï¼ |
| | |
| | | */ |
| | | @Override |
| | | public void syncUserData(){ |
| | | if(Constants.DEALING_HK_USER){ |
| | | return ; |
| | | } |
| | | Constants.DEALING_HK_USER =true; |
| | | try { |
| | | //æ¥è¯¢ææéè¦åæ¥çä¼ä¸æ°æ® |
| | | List<Member> list = memberMapper.selectList(new QueryWrapper<Member>() |
| | | .lambda() |
| | | .eq(Member::getHkStatus,Constants.ZERO) |
| | | .orderByAsc(Member::getErpDate)); |
| | | if(list ==null || list.size()==0){ |
| | | return; |
| | | } |
| | | Date date = new Date(); |
| | | String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); |
| | | for(Member c : list){ |
| | | if( c.getCompanyId() == null){ |
| | | //å¦ææ²¡æç»ç»ä¸åå¤ç |
| | | continue; |
| | | } |
| | | UserAddRequest addHkModel = new UserAddRequest(); |
| | | if(StringUtils.isBlank(c.getHkId())){ |
| | | //妿æ°å¢åæ¥æ¸æ |
| | | if(Constants.equalsInteger(Constants.ONE,c.getIsdeleted())){ |
| | | //å é¤çç»ç»ï¼ä¸åå¤ç,æµ·åº·ç¶ææ´æ°ä¸ºä¸å¤çï¼ä¸æ¬¡ä¸åå¤çè¿ä¸ªè®°å½ |
| | | c.setHkStatus(Constants.TWO); |
| | | memberMapper.updateById(c); |
| | | continue ; |
| | | } |
| | | addHkModel = getUserAddModel(c,path); |
| | | c.setHkId(addHkModel.getPersonId()); |
| | | }else{ |
| | | //å 餿µ·åº·åæçæ°æ®ï¼åæ°å¢ç»ç» |
| | | addHkModel = getUserAddModel(c,path); |
| | | c.setHkId(addHkModel.getPersonId()); |
| | | } |
| | | if(addHkModel == null){ |
| | | //å¦æäººè¸æ°æ®ä¸æ£ç¡®ï¼ä¸è½½å¤±è´¥çåå |
| | | noticeErpFail(c,Constants.ZERO,"人è¸ç
§çä¸åå¨ï¼è·å失败ï¼"); |
| | | continue; |
| | | } |
| | | //å¤çå 餿°æ®ï¼å é¤ä¹åä¸åçæµ·åº·äººåä¿¡æ¯ï¼ç¶åæ°å¢ï¼ |
| | | doHkDeleteUser(c.getId(),c.getHkId(),date); |
| | | //å¤çæ°å¢æ°æ® |
| | | BaseResponse<UserAddResponse> result = HKService.addUser(addHkModel); |
| | | if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE) && result.getData()!=null){ |
| | | c.setFaceId(result.getData().getFaceId()); |
| | | memberMapper.updateById(c); |
| | | }else{ |
| | | noticeErpFail(c,Constants.ZERO,"人åä¿¡æ¯åæ¥å®é²å¹³å°å¤±è´¥ï¼è¯·ä¿®æ£åéè¯ï¼"+result.getCode()+result.getMsg()); |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | | Constants.DEALING_HK_USER =false; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * éç¥erpç³»ç»ï¼äººåä¸ååæ¥ä¿¡æ¯ç¶æå¤±è´¥ |
| | | * @param c |
| | | * @param type |
| | | * @param s |
| | | */ |
| | | private void noticeErpFail(Member c, int type, String s) { |
| | | UserFailRequest r = new UserFailRequest(); |
| | | r.setUserId(c.getErpId()); |
| | | r.setInfo(s); |
| | | r.setType(type); |
| | | //éç¥ERPäººè¸æ°æ®ä¸æ£ç¡® |
| | | erpSyncService.noticeUserFail(r); |
| | | } |
| | | |
| | | /** |
| | | * 对海康å é¤ç»ç»ä¿¡æ¯ |
| | | * @param id |
| | | * @param date |
| | | */ |
| | | private void doHkDeleteUser(Integer id,String delHkIds, Date date) { |
| | | if(StringUtils.isBlank(delHkIds)){ |
| | | return; |
| | | } |
| | | UserDelRequest request = new UserDelRequest(); |
| | | request.setPersonIds(new String[]{delHkIds}); |
| | | BaseResponse<List<UserDelResponse>> result = HKService.delBatchUser(request); |
| | | if(StringUtils.equals(result.getCode(),HKConstants.RESPONSE_SUCCEE)){ |
| | | List<String> fIds = new ArrayList<>(); |
| | | if(result.getData()!=null && result.getData().size()>0){ |
| | | log.info("海康å é¤ç¨æ·å¤±è´¥ï¼==============="+result.getData().get(0).getPersonId()); |
| | | /* for(UserDelResponse r : result.getData()){ |
| | | if(!r.getCode().equals("0x00072001")){ |
| | | //ä¸åå¨çä¹ç®å 餿å |
| | | fIds.add(r.getPersonId());//å é¤å¤±è´¥çæ°æ®éå |
| | | } |
| | | }}*/ |
| | | }else{ |
| | | //æ è®°å 餿åçæ°æ®ï¼æµ·åº·å¯¹æ¥ç¶æä¸ºå·²åæ¥ï¼ï¼åæ¥å¤±è´¥çä»ä¸ºå¾
忥ï¼çä¸ä¸æ¬¡ç»§ç»å¤çï¼ç¥éå
¨é¨å é¤å®æ¯ï¼ |
| | | companyMapper.update(null,new UpdateWrapper<Company>().lambda() |
| | | .set(Company::getHkStatus,Constants.ONE) |
| | | .set(Company::getHkDate,date) |
| | | .in(Company::getId, id)); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private UserAddRequest getUserAddModel(Member c,String path) { |
| | | UserAddRequest model = new UserAddRequest(); |
| | | model.setOrgIndexCode(c.getCompanyHkId()); |
| | | model.setPersonId(HKConstants.RES_USER_INDEX+UUID.randomUUID().toString().replace("-", "")); |
| | | model.setGender(Constants.formatIntegerNum(c.getSex())+""); |
| | | model.setPersonName(c.getName()); |
| | | if(StringUtils.isNotBlank(c.getFaceImg())){ |
| | | model.setFaces(new ArrayList<>()); |
| | | UserAddFaceRequest face = new UserAddFaceRequest(); |
| | | String imageBase = ImageBase64Util.Image2Base64(path+c.getFaceImg()); |
| | | if(face.getFaceData() == null){ |
| | | //äººè¸æ°æ®ä¸æ£ç¡®ï¼ |
| | | return null; |
| | | } |
| | | model.getFaces().add(face); |
| | | |
| | | } |
| | | return model; |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | Retention retention = new Retention(); |
| | | retention.setIsdeleted(Constants.ZERO); |
| | | retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); |
| | | retention.setClasses(visits.getMemberClasses()); |
| | | retention.setClasses(visits.getClasses()); |
| | | retention.setCode(visits.getCode()); |
| | | retention.setIdcardNo(visits.getIdcardNo()); |
| | | retention.setIdcardDecode(visits.getIdcardDecode()); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.service.business.impl.hksync; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.erp.model.openapi.request.erp.UserFailRequest; |
| | | import com.doumee.core.haikang.model.HKConstants; |
| | | import com.doumee.core.haikang.model.param.BaseResponse; |
| | | import com.doumee.core.haikang.model.param.request.*; |
| | | import com.doumee.core.haikang.model.param.respose.*; |
| | | import com.doumee.core.haikang.service.HKService; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.ImageBase64Util; |
| | | import com.doumee.dao.business.CompanyMapper; |
| | | import com.doumee.dao.business.DeviceRoleMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.VisitsMapper; |
| | | import com.doumee.dao.business.join.VisitsJoinMapper; |
| | | import com.doumee.dao.business.model.Company; |
| | | import com.doumee.dao.business.model.DeviceRole; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.Visits; |
| | | import com.doumee.service.business.ERPSyncService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.UUID; |
| | | |
| | | /** |
| | | * 海康访客ä¸å¡Serviceå®ç° |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class HkSyncVisitServiceImpl extends HkSyncBaseServiceImpl { |
| | | @Autowired |
| | | private VisitsJoinMapper visitsMapper; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private DeviceRoleMapper deviceRoleMapper; |
| | | |
| | | /** |
| | | * åæ¥æµ·åº·ç»ç»ä¿¡æ¯,æ ¹æ®erp忥ç»ç»ç»æï¼å®æ¶æ£æ¥éè¦ä¸åå°æµ·åº·çç»ç»ä¿¡æ¯ |
| | | */ |
| | | @Override |
| | | public void syncVisitData(){ |
| | | if(Constants.DEALING_HK_VISIT){ |
| | | return ; |
| | | } |
| | | Constants.DEALING_HK_VISIT =true; |
| | | List<DeviceRole> roleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() |
| | | .eq(DeviceRole::getType, Constants.ONE)); |
| | | //æ è®°æ¯å¦èµ°å
ç»è®°é¢çº¦ |
| | | String applyType =systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.MDJ_VISIT_REQUIRED).getCode(); |
| | | String applyLwType =systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.MDJ_LW_REQUIRED).getCode(); |
| | | try { |
| | | //æ¥è¯¢ææéè¦åæ¥çæ°æ® |
| | | List<Visits> alllist = getVisitList(); |
| | | //æç
§ç¶çº§ç³è¯·åæ¹å¤çæ¯æ¬¡ç³è¯·æ°æ® |
| | | List<Visits> list = getParentList(alllist); |
| | | if(list ==null || list.size()==0){ |
| | | return; |
| | | } |
| | | Date date = new Date(); |
| | | for(Visits c : list) { |
| | | //å起海康é¢çº¦æ¥å£ï¼éè¦ç»è®°ï¼ï¼æ ¹æ®é¢çº¦è¿åæ¥å£å°è£
ç³è¯·è®°å½æ´æ°å段 |
| | | String type = Constants.equalsInteger(c.getType(),Constants.ONE)?applyType:applyLwType; |
| | | getUpdateModelByResponse(c,date,type,roleList); |
| | | visitsMapper.updateById(c); |
| | | } |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | }finally { |
| | | Constants.DEALING_HK_VISIT =false; |
| | | } |
| | | } |
| | | |
| | | private List<Visits> getParentList(List<Visits> alllist) { |
| | | if(alllist ==null || alllist.size()==0){ |
| | | return null; |
| | | } |
| | | List<Visits> list = new ArrayList<>(); |
| | | |
| | | for (Visits v : alllist){ |
| | | if(v.getParentId() == null){ |
| | | v.setVisitsList(getChildListByParentId(v.getId(),alllist)); |
| | | list.add(v); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | private List<Visits> getChildListByParentId(Integer id, List<Visits> alllist) { |
| | | |
| | | List<Visits> list = new ArrayList<>(); |
| | | |
| | | for (Visits v : alllist){ |
| | | if(Constants.equalsInteger(v.getParentId(),id)){ |
| | | list.add(v); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | /** |
| | | * æ ¹æ®é¢çº¦è¿åæ¥å£å°è£
ç³è¯·è®°å½æ´æ°å段 |
| | | * @param c |
| | | * @param date |
| | | * @param type 0éè¦ç»è®° 1å
ç»è®° |
| | | */ |
| | | private void getUpdateModelByResponse( Visits c,Date date,String type,List<DeviceRole> roleList ) { |
| | | String code = null; |
| | | String id = null; |
| | | //å起海康é¢çº¦æ¥å£ |
| | | if(StringUtils.equals(type,"0")){ |
| | | //ï¼éè¦ç»è®°ï¼ |
| | | BaseResponse<VisitAppointmentResponse> response = HKService.visitAppiontment(getHkRequestPara(c,roleList)); |
| | | }else{ |
| | | //å
ç»è®° |
| | | BaseResponse<VisitAppointmentMDJResponse> response = HKService.visitAppiontmentMDJ(getHkMDJRequestPara(c) ); |
| | | } |
| | | |
| | | if (code!= null && id!=null) { |
| | | //海康ä¸åæå |
| | | c.setHkId( id);//é¢çº¦æ è¯ |
| | | c.setStatus(Constants.VisitStatus.xfSuccess);//ä¸å海康æå |
| | | } else { |
| | | //海康ä¸åæå |
| | | c.setStatus(Constants.VisitStatus.xfFail);//ä¸å海康失败 |
| | | } |
| | | c.setHkStatus(Constants.ONE); |
| | | c.setHkDate(date); |
| | | } |
| | | |
| | | private VisitAppointmentMDJRequest getHkMDJRequestPara(Visits c) { |
| | | return null; |
| | | } |
| | | |
| | | private VisitAppointmentRequest getHkRequestPara(Visits c,List<DeviceRole> roleList ) { |
| | | VisitAppointmentRequest request = new VisitAppointmentRequest(); |
| | | request.setVisitStartTime(DateUtil.getISO8601Timestamp(c.getStarttime())); |
| | | request.setVisitEndTime(DateUtil.getISO8601Timestamp(c.getEndtime())); |
| | | request.setReceptionistId(c.getReceptMemberHkId());//被访人海康ç¼ç |
| | | request.setVisitPurpose(c.getReason()); |
| | | request.setVisitorPermissionSet(new VisitAppointmentPermissonRequest()); |
| | | //è·åæéç»éå |
| | | String[] roles = getHkRoles(c.getDoors(),roleList); |
| | | if(roles==null || roles.length ==0){ |
| | | //使ç¨é»è®¤è®¿å®¢æéç» |
| | | request.getVisitorPermissionSet().setDefaultPrivilegeGroupFlag(Constants.ONE+""); |
| | | }else{ |
| | | //æå®æææµ·åº·è®¿å®¢æéç»æ°æ® |
| | | request.getVisitorPermissionSet().setDefaultPrivilegeGroupFlag(Constants.ZERO+""); |
| | | request.getVisitorPermissionSet().setPrivilegeGroupIds(roles); |
| | | } |
| | | List<VisitAppointmentVistorRequest> infolist = new ArrayList<>(); |
| | | //ç³è¯·äºº |
| | | infolist.add(getRequestInfoByVisit(c)); |
| | | if(c.getVisitsList() != null){ |
| | | //é访人 |
| | | for(Visits v : c.getVisitsList()){ |
| | | infolist.add(getRequestInfoByVisit(v)); |
| | | } |
| | | } |
| | | request.setVisitorInfoList(infolist); |
| | | return request; |
| | | } |
| | | |
| | | private VisitAppointmentVistorRequest getRequestInfoByVisit(Visits c) { |
| | | VisitAppointmentVistorRequest info = new VisitAppointmentVistorRequest(); |
| | | info.setVisitorName(c.getName()); |
| | | info.setVisitorWorkUnit(c.getCompanyName()); |
| | | info.setPhoneNo(c.getPhone()); |
| | | |
| | | return info; |
| | | } |
| | | |
| | | private String[] getHkRoles(String doors, List<DeviceRole> roleList) { |
| | | if(StringUtils.isBlank(doors) || roleList.size()==0|| roleList.size()==0){ |
| | | return null; |
| | | } |
| | | String[] ids = doors.split(","); |
| | | List<String> roles = new ArrayList<>(); |
| | | for (String s : ids){ |
| | | for(DeviceRole r : roleList){ |
| | | if(StringUtils.isNotBlank(r.getHkId()) && StringUtils.equals(s,r.getId().toString())){ |
| | | roles.add(r.getHkId()); |
| | | } |
| | | } |
| | | } |
| | | return roles.toArray(new String[]{}); |
| | | } |
| | | |
| | | /** |
| | | * æ¥è¯¢ææéè¦åæ¥çæ°æ® |
| | | * @return |
| | | */ |
| | | private List<Visits> getVisitList() { |
| | | MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(Visits.class); |
| | | queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName) |
| | | .select("t1.hk_id as receptMemberHkId") |
| | | .leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); |
| | | queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.pass)//审æ¹éè¿ |
| | | .eq(Visits::getHkStatus,Constants.ZERO)//æªåæ¥å°æµ·åº· |
| | | .orderByAsc(Visits::getCreateDate); |
| | | List<Visits> list = visitsMapper.selectJoinList(Visits.class,queryWrapper); |
| | | return list; |
| | | } |
| | | |
| | | } |
| | |
| | | import com.doumee.dao.web.response.MemberVO; |
| | | import com.doumee.dao.web.response.WxAuthorizeVO; |
| | | import com.doumee.service.business.MemberService; |
| | | import com.doumee.service.business.VisitsService; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.checkerframework.checker.units.qual.A; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | |
| | | @Autowired |
| | | private MemberService memberService; |
| | | |
| | | @Autowired |
| | | private VisitsService visitsService; |
| | | |
| | | |
| | | @ApiOperation(value = "访客微信ææ", notes = "访客微信ææè·åopenId") |
| | | @GetMapping("/wxAuthorize") |