jiangping
2024-12-10 3bc8c584155ce04d1ba04496a4d94d82174df488
最新版本541200007
已添加1个文件
已修改10个文件
130 ■■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -92,6 +92,12 @@
    @ApiModelProperty(value = "微信openid", example = "1", hidden = true)
    private String openid;
    @ApiModelProperty(value = "微信openid推送海康状态 0待推送 1已推送 2绑定失败", example = "1", hidden = true)
    private Integer openidHkStatus;
    @ApiModelProperty(value = "微信openid推送海康备注 ", example = "1", hidden = true)
    private String openidHkInfo;
    @ApiModelProperty(value = "微信openid推送海康时间", example = "1", hidden = true)
    private Date openidHkDate;
    //2024å¹´12月6日11:00:30 ç±»åž‹ 0司机人员 1普通访客  2内部人员
    @ApiModelProperty(value = "类型 0平台用户 1访客", example = "0")
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -187,9 +187,16 @@
            //如果openId不为空,绑定该用户openid
            systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
                    .set(SystemUser::getOpenid,null)
                    .set(SystemUser::getOpenidHkDate,null)
                    .set(SystemUser::getOpenidHkInfo,null)
                    .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
                    .eq(SystemUser::getOpenid,openid)
                    .eq(SystemUser::getType,user.getType()));
            systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
                    .set(SystemUser::getOpenid,openid)
                    .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
                    .set(SystemUser::getOpenidHkDate,null)
                    .set(SystemUser::getOpenidHkInfo,null)
                    .eq(SystemUser::getId,user.getId()));
        }
    }
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -23,6 +23,7 @@
import com.doumee.dao.business.model.Device;
import com.doumee.service.business.DeviceService;
import com.doumee.service.business.impl.hksync.*;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -61,6 +62,8 @@
    private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService;
    @Autowired
    private HkSyncPushServiceImpl hkSyncPushService;
    @Autowired
    private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserToHKService;
    @Autowired
    private HkSyncNoticeServiceImpl hkSyncNoticeService;
    @Autowired
