扣车管理1

This commit is contained in:
xiao-fajia 2024-09-05 18:09:48 +08:00
parent b2db2d3b71
commit 13ea24ccf9
7 changed files with 90 additions and 2 deletions

View File

@ -151,7 +151,7 @@ public class SysLoginController {
} }
List<RoleReqDTO> roleList = roleApi.getRoleList(); List<RoleReqDTO> roleList = roleApi.getRoleList();
List<String> roleNames = roleList.stream().filter(item -> roleIdsByUserId.contains(item.getId())).map(item -> item.getName()).collect(Collectors.toList()); List<String> roleNames = roleList.stream().filter(item -> roleIdsByUserId.contains(item.getId())).map(item -> item.getName()).collect(Collectors.toList());
Boolean flag = (loginBody.getType().equals("0") && roleNames.contains("救援业务管理员")) || (loginBody.getType().equals("1") && roleNames.contains("交警")); Boolean flag = (loginBody.getType().equals("0") && roleNames.contains("救援业务管理员")) || (loginBody.getType().equals("0") && roleNames.contains("交警大队"));
// 角色认证登录 // 角色认证登录
if (!flag) { if (!flag) {
return error(CommonErrorCodeConstants.LOGIN_ACCOUNT_NOT_EXIST); return error(CommonErrorCodeConstants.LOGIN_ACCOUNT_NOT_EXIST);

View File

@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.rescue.service.IRescueInfoService;
import cn.iocoder.yudao.module.rescue.service.IRescueOrderInfoService; import cn.iocoder.yudao.module.rescue.service.IRescueOrderInfoService;
import cn.iocoder.yudao.module.rescue.utils.ExcelUtil; import cn.iocoder.yudao.module.rescue.utils.ExcelUtil;
import cn.iocoder.yudao.module.rescue.utils.StringUtils; import cn.iocoder.yudao.module.rescue.utils.StringUtils;
import cn.iocoder.yudao.module.rescue.vo.BuckleVO;
import cn.iocoder.yudao.module.rescue.vo.MoneyManagement; import cn.iocoder.yudao.module.rescue.vo.MoneyManagement;
import cn.iocoder.yudao.module.staff.entity.CompanyStaff; import cn.iocoder.yudao.module.staff.entity.CompanyStaff;
import cn.iocoder.yudao.module.staff.service.CompanyStaffService; import cn.iocoder.yudao.module.staff.service.CompanyStaffService;
@ -41,6 +42,8 @@ import javax.validation.Valid;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
@RestController @RestController
@RequestMapping("/system/rescueInfo") @RequestMapping("/system/rescueInfo")
@ -90,6 +93,9 @@ public class RescueInfoSystem extends BaseController {
public CommonResult update(@RequestBody RescueInfo rescueInfo) { public CommonResult update(@RequestBody RescueInfo rescueInfo) {
if (ObjectUtil.isNotEmpty(rescueInfo.getSetMoney())){ if (ObjectUtil.isNotEmpty(rescueInfo.getSetMoney())){
RescueOrderInfo orderInfo = infoService.getById(rescueInfo.getRescueOrderId()); RescueOrderInfo orderInfo = infoService.getById(rescueInfo.getRescueOrderId());
if (ObjectUtil.isEmpty(orderInfo)){
throw exception0(500, "订单未成单");
}
orderInfo.setSetMoney(rescueInfo.getSetMoney()); orderInfo.setSetMoney(rescueInfo.getSetMoney());
infoService.updateById(orderInfo); infoService.updateById(orderInfo);
} }
@ -443,4 +449,14 @@ public class RescueInfoSystem extends BaseController {
rescueDictStaffService.saveOrUpdate(rescueDictStaff); rescueDictStaffService.saveOrUpdate(rescueDictStaff);
return CommonResult.ok(); return CommonResult.ok();
} }
/**
* 获取扣车单位和具体数量
* @author 小李
* @date 10:46 2024/9/5
**/
@GetMapping("/buckle")
public CommonResult listBuckle(){
return success(rescueInfoService.listBuckle());
}
} }

View File

@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.rescue.domain.DriverInfo;
import cn.iocoder.yudao.module.rescue.domain.RescueInfo; import cn.iocoder.yudao.module.rescue.domain.RescueInfo;
import cn.iocoder.yudao.module.rescue.dto.DriverInfo2Dto; import cn.iocoder.yudao.module.rescue.dto.DriverInfo2Dto;
import cn.iocoder.yudao.module.rescue.dto.DriverInfoDto; import cn.iocoder.yudao.module.rescue.dto.DriverInfoDto;
import cn.iocoder.yudao.module.rescue.vo.BuckleVO;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@ -62,4 +63,10 @@ public interface RescueInfoMapper extends BaseMapper<RescueInfo>
IPage<RescueInfo> getRescueInfoByDriver(@Param("map") RescueInfo rescueInfo, Page<RescueInfo> page); IPage<RescueInfo> getRescueInfoByDriver(@Param("map") RescueInfo rescueInfo, Page<RescueInfo> page);
List<JSONObject> statisticsInfo(@Param("startTime")String startTime,@Param("endTime")String endTime); List<JSONObject> statisticsInfo(@Param("startTime")String startTime,@Param("endTime")String endTime);
/**
* 获取扣车单位和具体数量
* @author 小李
* @date 10:46 2024/9/5
**/
List<BuckleVO> listBuckle();
} }

View File

