diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java index 24a077516..73408d064 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java @@ -1,5 +1,6 @@ package com.jsowell.common.util; +import com.alibaba.fastjson2.JSONObject; import com.google.common.collect.Lists; import com.jsowell.common.constant.HttpStatus; import com.jsowell.common.core.domain.entity.SysDept; @@ -8,6 +9,7 @@ import com.jsowell.common.core.domain.entity.SysUser; import com.jsowell.common.core.domain.model.LoginUser; import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.exception.ServiceException; +import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -19,6 +21,7 @@ import java.util.List; * * @author jsowell */ +@Slf4j public class SecurityUtils { /** * 用户ID @@ -120,8 +123,10 @@ public class SecurityUtils { // 登录用户所属部门(运营商或站点 根据父级id判断) SysDept dept = user.getDept(); if (dept == null) { + log.info("用户id:{}, 获取不到所属部门信息", user.getUserId()); return null; } + log.info("用户id:{}, 所属部门信息:{}", user.getUserId(), JSONObject.toJSONString(dept)); // 登录用户角色 List roles = user.getRoles(); Long parentId = dept.getParentId(); diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java index 674ea1a49..448e6d4c3 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/LoginRequestHandler.java @@ -138,49 +138,47 @@ public class LoginRequestHandler extends AbstractHandler{ if (pileInfoVO != null) { flag = Constants.zeroByteArray; - // 登录成功,保存桩号和channel的关系 PileChannelEntity.put(pileSn, channel); - // 更改桩和该桩下的枪口状态分别为 在线、空闲 公共方法修改状态 pileBasicInfoService.updateStatus(BytesUtil.bcd2Str(ykcDataProtocol.getFrameType()), pileSn, null, null, null); - } - - // 充电桩使用的sim卡,把信息存库 - if (StringUtils.equals("00", internetConnection)) { - try { - pileBasicInfoService.updatePileSimInfo(pileSn, iccid); - } catch (Exception e) { - log.error("更新充电桩sim卡信息失败", e); + // 充电桩使用的sim卡,把信息存库 + if (StringUtils.equals("00", internetConnection)) { + try { + pileBasicInfoService.updatePileSimInfo(pileSn, iccid); + } catch (Exception e) { + log.error("更新充电桩sim卡信息失败", e); + } } + + CompletableFuture.runAsync(() -> { + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 对时 + ProofreadTimeCommand command = ProofreadTimeCommand.builder().pileSn(pileSn).build(); + ykcPushCommandService.pushProofreadTimeCommand(command); + }); + + // log.info("下面进行下发二维码 pileSn:{}, thread:{}", pileSn, Thread.currentThread().getName()); + CompletableFuture.runAsync(() -> { + try { + Thread.sleep(600); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 下发二维码 + IssueQRCodeCommand issueQRCodeCommand = IssueQRCodeCommand.builder().pileSn(pileSn).build(); + ykcPushCommandService.pushIssueQRCodeCommand(issueQRCodeCommand); + }); } - // 保存报文 + // 保存报文 TODO 没有登录认证通过还要不要保存报文? String jsonMsg = JSONObject.toJSONString(loginRequestData); pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString()); - CompletableFuture.runAsync(() -> { - try { - Thread.sleep(200); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // 对时 - ProofreadTimeCommand command = ProofreadTimeCommand.builder().pileSn(pileSn).build(); - ykcPushCommandService.pushProofreadTimeCommand(command); - }); - // log.info("下面进行下发二维码 pileSn:{}, thread:{}", pileSn, Thread.currentThread().getName()); - CompletableFuture.runAsync(() -> { - try { - Thread.sleep(600); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // 下发二维码 - IssueQRCodeCommand issueQRCodeCommand = IssueQRCodeCommand.builder().pileSn(pileSn).build(); - ykcPushCommandService.pushIssueQRCodeCommand(issueQRCodeCommand); - }); - // 消息体 byte[] messageBody = Bytes.concat(pileSnByte, flag); return getResult(ykcDataProtocol, messageBody); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java index a1d906413..8d2158d45 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/IndexQueryDTO.java @@ -3,6 +3,8 @@ package com.jsowell.pile.dto; import com.jsowell.common.core.domain.BaseEntity; import lombok.Data; +import java.util.List; + /** * 首页数据展示DTO * @@ -15,4 +17,6 @@ public class IndexQueryDTO extends BaseEntity { * 站点id */ private String stationId; + + private List stationIdList; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java index 1363b5b4a..dc13d30b2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileMerchantInfoMapper.java @@ -1,6 +1,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.PileMerchantInfo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -67,4 +68,6 @@ public interface PileMerchantInfoMapper { * @return 结果 */ public int deletePileMerchantInfoByIds(Long[] ids); + + List queryByMerchantDeptIds(@Param("merchantDeptIds") List merchantDeptIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java index 500f9c257..6f96be587 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileStationInfoMapper.java @@ -77,4 +77,6 @@ public interface PileStationInfoMapper { * @return */ List getStationInfoForLianLian(); + + List queryByStationDeptIds(@Param("stationDeptIds") List stationDeptIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java index 4a2279710..d7c80aa95 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileMerchantInfoService.java @@ -63,4 +63,11 @@ public interface IPileMerchantInfoService { String getMerchantIdByAppId(String appId); MerchantInfoVO getMerchantInfo(String merchantId); + + /** + * 根据运营商部门ids 查询所有站点id + * @param merchantDeptIds + * @return + */ + List queryByMerchantDeptIds(List merchantDeptIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java index bfc0d3c59..625e292ad 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IPileStationInfoService.java @@ -92,4 +92,6 @@ public interface IPileStationInfoService { PileStationVO getStationInfoByPileSn(String pileSn); List getStationInfoForLianLian(); + + List queryByStationDeptIds(List stationIds); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 448eef345..dd494d3e9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -55,6 +55,8 @@ import com.jsowell.pile.service.IPileAuthCardService; import com.jsowell.pile.service.IPileBasicInfoService; import com.jsowell.pile.service.IPileBillingTemplateService; import com.jsowell.pile.service.IPileConnectorInfoService; +import com.jsowell.pile.service.IPileMerchantInfoService; +import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.service.OrderMonitorDataService; import com.jsowell.pile.service.WechatPayService; import com.jsowell.pile.service.WxpayCallbackRecordService; @@ -159,6 +161,12 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Autowired private OrderMonitorDataService orderMonitorDataService; + @Autowired + private IPileStationInfoService pileStationInfoService; + + @Autowired + private IPileMerchantInfoService pileMerchantInfoService; + /** * 条件查询订单基本信息 * @@ -1094,6 +1102,28 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { */ @Override public List getIndexOrderInfo(IndexQueryDTO dto) { + AuthorizedDeptVO authorizedMap = SecurityUtils.getAuthorizedMap(); + if (authorizedMap == null) { + return Lists.newArrayList(); + } + List stationIdList = Lists.newArrayList(); + List stationDeptIds = authorizedMap.getStationDeptIds(); + if (CollectionUtils.isNotEmpty(stationDeptIds)) { + // 根据部门id查询站点id + List list = pileStationInfoService.queryByStationDeptIds(stationDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + List merchantDeptIds = authorizedMap.getMerchantDeptIds(); + if (CollectionUtils.isNotEmpty(merchantDeptIds)) { + // 根据运营商部门id查询下面所有站点id + List list = pileMerchantInfoService.queryByMerchantDeptIds(merchantDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + dto.setStationIdList(stationIdList); return orderBasicInfoMapper.getIndexOrderInfo(dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index 4a0f92c52..c1be265c5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -27,6 +27,7 @@ import com.jsowell.pile.service.IPileConnectorInfoService; import com.jsowell.pile.service.IPileMerchantInfoService; import com.jsowell.pile.service.IPileModelInfoService; import com.jsowell.pile.service.IPileSimInfoService; +import com.jsowell.pile.service.IPileStationInfoService; import com.jsowell.pile.service.SimCardService; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.PileInfoVO; @@ -71,6 +72,9 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { @Autowired private IPileMerchantInfoService pileMerchantInfoService; + @Autowired + private IPileStationInfoService pileStationInfoService; + @Autowired private IPileSimInfoService pileSimInfoService; @@ -565,8 +569,25 @@ public class PileBasicInfoServiceImpl implements IPileBasicInfoService { if (authorizedMap == null) { return new IndexGeneralSituationVO(); } - dto.setStationDeptIds(authorizedMap.getStationDeptIds()); - dto.setMerchantDeptIds(authorizedMap.getMerchantDeptIds()); + List stationIdList = Lists.newArrayList(); + List stationDeptIds = authorizedMap.getStationDeptIds(); + if (CollectionUtils.isNotEmpty(stationDeptIds)) { + // 根据部门id查询站点id + List list = pileStationInfoService.queryByStationDeptIds(stationDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + List merchantDeptIds = authorizedMap.getMerchantDeptIds(); + if (CollectionUtils.isNotEmpty(merchantDeptIds)) { + // 根据运营商部门id查询下面所有站点id + List list = pileMerchantInfoService.queryByMerchantDeptIds(merchantDeptIds); + if (CollectionUtils.isNotEmpty(list)) { + stationIdList.addAll(list); + } + } + log.info("后管首页基本信息查询 authorizedMap:{}, dto:{}", JSONObject.toJSONString(authorizedMap), JSONObject.toJSONString(dto)); + dto.setStationIdList(stationIdList); return pileBasicInfoMapper.getGeneralSituation(dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java index da41993a2..625a0d2c9 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMerchantInfoServiceImpl.java @@ -175,4 +175,9 @@ public class PileMerchantInfoServiceImpl implements IPileMerchantInfoService { .build(); return vo; } + + @Override + public List queryByMerchantDeptIds(List merchantDeptIds) { + return pileMerchantInfoMapper.queryByMerchantDeptIds(merchantDeptIds); + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java index 89f0795b8..882734b6d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java @@ -163,6 +163,11 @@ public class PileStationInfoServiceImpl implements IPileStationInfoService { return pileStationInfoMapper.getStationInfoForLianLian(); } + @Override + public List queryByStationDeptIds(List stationIds) { + return pileStationInfoMapper.queryByStationDeptIds(stationIds); + } + /** * 查询充电站信息列表 * diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 31008f5e8..f41d1edea 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -779,7 +779,13 @@ date(t1.create_time) >= DATE_SUB(CURDATE(),INTERVAL 30 day) and t1.order_status = '6' - and t1,station_id = #{dto.stationId,jdbcType=VARCHAR} + and t1.station_id = #{dto.stationId,jdbcType=VARCHAR} + + + and t1.station_id in + + #{item,jdbcType=VARCHAR} + group by DATE_FORMAT(t1.create_time,'%Y-%m-%d') diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml index 60ca1419d..59d70bc5c 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml @@ -330,10 +330,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.station_id = #{IndexQueryDTO.stationId,jdbcType=VARCHAR} - + and t1.station_id in - - #{stationDeptId} + + #{item} group by t4.totalMemberAmount diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml index a87f66549..fd263857e 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileMerchantInfoMapper.xml @@ -264,4 +264,18 @@ where app_id = #{appId,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml index cdd4ae854..3a18ac53f 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileStationInfoMapper.xml @@ -373,4 +373,14 @@ where public_flag = '1' + + \ No newline at end of file diff --git a/jsowell-ui/src/views/order/invoice/index.vue b/jsowell-ui/src/views/order/invoice/index.vue index 67820ddea..45e514d15 100644 --- a/jsowell-ui/src/views/order/invoice/index.vue +++ b/jsowell-ui/src/views/order/invoice/index.vue @@ -104,7 +104,7 @@ - +