@@ -111,6 +114,13 @@
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】保持海康用户绑定openid")
    @PostMapping("/saveHkUserOpenid")
    public ApiResponse syncHkUserOpenid( @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        String result     = hkSyncOrgUserToHKService.syncHkUserOpenid(this.getLoginUser(token).getId());
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】获取组件授权登录地址接口")
    @PostMapping("/getServiceUrl")
    public ApiResponse getServiceUrl(@RequestBody HKGetServiceLoginUrlRequest param,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -166,7 +166,8 @@
        String[] findAlarmBaseDataStatistic= new String[]{"/api/v1/alarm/findAlarmBaseDataStatistic","消防看板-4报警信息统计"};//消防看板-4报警信息统计
        String[] findHomeAlarmInfoPage= new String[]{"/api/v1/alarm/findHomeAlarmInfoPage","安防看板-- åˆ†é¡µæŸ¥è¯¢æœªå¤„理报警信息6"};//安防看板-- åˆ†é¡µæŸ¥è¯¢æœªå¤„理报警信息6
        String[] minitorDataSearchV1= new String[]{"/api/fem/v1/minitor/data/search","分页查询设备监测历史数据"};//分页查询设备监测历史数据
        String[] minitorDataSearch= new String[]{"/api/fpms/v2/minitor/data/search"};//分页查询设备监测历史数据
        String[] minitorDataSearch= new String[]{"/api/fpms/v2/minitor/data/search","分页查询设备监测历史数据"};//分页查询设备监测历史数据
        String[] userOpenidSave= new String[]{"/api/v1/oa/userOpenId/saveV2","保存用户及openId绑定信息微信公众号"};//保存用户及openId绑定信息微信公众号
    }
    /**
     * é™„录A.55消防设备类型
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKTools.java
@@ -833,7 +833,7 @@
        return startDoPostStringArtemis(HKConstants.InterfacePath.findAlarmBaseDataStatistic,body);
    }
    /**
     *安防看板-- åˆ†é¡µæŸ¥è¯¢æœªå¤„理报警信息6
     *安防看板-- b
     * @param body
     * @return
     */
@@ -841,6 +841,16 @@
        return startDoPostStringArtemis(HKConstants.InterfacePath.findHomeAlarmInfoPage,body);
    }
    /**
     *保存用户及openId绑定信息微信公众号
     * @param body
     * @return
     */
    public static String userOpenidSave(String body) {
        Map<String,String> header = new HashMap<>();
        header.put("userId","admin");
        return startDoPostStringArtemis(HKConstants.InterfacePath.userOpenidSave,null,header,body);
    }
    /**
     *分页查询设备监测历史数据
     * @param body
     * @return
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/request/UserOpenidSaveRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.doumee.core.haikang.model.param.request;
import com.doumee.core.haikang.model.param.BaseListPageRequest;
import lombok.Data;
@Data
public class UserOpenidSaveRequest extends BaseListPageRequest {
 private String openId    ;//String    false    å¾®ä¿¡openId
 private String userName    ;//String    false    å¹³å°ç”¨æˆ·å
 private String appKey    ;//String    false    appKey
 private String oaId;//    String    false    atwl
 private String platformName    ;//String    false    å®‰æ³°ç‰©æµå›­åŒº
 private String operateTime    ;//String    false    2024-12-09T15:49:04-07:00
}
server/visits/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -1569,6 +1569,24 @@
        return  null;
    }
    /**
     *保存用户及openId绑定信息微信公众号
     * @return
     */
    public  static  BaseResponse<Integer>   userOpenidSave(UserOpenidSaveRequest param){
        log.info("【海康保存用户及openId绑定信息微信公众号】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.userOpenidSave(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<Integer>>(){};
            BaseResponse<Integer>   result = JSONObject.parseObject(res, typeReference.getType());
            logResult(result,"海康保存用户及openId绑定信息微信公众号");
            return  result;
        }catch (Exception e){
            log.error("【海康保存用户及openId绑定信息微信公众号】================失败====:\n"+ e.getMessage());
        }
        return  null;
    }
    /**
     *分页查询设备监测历史数据
     * @return
     */
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/ext/HkSyncService.java
@@ -100,4 +100,6 @@
    String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response);
    String dealPlatformCarsEvent(EventPlatformCarsRequest param, HttpServletResponse response);
    String syncHkUserOpenid(Integer id);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -153,6 +153,10 @@
            }else{
                throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,员工信息同步安防平台失败,请稍后重试!");
            }
        }catch (BusinessException e){
            //如果发生异常,删除已经创建的人员信息
            deleteHkUserBiz(new String[]{insert.getHkId()});
            throw  e;
        }catch (Exception e){
            //如果发生异常,删除已经创建的人员信息
            e.printStackTrace();
@@ -243,7 +247,7 @@
     * @return
     */
    private boolean dealHkUserBiz(Member insert) {
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
        UserAddRequest hkAddRequest = HkSyncOrgUserToHKServiceImpl.getUserAddModel(insert,path,Constants.ZERO);
        if(hkAddRequest == null){
@@ -266,7 +270,7 @@
        return false;
    }
    private boolean dealHkUserForUpdateBiz(Member update ) {
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
        UserAddRequest hkAddRequest = HkSyncOrgUserToHKServiceImpl.getUserAddModel(update,path,Constants.ONE);
@@ -418,7 +422,6 @@
                        .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);
@@ -970,7 +973,7 @@
        wrapper.lambda().ne(Member::getRemark,"人脸已同步最新");
        List<Member> list =memberMapper.selectList(wrapper);
       if(list!=null){
           String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
           String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                   +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
           for(Member m : list){
             String faceId=  HkSyncOrgUserToHKServiceImpl.dealMemberFace(m,path);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -101,6 +101,10 @@
        return  null;
    }
    @Override
    public  String syncHkUserOpenid(Integer id){
        return  null;
    }
    @Override
    public String   dealAcsEvent(EventAcsRequest param, HttpServletResponse response){
        return  null;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/ferp/HkSyncOrgUserToHKServiceImpl.java
@@ -19,6 +19,8 @@
import com.doumee.dao.business.dao.CompanyMapper;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.ext.ERPSyncService;
import com.doumee.service.business.impl.hksync.HkSyncBaseServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl;
@@ -26,6 +28,7 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -62,9 +65,47 @@
    @Autowired
    private ERPSyncService erpSyncService;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private DataSyncConfig dataSyncConfig;
    /**
     *  ç»‘定海康用户openId
     *  {
     * "openId" : "ovmre6R7w-vEQCHg52-UN2mV_abI",
     * "userName" : "13856591439",
     * "appKey" : "wx173e6caf5abc718a",
     * "oaId" : "atwl",
     * "platformName" : "安泰物流园区",
     *
     * }
     */
    @Override
    public    String syncHkUserOpenid(Integer id){
        SystemUser user = systemUserMapper.selectById(id);
        if(user == null ||StringUtils.isBlank(user.getOpenid()) ||Constants.equalsInteger(user.getOpenidHkStatus(),Constants.ONE)){
            return null;
        }
        UserOpenidSaveRequest request = new UserOpenidSaveRequest();
        request.setUserName(user.getUsername());
        request.setAppKey(systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode());
        request.setOaId("atwl");
        request.setOpenId(user.getOpenid());
        request.setPlatformName("安泰物流园区");
        BaseResponse<Integer>  response = HKService.userOpenidSave(request);
        if(response!=null &&response.getCode().equals(HKConstants.RESPONSE_SUCCEE) && Constants.equalsInteger(response.getData(),Constants.ONE)){
            user.setOpenidHkStatus(Constants.ONE);
            user.setOpenidHkInfo("绑定成功");
        }else{
            user.setOpenidHkStatus(Constants.TWO);
            user.setOpenidHkInfo(response!=null?StringUtils.defaultString(response.getMsg(),"【未知失败原因】"):"绑定失败");
        }
        user.setOpenidHkDate(new Date());
        systemUserMapper.updateById(user);
        return  "成功";
    }
    /**
     * åŒæ­¥æµ·åº·ç»„织信息,根据erp同步组织结果,定时检查需要下发到海康的组织信息
@@ -285,7 +326,7 @@
                return;
            }
            Date date = new Date();
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_LOCAL_RESOURCE_PATH).getCode()
                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
            for(Member c : list){
                dealMemberInfoBiz(c,date,path) ;