@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.rescue.domain.DriverInfo;
import cn.iocoder.yudao.module.rescue.domain.RescueInfo; import cn.iocoder.yudao.module.rescue.domain.RescueInfo;
import cn.iocoder.yudao.module.rescue.dto.DriverInfo2Dto; import cn.iocoder.yudao.module.rescue.dto.DriverInfo2Dto;
import cn.iocoder.yudao.module.rescue.dto.DriverInfoDto; import cn.iocoder.yudao.module.rescue.dto.DriverInfoDto;
import cn.iocoder.yudao.module.rescue.vo.BuckleVO;
import cn.iocoder.yudao.module.rescue.vo.MoneyManagement; import cn.iocoder.yudao.module.rescue.vo.MoneyManagement;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -102,4 +103,10 @@ public interface IRescueInfoService extends IService<RescueInfo>
List<JSONObject> statisticsInfo(String type); List<JSONObject> statisticsInfo(String type);
/**
* 获取扣车单位和具体数量
* @author 小李
* @date 10:46 2024/9/5
**/
List<BuckleVO> listBuckle();
} }

View File

@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.rescue.service.*;
import cn.iocoder.yudao.module.rescue.utils.RedisUtil; import cn.iocoder.yudao.module.rescue.utils.RedisUtil;
import cn.iocoder.yudao.module.rescue.utils.RedissonDelayQueue; import cn.iocoder.yudao.module.rescue.utils.RedissonDelayQueue;
import cn.iocoder.yudao.module.rescue.utils.StringUtils; import cn.iocoder.yudao.module.rescue.utils.StringUtils;
import cn.iocoder.yudao.module.rescue.vo.BuckleVO;
import cn.iocoder.yudao.module.rescue.vo.MoneyManagement; import cn.iocoder.yudao.module.rescue.vo.MoneyManagement;
import cn.iocoder.yudao.module.staff.service.CompanyStaffService; import cn.iocoder.yudao.module.staff.service.CompanyStaffService;
import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO; import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO;
@ -381,9 +382,12 @@ public class RescueInfoServiceImpl extends ServiceImpl<RescueInfoMapper, RescueI
public void insertRescueInfo(RescueInfo rescueInfo) { public void insertRescueInfo(RescueInfo rescueInfo) {
// 获取当前的用户 // 获取当前的用户
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
// 获取当前的用户的部门ID
AdminUserRespDTO user = userService.getUser(loginUser.getId());
rescueInfo.setUserId(loginUser.getId()); rescueInfo.setUserId(loginUser.getId());
rescueInfo.setRescueTime(new Date()); rescueInfo.setRescueTime(new Date());
rescueInfo.setDeptId(user.getDeptId());
//数据新增 //数据新增
if (rescueInfo.getIsAppointment().equals("1")) { if (rescueInfo.getIsAppointment().equals("1")) {
//如果是预约单子 //如果是预约单子
@ -1059,5 +1063,22 @@ public class RescueInfoServiceImpl extends ServiceImpl<RescueInfoMapper, RescueI
return baseMapper.statisticsInfo(startTime, endTime); return baseMapper.statisticsInfo(startTime, endTime);
} }
/**
* 获取扣车单位和具体数量
* @author 小李
* @date 10:46 2024/9/5
**/
@Override
public List<BuckleVO> listBuckle(){
// 查类型是扣车的订单数据分组聚合求总数(查询条件是写死的)
List<BuckleVO> buckleVOS = baseMapper.listBuckle();
// 因为一些奇奇怪怪的原因可能会出现没id的情况那就算在其他里面去
buckleVOS.forEach(item -> {
if (ObjectUtil.isEmpty(item.getId())){
item.setId(0);
item.setBuckleName("其他");
}
});
return buckleVOS;
}
} }

View File

@ -0,0 +1,21 @@
package cn.iocoder.yudao.module.rescue.vo;
import lombok.Data;
/**
* 用于获取扣车单位和扣车数量
* @author 小李
* @date 10:47 2024/9/5
**/
@Data
public class BuckleVO {
/** 扣车单位的ID(部门ID) */
private Integer id;
/** 扣车方名称 */
private String buckleName;
/** 扣车数量 */
private Integer buckleCount;
}

View File

@ -89,6 +89,9 @@
<if test="map.rescueStart != null and map.rescueEnd != null">and rescue_time between <if test="map.rescueStart != null and map.rescueEnd != null">and rescue_time between
concat(#{map.rescueStart},' 00:00:00') and concat(#{map.rescueEnd},' 23:59:59') concat(#{map.rescueStart},' 00:00:00') and concat(#{map.rescueEnd},' 23:59:59')
</if> </if>
<if test="map.deptId != null">
and if(#{map.deptId} = 0,ri.dept_id is null, ri.dept_id = #{map.deptId} )
</if>
order by ri.create_time desc order by ri.create_time desc
</select> </select>
@ -359,4 +362,17 @@
ORDER BY rescueNum desc ORDER BY rescueNum desc
</select> </select>
<select id="listBuckle" resultType="cn.iocoder.yudao.module.rescue.vo.BuckleVO">
SELECT sd.id,
sd.name AS buckle_name,
t1.buckle_count
FROM
(SELECT dept_id,
count(*) AS buckle_count
FROM rescue_info
WHERE rescue_type = '5'
GROUP BY dept_id) t1
LEFT JOIN system_dept sd ON t1.dept_id = sd.id
ORDER BY sd.id desc
</select>
</mapper> </mapper>