diff --git a/src/main/java/com/zhgd/config/LogPrintFilter.java b/src/main/java/com/zhgd/config/LogPrintFilter.java index 8f6070538..62bf0cc00 100644 --- a/src/main/java/com/zhgd/config/LogPrintFilter.java +++ b/src/main/java/com/zhgd/config/LogPrintFilter.java @@ -3,12 +3,19 @@ package com.zhgd.config; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.filter.Filter; import ch.qos.logback.core.spi.FilterReply; +import com.zhgd.xmgl.util.LogMdcUtil; + +import static com.zhgd.xmgl.util.LogMdcUtil.isAddTraceTrail; public class LogPrintFilter extends Filter { @Override public FilterReply decide(ILoggingEvent event) { - if (StdOutImplCustom.isPrint()) { + if (LogMdcUtil.isPrint()) { + boolean addTraceTrail = isAddTraceTrail(); + if (addTraceTrail) { + LogMdcUtil.setStackInfo(); + } return FilterReply.ACCEPT; } else { return FilterReply.DENY; diff --git a/src/main/java/com/zhgd/config/StdOutImplCustom.java b/src/main/java/com/zhgd/config/StdOutImplCustom.java index 71ba53101..3b6809921 100644 --- a/src/main/java/com/zhgd/config/StdOutImplCustom.java +++ b/src/main/java/com/zhgd/config/StdOutImplCustom.java @@ -1,15 +1,7 @@ package com.zhgd.config; -import com.WisdomSiteApplication; -import com.zhgd.xmgl.config.TaskAspect; -import com.zhgd.xmgl.constant.Cts; -import com.zhgd.xmgl.util.ThreadLocalUtil; -import lombok.extern.slf4j.Slf4j; +import com.zhgd.xmgl.util.LogMdcUtil; import org.apache.ibatis.logging.Log; -import org.springframework.boot.CommandLineRunner; -import org.springframework.stereotype.Component; - -import java.util.Objects; public class StdOutImplCustom implements Log { @@ -17,21 +9,14 @@ public class StdOutImplCustom implements Log { // Do Nothing } - public static Boolean isPrint() { - if (!Objects.equals(TaskAspect.onlyPrintInterface, 1)) { - return true; - } - return WisdomSiteApplication.runSucess && Objects.equals(ThreadLocalUtil.getByKey(Cts.TL_IS_FROM_WEB, Boolean.class), true); - } - @Override public boolean isDebugEnabled() { - return isPrint(); + return LogMdcUtil.isPrint(); } @Override public boolean isTraceEnabled() { - return isPrint(); + return LogMdcUtil.isPrint(); } @Override @@ -47,14 +32,14 @@ public class StdOutImplCustom implements Log { @Override public void debug(String s) { - if (isPrint()) { + if (LogMdcUtil.isPrint()) { System.out.println(s); } } @Override public void trace(String s) { - if (isPrint()) { + if (LogMdcUtil.isPrint()) { System.out.println(s); } } diff --git a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java index 9a6791a0c..72f79b66f 100644 --- a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java +++ b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import com.zhgd.annotation.DataScope; import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.EnvironmentUtil; +import com.zhgd.xmgl.util.LogMdcUtil; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import net.sf.jsqlparser.schema.Table; @@ -69,8 +70,8 @@ public class DataScopeInterceptor extends JsqlParserSupport implements InnerInte StringBuilder sb = new StringBuilder(); StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); for (StackTraceElement e : stackTrace) { - if (e.getClassName().startsWith("com.zhgd") && notInPackage(e.getClassName()) && !e.getClassName().contains("$$")) { - sb.append(StrUtil.subAfter(e.getClassName(),".",true)); + if (e.getClassName().startsWith("com.zhgd") && LogMdcUtil.notInPackage(e.getClassName()) && !e.getClassName().contains("$$")) { + sb.append(StrUtil.subAfter(e.getClassName(), ".", true)); sb.append("."); sb.append(e.getMethodName()); sb.append("("); @@ -85,10 +86,6 @@ public class DataScopeInterceptor extends JsqlParserSupport implements InnerInte return sb.toString(); } - private static boolean notInPackage(String className) { - return !className.startsWith("com.zhgd.mybatis") && !className.startsWith("com.zhgd.xmgl.config") && !className.startsWith("com.zhgd.xmgl.security"); - } - private static String getCallPosition() { StringBuilder sb = new StringBuilder(); StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java index 9a8dc3be5..3fa8a9bd8 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncHikvision.java @@ -160,12 +160,14 @@ public class AsyncHikvision { } @Async("carInfoExecutor") - public void addCarInfoForHikvisionAsyc(CarInfo carInfo) { + public void addCarInfoForHikvisionAsyc(CarInfo carInfo, Boolean existIsc) { try { hikvisionCall.saveCarInfoFromHikvision(carInfo); } catch (Exception e) { log.error("海康:", e); sendNoticeForCar(carInfo, e, "添加"); + } finally { + xzHikvisionCompareDataService.compareRetrySuccess(existIsc, carInfo); } } @@ -196,22 +198,26 @@ public class AsyncHikvision { } @Async("carInfoExecutor") - public void editCarInfoForHikvisionAsync(CarInfo carInfo, CarInfo old) { + public void editCarInfoForHikvisionAsync(CarInfo carInfo, CarInfo old, Boolean existIsc) { try { hikvisionCall.editCarInfoForHikvision(carInfo, old); } catch (Exception e) { log.error("海康:", e); sendNoticeForCar(carInfo, e, "编辑"); + } finally { + xzHikvisionCompareDataService.compareRetrySuccess(existIsc, carInfo); } } @Async("carInfoExecutor") - public void deleteCarInfoForHikvisionAsync(CarInfo carInfo, boolean isSetBlack) { + public void deleteCarInfoForHikvisionAsync(CarInfo carInfo, boolean isSetBlack, Boolean existIsc) { try { hikvisionCall.deleteCarInfoForHikvision(carInfo, isSetBlack); } catch (Exception e) { log.error("海康:", e); sendNoticeForCar(carInfo, e, "删除"); + } finally { + xzHikvisionCompareDataService.compareRetrySuccess(existIsc, carInfo); } } diff --git a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java index 04ec0c984..ed76b932a 100644 --- a/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java +++ b/src/main/java/com/zhgd/xmgl/call/HikvisionCall.java @@ -1127,6 +1127,9 @@ public class HikvisionCall { success = true; msg = "同步成功,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard(); title += "成功"; + } else if (Objects.equals(msg1, "Person Not Exists")) { + msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:人员不存在"; + title += "失败"; } else { msg = "同步失败,人员名称:" + workerInfo.getWorkerName() + ",身份证号:" + workerInfo.getIdCard() + "。失败原因:下发异常"; title += "失败"; @@ -1421,7 +1424,7 @@ public class HikvisionCall { jo.put("searchKey", carInfo.getCarNumber()); jo.put("pageNo", 1); jo.put("pageSize", 1); - JSONObject joRs = queryAlarmCarPage(project, jo); + JSONObject joRs = HikvisionUtil.getBlackCarList(project, jo); if (HikvisionUtil.isSuccess(joRs)) { JSONObject dataJo = HikvisionUtil.getJSONObjectData(joRs); JSONArray listJa = dataJo.getJSONArray("list"); @@ -1497,22 +1500,6 @@ public class HikvisionCall { return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())); } - /** - * 查询布防车辆 - * - * @param project - * @return - */ - public JSONObject queryAlarmCarPage(Project project, JSONObject param) throws Exception { - if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { - return null; - } - final String ARTEMIS_PATH = "/artemis"; - final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/page"; - String host = "https://" + project.getArtemisConfigHost(); - return JSON.parseObject(HikvisionUtil.doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())); - } - /** * 保存固定车 * @@ -1872,7 +1859,7 @@ public class HikvisionCall { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } - Pair existAndIndexCode = existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, enterpriseInfo.getId()); + Pair existAndIndexCode = existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, String.valueOf(enterpriseInfo.getId())); HikvisionOrganization hikvisionOrganization = getHikvisionOrganization(enterpriseInfo, existAndIndexCode.getRight()); if (existAndIndexCode.getLeft()) { editOrgFromHttp(project, hikvisionOrganization); @@ -1881,10 +1868,10 @@ public class HikvisionCall { } } - private Pair existAndGetEnterpriseOrgIndexCodeByEnterpriseId(Project project, Long enterpriseId) throws Exception { + private Pair existAndGetEnterpriseOrgIndexCodeByEnterpriseId(Project project, String enterpriseId) throws Exception { EnterpriseInfo enterpriseInfo = BeanUtil.toBean(enterpriseInfoService.getEnterpriseInfoById(new MapBuilder() .put(Cts.PROJECT_SN, project.getProjectSn()).put(Cts.ENTERPRISE_ID, enterpriseId).build()), EnterpriseInfo.class); - JSONArray orgList = getOrgList(project, StrUtil.join(",", enterpriseInfo.getId(), enterpriseInfo.getProjectEnterprise().getId()), project.getProjectSn()); + JSONArray orgList = getOrgList(project, StrUtil.join(",", enterpriseId, enterpriseInfo != null ? enterpriseInfo.getProjectEnterprise().getId() : ""), project.getProjectSn()); String index = null; if (CollUtil.isEmpty(orgList)) { index = String.valueOf(enterpriseInfo.getProjectEnterprise().getId()); @@ -1906,7 +1893,7 @@ public class HikvisionCall { if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { return; } - Pair pair = existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, Long.valueOf(enterpriseId)); + Pair pair = existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, String.valueOf(enterpriseId)); String rs = HikvisionUtil.deleteOrgByIndexCodes(project, Arrays.asList(pair.getRight())); sendNoticeForOrg("删除组织到海康isc", rs, enterpriseName); } @@ -1930,7 +1917,7 @@ public class HikvisionCall { hikvisionOrganization.setClientId(null); hikvisionOrganization.setOrgIndexCode(String.valueOf(teamInfo.getId())); hikvisionOrganization.setOrgName(teamInfo.getTeamName()); - hikvisionOrganization.setParentIndexCode(existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, teamInfo.getEnterpriseId()).getRight()); + hikvisionOrganization.setParentIndexCode(existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, String.valueOf(teamInfo.getEnterpriseId())).getRight()); return hikvisionOrganization; } @@ -2003,7 +1990,7 @@ public class HikvisionCall { hikvisionOrganization.setClientId(null); hikvisionOrganization.setOrgIndexCode(String.valueOf(departmentInfo.getId())); hikvisionOrganization.setOrgName(departmentInfo.getDepartmentName()); - hikvisionOrganization.setParentIndexCode(existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, departmentInfo.getEnterpriseId()).getRight()); + hikvisionOrganization.setParentIndexCode(existAndGetEnterpriseOrgIndexCodeByEnterpriseId(project, String.valueOf(departmentInfo.getEnterpriseId())).getRight()); return hikvisionOrganization; } @@ -2193,7 +2180,11 @@ public class HikvisionCall { public void bindOrNotCarCategory(Project project, Integer operation, String categoryCode, CarInfo carInfo) throws Exception { String carId = this.getRemoteCarIdByCarNumber(carInfo.getCarNumber(), project); JSONObject param = new JSONObject(); - param.put("vehicleIds", carId == null ? carInfo.getId() : carId); + Object vehicleIds = carId == null ? carInfo.getId() : carId; + if (vehicleIds == null) { + return; + } + param.put("vehicleIds", vehicleIds); param.put("operation", operation); param.put("categoryCode", categoryCode); JSONObject jo = HikvisionUtil.bindCarCategory(project, param); diff --git a/src/main/java/com/zhgd/xmgl/config/MdcThreadPoolTaskExecutor.java b/src/main/java/com/zhgd/xmgl/config/MdcThreadPoolTaskExecutor.java index bc53e3e48..097fc40c7 100644 --- a/src/main/java/com/zhgd/xmgl/config/MdcThreadPoolTaskExecutor.java +++ b/src/main/java/com/zhgd/xmgl/config/MdcThreadPoolTaskExecutor.java @@ -1,7 +1,7 @@ package com.zhgd.xmgl.config; import com.alibaba.fastjson.JSONObject; -import com.zhgd.xmgl.util.RequestIdUtil; +import com.zhgd.xmgl.util.LogMdcUtil; import com.zhgd.xmgl.util.ThreadLocalUtil; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC; @@ -26,14 +26,14 @@ public class MdcThreadPoolTaskExecutor extends ThreadPoolTaskExecutor { if (null != context) { MDC.setContextMap(context); //主线程MDC赋予子线程 } else { - RequestIdUtil.setRequestId(); //主线程没有MDC就自己生成一个 + LogMdcUtil.setRequestId(); //主线程没有MDC就自己生成一个 } ThreadLocalUtil.set(tlJo); try { task.run(); } finally { try { - RequestIdUtil.clear(); + LogMdcUtil.clear(); ThreadLocalUtil.remove(); } catch (Exception e) { log.warn("MDC clear exception:{}", e.getMessage()); @@ -54,14 +54,14 @@ public class MdcThreadPoolTaskExecutor extends ThreadPoolTaskExecutor { if (null != context) { MDC.setContextMap(context); //主线程MDC赋予子线程 } else { - RequestIdUtil.setRequestId(); //主线程没有MDC就自己生成一个 + LogMdcUtil.setRequestId(); //主线程没有MDC就自己生成一个 } ThreadLocalUtil.set(tlJo); try { return task.call(); } finally { try { - RequestIdUtil.clear(); + LogMdcUtil.clear(); ThreadLocalUtil.remove(); } catch (Exception e) { log.warn("MDC clear exception:{}", e.getMessage()); diff --git a/src/main/java/com/zhgd/xmgl/config/TaskAspect.java b/src/main/java/com/zhgd/xmgl/config/TaskAspect.java index 2001aba6b..746b4a797 100644 --- a/src/main/java/com/zhgd/xmgl/config/TaskAspect.java +++ b/src/main/java/com/zhgd/xmgl/config/TaskAspect.java @@ -1,8 +1,7 @@ package com.zhgd.xmgl.config; -import com.zhgd.config.StdOutImplCustom; import com.zhgd.xmgl.constant.Cts; -import com.zhgd.xmgl.util.RequestIdUtil; +import com.zhgd.xmgl.util.LogMdcUtil; import com.zhgd.xmgl.util.ThreadLocalUtil; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; @@ -45,7 +44,7 @@ public class TaskAspect { try { if (null == context) { - RequestIdUtil.setRequestId("-t"); //主线程没有MDC就自己生成一个 + LogMdcUtil.setRequestId("-t"); //主线程没有MDC就自己生成一个 ThreadLocalUtil.addInKey(Cts.TL_IS_FROM_TASK, true); log.info("task方法开始:{}", methodName); } @@ -68,7 +67,7 @@ public class TaskAspect { Object proceed = jointPoint.proceed(); } } catch (Exception e) { - if (StdOutImplCustom.isPrint()) { + if (LogMdcUtil.isPrint()) { throw e; } else { log.error("", e); @@ -76,7 +75,7 @@ public class TaskAspect { } finally { if (null == context) { log.info("task方法结束:{}", methodName); - RequestIdUtil.clear(); + LogMdcUtil.clear(); ThreadLocalUtil.remove(); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java b/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java index e45737f09..ee172e62a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java +++ b/src/main/java/com/zhgd/xmgl/modules/car/service/ICarInfoService.java @@ -6,7 +6,6 @@ import com.zhgd.xmgl.async.AsyncHikvision; import com.zhgd.xmgl.modules.car.entity.CarInfo; import com.zhgd.xmgl.modules.car.entity.vo.CountCarModuleTypeVo; import com.zhgd.xmgl.modules.project.entity.Project; -import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java index 3b906810a..6c00d1e8d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/car/service/impl/CarInfoServiceImpl.java @@ -25,10 +25,12 @@ import com.zhgd.xmgl.modules.car.mapper.*; import com.zhgd.xmgl.modules.car.service.ICarInfoService; import com.zhgd.xmgl.modules.project.entity.Project; import com.zhgd.xmgl.modules.project.mapper.ProjectMapper; +import com.zhgd.xmgl.modules.project.service.impl.ProjectServiceImpl; import com.zhgd.xmgl.modules.worker.mapper.WorkerInfoMapper; import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl; import com.zhgd.xmgl.modules.xz.entity.XzHikvisionSync; import com.zhgd.xmgl.modules.xz.mapper.XzHikvisionSyncMapper; +import com.zhgd.xmgl.modules.xz.service.impl.XzHikvisionCompareDataServiceImpl; import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.PathUtil; @@ -63,6 +65,12 @@ public class CarInfoServiceImpl extends ServiceImpl impl ProjectCarCameraConfigServiceImpl projectCarCameraConfigService; @Lazy @Autowired + XzHikvisionCompareDataServiceImpl xzHikvisionCompareDataService; + @Lazy + @Autowired + ProjectServiceImpl projectService; + @Lazy + @Autowired private XzHikvisionSyncMapper xzHikvisionSyncMapper; @Autowired private EnterpriseInfoServiceImpl enterpriseInfoService; @@ -367,7 +375,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl } else if (Objects.equals(carInfo.getCarModuleType(), 2) || Objects.equals(carInfo.getCarModuleType(), 3)) { xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(1).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); } - asyncHikvision.addCarInfoForHikvisionAsyc(carInfo); + asyncHikvision.addCarInfoForHikvisionAsyc(carInfo, null); } } @@ -385,7 +393,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(6).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); } xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(isSetBlack ? 1 : 3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); - asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, isSetBlack); + asyncHikvision.deleteCarInfoForHikvisionAsync(carInfo, isSetBlack, null); } @Override @@ -407,7 +415,7 @@ public class CarInfoServiceImpl extends ServiceImpl impl if (old.getIsBlack() == 1) { xzHikvisionSyncMapper.insert(new XzHikvisionSync().setProjectSn(carInfo.getProjectSn()).setType(7).setOperate(3).setWhoId(carInfo.getId()).setBigType(2).setCreateDate(getSyncTimeWithInitIfAbsent(2, carInfo.getId()))); } - asyncHikvision.editCarInfoForHikvisionAsync(carInfo, old); + asyncHikvision.editCarInfoForHikvisionAsync(carInfo, old, null); } } diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionCompareDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionCompareDataServiceImpl.java index 056ab67fc..886504935 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionCompareDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzHikvisionCompareDataServiceImpl.java @@ -330,26 +330,28 @@ public class XzHikvisionCompareDataServiceImpl extends ServiceImpl carInfoList = carInfoService.selectCarList(new MapBuilder() + .put(Cts.PROJECT_SN, project.getProjectSn()) + .put("isBlack", 1) + .build()); + compareAndAddData(project, listJa, carInfoList); + } + private void compareAndAddData(Project project, JSONArray listJa, List carInfoList) { if (CollUtil.isEmpty(listJa)) { for (CarInfo carInfo : carInfoList) { diff --git a/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java b/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java index 44b621576..02045a3b9 100644 --- a/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/HikvisionUtil.java @@ -399,4 +399,20 @@ public class HikvisionUtil { String rs = doPost(host, path, jo.toJSONString(), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret()); return rs; } + + /** + * 查询黑名单(布防)车辆 + * + * @param project + * @return + */ + public static JSONObject getBlackCarList(Project project, JSONObject param) throws Exception { + if (project == null || !Objects.equals(project.getSyncHikvision(), 1)) { + return null; + } + final String ARTEMIS_PATH = "/artemis"; + final String path = ARTEMIS_PATH + "/api/pms/v1/alarmCar/page"; + String host = "https://" + project.getArtemisConfigHost(); + return JSON.parseObject(doPost(host, path, JSON.toJSONString(param), null, project.getArtemisConfigAppKey(), project.getArtemisConfigAppSecret())); + } } diff --git a/src/main/java/com/zhgd/xmgl/util/LogMdcUtil.java b/src/main/java/com/zhgd/xmgl/util/LogMdcUtil.java new file mode 100644 index 000000000..81e5f1fb9 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/util/LogMdcUtil.java @@ -0,0 +1,85 @@ +package com.zhgd.xmgl.util; + +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import com.WisdomSiteApplication; +import com.zhgd.xmgl.config.TaskAspect; +import com.zhgd.xmgl.constant.Cts; +import org.slf4j.MDC; + +import java.util.Objects; + +public class LogMdcUtil { + public static final String REQUEST_ID = "requestId"; + public static final String STACK_INFO = "stackInfo"; + + public static void setRequestId() { + MDC.put(REQUEST_ID, getRandomStr()); + } + + public static void setRequestId(String s) { + MDC.put(REQUEST_ID, getRandomStr() + s); + } + + public static String getRequestId() { + return MDC.get(REQUEST_ID); + } + + private static String getRandomStr() { + return IdUtil.fastSimpleUUID().substring(0, 5); + } + + public static void setStackInfo() { + MDC.put(STACK_INFO, getCallPositionForDev()); + } + + public static void clear() { + MDC.clear(); + } + + /** + * 是否打印日志 + * + * @return + */ + public static Boolean isPrint() { + if (!Objects.equals(TaskAspect.onlyPrintInterface, 1)) { + return true; + } + return WisdomSiteApplication.runSucess && Objects.equals(ThreadLocalUtil.getByKey(Cts.TL_IS_FROM_WEB, Boolean.class), true); + } + + /** + * 是否添加堆栈到日志尾巴 + * + * @return + */ + public static boolean isAddTraceTrail() { + return Objects.equals(TaskAspect.onlyPrintInterface, 1); + } + + private static String getCallPositionForDev() { + StringBuilder sb = new StringBuilder(); + sb.append("^^^********^^^"); + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + for (StackTraceElement e : stackTrace) { + if (e.getClassName().startsWith("com.zhgd") && notInPackage(e.getClassName()) && !e.getClassName().contains("$$")) { + sb.append(StrUtil.subAfter(e.getClassName(), ".", true)); + sb.append("."); + sb.append(e.getMethodName()); + sb.append("("); + sb.append(StrUtil.subAfter(e.getClassName(), ".", true)); + sb.append(".java:"); + sb.append(e.getLineNumber()); + sb.append(")"); + sb.append(" > "); + } + } + return sb.toString(); + } + + public static boolean notInPackage(String className) { + return !className.startsWith("com.zhgd.mybatis") && !className.startsWith("com.zhgd.xmgl.config") && !className.startsWith("com.zhgd.xmgl.security") + && !className.contains("LogMdcUtil") && !className.contains("LogPrintFilter"); + } +} diff --git a/src/main/java/com/zhgd/xmgl/util/RequestIdUtil.java b/src/main/java/com/zhgd/xmgl/util/RequestIdUtil.java deleted file mode 100644 index 7a39b7c81..000000000 --- a/src/main/java/com/zhgd/xmgl/util/RequestIdUtil.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.zhgd.xmgl.util; - -import cn.hutool.core.util.IdUtil; -import org.slf4j.MDC; - -public class RequestIdUtil { - public static final String REQUEST_ID = "requestId"; - - public static void setRequestId() { - MDC.put(REQUEST_ID, getRandomStr()); - } - - public static String getRequestId() { - return MDC.get(REQUEST_ID); - } - - public static void setRequestId(String s) { - MDC.put(REQUEST_ID, getRandomStr() + s); - } - - private static String getRandomStr() { - return IdUtil.fastSimpleUUID().substring(0, 5); - } - - public static void clear() { - MDC.clear(); - } - -} diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index e4b51e799..abcbd698d 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -6,7 +6,9 @@ - %d{yyyy-MM-dd HH:mm:ss} [%highlight(%X{requestId})][%thread] %highlight(%-5level) %cyan(%logger{50}).%method:%L - %highlight(%msg) %n + %d{yyyy-MM-dd HH:mm:ss} [%highlight(%X{requestId})][%thread] %highlight(%-5level) + %cyan(%logger{50}).%method:%L - %highlight(%msg) %X{stackInfo} %n +