From 350ea92e710b2c4b9f944820306a8d2d7411712f Mon Sep 17 00:00:00 2001 From: yuyang Date: Thu, 17 Mar 2022 12:03:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=98=B2=E6=AD=A2=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=B8=8D=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysDeptController.java | 35 ++- .../system/controller/SysPostController.java | 56 ++++- .../system/controller/SysUserController.java | 18 +- .../com/xhpc/system/mapper/SysPostMapper.java | 7 +- .../com/xhpc/system/mapper/SysUserMapper.java | 4 +- .../xhpc/system/service/ISysPostService.java | 2 +- .../xhpc/system/service/ISysUserService.java | 2 +- .../service/impl/SysPostServiceImpl.java | 8 +- .../service/impl/SysUserServiceImpl.java | 6 +- .../mapper/system/RemoteSystemService.xml | 19 +- .../resources/mapper/system/SysDeptMapper.xml | 3 + .../resources/mapper/system/SysUserMapper.xml | 14 +- .../java/com/xhpc/common/util/DateUtil.java | 5 + .../controller/XhpcAgreementController.java | 32 ++- .../general/mapper/XhpcAgreementMapper.java | 12 +- .../service/IXhpcAgreementService.java | 10 +- .../service/XhpcAgreementServiceImpl.java | 24 +-- .../resources/mapper/XhpcAgreementMapper.xml | 18 +- .../order/api/XhpcPileOrderController.java | 9 +- .../mapper/XhpcStatisticsServiceMapper.java | 11 +- .../impl/XhpcRealTimeOrderServiceImpl.java | 4 +- .../impl/XhpcStatisticsServiceImpl.java | 203 +++++++++++++++++- .../resources/mapper/XhpcStatisticsMapper.xml | 111 +++++++++- .../controller/XhpcTenantController.java | 21 +- .../xhpc/tenant/mapper/XhpcTenantMapper.java | 2 +- .../tenant/service/XhpcTenantService.java | 2 +- .../service/impl/XhpcTenantServiceImpl.java | 4 +- .../com/xhpc/tenant/task/XhpcTenantTask.java | 12 +- .../resources/mapper/XhpcTenantMapper.xml | 3 + 29 files changed, 557 insertions(+), 100 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysDeptController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysDeptController.java index a75b2732..70a421b9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysDeptController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysDeptController.java @@ -1,7 +1,14 @@ package com.xhpc.system.controller; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; + +import com.xhpc.common.core.domain.R; +import com.xhpc.common.security.service.TokenService; +import com.xhpc.common.util.UserTypeUtil; +import com.xhpc.system.api.domain.SysUser; +import com.xhpc.system.api.model.LoginUser; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -35,6 +42,8 @@ public class SysDeptController extends BaseController { @Autowired private ISysDeptService deptService; + @Autowired + private TokenService tokenService; /** * 获取部门列表 @@ -43,8 +52,17 @@ public class SysDeptController extends BaseController @GetMapping("/list") public AjaxResult list(SysDept dept) { - List depts = deptService.selectDeptList(dept); - return AjaxResult.success(depts); + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + SysUser sysUser = loginUser.getSysUser(); + if(tenantId !=null && !"".equals(tenantId)){ + if(sysUser.getUserId() != UserTypeUtil.USER_ID){ + dept.setDeptId(sysUser.getDeptId()); + } + List depts = deptService.selectDeptList(dept); + return AjaxResult.success(depts); + } + return AjaxResult.success(new ArrayList<>()); } /** @@ -84,8 +102,17 @@ public class SysDeptController extends BaseController @GetMapping("/treeselect") public AjaxResult treeselect(SysDept dept) { - List depts = deptService.selectDeptList(dept); - return AjaxResult.success(deptService.buildDeptTreeSelect(depts)); + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + SysUser sysUser = loginUser.getSysUser(); + if(tenantId !=null && !"".equals(tenantId)){ + if(sysUser.getUserId() != UserTypeUtil.USER_ID){ + dept.setDeptId(sysUser.getDeptId()); + } + List depts = deptService.selectDeptList(dept); + return AjaxResult.success(deptService.buildDeptTreeSelect(depts)); + } + return AjaxResult.success(new ArrayList<>()); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysPostController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysPostController.java index 3c6e7ec6..dc971ac3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysPostController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysPostController.java @@ -1,9 +1,15 @@ package com.xhpc.system.controller; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.xhpc.common.security.service.TokenService; +import com.xhpc.common.util.UserTypeUtil; +import com.xhpc.system.api.domain.SysDept; +import com.xhpc.system.api.domain.SysUser; +import com.xhpc.system.api.model.LoginUser; import com.xhpc.system.domain.SysPost; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; @@ -37,7 +43,8 @@ public class SysPostController extends BaseController { @Autowired private ISysPostService postService; - + @Autowired + private TokenService tokenService; /** * 获取岗位列表 */ @@ -45,9 +52,18 @@ public class SysPostController extends BaseController @GetMapping("/list") public TableDataInfo list(SysPost post) { - startPage(); - List list = postService.selectPostList(post); - return getDataTable(list); + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + SysUser sysUser = loginUser.getSysUser(); + if(tenantId !=null && !"".equals(tenantId)){ + if(sysUser.getUserId() != UserTypeUtil.USER_ID){ + post.setTenantId(sysUser.getTenantId()); + } + startPage(); + List list = postService.selectPostList(post); + return getDataTable(list); + } + return getDataTable(new ArrayList<>()); } @Log(title = "岗位管理", businessType = BusinessType.EXPORT) @@ -55,9 +71,20 @@ public class SysPostController extends BaseController @PostMapping("/export") public void export(HttpServletResponse response, SysPost post) throws IOException { - List list = postService.selectPostList(post); - ExcelUtil util = new ExcelUtil(SysPost.class); - util.exportExcel(response, list, "岗位数据"); + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + SysUser sysUser = loginUser.getSysUser(); + if(tenantId !=null && !"".equals(tenantId)){ + if(sysUser.getUserId() != UserTypeUtil.USER_ID){ + post.setTenantId(sysUser.getTenantId()); + } + List list = postService.selectPostList(post); + ExcelUtil util = new ExcelUtil(SysPost.class); + util.exportExcel(response, list, "岗位数据"); + }else{ + ExcelUtil util = new ExcelUtil(SysPost.class); + util.exportExcel(response, new ArrayList<>(), "岗位数据"); + } } /** @@ -78,6 +105,9 @@ public class SysPostController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysPost post) { + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + post.setTenantId(tenantId); if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) { return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在"); @@ -98,6 +128,9 @@ public class SysPostController extends BaseController @PutMapping public AjaxResult edit(@Validated @RequestBody SysPost post) { + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + post.setTenantId(tenantId); if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post))) { return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在"); @@ -127,7 +160,12 @@ public class SysPostController extends BaseController @GetMapping("/optionselect") public AjaxResult optionselect() { - List posts = postService.selectPostAll(); - return AjaxResult.success(posts); + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + if(tenantId !=null && !"".equals(tenantId)){ + List posts = postService.selectPostAll(tenantId); + return AjaxResult.success(posts); + } + return AjaxResult.success(new ArrayList<>()); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java index 49926fc1..2a29662d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java @@ -11,6 +11,7 @@ import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.common.log.annotation.Log; import com.xhpc.common.log.enums.BusinessType; import com.xhpc.common.security.annotation.PreAuthorize; +import com.xhpc.common.security.service.TokenService; import com.xhpc.common.util.UserTypeUtil; import com.xhpc.system.api.domain.SysRole; import com.xhpc.system.api.domain.SysUser; @@ -51,7 +52,8 @@ public class SysUserController extends BaseController { @Autowired private IXhpcDataDimensionService dataDimensionService; - + @Autowired + private TokenService tokenService; /** * 获取用户列表 @@ -59,6 +61,8 @@ public class SysUserController extends BaseController { @PreAuthorize(hasPermi = "system:user:list") @GetMapping("/list") public TableDataInfo list(SysUser user) { + LoginUser loginUser = tokenService.getLoginUser(); + user.setTenantId(loginUser.getTenantId()); startPage(); List list = userService.selectUserList(user); return getDataTable(list); @@ -143,10 +147,12 @@ public class SysUserController extends BaseController { @PreAuthorize(hasPermi = "system:user:query") @GetMapping(value = {"/", "/{userId}"}) public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); AjaxResult ajax = AjaxResult.success(); List roles = roleService.selectRoleAll(); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); - ajax.put("posts", postService.selectPostAll()); + ajax.put("posts", postService.selectPostAll(tenantId)); if (StringUtils.isNotNull(userId)) { ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId)); ajax.put("postIds", postService.selectPostListByUserId(userId)); @@ -162,7 +168,13 @@ public class SysUserController extends BaseController { @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@Validated @RequestBody SysUser user) { - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) { + if(user.getTenantId() ==null){ + return AjaxResult.error("请选择租户"); + } + if(user.getRoleIds().length==0){ + return AjaxResult.error("请选择角色"); + } + if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName(),user.getTenantId()))) { return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysPostMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysPostMapper.java index 47c6f764..62a2b43a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysPostMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysPostMapper.java @@ -3,6 +3,7 @@ package com.xhpc.system.mapper; import java.util.List; import com.xhpc.system.domain.SysPost; +import org.apache.ibatis.annotations.Param; /** * 岗位信息 数据层 @@ -24,7 +25,7 @@ public interface SysPostMapper * * @return 岗位列表 */ - public List selectPostAll(); + public List selectPostAll(@Param("tenantId")String tenantId); /** * 通过岗位ID查询岗位信息 @@ -88,7 +89,7 @@ public interface SysPostMapper * @param postName 岗位名称 * @return 结果 */ - public SysPost checkPostNameUnique(String postName); + public SysPost checkPostNameUnique(@Param("postName")String postName,@Param("tenantId")String tenantId); /** * 校验岗位编码 @@ -96,5 +97,5 @@ public interface SysPostMapper * @param postCode 岗位编码 * @return 结果 */ - public SysPost checkPostCodeUnique(String postCode); + public SysPost checkPostCodeUnique(@Param("postCode")String postCode,@Param("tenantId")String tenantId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysUserMapper.java index c6cc9c51..181704da 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysUserMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/mapper/SysUserMapper.java @@ -107,7 +107,7 @@ public interface SysUserMapper { * @param userName 用户名称 * @return 结果 */ - public int checkUserNameUnique(String userName); + public int checkUserNameUnique(@Param("userName") String userName,@Param("tenantId")String tenantId); /** * 校验手机号码是否唯一 @@ -115,7 +115,7 @@ public interface SysUserMapper { * @param phonenumber 手机号码 * @return 结果 */ - public SysUser checkPhoneUnique(String phonenumber); + public SysUser checkPhoneUnique(@Param("phonenumber")String phonenumber,@Param("tenantId")String tenantId); /** * 校验email是否唯一 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysPostService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysPostService.java index 84185860..769110c8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysPostService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysPostService.java @@ -24,7 +24,7 @@ public interface ISysPostService * * @return 岗位列表 */ - public List selectPostAll(); + public List selectPostAll(String tenantId); /** * 通过岗位ID查询岗位信息 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysUserService.java index 884e6784..f43e3cda 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysUserService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/ISysUserService.java @@ -72,7 +72,7 @@ public interface ISysUserService { * @param userName 用户名称 * @return 结果 */ - public String checkUserNameUnique(String userName); + public String checkUserNameUnique(String userName,String tenantId); /** * 校验手机号码是否唯一 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysPostServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysPostServiceImpl.java index 9ae6fcf5..ef472138 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysPostServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysPostServiceImpl.java @@ -45,9 +45,9 @@ public class SysPostServiceImpl implements ISysPostService * @return 岗位列表 */ @Override - public List selectPostAll() + public List selectPostAll(String tenantId) { - return postMapper.selectPostAll(); + return postMapper.selectPostAll(tenantId); } /** @@ -84,7 +84,7 @@ public class SysPostServiceImpl implements ISysPostService public String checkPostNameUnique(SysPost post) { Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); - SysPost info = postMapper.checkPostNameUnique(post.getPostName()); + SysPost info = postMapper.checkPostNameUnique(post.getPostName(),post.getTenantId()); if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.NOT_UNIQUE; @@ -102,7 +102,7 @@ public class SysPostServiceImpl implements ISysPostService public String checkPostCodeUnique(SysPost post) { Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId(); - SysPost info = postMapper.checkPostCodeUnique(post.getPostCode()); + SysPost info = postMapper.checkPostCodeUnique(post.getPostCode(),post.getTenantId()); if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) { return UserConstants.NOT_UNIQUE; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysUserServiceImpl.java index 063219d2..e66a89bf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/service/impl/SysUserServiceImpl.java @@ -168,9 +168,9 @@ public class SysUserServiceImpl implements ISysUserService * @return 结果 */ @Override - public String checkUserNameUnique(String userName) + public String checkUserNameUnique(String userName,String tenantId) { - int count = userMapper.checkUserNameUnique(userName); + int count = userMapper.checkUserNameUnique(userName,tenantId); if (count > 0) { return UserConstants.NOT_UNIQUE; @@ -188,7 +188,7 @@ public class SysUserServiceImpl implements ISysUserService public String checkPhoneUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); - SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); + SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber(),user.getTenantId()); if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RemoteSystemService.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RemoteSystemService.xml index 89088f59..bf0b31d9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RemoteSystemService.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/RemoteSystemService.xml @@ -38,6 +38,9 @@ AND status = #{status} + + and tenant_id=#{tenantId} + AND post_name like concat('%', #{postName}, '%') @@ -46,6 +49,10 @@ - where post_name=#{postName} limit 1 + where post_name=#{postName} + + and tenant_id=#{tenantId} + + limit 1 diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 82738463..e3be5ce8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -44,6 +44,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND parent_id = #{parentId} + + AND(dept_id = #{deptId} or parent_id= #{deptId}) + AND dept_name like concat('%', #{deptName}, '%') diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 0f26a4ce..22735444 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -173,11 +173,21 @@ - select count(agreement_id) from xhpc_agreement where type=#{type} and title=#{title} and del_flag=0 + + and tenant_id =#{tenantId} + - - insert into xhpc_agreement (title,type,content) values(#{title},#{type},#{content}) + insert into xhpc_agreement (title,type,content,tenant_id) values(#{title},#{type},#{content},#{tenantId}) - update xhpc_agreement set title=#{title},type=#{type},content=#{content} where agreement_id=#{agreementId} + update xhpc_agreement set title=#{title},type=#{type},content=#{content} ,tenant_id=#{tenantId} where agreement_id=#{agreementId} @@ -52,6 +56,9 @@ and type=#{type} + + and tenant_id =#{tenantId} + @@ -79,6 +86,9 @@ select * from xhpc_agreement where type=#{type} + + and tenant_id =#{tenantId} + order by update_time desc limit 1 diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java index a9741259..c041ca04 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcPileOrderController.java @@ -112,16 +112,15 @@ public class XhpcPileOrderController extends BaseController { Integer code = 500; Long userId=0L; Map map = new HashMap<>(); - if(status == 1|| status == 2){ - userId = update(0, remark, orderNo, 1); - map.put("userId", userId); - } XhpcChargeOrder xhpcChargeOrder = xhpcChargeOrderService.getSerialNumberMessage(orderNo); if(xhpcChargeOrder==null|| xhpcChargeOrder.getUserId()==null){ logger.info("桩停止回调接口--无效订单号>>>>>orderNo:" + orderNo); return R.fail(500,"无效订单号"); } - + if(status == 1|| status == 2){ + userId = update(0, remark, orderNo, 1); + map.put("userId", userId); + } if (status == 1) { xhpcChargeOrder.setStatus(0); map.put("message", "停止充电成功"); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java index d488d6c1..e2ff0cef 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/mapper/XhpcStatisticsServiceMapper.java @@ -183,5 +183,14 @@ public interface XhpcStatisticsServiceMapper { //今日订单量 - Map getTodayNUmber(Long operatorId, Long chargingStationId, Long chargingPileId,String tenantId); + Map getTodayStatusNUmber(@Param("status")Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId, @Param("chargingStationId")Long chargingStationId, @Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay); + int getTodayNUmber(@Param("status")Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId, @Param("chargingStationId")Long chargingStationId, @Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay); + //今日订单量 + int getTodayDegreeNUmber(@Param("status")Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId, @Param("chargingStationId")Long chargingStationId, @Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay); + //今日营收 + double getTodayAmount(@Param("status")Integer status,@Param("logOperatorId")Long logOperatorId,@Param("operatorId")Long operatorId, @Param("chargingStationId")Long chargingStationId, @Param("chargingPileId")Long chargingPileId,@Param("tenantId")String tenantId,@Param("beginOfDay")String beginOfDay,@Param("endOfDay")String endOfDay); + + + + } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java index 2d7a4ef5..5794d421 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcRealTimeOrderServiceImpl.java @@ -355,7 +355,9 @@ public class XhpcRealTimeOrderServiceImpl extends BaseService implements IXhpcRe xhpcHistoryOrder.setEndTime(xhpcChargeOrder.getEndTime()); xhpcHistoryOrder.setStartSoc(xhpcChargeOrder.getStartSoc()); xhpcHistoryOrder.setEndSoc(xhpcChargeOrder.getEndSoc()); - xhpcHistoryOrder.setTotalPower(xhpcChargeOrder.getChargingDegree().doubleValue()); + if(xhpcChargeOrder.getChargingDegree() !=null){ + xhpcHistoryOrder.setTotalPower(xhpcChargeOrder.getChargingDegree().doubleValue()); + } xhpcHistoryOrder.setType(2); addSettlement(powerPrice, servicePrice, money, surplusPowerPrice, surplusServicePrice, xhpcChargeOrder, userId, userMessage,0,null,xhpcHistoryOrder); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java index a6a954af..82791f47 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcStatisticsServiceImpl.java @@ -1,6 +1,8 @@ package com.xhpc.order.service.impl; +import cn.hutool.Hutool; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelUtil; @@ -976,28 +978,209 @@ public class XhpcStatisticsServiceImpl extends BaseService implements IXhpcStati LoginUser loginUser = tokenService.getLoginUser(); String tenantId = loginUser.getTenantId(); + Long logUserId = SecurityUtils.getUserId(); SysUser sysUser = loginUser.getSysUser(); //今日订单量 + //今天时间,格式 yyyy-mm-dd + String beginOfDay= DateUtil.formatDateTime(DateUtil.beginOfDay(new Date())); + String endOfDay= DateUtil.formatDateTime(DateUtil.endOfDay(new Date())); + + String lastBeginOfDay = lastOrThisWeek(new Date(), 1, 1); + String lastEndOfDay = lastOrThisWeek(new Date(), 1, 2); + String weekBeginOfDay = lastOrThisWeek(new Date(), 2, 1); + String weekEndOfDay = lastOrThisWeek(new Date(), 2, 2); + Map map =new HashMap<>(); if(tenantId !=null && !"".equals(tenantId)){ if(sysUser.getUserId() !=UserTypeUtil.USER_ID){ if ("01".equals(sysUser.getUserType())) { Long logOperatorId = sysUser.getOperatorId(); - + //运营商看自己的场站 + //--------------------------- + //今日订单量 + extracted(1,operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay, lastBeginOfDay, lastEndOfDay, weekBeginOfDay, weekEndOfDay, map, logOperatorId); + //今日电量 + int todayDegreeNUmber = xhpcStatisticsServiceMapper.getTodayDegreeNUmber(1, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay); + map.put("todayDegree",todayDegreeNUmber); + //今日营收 + extracted(operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay, map, logOperatorId); }else{ - + //查询赋值的场站 + //-------- + //今日订单量 + extracted(2,operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay, lastBeginOfDay, lastEndOfDay, weekBeginOfDay, weekEndOfDay, map, logUserId); + //今日电量 + int todayDegreeNUmber = xhpcStatisticsServiceMapper.getTodayDegreeNUmber(2, logUserId, operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay); + map.put("todayDegree",todayDegreeNUmber); + //今日营收 + extracted(operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay, map, logUserId); } }else{ - + //今日订单量 + extracted(0,operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay, lastBeginOfDay, lastEndOfDay, weekBeginOfDay, weekEndOfDay, map, null); + //今日电量 + int todayDegreeNUmber = xhpcStatisticsServiceMapper.getTodayDegreeNUmber(0, null, operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay); + map.put("todayDegree",todayDegreeNUmber); + //今日营收 + extracted(operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay, map, null); } } - - - //今日订电量 - //今日营收 - //今日充电枪状态 - - return null; + return map; } + private void extracted(Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId, String beginOfDay, String endOfDay, Map map, Long logOperatorId) { + double t1 = xhpcStatisticsServiceMapper.getTodayAmount(1, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay); + double t2 = xhpcStatisticsServiceMapper.getTodayAmount(1, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, DateUtil.formatDateTime(DateUtil.offsetDay(DateUtil.parse(beginOfDay), -1)), DateUtil.formatDateTime(DateUtil.offsetDay(DateUtil.parse(endOfDay), -1))); + Map map1 =new HashMap<>(); + map1.put("todayAmount",t1); + map1.put("yesterdayAmount",t2); + map1.put("weekNumber",t1-t2>0?(t1-t2)/t1:(t2-t1)/t1); + map.put("todayAmount", map1); + } + + private void extracted(Integer status, Long operatorId, Long chargingStationId, Long chargingPileId, String tenantId, String beginOfDay, String endOfDay, String lastBeginOfDay, String lastEndOfDay, String weekBeginOfDay, String weekEndOfDay, Map map, Long logOperatorId) { + Map todayStatusNUmber = xhpcStatisticsServiceMapper.getTodayStatusNUmber(status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, beginOfDay, endOfDay); + int t1 = xhpcStatisticsServiceMapper.getTodayNUmber(status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, lastBeginOfDay, lastEndOfDay); + int t2 = xhpcStatisticsServiceMapper.getTodayNUmber(status, logOperatorId, operatorId, chargingStationId, chargingPileId, tenantId, weekBeginOfDay, weekEndOfDay); + todayStatusNUmber.put("weekNumber",t1-t2>0?(t1-t2)/t1:(t2-t1)/t1); + map.put("todayOrder",todayStatusNUmber); + } + + /** + * 获取本周和上周的开始时间 + * @param date + * @param type 1上周 2本周 + * @param status 1 周一 2 周日 + * @return + */ + public String lastOrThisWeek(Date date,Integer type,Integer status) { + + Calendar c = getCalendar(date); + int day = c.get(Calendar.DAY_OF_WEEK); + + String week = ""; + //一天的开始,结果:2017-03-01 00:00:00 + Date beginOfDay = DateUtil.beginOfDay(date); + Date endOfDay = DateUtil.endOfDay(date); + switch (day) { + case 1: + //DateUtil. + if(type==1 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -13)); + }else if(type==1 && status==2){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -7)); + }else if(type==2 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -6)); + }else{ + week = DateUtil.formatDateTime(endOfDay); + } + break; + case 2: + if(type==1 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -7)); + }else if(type==1 && status==2){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -1)); + }else if(type==2 && status==1){ + week = DateUtil.formatDateTime(beginOfDay); + }else{ + week = DateUtil.formatDateTime(endOfDay); + } + break; + case 3: + if(type==1 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -8)); + }else if(type==1 && status==2){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -2)); + }else if(type==2 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -1)); + }else{ + week = DateUtil.formatDateTime(endOfDay); + } + break; + case 4: + if(type==1 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -9)); + }else if(type==1 && status==2){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -3)); + }else if(type==2 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -2)); + }else{ + week = DateUtil.formatDateTime(endOfDay); + } + break; + case 5: + if(type==1 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -10)); + }else if(type==1 && status==2){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -4)); + }else if(type==2 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -3)); + }else{ + week = DateUtil.formatDateTime(endOfDay); + } + break; + case 6: + if(type==1 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -11)); + }else if(type==1 && status==2){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -5)); + }else if(type==2 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -4)); + }else{ + week = DateUtil.formatDateTime(endOfDay); + } + break; + + case 7: + if(type==1 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -12)); + }else if(type==1 && status==2){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -6)); + }else if(type==2 && status==1){ + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -5)); + }else{ + week = DateUtil.formatDateTime(endOfDay); + } + break; + } + return week; + } + + public Calendar getCalendar(Date date) { + + Calendar c = Calendar.getInstance(); + c.setTime(date); + return c; + } + + public static void main(String[] args) { + DateTime date = DateUtil.date(); + DateTime dateTime = DateUtil.lastWeek(); + + System.out.println("dateTime:"+dateTime); + + + String week = ""; + //一天的开始,结果:2017-03-01 00:00:00 + Date beginOfDay = DateUtil.beginOfDay(date); + Date endOfDay = DateUtil.endOfDay(date); + System.out.println("week00:"+beginOfDay); + System.out.println("week00:"+beginOfDay); + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -9)); + System.out.println("week11:"+week); + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, -3)); + System.out.println("week22:"+week); + week = DateUtil.formatDateTime(DateUtil.offsetDay(beginOfDay, -2)); + System.out.println("week33:"+week); + week = DateUtil.formatDateTime(DateUtil.offsetDay(endOfDay, 4)); + System.out.println("week44:"+week); + + + + + + + + + } } diff --git a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml index 2525484e..c5cf2013 100644 --- a/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml +++ b/xhpc-modules/xhpc-order/src/main/resources/mapper/XhpcStatisticsMapper.xml @@ -925,8 +925,115 @@ select count(statistics_station_id) from xhpc_statistics_station where history_order_id=#{historyOrderId} and type=#{type} - + SELECT + COUNT(status) number, + status, + FROM + xhpc_charge_order + WHERE + create_time >=#{beginOfDay} and create_time <= #{endOfDay} + + and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{operatorId}) + + + and tenant_id = #{tenantId} + + + and charging_station_id=#{chargingStationId} + + + and terminal_id in (select terminal_id from xhpc_terminal where charging_pile_id=#{chargingPileId}) + + + and charging_station_id in (select charging_station_id from xhpc_charging_station where operator_id=#{logOperatorId}) + + + and charging_station_id in (select charging_station_id from xhpc_user_privilege where user_id=#{logOperatorId}) + + group by status + + + + + + + diff --git a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java index d94753d8..e1cf27e1 100644 --- a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java +++ b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java @@ -2,11 +2,15 @@ package com.xhpc.tenant.controller; import com.xhpc.common.core.domain.R; +import com.xhpc.common.core.utils.SecurityUtils; import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.core.web.page.TableDataInfo; import com.xhpc.common.log.annotation.Log; import com.xhpc.common.log.enums.BusinessType; +import com.xhpc.common.security.service.TokenService; import com.xhpc.common.util.LogUserUtils; +import com.xhpc.common.util.UserTypeUtil; +import com.xhpc.system.api.domain.SysUser; import com.xhpc.system.api.model.LoginUser; import com.xhpc.tenant.domain.XhpcTenantDomain; import com.xhpc.tenant.service.XhpcTenantService; @@ -14,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; @RestController @@ -27,6 +33,9 @@ public class XhpcTenantController extends BaseController { @Resource LogUserUtils logUserUtils; + @Resource + TokenService tokenService; + @GetMapping("/getPage") public TableDataInfo getPage(String tenantId, @@ -44,7 +53,17 @@ public class XhpcTenantController extends BaseController { @GetMapping("/getNameList") public R getNameList(){ - return R.ok(tenantService.getNameList()); + LoginUser loginUser = tokenService.getLoginUser(); + String tenantId = loginUser.getTenantId(); + SysUser sysUser = loginUser.getSysUser(); + if(tenantId !=null && !"".equals(tenantId)){ + if(sysUser.getUserId() != UserTypeUtil.USER_ID){ + return R.ok(tenantService.getNameList(tenantId)); + }else{ + return R.ok(tenantService.getNameList(null)); + } + } + return R.ok(new ArrayList<>()); } // 到期前15填短信通知联系人 diff --git a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/mapper/XhpcTenantMapper.java b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/mapper/XhpcTenantMapper.java index 09e3454b..da16f089 100644 --- a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/mapper/XhpcTenantMapper.java +++ b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/mapper/XhpcTenantMapper.java @@ -11,7 +11,7 @@ public interface XhpcTenantMapper { List getList(@Param("params") Map params); - List> getNameList(); + List> getNameList(@Param("tenantId")String tenantId); int deleteByPrimaryKey(String tenantId); diff --git a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/XhpcTenantService.java b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/XhpcTenantService.java index 762fa578..d3f51c50 100644 --- a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/XhpcTenantService.java +++ b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/XhpcTenantService.java @@ -10,7 +10,7 @@ public interface XhpcTenantService { List getPage(Map params); - List> getNameList(); + List> getNameList(String tenantId); XhpcTenantDomain getInfoByPk(String tenantId); diff --git a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/impl/XhpcTenantServiceImpl.java b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/impl/XhpcTenantServiceImpl.java index b5429f44..4c5f4c2d 100644 --- a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/impl/XhpcTenantServiceImpl.java +++ b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/service/impl/XhpcTenantServiceImpl.java @@ -27,8 +27,8 @@ public class XhpcTenantServiceImpl implements XhpcTenantService { @Override - public List> getNameList(){ - return tenantMapper.getNameList(); + public List> getNameList(String tenantId){ + return tenantMapper.getNameList(tenantId); } @Override diff --git a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/task/XhpcTenantTask.java b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/task/XhpcTenantTask.java index 47f66ce5..57f7cded 100644 --- a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/task/XhpcTenantTask.java +++ b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/task/XhpcTenantTask.java @@ -38,19 +38,23 @@ public class XhpcTenantTask { /** - * 提前15天通知即将到期的租户 + * 提前15、7、3、1天通知即将到期的租户 */ @Scheduled(cron = "0 0 14 * * ? ") private void ExpiringTenantSmsTask(){ + extracted(15); + extracted(7); + extracted(3); + extracted(1); + } - String expireTime = DateUtil.formatDate(com.xhpc.common.util.DateUtil.addDay(new Date(), 15)); + private void extracted(int time) { + String expireTime = DateUtil.formatDate(com.xhpc.common.util.DateUtil.addDay(new Date(), time)); List expireDomainList = tenantMapper.selectExpiringList(expireTime); for(XhpcTenantDomain domain: expireDomainList){ - if (StringUtils.isEmpty(domain.getContactNumber())){ continue; } - HashMap paramMap = new HashMap<>(); paramMap.put("phone", domain.getContactNumber()); paramMap.put("tenantName", domain.getTenantName()); diff --git a/xhpc-modules/xhpc-tenant/src/main/resources/mapper/XhpcTenantMapper.xml b/xhpc-modules/xhpc-tenant/src/main/resources/mapper/XhpcTenantMapper.xml index 03992b4a..cdc0f3d7 100644 --- a/xhpc-modules/xhpc-tenant/src/main/resources/mapper/XhpcTenantMapper.xml +++ b/xhpc-modules/xhpc-tenant/src/main/resources/mapper/XhpcTenantMapper.xml @@ -31,6 +31,9 @@ tenant_id as 'tenantId', tenant_name as 'tenantName' from xhpc_tenant where is_deleted=0 and status=1 + + and tenant_id=#{tenantId} +