Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
nyoung 2024-12-23 12:23:45 +08:00
commit 29aa2a2a4a
57 changed files with 1818 additions and 421 deletions

View File

@ -32,14 +32,12 @@ public class PropertyPosController {
@PostMapping("/create")
@Operation(summary = "创建企业管理-资产存放位置")
@PreAuthorize("@ss.hasPermission('company:property-pos:create')")
public CommonResult<String> createPropertyPos(@RequestBody PropertyPosReqVO createReqVO) {
return success(propertyPosService.createPropertyPos(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新企业管理-资产存放位置")
@PreAuthorize("@ss.hasPermission('company:property-pos:update')")
public CommonResult<Boolean> updatePropertyPos(@RequestBody PropertyPosReqVO updateReqVO) {
propertyPosService.updatePropertyPos(updateReqVO);
return success(true);
@ -48,7 +46,6 @@ public class PropertyPosController {
@DeleteMapping("/delete")
@Operation(summary = "删除企业管理-资产存放位置")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('company:property-pos:delete')")
public CommonResult<Boolean> deletePropertyPos(@RequestParam("id") String id) {
propertyPosService.deletePropertyPos(id);
return success(true);
@ -57,7 +54,6 @@ public class PropertyPosController {
@GetMapping("/get")
@Operation(summary = "获得企业管理-资产存放位置")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('company:property-pos:query')")
public CommonResult<PropertyPosRespVO> getPropertyPos(@RequestParam("id") String id) {
PropertyPos propertyPos = propertyPosService.getPropertyPos(id);
return success(BeanUtils.toBean(propertyPos, PropertyPosRespVO.class));
@ -65,7 +61,6 @@ public class PropertyPosController {
@GetMapping("/page")
@Operation(summary = "获得企业管理-资产存放位置分页")
@PreAuthorize("@ss.hasPermission('company:property-pos:query')")
public CommonResult<IPage<?>> getPropertyPosPage(PropertyPosReqVO pageReqVO,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
@ -81,7 +76,6 @@ public class PropertyPosController {
**/
@GetMapping("/list")
@Operation(summary = "获得企业管理-资产存放位置列表")
@PreAuthorize("@ss.hasPermission('company:property-pos:query')")
public CommonResult<List<?>> getPropertyPosList() {
return success(propertyPosService.list());
}
@ -94,7 +88,6 @@ public class PropertyPosController {
**/
@GetMapping("/listByCorpId")
@Operation(summary = "获得企业管理-资产存放位置列表")
@PreAuthorize("@ss.hasPermission('company:property-deal:query')")
public CommonResult<List<PropertyPos>> getPositionByCorpId(String id){
return success(propertyPosService.list(new LambdaQueryWrapper<PropertyPos>().eq(PropertyPos::getCorpId, id)));
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.staff.controller.admin;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
@ -15,6 +16,8 @@ import cn.iocoder.yudao.module.staff.vo.CompanyStaffReqVO;
import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO;
import cn.iocoder.yudao.module.staff.vo.StaffLoginBody;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthLoginReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.auth.AdminAuthService;
@ -40,6 +43,7 @@ import java.util.List;
import java.util.Map;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -63,6 +67,8 @@ public class CompanyStaffController {
private AdminAuthService loginService;
@Autowired
private ApiAppLoginService apiAppLoginService;
@Resource
private AdminUserApi adminUserApi;
/**
* 分页查询
@ -98,6 +104,19 @@ public class CompanyStaffController {
return CommonResult.ok();
}
/**
* 创建修改员工信息在角色和用户已经存在的情况下用
*
* @author 小李
* @date 17:26 2024/12/19
* @param staffRespVO 信息
**/
@PostMapping("/updateByExistUser")
public CommonResult<?> updateByExistUser(@RequestBody CompanyStaffRespVO staffRespVO){
staffService.updateByExistUser(staffRespVO);
return CommonResult.ok();
}
/**
* 修改员工
*
@ -326,4 +345,25 @@ public class CompanyStaffController {
return error(2_002_000_005,e.getMessage());
}
}
/**
* 根据用户ID获取信息
*
* @author 小李
* @date 15:12 2024/12/18
* @param id 用户ID
**/
@GetMapping("/getByUserId")
public CommonResult<?> getByUserId(@RequestParam("id")Long id){
Map<String, Object> map = new HashMap<>();
List<CompanyStaff> list = staffService.list(new LambdaQueryWrapper<CompanyStaff>().eq(CompanyStaff::getUserId, id));
if (CollUtil.isNotEmpty(list)){
map.put("staff", list.get(0));
}
AdminUserRespDTO user = adminUserApi.getUser(id);
if (ObjectUtil.isNotEmpty(user)){
map.put("user", user);
}
return success(map);
}
}

View File

@ -16,6 +16,7 @@ import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@ -110,4 +111,23 @@ public class CompanyStaff extends TenantBaseDO {
@TableField(exist = false)
@ExcelProperty("员工角色")
private String roleNames;
/** 身份证号 */
@ExcelProperty("身份证号")
private String IdNumber;
/** 转正时间 */
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ExcelProperty("转正时间")
private Date formalDate;
/** 购买保险时间 */
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ExcelProperty("购买保险时间")
private Date safeDate;
/** 附件的名称们手动填写逗号分隔没有也要占位和下面的urls对应 */
private String fileNames;
}

View File

@ -139,4 +139,14 @@ public interface CompanyStaffService extends IService<CompanyStaff> {
* @return cn.iocoder.yudao.module.staff.entity.CompanyStaff
**/
CompanyStaffRespVO getMyAdviser(Long tenantId,String sysCode);
/**
* 创建修改员工信息在角色和用户已经存在的情况下用
*
* @author 小李
* @date 17:26 2024/12/19
* @param staffRespVO 信息
**/
void updateByExistUser(CompanyStaffRespVO staffRespVO);
}

View File

@ -3,7 +3,9 @@ package cn.iocoder.yudao.module.staff.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.log.Log;
import cn.iocoder.yudao.common.*;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
@ -685,4 +687,45 @@ public class CompanyStaffServiceImpl extends ServiceImpl<CompanyStaffMapper, Com
// 啥也不是
return "";
}
/**
* 创建修改员工信息在角色和用户已经存在的情况下用
*
* @author 小李
* @date 17:26 2024/12/19
* @param staffRespVO 信息
**/
@Override
public void updateByExistUser(CompanyStaffRespVO staffRespVO){
if (ObjectUtil.isEmpty(staffRespVO.getId())){
AdminUserRespDTO loginUser = getLoginUser();
// 设置新增员工部门
staffRespVO.setDeptId(loginUser.getDeptId());
// 1 获取当前登录用户的企业信息给添加的员工
DeptRespDTO loginDept = getLoginDept(loginUser.getDeptId());
staffRespVO.setCorpId(loginDept.getCorpId());
// 2 生成唯一推广码
String uniqueCode = uniqueCodeService.createUniqueCode();
if (!ObjectUtil.isNotEmpty(uniqueCode)) {
throw exception(CommonErrorCodeConstants.UNIQUE_CODE_CREATE_REPEAT);
}
staffRespVO.setUniqueCode(uniqueCode);
// 3 保存员工信息到数据库
baseMapper.insert(staffRespVO);
}else {
AdminUserRespDTO user = adminUserApi.getUser(staffRespVO.getUserId());
AdminUserRespDTO newUser = new AdminUserRespDTO();
newUser.setId(user.getId());
if (!user.getUsername().equals(staffRespVO.getTel())){
newUser.setUsername(staffRespVO.getTel());
}
if (!user.getNickname().equals(staffRespVO.getName())){
newUser.setNickname(staffRespVO.getName());
}
if (ObjectUtil.isNotEmpty(newUser.getUsername()) || ObjectUtil.isNotEmpty(newUser.getNickname())){
adminUserApi.updateUser(newUser);
}
baseMapper.updateById(staffRespVO);
}
}
}

View File

@ -0,0 +1,107 @@
package cn.iocoder.yudao.common;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 检测相关和角色和其对应的权重
*
* 权重分配如下
* 检测业务管理员
* 检测站老板
* 检测官方
* 检测商户
* 经销商
* 合作商
* 引车员
* 环检员
* 外检员
* 外检底检
* 一审
* 环检预审
* 检测用户
* @author 小李
* @date 15:39 2024/12/15
**/
@AllArgsConstructor
@Getter
public enum InspectionRoleCommon {
/** 检测业务管理员 */
JIANCE("jiance", 1),
/** 站长 */
JCZZ("jczz", 1),
/** 检测站老板 */
JCBOSS("jcboss", 1),
/** 检测官方 */
JCGF("jcgf", 2),
/** 检测商户 */
JCSHOP("jcshop", 2),
/** 经销商 */
DEALERS("dealers", 2),
/** 合作商 */
PARTNERS("partners", 2),
/** 引车员 */
JCYCY("jcycy", 3),
/** 环检员 */
JCHJY("jchjy", 4),
/** 外检员 */
JCWJY("jcwjy", 4),
/** 外检底检 */
JCWJDJ("jcwjdj", 4),
/** 一审 */
JCYSZZ("jcyszz", 4),
/** 环检预审 */
JCHJYS("jchjys", 4),
/** 检测用户 */
JCYH("jcyh", 4),
/** 安检外检 */
JCAJWJ("jcajwj", 4),
/** 收费登录 */
JCSFDL("jcsfdl", 4),
/** 环检外检 */
JCHJWJ("jchjwj", 4),
/** 底盘检测 */
JCDPJC("jcdpjc", 4),
/** 环检操作 */
JCHJCZ("jchjcz", 4),
/** 检测总检 */
JCZJ("jczj", 4),
/** 检测资料管理员 */
JCZLGLY("jczlgly", 4),
/** 安全检验员 */
AQJYY("aqjyy", 4),
/** 授权签字人 */
JCSQQZR("jcsqqzr", 4),
/** 检测员工 */
JCWORKER("jcworker", 4);
/** 角色Code */
private final String code;
/** 角色权重 */
private final Integer weight;
}

View File

@ -164,6 +164,12 @@ public class AppNewsController extends BaseController {
inspectionNews.setPublishUnit(partners.getPartnerName());
}
if (ObjectUtil.isEmpty(inspectionNews.getType()) || inspectionNews.getType().equals("null")){
if (ObjectUtil.isNotEmpty(inspectionNews.getIfShow())){
inspectionNews.setType(inspectionNews.getIfShow().equals("01") ? "staff" : "user");
}
}
//判断是否为当前登录用户创建的
return toAjax(inspectionNewsService.insertInspectionNews(inspectionNews));
}
@ -314,5 +320,4 @@ public class AppNewsController extends BaseController {
IPage<InspectionNews> news = inspectionNewsService.msgList(page,partnerId);
return success(news);
}
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.inspection.controller;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.core.controller.BaseController;
import cn.iocoder.yudao.module.inspection.entity.InspectionFile;
@ -7,12 +8,14 @@ import cn.iocoder.yudao.module.inspection.service.AppInspectionPartnerService;
import cn.iocoder.yudao.module.inspection.service.IInspectionFileService;
import cn.iocoder.yudao.module.shop.entity.ShopMallPartners;
import cn.iocoder.yudao.util.ExcelUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* inspectionFileController
@ -105,4 +108,36 @@ public class InspectionFileController extends BaseController
}
return toAjax(inspectionFileService.deleteInspectionFileById(id));
}
/**
* 根据id统计数量
*
* @author 小李
* @date 14:30 2024/12/14
* @param ids ids
**/
@GetMapping("/getCountByIds")
public CommonResult<?> getCountByIds(@RequestParam(value = "ids" ,required = false) List<Long> ids) {
if (CollUtil.isEmpty(ids)){
return null;
}
return success(inspectionFileService.getCountByIds(ids));
}
/**
* 得到使用说明
*
* @author 小李
* @date 12:31 2024/12/17
**/
@GetMapping("/getPresent")
public CommonResult<?> getPresent(){
List<InspectionFile> files = inspectionFileService.list(new LambdaQueryWrapper<InspectionFile>().eq(InspectionFile::getFileName, "使用说明"));
if (CollUtil.isEmpty(files)){
return null;
}
InspectionFile inspectionFile = files.get(0);
return success(inspectionFile);
}
}

View File

@ -275,6 +275,32 @@ public class InspectionInfoController extends BaseController {
public CommonResult isExamine(){
return success(inspectionInfoService.isExamine());
}
/**
* 获取某个工单针对当前操作用户某个状态的项目们
*
* @author 小李
* @date 10:48 2024/12/11
* @param id 工单ID
* @param status 状态
* @param flag 状态字段是否生效默认生效
**/
@GetMapping("/getWorkNodeByIdAndNow")
public CommonResult<?> getWorkNodeByIdAndNow(Long id, String status, @RequestParam(value = "flag", defaultValue = "true") Boolean flag){
return success(inspectionInfoService.getWorkNodeByIdAndNow(id, status, flag));
}
/**
* 判断是否可以修改引车员
*
* @author 小李
* @date 15:22 2024/12/11
* @param id 工单ID
**/
@GetMapping("/judgeUpdateLeadMan")
public CommonResult<?> judgeUpdateLeadMan(Long id){
return success(inspectionInfoService.judgeUpdateLeadMan(id));
}
/**
* 判断当前登陆人是否有重检重审退办理的权限app
* @return
@ -333,4 +359,15 @@ public class InspectionInfoController extends BaseController {
String name = inspectionInfoService.easyPoiExport("template/word/四川省超标排放汽车维护修理告知书.docx", str, map, request, response);
return CommonResult.success(name);
}
/**
* 获得不同状态的数据的数量
*
* @author 小李
* @date 16:22 2024/12/18
**/
@GetMapping("/getCountByType")
public CommonResult<?> getCountByType(@RequestParam("partnerId")Integer partnerId){
return success(inspectionInfoService.getCountByType(partnerId));
}
}

View File

@ -1,11 +1,18 @@
package cn.iocoder.yudao.module.inspection.controller;
import java.util.List;
import java.util.stream.Collectors;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.inspection.entity.InspectionNews;
import cn.iocoder.yudao.module.inspection.service.IInspectionNewsService;
import cn.iocoder.yudao.module.shop.entity.ShopMallPartners;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.system.api.permission.RoleApi;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.security.access.prepost.PreAuthorize;
@ -13,6 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import cn.iocoder.yudao.module.core.controller.BaseController;
import javax.annotation.Resource;
/**
* 请填写功能名称Controller
*
@ -26,6 +35,15 @@ public class InspectionNewsController extends BaseController
@Autowired
private IInspectionNewsService inspectionNewsService;
@Resource
private DictDataApi dataApi;
@Resource
private PermissionApi permissionApi;
@Resource
private RoleApi roleApi;
/**
* 查询请填写功能名称列表
*/
@ -63,4 +81,22 @@ public class InspectionNewsController extends BaseController
{
return toAjax(inspectionNewsService.deleteInspectionNewsByIds(ids));
}
/**
* 验证当前登录用户是否可以发布通知
*
* @author 小李
* @date 16:00 2024/12/18
**/
@GetMapping("/ifSend")
public CommonResult<?> ifSend(){
List<DictDataRespDTO> dataList = dataApi.getDictDataList("ins_send_news");
List<String> values = dataList.stream().map(DictDataRespDTO::getValue).collect(Collectors.toList());
List<Long> roleIds = permissionApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId());
List<RoleReqDTO> roles = roleApi.getRoleList();
List<RoleReqDTO> role = roles.stream().filter(item -> roleIds.contains(item.getId())).collect(Collectors.toList());
List<String> codes = role.stream().map(RoleReqDTO::getCode).collect(Collectors.toList());
List<String> collect = codes.stream().filter(values::contains).collect(Collectors.toList());
return success(!collect.isEmpty());
}
}

View File

@ -0,0 +1,139 @@
package cn.iocoder.yudao.module.inspection.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.common.InspectionRoleCommon;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.inspection.entity.InspectionEquInfo;
import cn.iocoder.yudao.module.inspection.entity.InspectionFile;
import cn.iocoder.yudao.module.inspection.service.IInspectionEquInfoService;
import cn.iocoder.yudao.module.inspection.service.IInspectionFileService;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.system.api.permission.RoleApi;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
* 检测用的工具Controller
*
* @author 小李
* @date 15:36 2024/12/15
**/
@RestController
@RequestMapping("/admin-api/inspection/util")
public class InspectionUtilController {
@Resource
private PermissionApi permissionApi;
@Resource
private RoleApi roleApi;
@Resource
private IInspectionEquInfoService equInfoService;
@Resource
private IInspectionFileService fileService;
/**
* 根据用户取出当前用户的角色只针对检测
*
* @author 小李
* @date 15:15 2024/12/15
**/
@GetMapping("/getRoleName")
public CommonResult<?> getRoleName() {
String name = "未知岗位";
List<Long> roleIdsByUserId = permissionApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId());
if (CollUtil.isEmpty(roleIdsByUserId)) {
return success(name);
}
List<RoleReqDTO> roleList = roleApi.getRoleList();
List<RoleReqDTO> roles = roleList.stream().filter(item -> roleIdsByUserId.contains(item.getId())).collect(Collectors.toList());
List<InspectionRoleCommon> roleCommons = Arrays.asList(InspectionRoleCommon.values());
List<String> codes = roleCommons.stream().map(InspectionRoleCommon::getCode).collect(Collectors.toList());
List<RoleReqDTO> inspectionRoles = roles.stream().filter(item -> codes.contains(item.getCode())).collect(Collectors.toList());
if (CollUtil.isEmpty(inspectionRoles)) {
return success(name);
}
Integer index = Integer.MAX_VALUE;
for (RoleReqDTO inspectionRole : inspectionRoles) {
InspectionRoleCommon inspectionRoleCommon = InspectionRoleCommon.valueOf(inspectionRole.getCode().toUpperCase());
if (ObjectUtil.isEmpty(inspectionRoleCommon)) {
continue;
}
Integer weight = inspectionRoleCommon.getWeight();
if (weight < index) {
index = weight;
name = inspectionRole.getName();
}
}
return success(name);
}
@GetMapping("/getTypeCount")
public CommonResult<?> getTypeCount(@RequestParam("partnerId") Long partnerId) {
Map<String, Long> map = new HashMap<>();
Long staffCount = roleApi.selectListByRoleId();
map.put("staff", staffCount);
Page<InspectionEquInfo> page = new Page<>(1, 1000);
IPage<InspectionEquInfo> equs = equInfoService.selectInspectionEquInfoList(page, new InspectionEquInfo());
map.put("equ", equs.getTotal());
long fileCount = fileService.count(new LambdaQueryWrapper<InspectionFile>().eq(InspectionFile::getType, "2"));
map.put("file", fileCount);
return success(map);
}
@GetMapping("/getRoleNameByIds")
public CommonResult<?> getRoleNameByIds(@RequestParam("ids") List<Long> ids) {
Map<Long, List<Long>> idToRoleIds = ids.stream().collect(Collectors.toMap(id -> id, id -> permissionApi.getRoleIdsByUserId(id)));
if (CollUtil.isEmpty(idToRoleIds)){
return null;
}
List<RoleReqDTO> roleList = roleApi.getRoleList();
List<InspectionRoleCommon> roleCommons = Arrays.asList(InspectionRoleCommon.values());
List<String> codes = roleCommons.stream().map(InspectionRoleCommon::getCode).collect(Collectors.toList());
return success(idToRoleIds.entrySet().stream().collect(Collectors.toMap(
Map.Entry::getKey,
item -> {
String name = "未知岗位";
if (CollUtil.isEmpty(item.getValue())){
return name;
}
List<RoleReqDTO> roles = roleList.stream().filter(i -> item.getValue().contains(i.getId())).collect(Collectors.toList());
if (CollUtil.isEmpty(roles)) {
return name;
}
List<RoleReqDTO> inspectionRoles = roles.stream().filter(i -> codes.contains(i.getCode())).collect(Collectors.toList());
if (CollUtil.isEmpty(inspectionRoles)){
return name;
}
Integer index = Integer.MAX_VALUE;
for (RoleReqDTO inspectionRole : inspectionRoles) {
InspectionRoleCommon inspectionRoleCommon = InspectionRoleCommon.valueOf(inspectionRole.getCode().toUpperCase());
if (ObjectUtil.isEmpty(inspectionRoleCommon)) {
continue;
}
Integer weight = inspectionRoleCommon.getWeight();
if (weight < index) {
index = weight;
name = inspectionRole.getName();
}
}
return name;
})));
}
}

View File

@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.inspection.vo.SysDictData;
import cn.iocoder.yudao.module.inspection.vo.*;
import cn.iocoder.yudao.module.label.vo.LabelRespVO;
import cn.iocoder.yudao.module.partner.entity.PartnerBalanceDetail;
import cn.iocoder.yudao.module.partner.entity.PartnerWorker;
@ -29,21 +29,19 @@ import com.github.pagehelper.PageHelper;
import cn.iocoder.yudao.module.core.controller.BaseController;
import cn.iocoder.yudao.module.inspection.entity.*;
import cn.iocoder.yudao.module.inspection.service.AppInspectionPartnerService;
import cn.iocoder.yudao.module.inspection.vo.GoodsVo;
import cn.iocoder.yudao.module.inspection.vo.InspectionInfoVo;
import cn.iocoder.yudao.module.inspection.vo.OrderAppDetail;
import cn.iocoder.yudao.module.shop.entity.ShopCouponTemplate;
import cn.iocoder.yudao.module.shop.entity.ShopMallPartners;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/admin-api/partnerOwn/partner")
public class PartnerOwnController extends BaseController {
public class PartnerOwnController extends BaseController {
@Autowired
private AppInspectionPartnerService partnerList;
@Autowired
@ -60,12 +58,12 @@ public class PartnerOwnController extends BaseController {
*/
@GetMapping("/shopInfo")
public CommonResult shopInfo() throws Exception {
return success(partnerList.shopInfo());
return success(partnerList.shopInfo());
}
@GetMapping("/shopInfoByUserId")
public CommonResult shopInfoByUserId() throws Exception {
return success(partnerList.shopInfoByUserId());
return success(partnerList.shopInfoByUserId());
}
/**
@ -73,7 +71,7 @@ public class PartnerOwnController extends BaseController {
*/
@GetMapping("/getAppointAndPickNum")
public CommonResult getAppointAndPickNum() throws Exception {
return success(partnerList.getAppointAndPickNum());
return success(partnerList.getAppointAndPickNum());
}
@ -81,127 +79,126 @@ public class PartnerOwnController extends BaseController {
* 开始或者停止营业
*/
@PostMapping("/startOrEnd")
public CommonResult startOrEnd(Long partnerId)
{
public CommonResult startOrEnd(Long partnerId) {
partnerList.startOrEnd(partnerId);
return success();
return success();
}
/**
* 首页 顶部数据统计
*/
@GetMapping("/statisticsInfo")
public CommonResult statisticsInfo()
{
return success(partnerList.statisticsInfo(null));
public CommonResult statisticsInfo() {
return success(partnerList.statisticsInfo(null));
}
/**
* 检测线图
*/
@GetMapping("/chartInfoAmount")
public CommonResult chartInfoAmount(Long partnerId,String unit)
{
return success(partnerList.chartInfoAmount(partnerId, unit));
public CommonResult chartInfoAmount(Long partnerId, String unit) {
return success(partnerList.chartInfoAmount(partnerId, unit));
}
/**
* 新检测线图
*/
@GetMapping("/newChartInfoAmount")
public CommonResult newChartInfoAmount(String unit)
{
return success(partnerList.newChartInfoAmount(unit));
public CommonResult newChartInfoAmount(String unit) {
return success(partnerList.newChartInfoAmount(unit));
}
/**staticsTable1
/**
* staticsTable1
* 检测数量折线图
*/
@GetMapping("/chartLineInspectionNum")
public CommonResult chartLineInspectionNum(Long partnerId,String unit)
{
return success(partnerList.chartLineInspectionNum(partnerId, unit));
public CommonResult chartLineInspectionNum(Long partnerId, String unit) {
return success(partnerList.chartLineInspectionNum(partnerId, unit));
}
/**staticsTable1
/**
* staticsTable1
* 新检测数量折线图
*/
@GetMapping("/newChartLineInspectionNum")
public CommonResult newChartLineInspectionNum(String unit)
{
return success(partnerList.newChartLineInspectionNum(unit));
public CommonResult newChartLineInspectionNum(String unit) {
return success(partnerList.newChartLineInspectionNum(unit));
}
/**
* 检测金额折线图
*/
@GetMapping("/chartLineInspectionAmount")
public CommonResult chartLineInspectionAmount(Long partnerId,String unit)
{
return success(partnerList.chartLineInspectionAmount(partnerId, unit));
public CommonResult chartLineInspectionAmount(Long partnerId, String unit) {
return success(partnerList.chartLineInspectionAmount(partnerId, unit));
}
/**
* 新检测金额折线图
*/
@GetMapping("/newChartLineInspectionAmount")
public CommonResult newChartLineInspectionAmount(String unit)
{
return success(partnerList.newChartLineInspectionAmount(unit));
public CommonResult newChartLineInspectionAmount(String unit) {
return success(partnerList.newChartLineInspectionAmount(unit));
}
/**
* 检测线图
*/
@GetMapping("/chartInfoNum")
public CommonResult chartInfoNum(Long partnerId,String unit)
{
return success(partnerList.chartInfoNum(partnerId, unit));
public CommonResult chartInfoNum(Long partnerId, String unit) {
return success(partnerList.chartInfoNum(partnerId, unit));
}
/**
* 新检测线图
*/
@GetMapping("/newChartInfoNum")
public CommonResult newChartInfoNum(String unit)
{
return success(partnerList.newChartInfoNum( unit));
public CommonResult newChartInfoNum(String unit) {
return success(partnerList.newChartInfoNum(unit));
}
/**
* 检测线图
*/
@GetMapping("/chartInfoRatio")
public CommonResult chartInfoRatio(Long partnerId,String unit) throws Exception {
public CommonResult chartInfoRatio(Long partnerId, String unit) throws Exception {
if (ObjectUtil.isNull(partnerId)) {
partnerId = partnerList.shopInfoByUserId().getPartnerId();
}
return success(partnerList.chartInfoRatio(partnerId, unit));
return success(partnerList.chartInfoRatio(partnerId, unit));
}
/**
* 新检测线图
*/
@GetMapping("/newChartInfoRatio")
public CommonResult newChartInfoRatio(String unit)
{
return success(partnerList.newChartInfoRatio(unit));
public CommonResult newChartInfoRatio(String unit) {
return success(partnerList.newChartInfoRatio(unit));
}
/**
* 首页 订单信息
*/
@GetMapping("/orderInfo")
public CommonResult orderInfo(Long partnerId)
{
return success(partnerList.orderInfo(partnerId));
public CommonResult orderInfo(Long partnerId) {
return success(partnerList.orderInfo(partnerId));
}
/**
* 热销商品列表
*/
@GetMapping("/hotGoodsList")
public CommonResult hotGoodsList(Long partnerId)
{
return success(partnerList.hotGoodsList(partnerId));
public CommonResult hotGoodsList(Long partnerId) {
return success(partnerList.hotGoodsList(partnerId));
}
/**
* 热销商品列表
*/
@GetMapping("/newHotGoodsList")
public CommonResult newHotGoodsList()
{
return success(partnerList.newHotGoodsList());
public CommonResult newHotGoodsList() {
return success(partnerList.newHotGoodsList());
}
@ -211,57 +208,56 @@ public class PartnerOwnController extends BaseController {
* @return 所有数据
*/
@GetMapping("/categoryList")
public CommonResult categoryList(Long partnerId)
{
public CommonResult categoryList(Long partnerId) {
return success( partnerList.categoryList(partnerId));
return success(partnerList.categoryList(partnerId));
}
/**
* 发布商品
*/
@PostMapping("/addGoods")
public CommonResult addGoods(@RequestBody ShopInspectionGoods goods) throws Exception {
partnerList.addGoods(goods);
return success();
return success();
}
/**
* 商品管理列表
*/
@GetMapping("/goodsList")
public CommonResult goodsList(Long partnerId,String isListing,String goodsTitle,
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize)
{
public CommonResult goodsList(Long partnerId, String isListing, String goodsTitle,
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
ShopMallPartners partners = partnerList.getById(partnerId);
if (!partners.getUserId().equals(user.getId())){
if (!partners.getUserId().equals(user.getId())) {
return null;
}
Page<GoodsVo> page = new Page<>(pageNum, pageSize);
IPage<GoodsVo> list = partnerList.goodsList(page,partnerId, isListing, goodsTitle);
IPage<GoodsVo> list = partnerList.goodsList(page, partnerId, isListing, goodsTitle);
return success(list);
}
/**
* 商品管理列表
*/
@GetMapping("/canUsegoods")
public CommonResult canUseGoods(Long partnerId)
{
public CommonResult canUseGoods(Long partnerId) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
ShopMallPartners partners = partnerList.getById(partnerId);
if (!partners.getUserId().equals(user.getId())){
if (!partners.getUserId().equals(user.getId())) {
return null;
}
return success(partnerList.canUseGoods(partnerId));
}
/**
* 商品详细信息
*/
@GetMapping("/goodsDetail")
public CommonResult goodsDetail(Long goodsId)
{
return success(partnerList.goodsDetail(goodsId));
public CommonResult goodsDetail(Long goodsId) {
return success(partnerList.goodsDetail(goodsId));
}
/**
@ -270,55 +266,56 @@ public class PartnerOwnController extends BaseController {
@PostMapping("/editGoods")
public CommonResult editGoods(@RequestBody ShopInspectionGoods goods) throws Exception {
partnerList.editGoods(goods);
return success();
return success();
}
@PostMapping("/editSkuPrice")
public CommonResult editSkuPrice(@RequestBody ShopInspectionGoods goods) throws Exception {
partnerList.editSkuPrice(goods);
return success();
return success();
}
/**
* 上下架
*/
@PostMapping("/changeListing")
public CommonResult changeListing(Long goodsId) throws Exception {
partnerList.changeListing(goodsId);
return success();
return success();
}
/**
* 删除商品
*/
@PostMapping("/delGoods")
public CommonResult delGoods(Long goodsId) throws Exception {
partnerList.delGoods(goodsId);
return success();
return success();
}
/**
* 管理店铺信息
*/
@PostMapping("/getPartnerInfo")
public CommonResult getPartnerInfo(Long partnerId)
{
return success(partnerList.getPartnerInfo(partnerId));
public CommonResult getPartnerInfo(Long partnerId) {
return success(partnerList.getPartnerInfo(partnerId));
}
/**
* 管理店铺信息
*/
@PostMapping("/editPartnerInfo")
public CommonResult editPartnerInfo(@RequestBody ShopMallPartners partners)
{
public CommonResult editPartnerInfo(@RequestBody ShopMallPartners partners) {
partnerList.editPartnerInfo(partners);
return success();
return success();
}
/**
* 店铺账户信息
*/
@GetMapping("/accountInfo")
public CommonResult accountInfo(Long partnerId)
{
return success(partnerList.accountInfo(partnerId));
public CommonResult accountInfo(Long partnerId) {
return success(partnerList.accountInfo(partnerId));
}
/**
@ -326,69 +323,69 @@ public class PartnerOwnController extends BaseController {
*/
@GetMapping("/accountDetail")
public CommonResult accountDetail(Long partnerId,
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize)
{
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
Page<PartnerBalanceDetail> page = new Page<>(pageNum, pageSize);
IPage<PartnerBalanceDetail> details = partnerList.accountDetail(page,partnerId,pageNum,pageSize);
IPage<PartnerBalanceDetail> details = partnerList.accountDetail(page, partnerId, pageNum, pageSize);
return success(details);
}
/**
* 当前店铺的订单信息
*/
@GetMapping("/orderList")
public CommonResult orderList(Long partnerId,String phoneNum, String title,
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize)
{
public CommonResult orderList(Long partnerId, String phoneNum, String title,
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
ShopMallPartners partnersTmp = partnerList.getById(partnerId);
if (!partnersTmp.getUserId().equals(user.getId())){
if (!partnersTmp.getUserId().equals(user.getId())) {
return null;
}
Page<OrderAppDetail> page = new Page<>(pageNum, pageSize);
IPage<OrderAppDetail> orderInfos = partnerList.orderList(page,partnerId,phoneNum, title);
IPage<OrderAppDetail> orderInfos = partnerList.orderList(page, partnerId, phoneNum, title);
return success(orderInfos);
}
/**
* 通过核销码获取订单信息
*/
@GetMapping("/orderDetailByCode")
public CommonResult orderDetailByCode(Long partnerId,String code) throws Exception {
Long orderId = partnerList.orderDetailByCode(partnerId,code);
return success(orderId);
public CommonResult orderDetailByCode(Long partnerId, String code) throws Exception {
Long orderId = partnerList.orderDetailByCode(partnerId, code);
return success(orderId);
}
/**
* 当前的订单信息
*/
@GetMapping("/orderDetail")
public CommonResult orderDetail(Long partnerId, Long orderId)
{
OrderAppDetail orderInfos = partnerList.orderDetail(partnerId,orderId);
return success(orderInfos);
public CommonResult orderDetail(Long partnerId, Long orderId) {
OrderAppDetail orderInfos = partnerList.orderDetail(partnerId, orderId);
return success(orderInfos);
}
/**
* 店铺核销功能
*/
@PostMapping("/takeOut")
public CommonResult takeOut(Long partnerId,Long orderId,Long workId,String carNum) throws Exception {
partnerList.takeOut(partnerId,orderId,workId,carNum);
return success();
public CommonResult takeOut(Long partnerId, Long orderId, Long workId, String carNum) throws Exception {
partnerList.takeOut(partnerId, orderId, workId, carNum);
return success();
}
@PostMapping("/addWorker")
public CommonResult addWorker(Long partnerId,String realName,String phoneNum,Long postId) throws Exception {
partnerList.addWorker(partnerId,realName,phoneNum,postId);
return success();
@PostMapping("/addWorker")
public CommonResult addWorker(Long partnerId, String realName, String phoneNum, Long postId) throws Exception {
partnerList.addWorker(partnerId, realName, phoneNum, postId);
return success();
}
/**
* 获取员工信息
*/
@GetMapping("/getWorkList")
public CommonResult<IPage<?>> getWorkList(Long partnerId, String workName, String phoneNum, Long postId, Integer pageNum, Integer pageSize)
{
public CommonResult<IPage<?>> getWorkList(Long partnerId, String workName, String phoneNum, Long postId, Integer pageNum, Integer pageSize) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
// ShopMallPartners partnersTmp = partnerList.getById(partnerId);
// if (!partnersTmp.getUserId().equals(user.getId())){
@ -406,23 +403,23 @@ public class PartnerOwnController extends BaseController {
}
@PostMapping("/delWorker")
public CommonResult delWorker(Long partnerId,String workIdStr) {
public CommonResult delWorker(Long partnerId, String workIdStr) {
String[] workIds = workIdStr.split(",");
for (String workId : workIds) {
partnerList.delWorker(partnerId,Long.parseLong(workId));
partnerList.delWorker(partnerId, Long.parseLong(workId));
}
return success();
return success();
}
//获取检测的数据
@GetMapping("/inspectionList")
public CommonResult inspectionList(Long partnerId,String status,String carNum,Integer pageSize,Integer pageNum) throws Exception {
public CommonResult inspectionList(Long partnerId, String status, String carNum, Integer pageSize, Integer pageNum) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
if (!partnerId.equals(partners.getPartnerId())){
if (!partnerId.equals(partners.getPartnerId())) {
return null;
}
Page<InspectionInfo> page = new Page<>(pageNum,pageSize);
IPage<InspectionInfo> inspectionInfos = partnerList.inspectionList(page,partnerId, status, carNum);
Page<InspectionInfo> page = new Page<>(pageNum, pageSize);
IPage<InspectionInfo> inspectionInfos = partnerList.inspectionList(page, partnerId, status, carNum);
return success(inspectionInfos);
}
@ -434,59 +431,63 @@ public class PartnerOwnController extends BaseController {
//获取检测的数据
@GetMapping("/workerInspectionList")
public CommonResult workerInspectionList(Long partnerId,String status,String searchValue,Integer pageSize,Integer pageNum) {
public CommonResult workerInspectionList(Long partnerId, String status, String searchValue, Integer pageSize, Integer pageNum) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
LambdaQueryWrapper<PartnerWorker> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(PartnerWorker::getUserId,user.getId()).eq(PartnerWorker::getPartnerId,partnerId);
LambdaQueryWrapper<PartnerWorker> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PartnerWorker::getUserId, user.getId()).eq(PartnerWorker::getPartnerId, partnerId);
PartnerWorker worker = partnerWorkerService.getOne(queryWrapper);
if (ObjectUtil.isEmpty(worker)){
if (ObjectUtil.isEmpty(worker)) {
return null;
}
Page<InspectionInfo> page = new Page<>(pageNum,pageSize);
IPage<InspectionInfo> inspectionInfos = partnerList.inspectionList(page,partnerId, status, searchValue);
Page<InspectionInfo> page = new Page<>(pageNum, pageSize);
IPage<InspectionInfo> inspectionInfos = partnerList.inspectionList(page, partnerId, status, searchValue);
return success(inspectionInfos);
}
//增加检测步骤信息
@PostMapping("/addStepInfo")
public CommonResult addStepInfo(@RequestBody InspectionStepInfo stepInfo) {
partnerList.addStepInfo(stepInfo);
return success();
}
//增加检测结果
@PostMapping("/stopInspection")
public CommonResult editInspection(@RequestBody InspectionInfo info) throws Exception {
partnerList.stopInspection(info);
return success();
}
//完成制证
@PostMapping("/makeCertOk")
public CommonResult makeCertOk(Long inspectionId) {
partnerList.makeCertOk(inspectionId);
return success();
}
//获取到店预约的数据
@GetMapping("/getAppointmentList")
public CommonResult getAppointmentList(Long partnerId,String phoneNum,Integer pageSize,Integer pageNum) {
public CommonResult getAppointmentList(Long partnerId, String phoneNum, Integer pageSize, Integer pageNum) {
// LoginUser user = SecurityFrameworkUtils.getLoginUser();
// ShopMallPartners partnersTmp = partnerList.getById(partnerId);
// if (!partnersTmp.getUserId().equals(user.getId())){
// return null;
// }
Page<InspectionAppointment> page = new Page<>(pageNum,pageSize);
IPage<InspectionAppointment> appointments = partnerList.getAppointmentList(page,partnerId,phoneNum);
Page<InspectionAppointment> page = new Page<>(pageNum, pageSize);
IPage<InspectionAppointment> appointments = partnerList.getAppointmentList(page, partnerId, phoneNum);
return success(appointments);
}
//获取上门取车数据
@GetMapping("/getPickCarList")
public CommonResult getPickCarList(Long partnerId,String phoneNum,String pickStatus,Integer pageSize,Integer pageNum) {
public CommonResult getPickCarList(Long partnerId, String phoneNum, String pickStatus, Integer pageSize, Integer pageNum) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
// ShopMallPartners partnersTmp = partnerList.getById(partnerId);
// if (!partnersTmp.getUserId().equals(user.getId())){
// return null;
// }
Page<InspectionPickCar> page = new Page<>(pageNum,pageSize);
IPage<InspectionPickCar> pickCarList = partnerList.getPickCarList(page,partnerId,phoneNum,pickStatus);
Page<InspectionPickCar> page = new Page<>(pageNum, pageSize);
IPage<InspectionPickCar> pickCarList = partnerList.getPickCarList(page, partnerId, phoneNum, pickStatus);
return success(pickCarList);
}
@ -499,16 +500,16 @@ public class PartnerOwnController extends BaseController {
// 核销记录By核销人Id
@GetMapping("/validationList")
public CommonResult validationList(Long partnerId,String searchValue,
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize) {
public CommonResult validationList(Long partnerId, String searchValue,
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
ShopMallPartners partnersTmp = partnerList.getById(partnerId);
if (!partnersTmp.getUserId().equals(user.getId())){
if (!partnersTmp.getUserId().equals(user.getId())) {
return null;
}
Page<OrderInfo> page = new Page<>(pageNum, pageSize);
IPage<OrderInfo> orderInfos = partnerList.validationList(page,partnerId,searchValue);
IPage<OrderInfo> orderInfos = partnerList.validationList(page, partnerId, searchValue);
return success(orderInfos);
}
@ -521,37 +522,38 @@ public class PartnerOwnController extends BaseController {
//优惠券列表
@GetMapping("/listCoupon")
public CommonResult listCoupon(Long partnerId,String searchValue,
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize){
public CommonResult listCoupon(Long partnerId, String searchValue,
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
ShopMallPartners partnersTmp = partnerList.getById(partnerId);
if (!partnersTmp.getUserId().equals(user.getId())){
if (!partnersTmp.getUserId().equals(user.getId())) {
return success(new ArrayList<>());
}
Page<ShopCouponTemplate> page = new Page<>(pageNum, pageSize);
IPage<ShopCouponTemplate> shopCouponTemplates = partnerList.listCoupon(page,partnerId, searchValue);
IPage<ShopCouponTemplate> shopCouponTemplates = partnerList.listCoupon(page, partnerId, searchValue);
return success(shopCouponTemplates);
}
//删除优惠券
@PostMapping("/delCoupon")
public CommonResult delCoupon(Long partnerId,Long id){
partnerList.delCoupon(partnerId,id);
public CommonResult delCoupon(Long partnerId, Long id) {
partnerList.delCoupon(partnerId, id);
return success();
}
//指派工人上门取车
@PostMapping("/designatePickCarWorker")
public CommonResult designatePickCarWorker(Long pickCarId,Long workerId){
partnerList.designatePickCarWorker(pickCarId,workerId);
public CommonResult designatePickCarWorker(Long pickCarId, Long workerId) {
partnerList.designatePickCarWorker(pickCarId, workerId);
return success();
}
//获取上门取车数据
@GetMapping("/getPickCarListOfWorker")
public CommonResult getPickCarListOfWorker(Long partnerId,String phoneNum,
@RequestParam(value = "pageNum" ,required = false ,defaultValue = "1") Integer pageNum,
@RequestParam(value ="pageSize" ,required = false ,defaultValue = "10") Integer pageSize) {
public CommonResult getPickCarListOfWorker(Long partnerId, String phoneNum,
@RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
// .eq(PartnerWorker::getUserId,user.getId())
// LambdaQueryWrapper<PartnerWorker> queryWrapper =new LambdaQueryWrapper<>();
@ -561,7 +563,7 @@ public class PartnerOwnController extends BaseController {
// return null;
// }
Page<InspectionPickCar> page = new Page<>(pageNum, pageSize);
IPage<InspectionPickCar> pickCarList = partnerList.getPickCarListOfWorker(page,user.getId(),phoneNum);
IPage<InspectionPickCar> pickCarList = partnerList.getPickCarListOfWorker(page, user.getId(), phoneNum);
return success(pickCarList);
}
@ -569,22 +571,22 @@ public class PartnerOwnController extends BaseController {
@GetMapping("/getCustomerSource")
public CommonResult getCustomerSource(String searchValue) throws Exception {
ShopMallPartners partners = partnerList.shopInfoByUserId();
String dictStr = "customer_source-"+partners.getPartnerId();
String dictStr = "customer_source-" + partners.getPartnerId();
DictTypeDO sysDictType = dictTypeService.getDictType(dictStr);
if (ObjectUtil.isEmpty(sysDictType)){
if (ObjectUtil.isEmpty(sysDictType)) {
//初始化
DictTypeSaveReqVO save = new DictTypeSaveReqVO();
save.setName("客户来源-"+partners.getPartnerName());
save.setName("客户来源-" + partners.getPartnerName());
save.setStatus(0);
save.setType(dictStr);
dictTypeService.createDictType(save);
}
List<DictDataDO> dataList = dictDataService.getDictDataListByDictType(dictStr);
if (CollectionUtil.isEmpty(dataList)){
dataList =new ArrayList<>();
if (CollectionUtil.isEmpty(dataList)) {
dataList = new ArrayList<>();
}
if (StringUtils.isNotEmpty(searchValue)){
dataList = dataList.stream().filter(it->{
if (StringUtils.isNotEmpty(searchValue)) {
dataList = dataList.stream().filter(it -> {
return it.getLabel().contains(searchValue);
}).collect(Collectors.toList());
}
@ -595,7 +597,7 @@ public class PartnerOwnController extends BaseController {
@PostMapping("/addCustomerSource")
public CommonResult addCustomerSource(@RequestBody SysDictData dictData) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
String dictStr = "customer_source-"+partners.getPartnerId();
String dictStr = "customer_source-" + partners.getPartnerId();
DictTypeDO sysDictType = dictTypeService.getDictType(dictStr);
DictDataSaveReqVO dictSave = new DictDataSaveReqVO();
@ -611,52 +613,51 @@ public class PartnerOwnController extends BaseController {
//新增客户来源
@PostMapping("/delCustomerSource")
public CommonResult delCustomerSource(Long dictId){
public CommonResult delCustomerSource(Long dictId) {
dictDataService.deleteDictData(dictId);
return success();
}
//批量删除客户来源
@PostMapping("/delCustomerSourceBatch")
public CommonResult delCustomerSourceBatch(@RequestBody List<Long> dictIds){
public CommonResult delCustomerSourceBatch(@RequestBody List<Long> dictIds) {
dictDataService.deleteDictDataBatch(dictIds);
return success();
}
@PostMapping("/vehicleLicenseOCR")
public CommonResult vehicleLicenseOCR(String imagePath) throws Exception
{
public CommonResult vehicleLicenseOCR(String imagePath) throws Exception {
return success(partnerList.vehicleLicenseOCR(imagePath));
}
//线下收费
@PostMapping("/offlineCharging")
public CommonResult offlineCharging(@RequestBody InspectionInfoVo infoVo)
{
public CommonResult offlineCharging(@RequestBody InspectionInfoVo infoVo) {
partnerList.offlineCharging(infoVo);
return success();
}
//获取收款账号
@GetMapping("/getBankAccountList")
public CommonResult getBankAccountList(String searchValue) throws Exception {
ShopMallPartners partners = partnerList.shopInfoByUserId();
String dictStr = "partner_bankList-"+partners.getPartnerId();
String dictStr = "partner_bankList-" + partners.getPartnerId();
DictTypeDO sysDictType = dictTypeService.getDictType(dictStr);
if (ObjectUtil.isEmpty(sysDictType)){
if (ObjectUtil.isEmpty(sysDictType)) {
//初始化
DictTypeSaveReqVO sysDictTypeSave =new DictTypeSaveReqVO();
sysDictTypeSave.setName("收款账户-"+partners.getPartnerName());
DictTypeSaveReqVO sysDictTypeSave = new DictTypeSaveReqVO();
sysDictTypeSave.setName("收款账户-" + partners.getPartnerName());
sysDictTypeSave.setStatus(0);
sysDictTypeSave.setType(dictStr);
dictTypeService.createDictType(sysDictTypeSave);
}
List<DictDataDO> dataList = dictDataService.getDictDataListByDictType(dictStr);
if (CollectionUtil.isEmpty(dataList)){
dataList =new ArrayList<>();
if (CollectionUtil.isEmpty(dataList)) {
dataList = new ArrayList<>();
}
if (StringUtils.isNotEmpty(searchValue)){
dataList = dataList.stream().filter(it->{
if (StringUtils.isNotEmpty(searchValue)) {
dataList = dataList.stream().filter(it -> {
return it.getLabel().contains(searchValue);
}).collect(Collectors.toList());
}
@ -667,7 +668,7 @@ public class PartnerOwnController extends BaseController {
@PostMapping("/addBankAccount")
public CommonResult addBankAccount(@RequestBody SysDictData dictData) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
String dictStr = "partner_bankList-"+partners.getPartnerId();
String dictStr = "partner_bankList-" + partners.getPartnerId();
DictTypeDO sysDictType = dictTypeService.getDictType(dictStr);
DictDataSaveReqVO dictSave = new DictDataSaveReqVO();
@ -684,74 +685,128 @@ public class PartnerOwnController extends BaseController {
//删除银行卡账户
@PostMapping("/delBankAccount")
public CommonResult delBankAccount(Long dictId){
public CommonResult delBankAccount(Long dictId) {
dictDataService.deleteDictData(dictId);
return success();
}
//工单预览
@GetMapping("/workOrderView")
public CommonResult workOrderView(Long inspectionId){
public CommonResult workOrderView(Long inspectionId) {
return success(partnerList.workOrderView(inspectionId));
}
//岗位信息
@GetMapping("/inspectionPostInfo")
public CommonResult inspectionPostInfo(){
public CommonResult inspectionPostInfo() {
return success(partnerList.inspectionPostInfo());
}
//统计表格1
@GetMapping("/staticsTable1")
public CommonResult staticsTable1(String startTime,String endTime) throws Exception {
public CommonResult staticsTable1(String startTime, String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable1(partners.getPartnerId(),startTime,endTime));
return success(partnerList.staticsTable1(partners.getPartnerId(), startTime, endTime));
}
//统计表格1
@GetMapping("/newStaticsTable1")
public CommonResult newStaticsTable1(String startTime,String endTime) throws Exception {
return success(partnerList.newStaticsTable1(startTime,endTime));
public CommonResult newStaticsTable1(String startTime, String endTime) throws Exception {
return success(partnerList.newStaticsTable1(startTime, endTime));
}
//统计表格2
@GetMapping("/staticsTable2")
public CommonResult staticsTable2(String startTime,String endTime) throws Exception {
public CommonResult staticsTable2(String startTime, String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable2(partners.getPartnerId(),startTime,endTime));
}
//新统计表格2
@GetMapping("/newStaticsTable2")
public CommonResult newStaticsTable2(String startTime,String endTime) throws Exception {
return success(partnerList.newStaticsTable2(startTime,endTime));
}
//统计表格3
@GetMapping("/staticsTable3")
public CommonResult staticsTable3(String startTime,String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable3(partners.getPartnerId(),startTime,endTime));
}
//新统计表格3
@GetMapping("/newStaticsTable3")
public CommonResult newStaticsTable3(String startTime,String endTime) throws Exception {
return success(partnerList.newStaticsTable3(startTime,endTime));
}
//统计表格3
@GetMapping("/staticsTable3Detail")
public CommonResult staticsTable3Detail(String startTime,String endTime,String remark) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable3Detail(partners.getPartnerId(),startTime,endTime,remark));
}
//统计表格4
@GetMapping("/staticsTable4")
public CommonResult staticsTable4(String startTime,String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable4(partners.getPartnerId(),startTime,endTime));
}
//统计表格5
@GetMapping("/staticsTable5")
public CommonResult staticsTable5(String startTime,String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable5(partners.getPartnerId(),startTime,endTime));
return success(partnerList.staticsTable2(partners.getPartnerId(), startTime, endTime));
}
//新统计表格2
@GetMapping("/newStaticsTable2")
public CommonResult newStaticsTable2(String startTime, String endTime) throws Exception {
return success(partnerList.newStaticsTable2(startTime, endTime));
}
//统计表格3
@GetMapping("/staticsTable3")
public CommonResult staticsTable3(String startTime, String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable3(partners.getPartnerId(), startTime, endTime));
}
//新统计表格3
@GetMapping("/newStaticsTable3")
public CommonResult newStaticsTable3(String startTime, String endTime) throws Exception {
return success(partnerList.newStaticsTable3(startTime, endTime));
}
//统计表格3
@GetMapping("/staticsTable3Detail")
public CommonResult staticsTable3Detail(String startTime, String endTime, String remark) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable3Detail(partners.getPartnerId(), startTime, endTime, remark));
}
//统计表格4
@GetMapping("/staticsTable4")
public CommonResult staticsTable4(String startTime, String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable4(partners.getPartnerId(), startTime, endTime));
}
//统计表格5
@GetMapping("/staticsTable5")
public CommonResult staticsTable5(String startTime, String endTime) throws Exception {
ShopMallPartners partners = partnerList.shopInfo();
return success(partnerList.staticsTable5(partners.getPartnerId(), startTime, endTime));
}
/**
* 根据inspection_info的id查有的项目名称
*
* @param ids inspection_info的id
* @author 小李
* @date 14:52 2024/12/10
**/
@GetMapping("/getProjectByIds")
public CommonResult<?> getProjectByIds(Long[] ids) {
return success(partnerList.getProjectByIds(ids));
}
/**
* 根据时间查订单
*
* @param startTime 开始时间 非必传
* @param endTime 结束时间 非必传
* @param pageNum 页码
* @param pageSize 条数
* @author 小李
* @date 14:39 2024/12/12
**/
@GetMapping("/getOrderByDate")
public CommonResult<?> getOrderByDate(@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "chooseStatus", required = false) String chooseStatus,
@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
Page<OrderTable> page = new Page<>(pageNum, pageSize);
return success(partnerList.getOrderByDate(startTime, endTime, chooseStatus, page));
}
/**
* 分类计数
*
* @author 小李
* @date 17:14 2024/12/16
* @param startTime 开始时间
* @param endTime 结束时间
* @param chooseStatus 状态
**/
@GetMapping("/getTypeCount")
public CommonResult<?> getTypeCount(@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime,
@RequestParam(value = "chooseStatus", required = false) String chooseStatus){
return success(partnerList.getTypeCount(startTime, endTime, chooseStatus));
}
}

View File

@ -113,13 +113,14 @@ public class ShopInspectionGoodsController extends BaseController
*/
@GetMapping("/partnerGoodsDetail")
public CommonResult partnerGoodsDetail(Long goodsId) throws Exception {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
LambdaQueryWrapper<ShopMallPartners> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(ShopMallPartners::getUserId,loginUser.getId()).eq(ShopMallPartners::getType,"jc").last("limit 1");
ShopMallPartners one = appInspectionPartnerService.getOne(queryWrapper);
if (ObjectUtils.isEmpty(one)){
throw new Exception("您不是商户");
}
// 暂时注掉
// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
// LambdaQueryWrapper<ShopMallPartners> queryWrapper =new LambdaQueryWrapper<>();
// queryWrapper.eq(ShopMallPartners::getUserId,loginUser.getId()).eq(ShopMallPartners::getType,"jc").last("limit 1");
// ShopMallPartners one = appInspectionPartnerService.getOne(queryWrapper);
// if (ObjectUtils.isEmpty(one)){
// throw new Exception("您不是商户");
// }
return success(appInspectionPartnerService.goodsDetail(goodsId));
}

View File

@ -5,16 +5,12 @@ import javax.servlet.http.HttpServletResponse;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.util.ExcelUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import cn.iocoder.yudao.module.core.controller.BaseController;
import cn.iocoder.yudao.module.inspection.entity.WarnMessage;
import cn.iocoder.yudao.module.inspection.service.IWarnMessageService;
@ -27,8 +23,7 @@ import cn.iocoder.yudao.module.inspection.service.IWarnMessageService;
*/
@RestController
@RequestMapping("/admin-api/warnMsg/warnMsg")
public class WarnMessageController extends BaseController
{
public class WarnMessageController extends BaseController {
@Autowired
private IWarnMessageService warnMessageService;
@ -42,11 +37,12 @@ public class WarnMessageController extends BaseController
}
@GetMapping("/pageList")
public CommonResult pageList(WarnMessage warnMessage,Integer pageNo,Integer pageSize) throws Exception {
Page page =new Page(pageNo,pageSize);
IPage<WarnMessage> list = warnMessageService.pageList(page,warnMessage);
public CommonResult pageList(WarnMessage warnMessage, Integer pageNo, Integer pageSize) throws Exception {
Page page = new Page(pageNo, pageSize);
IPage<WarnMessage> list = warnMessageService.pageList(page, warnMessage);
return success(list);
}
@PostMapping("/export")
public void export(HttpServletResponse response, WarnMessage warnMessage) throws Exception {
List<WarnMessage> list = warnMessageService.selectWarnMessageList(warnMessage);
@ -58,29 +54,56 @@ public class WarnMessageController extends BaseController
* 获取warnMsg详细信息
*/
@GetMapping(value = "/{id}")
public CommonResult getInfo(@PathVariable("id") Long id)
{
public CommonResult getInfo(@PathVariable("id") Long id) {
WarnMessage warnMessage = new WarnMessage();
warnMessage.setId(id);
warnMessage.setIsRead("1");
warnMessageService.updateById(warnMessage);
return success(warnMessageService.selectWarnMessageById(id));
}
@PostMapping("/add")
public CommonResult add(@RequestBody WarnMessage warnMessage)
{
public CommonResult add(@RequestBody WarnMessage warnMessage) {
return toAjax(warnMessageService.insertWarnMessage(warnMessage));
}
@PostMapping("/edit")
public CommonResult edit(@RequestBody WarnMessage warnMessage)
{
public CommonResult edit(@RequestBody WarnMessage warnMessage) {
return toAjax(warnMessageService.updateWarnMessage(warnMessage));
}
@DeleteMapping("/{ids}")
public CommonResult remove(@PathVariable Long[] ids)
{
@DeleteMapping("/{ids}")
public CommonResult remove(@PathVariable Long[] ids) {
return toAjax(warnMessageService.deleteWarnMessageByIds(ids));
}
/**
* 获取未读的提醒数量
*
* @author 小李
* @date 14:33 2024/12/16
**/
@GetMapping("/getCount")
public CommonResult<?> getCount() {
long count = warnMessageService.count(new LambdaQueryWrapper<WarnMessage>().eq(WarnMessage::getIsRead, "0"));
return success(count);
}
/**
* 已读全部
*
* @author 小李
* @date 15:57 2024/12/16
**/
@GetMapping("/readAll")
public CommonResult<?> readAll() {
warnMessageService.update(new LambdaUpdateWrapper<WarnMessage>()
.set(WarnMessage::getIsRead, "1")
.eq(WarnMessage::getIsRead, "0")
);
return CommonResult.ok();
}
}

View File

@ -62,4 +62,7 @@ public class InspectionEquInfo extends TenantBaseDO
@TableField(exist = false)
private Map<String,Object> params;
/** 设备类别(字典ins_equ_type) */
private String type;
}

View File

@ -56,4 +56,8 @@ public class InspectionNews extends TenantBaseDO
@TableField(exist = false)
private String isRead;
/** 设置可见 */
@TableField(exist = false)
private String ifShow;
}

View File

@ -37,6 +37,7 @@ public class InspectionStepInfo extends Model<InspectionStepInfo> {
//创建人id
private Integer creator;
//更新时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime;
//更新人id
private Integer updater;

View File

@ -66,10 +66,24 @@ public interface AppInspectionPartnerMapper extends BaseMapper<ShopMallPartners>
Long getAppointNum(@Param("partnerId") Long partnerId,@Param("formDate") String formDate);
Long getPickNum(@Param("partnerId") Long partnerId,@Param("formDate") String formDate);
/**
* 根据时间查订单
*
* @author 小李
* @date 14:39 2024/12/12
* @param startTime 开始时间 非必传
* @param endTime 结束时间 非必传
**/
IPage<OrderTable> getOrderByDate(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("chooseStatus") String chooseStatus, Page<OrderTable> page);
/**
* 分类计数
*
* @author 小李
* @date 17:14 2024/12/16
* @param startTime 开始时间
* @param endTime 结束时间
* @param chooseStatus 状态
**/
List<Map<String, Long>> getTypeCount(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("chooseStatus") String chooseStatus);
}

View File

@ -81,6 +81,6 @@ public interface InspectionNewsMapper extends BaseMapper<InspectionNews>
void addReadNum(Long id);
IPage<InspectionNews> collectionNews(Page<InspectionNews> page, @Param("userId") Long userId,@Param("newsName")String newsName);
Integer newMsgNum(@Param("partnerId") Long partnerId);
IPage<InspectionNews> msgList(Page<InspectionNews> page, @Param("partnerId") Long partnerId);
IPage<InspectionNews> msgList(Page<InspectionNews> page, @Param("ifShow") String ifShow);
List<String> listGfClass(@Param("type") String type);
}

View File

@ -36,5 +36,5 @@ public interface InspectionWorkNodeMapper extends BaseMapper<InspectionWorkNode>
* 批量修改检测状态
* @param workNodes
*/
void recheck(@Param("list") List<InspectionWorkNode> workNodes);
void recheck(@Param("list") List<InspectionWorkNode> workNodes, @Param("status") String status);
}

View File

@ -16,6 +16,8 @@ import cn.iocoder.yudao.module.inspection.query.PartnerListQuery;
import cn.iocoder.yudao.module.inspection.vo.*;
import cn.iocoder.yudao.module.shop.entity.ShopCouponTemplate;
import cn.iocoder.yudao.module.shop.entity.ShopMallPartners;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -108,4 +110,34 @@ public interface AppInspectionPartnerService extends IService<ShopMallPartners>
//新检测金额折线图
JSONObject newChartLineInspectionAmount(String unit);
/**
* 根据inspection_info的id查有的项目名称
*
* @author 小李
* @date 14:52 2024/12/10
* @param ids inspection_info的id
**/
Map<Long, String> getProjectByIds(Long[] ids);
/**
* 根据时间查订单
*
* @author 小李
* @date 14:39 2024/12/12
* @param startTime 开始时间 非必传
* @param endTime 结束时间 非必传
**/
IPage<OrderTable> getOrderByDate(String startTime, String endTime, String chooseStatus, Page<OrderTable> page);
/**
* 分类计数
*
* @author 小李
* @date 17:14 2024/12/16
* @param startTime 开始时间
* @param endTime 结束时间
* @param chooseStatus 状态
**/
Map<String, Long> getTypeCount(String startTime, String endTime, String chooseStatus);
}

View File

@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* inspectionFileService接口
*
@ -63,4 +66,13 @@ public interface IInspectionFileService extends IService<InspectionFile>
* @return 分页结果
*/
IPage<InspectionFile> selectInspectionFileList(Page<InspectionFile> page, InspectionFile inspectionFile);
/**
* 根据id统计数量
*
* @author 小李
* @date 14:30 2024/12/14
* @param ids ids
**/
Map<Long, Long> getCountByIds(List<Long> ids);
}

View File

@ -113,6 +113,25 @@ public interface IInspectionInfoService extends IService<InspectionInfo>
*/
Boolean isExamine();
/**
* 获取某个工单针对当前操作用户某个状态的项目们
*
* @author 小李
* @date 10:48 2024/12/11
* @param id 工单ID
* @param status 状态
**/
Map<String, String> getWorkNodeByIdAndNow(Long id, String status, Boolean flag);
/**
* 判断是否可以修改引车员
*
* @author 小李
* @date 15:22 2024/12/11
* @param id 工单ID
**/
Boolean judgeUpdateLeadMan(Long id);
/**
* 获取当前登陆人的角色列表
* @return
@ -120,4 +139,12 @@ public interface IInspectionInfoService extends IService<InspectionInfo>
List<RoleDO> getRoleList();
String easyPoiExport(String templatePath, String filename, Map<String, Object> data, HttpServletRequest request, HttpServletResponse response);
/**
* 获得不同状态的数据的数量
*
* @author 小李
* @date 16:22 2024/12/18
**/
Map<String, Long> getCountByType(Integer partnerId);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.inspection.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
@ -62,6 +63,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
@ -124,6 +127,8 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
private IInspectionWorkNodeService inspectionWorkNodeService;
@Autowired
private IShopMallPartnersService partnersService;
@Resource
private DlInspectionProjectService projectService;
@Override
public IPage<PartnerListVo> partnerList(Page<PartnerListVo> page, PartnerListQuery partnerListQuery) {
@ -136,11 +141,12 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
@Override
public List<ShopInspectionCategory> categoryList(Long partnerId) {
LoginUser user = SecurityFrameworkUtils.getLoginUser();
ShopMallPartners partners = baseMapper.selectById(partnerId);
if (!partners.getUserId().equals(user.getId())){
return null;
}
// 暂时去掉
// LoginUser user = SecurityFrameworkUtils.getLoginUser();
// ShopMallPartners partners = baseMapper.selectById(partnerId);
// if (!partners.getUserId().equals(user.getId())){
// return null;
// }
List<ShopInspectionCategory> shopInspectionCategories = baseMapper.partnerCategoryList(partnerId);
for (ShopInspectionCategory shopInspectionCategory : shopInspectionCategories) {
LambdaQueryWrapper<InspectionCategoryTemplate> templateLambdaQueryWrapper =new LambdaQueryWrapper<>();
@ -1077,11 +1083,12 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
@Override
public ShopInspectionGoods goodsDetail(Long goodsId) {
ShopInspectionGoods goods = goodsService.getById(goodsId);
LoginUser user = SecurityFrameworkUtils.getLoginUser();
ShopMallPartners partners = baseMapper.selectById(goods.getPartnerId());
if (!partners.getUserId().equals(user.getId())){
return null;
}
// 暂时注掉
// LoginUser user = SecurityFrameworkUtils.getLoginUser();
// ShopMallPartners partners = baseMapper.selectById(goods.getPartnerId());
// if (!partners.getUserId().equals(user.getId())){
// return null;
// }
LambdaQueryWrapper<InspectionGoodsSku> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(InspectionGoodsSku::getGoodsId,goodsId);
List<InspectionGoodsSku> list = skuService.list(queryWrapper);
@ -1458,6 +1465,7 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
public InspectionInfoVo inspectionDetail(Long inspectionInfoId) {
InspectionInfo info = inspectionInfoService.getById(inspectionInfoId);
OrderInfo order = orderService.getById(info.getInspectionOrderId());
InspectionGoodsSku sku = skuService.getById(order.getSkuId());
AdminUserDO buyUser = userService.getUser(info.getUserId());
AdminUserDO worker = userService.getUser(info.getWorkId());
InspectionInfoVo res =new InspectionInfoVo();
@ -1485,7 +1493,7 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
res.setStatus(info.getStatus());
res.setGoodsId(order.getGoodsId());
res.setGoodsPrice(order.getGoodsPrice());
res.setGoodsName(order.getGoodsTitle());
res.setGoodsName(sku.getSkuName());
res.setIsOnline(order.getIsOnline());
res.setIsRetrial(info.getIsRetrial());
res.setIsPass(info.getIsPass());
@ -1898,4 +1906,79 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
return res;
}
/**
* 根据inspection_info的id查有的项目名称
*
* @author 小李
* @date 14:52 2024/12/10
* @param ids inspection_info的id
**/
@Override
public Map<Long, String> getProjectByIds(Long[] ids){
List<InspectionWorkNode> inspectionWorkNodes = inspectionWorkNodeService.
list(new LambdaQueryWrapper<InspectionWorkNode>()
.in(InspectionWorkNode::getInspectionInfoId, Arrays.asList(ids)));
if (ObjectUtil.isEmpty(inspectionWorkNodes)){
return null;
}
List<String> projectIds = inspectionWorkNodes.stream().map(InspectionWorkNode::getProjectId).collect(Collectors.toList());
if (CollUtil.isEmpty(projectIds)){
return null;
}
List<DlInspectionProject> projects = projectService.listByIds(projectIds);
if (CollUtil.isEmpty(projects)){
return null;
}
Map<String, String> projectMap = projects.stream().collect(Collectors.toMap(DlInspectionProject::getId, DlInspectionProject::getProjectName));
Map<Long, String> result = new HashMap<>();
Map<Long, List<String>> map = inspectionWorkNodes.stream().collect(Collectors
.groupingBy(InspectionWorkNode::getInspectionInfoId,
Collectors.mapping(InspectionWorkNode::getProjectId, Collectors.toList())));
for (Long id : ids) {
List<String> values = map.get(id);
String names = values.stream().filter(projectMap::containsKey).map(projectMap::get).collect(Collectors.joining(","));
result.put(id, names);
}
return result;
}
/**
* 根据时间查订单
*
* @author 小李
* @date 14:39 2024/12/12
* @param startTime 开始时间 非必传
* @param endTime 结束时间 非必传
**/
@Override
public IPage<OrderTable> getOrderByDate(String startTime, String endTime, String chooseStatus, Page<OrderTable> page){
if (StringUtils.isEmpty(startTime)){
startTime = DateUtil.format(new Date(), "yyyy-MM-dd");
endTime = DateUtil.format(new Date(), "yyyy-MM-dd");
}
startTime = startTime + " 00:00:00";
endTime = endTime + " 23:59:59";
return baseMapper.getOrderByDate(startTime, endTime, chooseStatus, page);
}
/**
* 分类计数
*
* @author 小李
* @date 17:14 2024/12/16
* @param startTime 开始时间
* @param endTime 结束时间
* @param chooseStatus 状态
**/
@Override
public Map<String, Long> getTypeCount(String startTime, String endTime, String chooseStatus){
if (StringUtils.isEmpty(startTime)){
startTime = DateUtil.format(new Date(), "yyyy-MM-dd");
endTime = DateUtil.format(new Date(), "yyyy-MM-dd");
}
startTime = startTime + " 00:00:00";
endTime = endTime + " 23:59:59";
List<Map<String, Long>> typeCount = baseMapper.getTypeCount(startTime, endTime, chooseStatus);
return typeCount.stream().collect(Collectors.toMap(map -> String.valueOf(map.get("type")), map -> map.get("count")));
}
}

View File

@ -4,8 +4,11 @@ import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -13,6 +16,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.iocoder.yudao.util.DateUtils;
import cn.iocoder.yudao.module.inspection.entity.WarnMessage;
import cn.iocoder.yudao.module.inspection.service.IWarnMessageService;
import io.prometheus.client.CollectorRegistry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.iocoder.yudao.module.inspection.mapper.InspectionEquInfoMapper;
@ -30,6 +34,7 @@ public class InspectionEquInfoServiceImpl extends ServiceImpl<InspectionEquInfoM
{
@Autowired
private IWarnMessageService messageService;
private CollectorRegistry collectorRegistry;
/**
* 查询equInfo
@ -92,14 +97,16 @@ public class InspectionEquInfoServiceImpl extends ServiceImpl<InspectionEquInfoM
* @return 结果
*/
@Override
@DSTransactional
public int updateInspectionEquInfo(InspectionEquInfo inspectionEquInfo)
{
LambdaQueryWrapper<WarnMessage> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(WarnMessage::getType,"equ").eq(WarnMessage::getObjectId,inspectionEquInfo.getId());
WarnMessage one = messageService.getOne(queryWrapper);
if (ObjectUtil.isNotEmpty(one)){
List<WarnMessage> list = messageService.list(queryWrapper);
if (CollUtil.isNotEmpty(list)){
//更新处理
messageService.removeById(one.getId());
List<Long> ids = list.stream().map(WarnMessage::getId).collect(Collectors.toList());
messageService.removeBatchByIds(ids);
}
if (ObjectUtil.isNotEmpty(inspectionEquInfo.getNextCheckTime())){
//同时处理提醒信息

View File

@ -16,6 +16,8 @@ import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* inspectionFileService业务层处理
@ -160,12 +162,32 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
@Override
public IPage<InspectionFile> selectInspectionFileList(Page<InspectionFile> page, InspectionFile inspectionFile) {
// 创建一个空的 QueryWrapper
QueryWrapper<InspectionFile> queryWrapper = new QueryWrapper<>();
LambdaQueryWrapper<InspectionFile> queryWrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotEmpty(inspectionFile.getFatherId())) {
queryWrapper.eq("father_id", inspectionFile.getFatherId());
queryWrapper.eq(InspectionFile::getFatherId, inspectionFile.getFatherId());
}
queryWrapper.orderByAsc(InspectionFile::getType);
queryWrapper.orderByDesc(InspectionFile::getCreateTime);
if (ObjectUtil.isNotEmpty(inspectionFile.getFileName())){
queryWrapper.like(InspectionFile::getFileName, inspectionFile.getFileName());
}
// 直接调用 MyBatis-Plus page 方法进行分页查询
return this.page(page, queryWrapper); // 返回符合条件的分页查询结果
}
/**
* 根据id统计数量
*
* @author 小李
* @date 14:30 2024/12/14
* @param ids ids
**/
@Override
public Map<Long, Long> getCountByIds(List<Long> ids){
List<InspectionFile> inspectionFiles = baseMapper.selectList(new LambdaQueryWrapper<InspectionFile>().in(InspectionFile::getFatherId, ids));
return inspectionFiles.stream().collect(Collectors.groupingBy(
InspectionFile::getFatherId,
Collectors.counting()
));
}
}

View File

@ -8,13 +8,12 @@ import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import cn.afterturn.easypoi.word.WordExportUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
@ -73,6 +72,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import static cn.iocoder.yudao.framework.common.config.CommonStr.USER_TYPE_CUS;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
/**
* 请填写功能名称Service业务层处理
@ -115,6 +115,9 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
private InspectionSocket inspectionSocket;
@Resource
private RoleMapper roleMapper;
@Resource
@Lazy
private DlInspectionProjectService projectService;
@Autowired
private FileService fileService;
@ -211,11 +214,11 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
}
inspectionInfo.setCategoryId(goods.getGoodsCategoryId());
if (ObjectUtil.isNotNull(inspectionInfo.getAdditionalRecording()) && inspectionInfo.getAdditionalRecording() == 1){
if (ObjectUtil.isNotNull(inspectionInfo.getAdditionalRecording()) && inspectionInfo.getAdditionalRecording() == 1) {
inspectionInfo.setStatus("1");
inspectionInfo.setIsPass("1");
inspectionInfo.setEndTime(inspectionInfo.getStartTime());
}else {
} else {
inspectionInfo.setStatus("0");
}
inspectionInfo.setWorkId(workerUser.getId());
@ -336,7 +339,7 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
// Integer roleId = inspectionWorkNodes.get(0).getRoleId();
List<Integer> roleIds = new ArrayList<>();
/*获取所有的角色id*/
if(CollUtil.isNotEmpty(inspectionWorkNodes)){
if (CollUtil.isNotEmpty(inspectionWorkNodes)) {
roleIds = inspectionWorkNodes.stream().map(inspectionWorkNode -> inspectionWorkNode.getRoleId()).collect(Collectors.toList());
}
//根据角色id获取所有用户
@ -574,6 +577,78 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
return false;
}
/**
* 获取某个工单针对当前操作用户某个状态的项目们
*
* @param id 工单ID
* @param status 状态
* @author 小李
* @date 10:48 2024/12/11
**/
@Override
public Map<String, String> getWorkNodeByIdAndNow(Long id, String status, Boolean flag) {
Long userId = SecurityFrameworkUtils.getLoginUserId();
List<UserRoleDO> roles = roleService.getByUserId(userId);
if (CollUtil.isEmpty(roles)) {
throw exception0(500, "查询角色为空");
}
List<Long> roleIds = roles.stream().map(UserRoleDO::getRoleId).collect(Collectors.toList());
LambdaQueryWrapper<InspectionWorkNode> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(InspectionWorkNode::getInspectionInfoId, id);
if (flag) {
wrapper.eq(InspectionWorkNode::getStatus, status);
}
InspectionInfo inspectionInfo = baseMapper.selectById(id);
if (ObjectUtil.isEmpty(inspectionInfo.getLeadManId()) || !inspectionInfo.getLeadManId().equals(userId)) {
wrapper.in(InspectionWorkNode::getRoleId, roleIds);
}
List<InspectionWorkNode> workNodes = workNodeService.list(wrapper);
if (CollUtil.isEmpty(workNodes)) {
throw exception0(500, "没有项目需要操作");
}
List<String> projectIds = workNodes.stream().map(InspectionWorkNode::getProjectId).collect(Collectors.toList());
if (CollUtil.isEmpty(projectIds)) {
throw exception0(500, "没有项目需要操作");
}
List<DlInspectionProject> projects = projectService.listByIds(projectIds);
if (CollUtil.isEmpty(projects)) {
throw exception0(500, "没有项目需要操作");
}
Map<String, String> map = projects.stream().collect(Collectors.toMap(DlInspectionProject::getId, DlInspectionProject::getProjectName));
Map<String, String> result = new HashMap<>();
workNodes.forEach(item -> {
result.put(item.getId(), map.get(item.getProjectId()));
});
return result;
}
/**
* 判断是否可以修改引车员
*
* @param id 工单ID
* @author 小李
* @date 15:22 2024/12/11
**/
@Override
public Boolean judgeUpdateLeadMan(Long id) {
boolean result = true;
InspectionInfo inspectionInfo = baseMapper.selectById(id);
if (!inspectionInfo.getStatus().equals("2")) {
result = false;
}
if (!result) {
List<InspectionWorkNode> list = workNodeService.list(new LambdaQueryWrapper<InspectionWorkNode>().eq(InspectionWorkNode::getInspectionInfoId, id));
Set<String> status = list.stream().map(InspectionWorkNode::getStatus).collect(Collectors.toSet());
if (status.contains("3")) {
result = true;
}
}
if (result) {
result = inspectionInfo.getCreator().equals(SecurityFrameworkUtils.getLoginUserId() + "");
}
return result;
}
/**
* 获取当前登陆人的角色列表
*
@ -590,6 +665,7 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
/**
* EasyPoi 替换数据 导出 word
*
* @param templatePath word模板地址
* @param filename 文件名称
* @param data 替换参数
@ -618,10 +694,71 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
}
return filename;
}
public static MultipartFile convertXWPFDocumentToMultipartFile(XWPFDocument document, String filename) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
document.write(bos);
byte[] bytes = bos.toByteArray();
return new MockMultipartFile(filename, filename, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", bytes);
}
/**
* 获得不同状态的数据的数量
*
* @author 小李
* @date 16:22 2024/12/18
**/
@Override
public Map<String, Long> getCountByType(Integer partnerId) {
// 创建线程池
ExecutorService executor = Executors.newFixedThreadPool(6);
try {
InspectionInfo inspectionInfo = new InspectionInfo();
inspectionInfo.setPartnerId(partnerId.longValue());
// 获取当前登录人
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
// 获取当前登陆人的角色
List<UserRoleDO> byUserId = roleService.getByUserId(loginUser.getId());
inspectionInfo.setLeadManId(loginUser.getId());
List<Long> roleIds = byUserId.stream().map(UserRoleDO::getRoleId).collect(Collectors.toList());
if (!"1".equals(inspectionInfo.getStatus())) {
// 进行中 已完成
inspectionInfo.setDealUserId(loginUser.getId());
}
Map<String, Long> result = new ConcurrentHashMap<>(); // 使用ConcurrentHashMap以确保线程安全
// 定义一个数组来保存所有的CompletableFuture
CompletableFuture<Void>[] futures = new CompletableFuture[6];
for (int i = 0; i < 6; i++) {
final String status = String.valueOf(i);
// 复制一份inspectionInfo对象避免多线程修改同一个对象导致的问题
InspectionInfo infoCopy = BeanUtil.toBean(inspectionInfo, InspectionInfo.class);
infoCopy.setStatus(status);
// 为每个任务创建一个新的Page对象
Page<InspectionInfo> page = new Page<>(1, 10);
futures[i] = CompletableFuture.runAsync(() -> {
IPage<InspectionInfo> iPage = baseMapper.selectByUser(page, roleIds, infoCopy);
result.put(status, iPage.getTotal());
}, executor);
}
// 等待所有任务完成
CompletableFuture.allOf(futures).join();
return result;
} catch (Exception e) {
throw new RuntimeException("Failed to execute tasks in parallel", e);
} finally {
// 关闭线程池
executor.shutdown();
}
}
}

View File

@ -4,10 +4,15 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
import cn.iocoder.yudao.module.system.api.permission.RoleApi;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -28,6 +33,8 @@ import cn.iocoder.yudao.module.inspection.utils.HtmlFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 请填写功能名称Service业务层处理
*
@ -44,6 +51,10 @@ public class InspectionNewsServiceImpl extends ServiceImpl<InspectionNewsMapper,
private AdminUserService userService;
@Autowired
private IInspectionNewsCommentService commentService;
@Resource
private PermissionApi permissionApi;
@Resource
private RoleApi roleApi;
/**
* 查询请填写功能名称
@ -106,7 +117,7 @@ public class InspectionNewsServiceImpl extends ServiceImpl<InspectionNewsMapper,
public int insertInspectionNews(InspectionNews inspectionNews)
{
return baseMapper.insertInspectionNews(inspectionNews);
return baseMapper.insert(inspectionNews);
}
/**
@ -266,9 +277,27 @@ public class InspectionNewsServiceImpl extends ServiceImpl<InspectionNewsMapper,
}
@Override
@TenantIgnore
// @TenantIgnore
public IPage<InspectionNews> msgList(Page<InspectionNews> page, Long partnerId) {
IPage<InspectionNews> news = baseMapper.msgList(page, partnerId);
List<Long> roleIdsByUserId = permissionApi.getRoleIdsByUserId(SecurityFrameworkUtils.getLoginUserId());
List<RoleReqDTO> roleList = roleApi.getRoleList();
List<RoleReqDTO> collect = roleList.stream().filter(item -> roleIdsByUserId.contains(item.getId())).collect(Collectors.toList());
String ifShow = "";
if (CollUtil.isNotEmpty(collect)){
List<String> collect1 = collect.stream().map(RoleReqDTO::getCode).collect(Collectors.toList());
// 检测用户
if (collect1.contains("jcyh")){
ifShow = "user";
}
// else if (collect1.contains("jcgf") || collect1.contains("jcshop") || collect1.contains("dealers") || collect1.contains("partners")){
// // 检测官方 检测商户 经销商 合作商
// ifShow = "";
// }
else {
ifShow = "staff";
}
}
IPage<InspectionNews> news = baseMapper.msgList(page, ifShow);
news.getRecords().forEach(it->{
it.setNewsContent(HtmlFilter.dealFunction(it.getNewsContent()));
});

View File

@ -28,9 +28,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -80,7 +79,7 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
throw new RuntimeException("流程不存在");
}
//判断当前流程是否已被接单
if (!workNode.getStatus().equals("0")) {
if (!workNode.getStatus().equals("0") && !workNode.getStatus().equals("3")) {
throw new RuntimeException("当前流程已被接单");
}
//修改流程相关信息
@ -90,6 +89,21 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
//更新
this.updateById(workNode);
// 插入步骤信息
InspectionStepInfo inspectionStepInfo = new InspectionStepInfo();
inspectionStepInfo.setInspectionInfoId(inspectionId);
DlInspectionProject project = inspectionProjectService.getOne(new LambdaQueryWrapper<DlInspectionProject>()
.eq(DlInspectionProject::getId, workNode.getProjectId()));
if (ObjectUtil.isNotNull(project)) {
inspectionStepInfo.setTitle(project.getProjectName());
} else {
inspectionStepInfo.setTitle("检测项目");
}
inspectionStepInfo.setCreateTime(DateUtil.date());
inspectionStepInfo.setCreator(Integer.parseInt(SecurityFrameworkUtils.getLoginUserId() + ""));
inspectionStepInfo.setWorkNodeId(workNodeId);
inspectionStepService.save(inspectionStepInfo);
//查询用户 信息
//修改工单表中当前施工人
// inspectionInfo.setWorkId(workerUser.getId());
@ -143,6 +157,16 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
// 更新流程
// this.updateById(workNode);
baseMapper.cancelAnOrder(workNode);
// 删除步骤信息
DlInspectionProject project = inspectionProjectService.getOne(new LambdaQueryWrapper<DlInspectionProject>()
.eq(DlInspectionProject::getId, workNode.getProjectId()));
inspectionStepService.remove(new LambdaQueryWrapper<InspectionStepInfo>()
.and(i ->
i.eq(InspectionStepInfo::getInspectionInfoId, inspectionId)
.eq(InspectionStepInfo::getWorkNodeId, workNodeId)
.eq(InspectionStepInfo::getTitle, project.getProjectName())
));
}
/**
@ -179,40 +203,52 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
LambdaQueryWrapper<InspectionWorkNode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(InspectionWorkNode::getInspectionInfoId, workNode.getInspectionInfoId());
//是否还有进行中或者待开始的状态
queryWrapper.in(InspectionWorkNode::getStatus, "0","1");
queryWrapper.in(InspectionWorkNode::getStatus, "0", "1");
List<InspectionWorkNode> inspectionWorkNodes = this.list(queryWrapper);
boolean flag = true;
//判断是否是最后一个流程
if (inspectionWorkNodes.size() == 1 && inspectionWorkNodes.get(0).getId().equals(workNode.getId())){
if (inspectionWorkNodes.size() == 1 && inspectionWorkNodes.get(0).getId().equals(workNode.getId())) {
flag = false;
}
// 插入步骤信息
InspectionStepInfo inspectionStepInfo = new InspectionStepInfo();
inspectionStepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(workNode.getInspectionInfoId())));
//根据projectId查询项目名称
// 更新或插入步骤信息
DlInspectionProject project = inspectionProjectService.getOne(new LambdaQueryWrapper<DlInspectionProject>()
.eq(DlInspectionProject::getId, workNode.getProjectId()));
String stepTitle = "";
if (ObjectUtil.isNotNull(project)) {
inspectionStepInfo.setTitle(project.getProjectName());
List<InspectionStepInfo> stepInfos = inspectionStepService.list(new LambdaQueryWrapper<InspectionStepInfo>()
.and(i -> i.eq(InspectionStepInfo::getInspectionInfoId, workNode.getInspectionInfoId())
.eq(InspectionStepInfo::getWorkNodeId, workNode.getId())
.eq(InspectionStepInfo::getTitle, ObjectUtil.isNotEmpty(project) ? project.getProjectName() : workNode.getProjectName())
));
InspectionStepInfo stepInfo = new InspectionStepInfo();
if (CollUtil.isNotEmpty(stepInfos)){
List<InspectionStepInfo> sorted = stepInfos.stream()
.sorted(Comparator.comparing(InspectionStepInfo::getCreateTime).reversed()).collect(Collectors.toList());
stepInfo = sorted.get(0);
}
if (ObjectUtil.isNotEmpty(stepInfo)) {
stepInfo.setUpdateTime(DateUtil.date());
stepInfo.setUpdater(Integer.parseInt(SecurityFrameworkUtils.getLoginUserId() + ""));
} else {
inspectionStepInfo.setTitle("项目检测完成");
stepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(workNode.getInspectionInfoId())));
if (ObjectUtil.isNotNull(project)) {
stepInfo.setTitle(project.getProjectName());
} else {
stepInfo.setTitle("项目检测完成");
}
stepInfo.setWorkNodeId(workNode.getId());
stepInfo.setCreateTime(DateUtil.date());
stepInfo.setCreator(Integer.parseInt(String.valueOf(loginUser.getId())));
stepInfo.setUpdater(Integer.parseInt(String.valueOf(loginUser.getId())));
stepInfo.setUpdateTime(DateUtil.date());
}
if (ObjectUtil.isNotEmpty(inspectionWorkNode.getRemark())) {
inspectionStepInfo.setContent(inspectionWorkNode.getRemark());
stepInfo.setContent(inspectionWorkNode.getRemark());
}
if (ObjectUtil.isNotEmpty(inspectionWorkNode.getDealImages())) {
inspectionStepInfo.setImages(inspectionWorkNode.getDealImages());
stepInfo.setImages(inspectionWorkNode.getDealImages());
}
inspectionStepInfo.setWorkNodeId(workNode.getId());
inspectionStepInfo.setCreateTime(DateUtil.date());
inspectionStepInfo.setCreator(Integer.parseInt(String.valueOf(loginUser.getId())));
inspectionStepService.save(inspectionStepInfo);
inspectionStepService.saveOrUpdate(stepInfo);
if (!flag) {
stepTitle = "检测结束";
//设置工单状态为已完成
inspectionInfo.setStatus("1");
//设置工单通过
@ -223,12 +259,12 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
inspectionInfo.setMakeCert("1");
//步骤结束
inspectionStepInfo = new InspectionStepInfo();
inspectionStepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(workNode.getInspectionInfoId())));
inspectionStepInfo.setTitle(stepTitle);
inspectionStepInfo.setCreateTime(DateUtil.date());
inspectionStepInfo.setCreator(Integer.parseInt(String.valueOf(loginUser.getId())));
inspectionStepService.save(inspectionStepInfo);
stepInfo = new InspectionStepInfo();
stepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(workNode.getInspectionInfoId())));
stepInfo.setTitle("检测结束");
stepInfo.setCreateTime(DateUtil.date());
stepInfo.setCreator(Integer.parseInt(String.valueOf(loginUser.getId())));
inspectionStepService.save(stepInfo);
}
// else {
// //修改工单表当前流程
@ -314,7 +350,11 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
//获取当前登陆人
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
//将传递过来的流程节点全部改为未进行
baseMapper.recheck(workNodes.getWorkNodes());
String status = "0";
if (CollUtil.isNotEmpty(workNodes.getWorkNodes()) && ObjectUtil.isNotEmpty(workNodes.getWorkNodes().get(0).getStatus())){
status = workNodes.getWorkNodes().get(0).getStatus();
}
baseMapper.recheck(workNodes.getWorkNodes(), status);
//将检测工单设置为重审
InspectionInfo info = inspectionInfoService.getById(workNodes.getInspectionInfoId());
info.setIsRetrial("1");
@ -345,7 +385,7 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
List<Integer> roleIds = new ArrayList<>();
/*获取所有的角色id*/
if(CollUtil.isNotEmpty(workNodes.getWorkNodes())){
if (CollUtil.isNotEmpty(workNodes.getWorkNodes())) {
roleIds = workNodes.getWorkNodes().stream().map(inspectionWorkNode -> inspectionWorkNode.getRoleId()).collect(Collectors.toList());
}
//根据角色id获取所有用户
@ -431,7 +471,7 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
*
* @param inspectionWorkNode
*/
public void retrial(InspectionWorkNode inspectionWorkNode){
public void retrial(InspectionWorkNode inspectionWorkNode) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
//通过流程节点id查询流程
InspectionWorkNode workNode = this.getById(inspectionWorkNode.getId());
@ -454,7 +494,7 @@ public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNod
Integer roleId = workNode.getRoleId();
List<UserDTO> listByUserId = roleService.getListByUserId(roleId);
List<Long> ids = listByUserId.stream().map(UserDTO::getId).collect(Collectors.toList());
if (ObjectUtil.isNotNull(info.getLeadManId())){
if (ObjectUtil.isNotNull(info.getLeadManId())) {
ids.add(info.getLeadManId());
}
sendSocketMessage(ids);

View File

@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.inspection.vo;
import lombok.Data;
/**
* 用于当日订单详情
*
* @author 小李
* @date 14:41 2024/12/12
**/
@Data
public class OrderTable {
/** 工单ID */
private Long id;
/** 车牌号 */
private String carNum;
/** 检测类型 */
private String type;
/** 检测状态 */
private String status;
/** 检测结果 */
private String result;
/** 是否支付 */
private String pay;
/** 支付方式 */
private String payType;
}

View File

@ -8,7 +8,7 @@
</update>
<update id="recheck">
UPDATE inspection_work_node
SET status = '0', deal_user_id = null, deal_user_name = null, deal_images = null, remark = null,type = null
SET status = #{status}, deal_user_id = null, deal_user_name = null, deal_images = null, remark = null,type = null
WHERE id in (
<foreach collection="list" item="item" separator=",">
#{item.id}

View File

@ -213,7 +213,8 @@ where sig.partner_id =#{partnerId}
<select id="inspectionList" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionInfo">
SELECT
info.id,info.worker_name,info.worker_phone,info.worker_avatar,info.`status`,info.is_pass,info.start_time,info.end_time,step.title as lastTitle,
su.nickname buyName,su.mobile as buyPhone,oi.order_no as orderNo,oi.pay_money+oi.balance as realPayMoney,oi.goods_title as goodsName,info.car_num,info.is_retrial
su.nickname buyName,su.mobile as buyPhone,oi.order_no as orderNo,oi.pay_money+oi.balance as realPayMoney,oi.goods_title as goodsName,info.car_num,info.is_retrial,
info.customer_source as customerSource, info.other_phone as otherPhone,oi.sku_id as skuId, oi.sku_name as skuName,oi.goods_price as goodsPrice
from
inspection_info info
LEFT JOIN inspection_step_info step ON info.id = step.inspection_info_id
@ -345,8 +346,10 @@ FROM
FROM
shop_inspection_category cate
INNER JOIN inspection_category_template template on template.category_id = cate.id
left JOIN shop_inspection_goods goods ON goods.goods_category_id = cate.id and goods.partner_id = #{partnerId}
where goods.id is null
<if test="partnerId == null">
left JOIN shop_inspection_goods goods ON goods.goods_category_id = cate.id and goods.partner_id = #{partnerId}
where goods.id is null
</if>
group by cate.id
ORDER BY cate.order_num
@ -524,4 +527,126 @@ FROM
</if>
order by pw.create_time desc
</select>
<select id="getOrderByDate" resultType="cn.iocoder.yudao.module.inspection.vo.OrderTable">
SELECT t.id,
t.carNum,
t.type,
t.pay,
t.payType,
CASE
WHEN t.status = '已完成' AND t.is_pass = 0 THEN '不合格'
WHEN t.status = '已完成' AND t.is_pass = 1 THEN '合格'
WHEN t.status = '已完成' THEN '未知'
ELSE ''
END AS result,
t.status
FROM (SELECT ii.id,
ii.car_num AS carNum,
oi.sku_name AS type,
oi.pay_type as payType,
CASE
WHEN oi.pay_type IS NULL THEN '未支付'
ELSE '已支付'
END AS pay,
CASE
WHEN oi.pay_type IS NOT NULL THEN '已完成'
WHEN has_status_0_or_null THEN '检测中'
WHEN (ii.status = 0 OR ii.status = 2) AND has_status_1 THEN '检测中'
WHEN (COALESCE(max_iwn_status, 0) = 2 OR ii.status = 1) THEN '已完成'
WHEN (ii.status = 0 OR ii.status = 2) AND COALESCE(max_iwn_status, 0) = 0 THEN '待检测'
ELSE '未知状态' -- 这是为了处理任何未预期的情况
END AS status,
ii.is_pass,
COALESCE(max_iwn_status, 0) AS max_iwn_status,
oi.create_time
FROM order_info oi
INNER JOIN
inspection_info ii
ON
oi.id = ii.inspection_order_id
LEFT JOIN (SELECT inspection_info_id,
MAX(COALESCE(status, 0)) AS max_iwn_status,
MAX(CASE WHEN COALESCE(status, 0) = 1 THEN 1 ELSE 0 END) AS has_status_1,
MAX(CASE WHEN COALESCE(status, 0) = 0 THEN 1 ELSE 0 END) AS has_status_0_or_null
FROM inspection_work_node
GROUP BY inspection_info_id) iwn_agg
ON
ii.id = iwn_agg.inspection_info_id
WHERE oi.create_time BETWEEN #{startTime} AND #{endTime}
AND oi.deleted = '0') t
<where>
<choose>
<when test="chooseStatus == '2'.toString()">
t.status = '检测中'
</when>
<when test="chooseStatus == '3'.toString()">
t.status = '已完成'
</when>
</choose>
</where>
ORDER BY t.create_time DESC
</select>
<select id="getTypeCount" resultType="java.util.Map">
SELECT t2.type as type, COUNT(*) as count FROM (
SELECT t.id,
t.carNum,
t.type,
t.pay,
t.payType,
CASE
WHEN t.status = '已完成' AND t.is_pass = 0 THEN '不合格'
WHEN t.status = '已完成' AND t.is_pass = 1 THEN '合格'
WHEN t.status = '已完成' THEN '未知'
ELSE ''
END AS result,
t.status
FROM (SELECT ii.id,
ii.car_num AS carNum,
oi.sku_name AS type,
oi.pay_type as payType,
CASE
WHEN oi.pay_type IS NULL THEN '未支付'
ELSE '已支付'
END AS pay,
CASE
WHEN oi.pay_type IS NOT NULL THEN '已完成'
WHEN has_status_0_or_null THEN '检测中'
WHEN (ii.status = 0 OR ii.status = 2) AND has_status_1 THEN '检测中'
WHEN (COALESCE(max_iwn_status, 0) = 2 OR ii.status = 1) THEN '已完成'
WHEN (ii.status = 0 OR ii.status = 2) AND COALESCE(max_iwn_status, 0) = 0 THEN '待检测'
ELSE '未知状态' -- 这是为了处理任何未预期的情况
END AS status,
ii.is_pass,
COALESCE(max_iwn_status, 0) AS max_iwn_status,
oi.create_time
FROM order_info oi
INNER JOIN
inspection_info ii
ON
oi.id = ii.inspection_order_id
LEFT JOIN (SELECT inspection_info_id,
MAX(COALESCE(status, 0)) AS max_iwn_status,
MAX(CASE WHEN COALESCE(status, 0) = 1 THEN 1 ELSE 0 END) AS has_status_1,
MAX(CASE WHEN COALESCE(status, 0) = 0 THEN 1 ELSE 0 END) AS has_status_0_or_null
FROM inspection_work_node
GROUP BY inspection_info_id) iwn_agg
ON
ii.id = iwn_agg.inspection_info_id
WHERE oi.create_time BETWEEN #{startTime} AND #{endTime}
AND oi.deleted = '0') t
<where>
<choose>
<when test="chooseStatus == '2'.toString()">
t.status = '检测中'
</when>
<when test="chooseStatus == '3'.toString()">
t.status = '已完成'
</when>
</choose>
</where>
) t2
GROUP BY t2.type
</select>
</mapper>

View File

@ -8,13 +8,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectInspectionEquInfoList" parameterType="cn.iocoder.yudao.module.inspection.entity.InspectionEquInfo" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionEquInfo">
select * from inspection_equ_info
select * from inspection_equ_info
<where>
<if test="inspectionEquInfo.equName != null and inspectionEquInfo.equName != ''"> and equ_name like concat('%', #{inspectionEquInfo.equName}, '%')</if>
<if test="inspectionEquInfo.equModel != null and inspectionEquInfo.equModel != ''"> and equ_model like concat('%', #{inspectionEquInfo.equModel}, '%')</if>
<if test="inspectionEquInfo.equNumber != null and inspectionEquInfo.equNumber != ''"> and equ_number like concat('%', #{inspectionEquInfo.equNumber}, '%')</if>
<if test="inspectionEquInfo.equName != null and inspectionEquInfo.equName != ''">and equ_name like
concat('%', #{inspectionEquInfo.equName}, '%')
</if>
<if test="inspectionEquInfo.equModel != null and inspectionEquInfo.equModel != ''">and equ_model like
concat('%', #{inspectionEquInfo.equModel}, '%')
</if>
<if test="inspectionEquInfo.equNumber != null and inspectionEquInfo.equNumber != ''">and equ_number like
concat('%', #{inspectionEquInfo.equNumber}, '%')
</if>
<if test="inspectionEquInfo.params.beginNextCheckTime != null and inspectionEquInfo.params.beginNextCheckTime != '' and params.endNextCheckTime != null and params.endNextCheckTime != ''">
and next_check_time between #{inspectionEquInfo.params.beginNextCheckTime} and #{inspectionEquInfo.params.endNextCheckTime}</if>
and next_check_time between #{inspectionEquInfo.params.beginNextCheckTime} and
#{inspectionEquInfo.params.endNextCheckTime}
</if>
<if test="inspectionEquInfo.type != null and inspectionEquInfo.type != ''">
and `type` = #{inspectionEquInfo.type}
</if>
</where>
</select>

View File

@ -269,56 +269,144 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
order by ins.start_time desc
</select>
<select id="selectByUser" resultType="cn.iocoder.yudao.module.inspection.entity.InspectionInfo">
SELECT
SELECT *
FROM (
SELECT
ii.*,
iwn.id AS workNodeId,
iwn.status AS workNodeStatus,
oi.order_no AS orderNo,
oi.phonenumber AS buyPhone,
oi.goods_title as goodsTitle,
oi.sku_name as skuName,
ip.project_name AS projectName,
su.nickname AS leadManName
FROM
su.nickname AS leadManName,
ROW_NUMBER() OVER (PARTITION BY ii.id ORDER BY iwn.update_time DESC) as rn -- 根据需要调整排序逻辑
FROM
inspection_info ii
LEFT JOIN
LEFT JOIN
inspection_work_node iwn ON ii.id = iwn.inspection_info_id
LEFT JOIN
LEFT JOIN
order_info oi ON ii.inspection_order_id = oi.id
LEFT JOIN
LEFT JOIN
inspection_project ip ON iwn.project_id = ip.id
LEFT JOIN
LEFT JOIN
system_users su ON ii.lead_man_id = su.id
<where>
<!-- 车牌号模糊查询 -->
<if test="inspectionInfo.carNum != null">
AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%')
</if>
<!-- 待接受 -->
<if test="inspectionInfo.status == 1">
AND <!-- 工单负责人或角色ID匹配 -->
(ii.lead_man_id = #{inspectionInfo.leadManId}
OR iwn.role_id IN
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>)
AND ii.status = '0'
AND iwn.status = '0'
-- AND ii.now_order_num = iwn.order_num
ORDER BY ii.create_time DESC
</if>
<!-- 进行中 -->
<if test="inspectionInfo.status == 2">
AND ii.status = '0'
AND iwn.status = '1'
AND iwn.deal_user_id = #{inspectionInfo.dealUserId}
ORDER BY iwn.update_time DESC
</if>
<!-- 已完成 -->
<if test="inspectionInfo.status == 3">
AND iwn.status = '2'
AND iwn.deal_user_id = #{inspectionInfo.dealUserId}
ORDER BY iwn.update_time DESC
</if>
</where>
</select>
<!-- 车牌号模糊查询 -->
<if test="inspectionInfo.carNum != null">
AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%')
</if>
<!-- 待支付 -->
<if test="inspectionInfo.status == '0'.toString()">
AND (oi.pay_time is null)
ORDER BY iwn.update_time DESC
</if>
<!-- 待接受(待检测) -->
<if test="inspectionInfo.status == 1">
AND <!-- 工单负责人或角色ID匹配 -->
(ii.lead_man_id = #{inspectionInfo.leadManId}
OR iwn.role_id IN
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>)
AND ii.status = '0'
AND iwn.status = '0'
-- AND ii.now_order_num = iwn.order_num
ORDER BY ii.create_time DESC
</if>
<!-- 进行中(检测中) -->
<if test="inspectionInfo.status == 2">
AND (ii.status = '0' OR ii.status = '2')
AND iwn.status = '1'
AND iwn.deal_user_id = #{inspectionInfo.dealUserId}
ORDER BY iwn.update_time DESC
</if>
<!-- 待重检 -->
<if test="inspectionInfo.status == 3">
AND <!-- 工单负责人或角色ID匹配 -->
(ii.lead_man_id = #{inspectionInfo.leadManId}
OR iwn.role_id IN
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>)
AND ii.status = '2'
-- AND iwn.status = '1'
-- AND ii.now_order_num = iwn.order_num
ORDER BY ii.update_time DESC
</if>
<!-- 待复检 -->
<if test="inspectionInfo.status == 4">
AND <!-- 工单负责人或角色ID匹配 -->
(ii.lead_man_id = #{inspectionInfo.leadManId}
OR iwn.role_id IN
<foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
#{roleId}
</foreach>)
-- AND ii.status = '2'
AND iwn.status = '3'
-- AND ii.now_order_num = iwn.order_num
ORDER BY ii.update_time DESC
</if>
<!-- 已完成 -->
<if test="inspectionInfo.status == 5">
AND iwn.status = '2'
AND iwn.deal_user_id = #{inspectionInfo.dealUserId}
ORDER BY iwn.update_time DESC
</if>
</where>
) AS subquery
WHERE rn = 1;
<!-- 之前的查询,修改为了一个工单只出现一条,不分项目 -->
<!-- SELECT-->
<!-- ii.*,-->
<!-- iwn.id AS workNodeId,-->
<!-- iwn.status AS workNodeStatus,-->
<!-- oi.order_no AS orderNo,-->
<!-- oi.phonenumber AS buyPhone,-->
<!-- ip.project_name AS projectName,-->
<!-- su.nickname AS leadManName-->
<!-- FROM-->
<!-- inspection_info ii-->
<!-- LEFT JOIN-->
<!-- inspection_work_node iwn ON ii.id = iwn.inspection_info_id-->
<!-- LEFT JOIN-->
<!-- order_info oi ON ii.inspection_order_id = oi.id-->
<!-- LEFT JOIN-->
<!-- inspection_project ip ON iwn.project_id = ip.id-->
<!-- LEFT JOIN-->
<!-- system_users su ON ii.lead_man_id = su.id-->
<!-- <where>-->
<!-- &lt;!&ndash; 车牌号模糊查询 &ndash;&gt;-->
<!-- <if test="inspectionInfo.carNum != null">-->
<!-- AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%')-->
<!-- </if>-->
<!-- &lt;!&ndash; 待接受 &ndash;&gt;-->
<!-- <if test="inspectionInfo.status == 1">-->
<!-- AND &lt;!&ndash; 工单负责人或角色ID匹配 &ndash;&gt;-->
<!-- (ii.lead_man_id = #{inspectionInfo.leadManId}-->
<!-- OR iwn.role_id IN-->
<!-- <foreach collection="roleIds" item="roleId" open="(" separator="," close=")">-->
<!-- #{roleId}-->
<!-- </foreach>)-->
<!-- AND ii.status = '0'-->
<!-- AND iwn.status = '0'-->
<!-- &#45;&#45; AND ii.now_order_num = iwn.order_num-->
<!-- ORDER BY ii.create_time DESC-->
<!-- </if>-->
<!-- &lt;!&ndash; 进行中 &ndash;&gt;-->
<!-- <if test="inspectionInfo.status == 2">-->
<!-- AND ii.status = '0'-->
<!-- AND iwn.status = '1'-->
<!-- AND iwn.deal_user_id = #{inspectionInfo.dealUserId}-->
<!-- ORDER BY iwn.update_time DESC-->
<!-- </if>-->
<!-- &lt;!&ndash; 已完成 &ndash;&gt;-->
<!-- <if test="inspectionInfo.status == 3">-->
<!-- AND iwn.status = '2'-->
<!-- AND iwn.deal_user_id = #{inspectionInfo.dealUserId}-->
<!-- ORDER BY iwn.update_time DESC-->
<!-- </if>-->
<!-- </where>-->
</select>
</mapper>

View File

@ -167,8 +167,14 @@
news.*,IF(ina.id is null,0,1) as isRead
FROM
inspection_news news
left JOIN inspection_news_association ina ON ina.news_id = news.id and ina.user_id = #{partnerId} and ina.type = 'read'
WHERE news.category = 'jcztz' or news.category = 'zflm'
left JOIN inspection_news_association ina ON ina.news_id = news.id and ina.type = 'read'
WHERE news.category = 'zflm'
<if test="ifShow != null and ifShow != ''">
or news.category = 'jcztz'
or news.type = #{ifShow}
or news.type = 'null'
</if>
group by news.id
order by isRead,news.create_time desc
</select>
<select id="listGfClass" resultType="java.lang.String">

View File

@ -51,13 +51,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
INNER JOIN shop_mall_partners smp ON smp.partner_id = sig.partner_id AND smp.is_banned = '0'
INNER JOIN shop_inspection_category sic ON sic.id = sig.goods_category_id
<where>
and sig.deleted = '0' and smp.deleted = '0' and sic.deleted = '0'
<if test="vo.id != null "> and sig.id = #{vo.id}</if>
<if test="vo.title != null and title != ''"> and sig.title like concat('%', #{vo.title}, '%')</if>
<if test="vo.title != null and vo.title != ''"> and sig.title like concat('%', #{vo.title}, '%')</if>
<if test="vo.goodsCategoryId!= null "> and sig.goods_category_id = #{vo.goodsCategoryId}</if>
<if test="vo.partnerName!= null "> and smp.partner_name like concat('%',#{vo.partnerName},'%')</if>
<if test="vo.partnerId!= null "> and sig.partner_id = #{vo.partnerId}</if>
<if test="vo.isListing != null and vo.isListing != ''">and sig.is_listing = #{vo.isListing}</if>
</where>
ORDER BY FIELD(sig.listing_status,1,2,3,0), create_time desc
ORDER BY sig.is_listing, sig.create_time desc
</select>
</mapper>

View File

@ -8,7 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectWarnMessageList" resultType="cn.iocoder.yudao.module.inspection.entity.WarnMessage">
select * from warn_message
<where>
and warn_time <![CDATA[<=]]> NOW()
and warn_time <![CDATA[<=]]> NOW() and deleted = '0'
<if test="title != null and title != ''"> and title = #{title}</if>
<if test="partnerId != null "> and partner_id = #{partnerId}</if>
<if test="isRead != null and isRead != ''"> and is_read = #{isRead}</if>
@ -27,6 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="warnMessage.title != null and warnMessage.title != ''"> and title = #{warnMessage.title}</if>
<if test="warnMessage.partnerId != null "> and partner_id = #{warnMessage.partnerId}</if>
<if test="warnMessage.isRead != null and warnMessage.isRead != ''"> and is_read = #{warnMessage.isRead}</if>
and deleted = '0'
</where>
order by create_time desc
</select>

View File

@ -45,6 +45,12 @@ public class DriveSchoolSwiperController extends BaseController
@GetMapping("/pclist")
@PermitAll
public CommonResult pclist(DriveSchoolSwiper driveSchoolSwiper) {
if(driveSchoolSwiper.getPageNum() == null) {
driveSchoolSwiper.setPageNum(1);
}
if(driveSchoolSwiper.getPageSize() == null) {
driveSchoolSwiper.setPageSize(100);
}
Page<DriveSchoolSwiper> page = new Page<>(driveSchoolSwiper.getPageNum(), driveSchoolSwiper.getPageSize());
IPage<DriveSchoolSwiper> driveSchoolSeparateIPage = driveSchoolSwiperService.selectDriveSchoolSwiperPclist(driveSchoolSwiper, page);

View File

@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.data.repository.query.Param;
import org.apache.ibatis.annotations.Param;
import java.util.List;

View File

@ -99,9 +99,9 @@ public class DriveSchoolPayServiceImpl implements DriveSchoolPayService
IPage<DriveSchoolPay> driveSchoolPayIPage = driveSchoolPayMapper.stuList(driveSchoolPay, page);
List<DriveSchoolPay> driveSchoolPays = driveSchoolPayIPage.getRecords();
ArrayList<DriveSchoolPay> collect = driveSchoolPays.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DriveSchoolPay::getIdentity))), ArrayList::new));
// ArrayList<DriveSchoolPay> collect = driveSchoolPays.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DriveSchoolPay::getIdentity))), ArrayList::new));
for (DriveSchoolPay schoolPay : collect) {
for (DriveSchoolPay schoolPay : driveSchoolPays) {
Long userId = schoolPay.getUserId();
AdminUserRespDTO sysUser = userApi.getUser(userId);
//SysUser sysUser = sysUserMapper.selectUserById(userId);
@ -110,8 +110,8 @@ public class DriveSchoolPayServiceImpl implements DriveSchoolPayService
}
}
//根据时间倒序排序
collect.sort(Comparator.comparing(DriveSchoolPay::getCreateTime).reversed());
driveSchoolPayIPage.setRecords(collect);
driveSchoolPays.sort(Comparator.comparing(DriveSchoolPay::getCreateTime).reversed());
driveSchoolPayIPage.setRecords(driveSchoolPays);
return driveSchoolPayIPage;
}

View File

@ -111,23 +111,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
FROM drive_school_swiper
<where>
deleted = 0
<if test="driveSchoolSwiper != null">
<if test="driveSchoolSwiper.swiperName != null and driveSchoolSwiper.swiperName != ''">
AND swiper_name LIKE CONCAT('%', #{driveSchoolSwiper.swiperName}, '%')
<if test="entity.swiperName != null and entity.swiperName != ''">
AND swiper_name LIKE CONCAT('%', #{entity.swiperName}, '%')
</if>
<if test="driveSchoolSwiper.swiperPicture != null and driveSchoolSwiper.swiperPicture != ''">
AND swiper_picture = #{driveSchoolSwiper.swiperPicture}
<if test="entity.swiperPicture != null and entity.swiperPicture != ''">
AND swiper_picture = #{entity.swiperPicture}
</if>
<if test="driveSchoolSwiper.jumpUrl != null and driveSchoolSwiper.jumpUrl != ''">
AND jump_url = #{driveSchoolSwiper.jumpUrl}
<if test="entity.jumpUrl != null and entity.jumpUrl != ''">
AND jump_url = #{entity.jumpUrl}
</if>
<if test="driveSchoolSwiper.deptId != null">
AND dept_id = #{driveSchoolSwiper.deptId}
<if test="entity.deptId != null">
AND dept_id = #{entity.deptId}
</if>
<if test="driveSchoolSwiper.listOrder != null">
AND list_order = #{driveSchoolSwiper.listOrder}
<if test="entity.listOrder != null">
AND list_order = #{entity.listOrder}
</if>
</if>
</where>
ORDER BY list_order ASC

View File

@ -80,7 +80,7 @@ public enum RecordTypeEnum {
/** 删除工单 */
SCGG("scgg", "删除工单"),
/** 删除工单 */
/** 交车 */
JC("jc", "交车"),
/** 内返派工 */

View File

@ -19,18 +19,14 @@ public enum TicketsStatusEnum {
* 施工中
*/
WORKING("05","施工中"),
/**
* 未结账
*/
NO_PAY("01","未结账"),
/**
* 待通知客户取车
*/
WAITING_NOTICE("07","待通知客户取车"),
/**
* 已交车
* 未结账
*/
OVER("08","已交车"),
NO_PAY("01","未结账"),
/**
* 挂单/记账
*/
@ -39,6 +35,10 @@ public enum TicketsStatusEnum {
* 已结账
*/
CHECK_OUT("02","已结账"),
/**
* 已交车
*/
OVER("08","已交车"),
/**
* 已作废
*/

View File

@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 针对表dl_repair_tickets(维修工单表)的数据库操作Mapper
*
@ -43,15 +45,16 @@ public interface DlRepairTicketsMapper extends BaseMapper<DlRepairTickets> {
**/
IPage<DlRepairTickets> getPageTypeAll(@Param("map") DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page);
/**
* 根据条件查询指定工单数量
* @author vinjor-M
* @date 15:46 2024/11/18
* @param dayDate 某一天日期
* @param recordCode 操作记录code
* @param recordCode 操作记录code
* @return java.lang.Long
**/
Long selectCountByParams(@Param("nowDate")String dayDate, @Param("recordCode")String recordCode, @Param("startTime")String startTime, @Param("endTime")String endTime);
**/
List<String> selectTicketIdByParams(@Param("nowDate")String dayDate, @Param("recordCode")String recordCode, @Param("startTime")String startTime, @Param("endTime")String endTime);
}

View File

@ -173,7 +173,7 @@ public interface DlRepairTicketsService extends IService<DlRepairTickets> {
* @date 11:30 2024/10/24
* @return java.util.Map<java.lang.String,java.lang.Integer>
**/
Map<String,Long> getBossNum(String selectType,String startDate,String endDate);
Map<String,Object> getBossNum(String selectType,String startDate,String endDate);
/**
* 服务顾问通知客户取车

View File

@ -978,6 +978,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
@Override
public IPage<DlRepairTickets> getPageType(DlRepairTicketsReqVO repairTicketsReqVO, Page<DlRepairTickets> page) {
String userRoleCode = getUserRole();
if(null!=repairTicketsReqVO.getIdList() && repairTicketsReqVO.getIdList().size()>0){
//根据id集和查询
DlRepairTicketsReqVO queryObj = new DlRepairTicketsReqVO();
queryObj.setIdList(repairTicketsReqVO.getIdList());
return baseMapper.getPageTypeAll(queryObj, page);
}
if (userRoleCode.equals(RepairRoleEnum.ADMIN.getCode())) {
//维修管理员看所有数据
} else if (userRoleCode.equals(RepairRoleEnum.WAREHOUSE.getCode())) {
@ -1024,7 +1030,57 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
//查待处理
return baseMapper.getPageType(repairTicketsReqVO, page);
} else {
//查所有
//查所有,
if(("jinchang".equals(repairTicketsReqVO.getTicketsStatus()) ||
"yijungong".equals(repairTicketsReqVO.getTicketsStatus()) ||
"yijiaoche".equals(repairTicketsReqVO.getTicketsStatus())) && StringUtils.isNotEmpty(repairTicketsReqVO.getStartDate())){
//如果是查询进场已竣工已交车三个状态同时选了时间范围的需要单独处理
String startDate = repairTicketsReqVO.getStartDate()+" 00:00:00";
String endDate = repairTicketsReqVO.getEndDate()+" 23:59:59";
List<String> idList = new ArrayList<>();
if("yijungong".equals(repairTicketsReqVO.getTicketsStatus())){
//已竣工
idList = repairTicketsMapper.selectTicketIdByParams(null,RecordTypeEnum.ZJ.getCode(),startDate,endDate);
}else if("yijiaoche".equals(repairTicketsReqVO.getTicketsStatus())){
//已交车
idList = repairTicketsMapper.selectTicketIdByParams(null,RecordTypeEnum.JC.getCode(),startDate,endDate);
}else {
//进厂
repairTicketsReqVO.setStartDate(startDate);
repairTicketsReqVO.setEndDate(endDate);
}
if(null!=idList && !idList.isEmpty()){
repairTicketsReqVO.setIdList(idList);
//时间查询条件置空
repairTicketsReqVO.setStartDate(null);
repairTicketsReqVO.setEndDate(null);
}
}else {
//否则查询时间不生效按维修状态查
List<String> statusList = new ArrayList<>();
if("weixiuzhong".equals(repairTicketsReqVO.getTicketsStatus())){
//维修中
statusList.add(TicketsStatusEnum.WORKING.getCode());
}else if("weijiesuan".equals(repairTicketsReqVO.getTicketsStatus())){
//未结算
statusList = Arrays.asList("04","05","07","01");
}else if("zaichang".equals(repairTicketsReqVO.getTicketsStatus())){
//在厂
statusList = Arrays.asList("04","05","07","01","06","02");
}else if("jinchang".equals(repairTicketsReqVO.getTicketsStatus())){
//进厂
statusList.add(TicketsStatusEnum.NO_WORK.getCode());
}else if("yijungong".equals(repairTicketsReqVO.getTicketsStatus())){
//已竣工
statusList.add(TicketsStatusEnum.WAITING_NOTICE.getCode());
}else if("yijiaoche".equals(repairTicketsReqVO.getTicketsStatus())){
//已交车
statusList.add(TicketsStatusEnum.OVER.getCode());
}
if(!statusList.isEmpty()){
repairTicketsReqVO.setStatusList(statusList);
}
}
return baseMapper.getPageTypeAll(repairTicketsReqVO, page);
}
}
@ -1550,54 +1606,86 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
* @date 11:30 2024/10/24
**/
@Override
public Map<String, Long> getBossNum(String selectType,String startDate,String endDate) {
Map<String, Long> rtnMap = new HashMap<>();
public Map<String, Object> getBossNum(String selectType,String startDate,String endDate) {
Map<String, Object> rtnMap = new HashMap<>();
//维修中---当前这一时刻
long workingNum = 0;
List<String> workingIdList = new ArrayList<>();
//在厂数--当前这一时刻
long inCompanyNum = 0;
List<String> inCompanyIdList = new ArrayList<>();
//进场数
long newOrderNum=0;
List<String> newOrderIdList = new ArrayList<>();
//已完成
long overNum=0;
List<String> overIdList = new ArrayList<>();
//已交车
long giveCusNum=0;
List<String> giveCusIdList = new ArrayList<>();
//未结算
long noPayNum=0;
List<String> noPayIdList = new ArrayList<>();
List<DlRepairTickets> repairTickets = this.list();
if (!repairTickets.isEmpty()) {
workingNum = repairTickets.stream().filter(item -> TicketsStatusEnum.WORKING.getCode().equals(item.getTicketsStatus())).count();
inCompanyNum = repairTickets.stream().filter(item -> TicketsStatusEnum.NO_PAY.getCode().equals(item.getTicketsStatus())).count();
workingIdList = repairTickets.stream().filter(item -> TicketsStatusEnum.WORKING.getCode().equals(item.getTicketsStatus())).map(DlRepairTickets::getId).collect(Collectors.toList());
workingNum = workingIdList.size();
//只要没交车都算在厂
List<String> inCompanyCodeList = Arrays.asList("04","05","07","01","06","02");
inCompanyIdList = repairTickets.stream().filter(item -> inCompanyCodeList.contains(item.getTicketsStatus())).map(DlRepairTickets::getId).collect(Collectors.toList());
inCompanyNum = inCompanyIdList.size();
//只要没结算都是未结算
List<String> noPayCodeList = Arrays.asList("04","05","07","01");
noPayIdList = repairTickets.stream().filter(item -> noPayCodeList.contains(item.getTicketsStatus())).map(DlRepairTickets::getId).collect(Collectors.toList());
noPayNum = noPayIdList.size();
LocalDateTime currentTime = LocalDateTime.now();
if("today".equals(selectType)){
String nowDayStr = DateUtil.formatDate(new Date());
//查当日进厂数已完成已交车
newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().toLocalDate().equals(currentTime.toLocalDate())).count();
newOrderIdList = repairTickets.stream().filter(item -> item.getCreateTime().toLocalDate().equals(currentTime.toLocalDate())).map(DlRepairTickets::getId).collect(Collectors.toList());
newOrderNum = newOrderIdList.size();
//查当日已完成的总检完成的
overNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.ZJ.getCode(),null,null);
//查当日已交车的已结算的
giveCusNum = repairTicketsMapper.selectCountByParams(nowDayStr,RecordTypeEnum.JS.getCode(),null,null);
overIdList = repairTicketsMapper.selectTicketIdByParams(nowDayStr,RecordTypeEnum.ZJ.getCode(),null,null);
overNum = overIdList.size();
//查当日已交车的
giveCusIdList = repairTicketsMapper.selectTicketIdByParams(nowDayStr,RecordTypeEnum.JC.getCode(),null,null);
giveCusNum = giveCusIdList.size();
}else if("all".equals(selectType)){
//查累计进厂数已完成已交车
newOrderIdList = repairTickets.stream().map(DlRepairTickets::getId).collect(Collectors.toList());
newOrderNum = repairTickets.size();
//查累计已完成的总检完成的
overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(),null,null);
overIdList = repairTicketsMapper.selectTicketIdByParams(null,RecordTypeEnum.ZJ.getCode(),null,null);
overNum = overIdList.size();
//查累计已交车的已结算的
giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(),null,null);
giveCusIdList = repairTicketsMapper.selectTicketIdByParams(null,RecordTypeEnum.JC.getCode(),null,null);
giveCusNum = giveCusIdList.size();
}else {
//查某个时间范围内进厂数已完成已交车
LocalDateTime startTime = LocalDateTime.parse(startDate+" 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime endTime = LocalDateTime.parse(endDate+" 23:59:59", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
newOrderNum = repairTickets.stream().filter(item -> item.getCreateTime().isAfter(startTime) && item.getCreateTime().isBefore(endTime)).count();
newOrderIdList = repairTickets.stream().filter(item -> item.getCreateTime().isAfter(startTime) && item.getCreateTime().isBefore(endTime)).map(DlRepairTickets::getId).collect(Collectors.toList());
newOrderNum = newOrderIdList.size();
//查某区间范围内已完成的总检完成的
overNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.ZJ.getCode(), startDate+" 00:00:00", endDate+" 23:59:59");
//查某区间范围内已交车的已结算的
giveCusNum = repairTicketsMapper.selectCountByParams(null,RecordTypeEnum.JS.getCode(), startDate+" 00:00:00", endDate+" 23:59:59");
overIdList = repairTicketsMapper.selectTicketIdByParams(null,RecordTypeEnum.ZJ.getCode(), startDate+" 00:00:00", endDate+" 23:59:59");
overNum = overIdList.size();
//查某区间范围内已交车的
giveCusIdList = repairTicketsMapper.selectTicketIdByParams(null,RecordTypeEnum.JC.getCode(), startDate+" 00:00:00", endDate+" 23:59:59");
giveCusNum = giveCusIdList.size();
}
}
rtnMap.put("workingNum", workingNum);
rtnMap.put("workingIdList", workingIdList);
rtnMap.put("inCompanyNum", inCompanyNum);
rtnMap.put("inCompanyIdList", inCompanyIdList);
rtnMap.put("newOrderNum", newOrderNum);
rtnMap.put("newOrderIdList", newOrderIdList);
rtnMap.put("overNum", overNum);
rtnMap.put("overIdList", overIdList);
rtnMap.put("giveCusNum", giveCusNum);
rtnMap.put("giveCusIdList", giveCusIdList);
rtnMap.put("noPayNum", noPayNum);
rtnMap.put("noPayIdList", noPayIdList);
return rtnMap;
}

View File

@ -42,4 +42,14 @@ public class DlRepairTicketsReqVO extends DlRepairTickets {
/** 客户来源 */
private String cusFrom;
/** 查询开始日期 */
private String startDate;
/** 查询结束日期 */
private String endDate;
/** 工单状态集和 */
private List<String> statusList;
/** 工单id集和 */
private List<String> idList;
}

View File

@ -369,11 +369,28 @@
)
</if>
<if test="map.searchTimeArray != null and map.searchTimeArray.length > 0">
and drt.create_time between #{map.searchTimeArray[0]} and #{map.searchTimeArray[1]}
and (drt.create_time between #{map.searchTimeArray[0]} and #{map.searchTimeArray[1]})
</if>
<if test="map.startDate != null and map.startDate != ''">
and (drt.create_time &gt;= #{map.startDate} and drt.create_time &lt;= #{map.endDate})
</if>
<if test="map.repairType !=null and map.repairType !=''">
AND (drt.repair_type=#{map.repairType})
</if>
<if test="map.statusList !=null and map.statusList.size > 0">
AND (drt.tickets_status IN
<foreach collection="map.statusList" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
)
</if>
<if test="map.idList !=null and map.idList.size > 0">
AND (drt.id IN
<foreach collection="map.idList" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
)
</if>
<if test="map.cusFrom != null and map.cusFrom!=''">
<choose>
<when test="map.cusFrom == '06'">
@ -405,9 +422,10 @@
GROUP BY drt.id
order by drt.update_time desc
</select>
<select id="selectCountByParams" resultType="java.lang.Long">
<select id="selectTicketIdByParams" resultType="java.lang.String">
SELECT
COUNT(DISTINCT drt.id)
DISTINCT drt.id
FROM
dl_repair_tickets drt
LEFT JOIN dl_repair_records drr ON drt.id = drr.ticket_id

View File

@ -193,7 +193,6 @@ public class SysLoginController {
return success(loginService.login(authLoginReqVO));
}
/**
* 汽修小程序登录方法
*

View File

@ -40,4 +40,11 @@ public interface RoleApi {
**/
List<UserDTO> selectUserListByRoleCode(Long tenantId,String code);
/**
* 通过角色id查询角色
*
* @author 小李
* @date 13:21 2024/12/17
**/
Long selectListByRoleId();
}

View File

@ -162,4 +162,13 @@ public interface AdminUserApi {
**/
void setOpenId(Long userId,String openId);
/**
* 更新用户信息慎用
*
* @author 小李
* @date 11:47 2024/12/20
* @param newUser 新用户信息
**/
void updateUser(AdminUserRespDTO newUser);
}

View File

@ -3,8 +3,10 @@ package cn.iocoder.yudao.module.system.api.permission;
import cn.hutool.core.bean.BeanUtil;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -64,4 +66,19 @@ public class RoleApiImpl implements RoleApi {
public List<UserDTO> selectUserListByRoleCode(Long tenantId,String code) {
return roleService.selectByRoleCode(tenantId,code);
}
/**
* 通过角色id查询角色
*
* @author 小李
* @date 13:21 2024/12/17
**/
@Override
public Long selectListByRoleId(){
RolePageReqVO rolePageReqVO = new RolePageReqVO();
rolePageReqVO.setPageNo(1);
rolePageReqVO.setPageSize(1000);
IPage<UserDTO> userDTOIPage = roleService.selectListByRoleId(rolePageReqVO);
return userDTOIPage.getTotal();
}
}

View File

@ -195,4 +195,17 @@ public class AdminUserApiImpl implements AdminUserApi {
userService.setOpenId(userId, openId);
}
/**
* 更新用户信息慎用
*
* @author 小李
* @date 11:47 2024/12/20
* @param newUser 新用户信息
**/
@Override
public void updateUser(AdminUserRespDTO newUser){
AdminUserDO bean = BeanUtil.toBean(newUser, AdminUserDO.class);
userService.updateById(bean);
}
}

View File

@ -117,7 +117,7 @@ public class AuthController {
if (loginBody.getTypes().equals("3") && !roleNames.contains("教练")){
return error(new ErrorCode(2_002_000_005, "当前登录用户未分配教练角色"));
}
if (loginBody.getTypes().equals("2") && !roleNames.contains("驾校管理员")){
if (loginBody.getTypes().equals("2") && !roleNames.contains("驾校业务管理员")){
return error(new ErrorCode(2_002_000_005, "当前登录用户未分配驾校管理员角色"));
}

View File

@ -40,6 +40,7 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.config.CommonStr.SUPER_ADMIN_ID;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
@ -349,8 +350,10 @@ public class RoleServiceImpl implements RoleService {
*/
@Override
public List<RoleDO> pageByQuery(RoleDO roleDO) {
return roleMapper.selectList(new LambdaQueryWrapper<RoleDO>()
//去年检测用户
List<RoleDO> roleDOS = roleMapper.selectList(new LambdaQueryWrapper<RoleDO>()
.eq(RoleDO::getServicePackageId, roleDO.getServicePackageId()));
return roleDOS.stream().filter(item -> !item.getCode().equals("jcyh")).collect(Collectors.toList());
}
@Override

View File

@ -26,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join system_user_role sr on su.id = sr.user_id
left join system_role sr2 on sr.role_id = sr2.id
<where>
su.deleted = 0 and sr2.service_package_id = 'jiance'
su.deleted = 0 and sr2.service_package_id = 'jiance' and sr2.code != 'jcyh'
<if test="role.roleId != null">
and sr.role_id = #{role.roleId}
</if>

View File

@ -303,6 +303,9 @@ yudao:
- /app-api/** #小程序端接口,不区分租户
- /repair/tickets/print/**
- /admin-api/repair/tickets/print/**
- /admin-api/jx/auth/**
- /admin-api/jx/**
- /admin-api/jx/auth/getAppInfo
ignore-tables:
- system_tenant
- system_tenant_package