Merge branch 'dev' of http://122.51.230.86:3000/dianliang/lanan-system into dev
This commit is contained in:
commit
f4fe1d3fa3
@ -151,4 +151,29 @@ public class AppSwiperController extends BaseController
|
||||
map.put("user", sysUser);
|
||||
return CommonResult.success(map);
|
||||
}
|
||||
// @GetMapping("/getJcWorkerInfo")
|
||||
// public CommonResult getJcWorkerInfo()
|
||||
// {
|
||||
//
|
||||
// LambdaQueryWrapper<PartnerWorker> queryWrapper =new LambdaQueryWrapper<>();
|
||||
// SysUser user = SecurityUtils.getLoginUser().getUser();
|
||||
// queryWrapper.eq(PartnerWorker::getUserId,user.getUserId());
|
||||
// PartnerWorker worker = jcWorkerService.getOne(queryWrapper);
|
||||
// if (ObjectUtil.isNotEmpty(worker)){
|
||||
// LambdaQueryWrapper<ShopMallPartners> queryWrapper1 =new LambdaQueryWrapper<>();
|
||||
// queryWrapper1.eq(ShopMallPartners::getPartnerId,worker.getPartnerId()).eq(ShopMallPartners::getType,"jc").eq(ShopMallPartners::getIsBanned,"0");
|
||||
// ShopMallPartners partner = partnersService.getOne(queryWrapper1);
|
||||
// if (ObjectUtil.isEmpty(partner)){
|
||||
// return error("信息有误");
|
||||
// }
|
||||
// ajax.put("partnerInfo", partner);
|
||||
// }else {
|
||||
// return error("信息有误");
|
||||
// }
|
||||
// SysUser sysUser = userService.selectUserById(user.getUserId());
|
||||
//
|
||||
// ajax.put("user", sysUser);
|
||||
//
|
||||
// return ajax;
|
||||
// }
|
||||
}
|
||||
|
@ -96,4 +96,13 @@ public class InspectionInfoController extends BaseController
|
||||
{
|
||||
return toAjax(inspectionInfoService.deleteInspectionInfoByIds(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据当前登陆人获取可以选择的工单
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("geStelectInspection")
|
||||
public CommonResult geStelectInspection(){
|
||||
return success(inspectionInfoService.geStelectInspection());
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.inspection.entity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
@ -143,4 +144,10 @@ public class InspectionInfo extends TenantBaseDO
|
||||
private String isPayOnline;
|
||||
//是否上门取车0否1是
|
||||
private String isPickCar;
|
||||
/** 当前流程节点 */
|
||||
private Integer nowOrderNum;
|
||||
|
||||
/** 开始检测时需要 传入 选择项目的id、角色id、排序 */
|
||||
private List<InspectionWorkNode> inspectionWorkNodes;
|
||||
private String workNodeId;
|
||||
}
|
||||
|
@ -0,0 +1,81 @@
|
||||
package cn.iocoder.yudao.module.inspection.entity;
|
||||
|
||||
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检测流程表
|
||||
* </p>
|
||||
*
|
||||
* @author dianliang
|
||||
* @since 2024-10-31
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("inspection_work_node")
|
||||
public class InspectionWorkNode extends TenantBaseDO {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 检测工单主键
|
||||
*/
|
||||
private Long inspectionInfoId;
|
||||
|
||||
/**
|
||||
* 项目主键
|
||||
*/
|
||||
private String projectId;
|
||||
|
||||
/**
|
||||
* 角色主键
|
||||
*/
|
||||
private Integer roleId;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Integer orderNum;
|
||||
|
||||
/**
|
||||
* 记录类型(inspection_records_type)
|
||||
*/
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 记录描述
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 维修图片
|
||||
*/
|
||||
private String dealImages;
|
||||
|
||||
/**
|
||||
* 处理人
|
||||
*/
|
||||
private String dealUserName;
|
||||
|
||||
/**
|
||||
* 处理人员工表id
|
||||
*/
|
||||
private Integer dealUserId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package cn.iocoder.yudao.module.inspection.mapper;
|
||||
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionWorkNode;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检测流程表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author dianliang
|
||||
* @since 2024-10-31
|
||||
*/
|
||||
public interface InspectionWorkNodeMapper extends BaseMapper<InspectionWorkNode> {
|
||||
|
||||
}
|
@ -75,4 +75,9 @@ public interface IInspectionInfoService extends IService<InspectionInfo>
|
||||
|
||||
Map<String,Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime);
|
||||
|
||||
/**
|
||||
* 根据当前登陆人获取可以选择的工单
|
||||
* @return
|
||||
*/
|
||||
List<InspectionInfo> geStelectInspection();
|
||||
}
|
||||
|
@ -0,0 +1,16 @@
|
||||
package cn.iocoder.yudao.module.inspection.service;
|
||||
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionWorkNode;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检测流程表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author dianliang
|
||||
* @since 2024-10-31
|
||||
*/
|
||||
public interface IInspectionWorkNodeService extends IService<InspectionWorkNode> {
|
||||
|
||||
}
|
@ -2,9 +2,13 @@ package cn.iocoder.yudao.module.inspection.service.impl;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.security.core.LoginUser;
|
||||
@ -17,7 +21,9 @@ import cn.iocoder.yudao.module.partner.service.IPartnerWorkerService;
|
||||
import cn.iocoder.yudao.module.payment.service.IOrderInfoDetailService;
|
||||
import cn.iocoder.yudao.module.payment.service.OrderInfoService;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.service.permission.RoleService;
|
||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||
import cn.iocoder.yudao.util.SendSmsUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@ -49,8 +55,7 @@ import javax.annotation.Resource;
|
||||
* @date 2023-08-13
|
||||
*/
|
||||
@Service
|
||||
public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,InspectionInfo> implements IInspectionInfoService
|
||||
{
|
||||
public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper, InspectionInfo> implements IInspectionInfoService {
|
||||
@Autowired
|
||||
private AdminUserService userService;
|
||||
@Autowired
|
||||
@ -72,8 +77,15 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
private IDelOrderInfoService delInspectionOrderService;
|
||||
@Autowired
|
||||
private IDelInspectionInfoService delInspectionInfoService;
|
||||
@Autowired
|
||||
private IInspectionWorkNodeService workNodeService;
|
||||
@Autowired
|
||||
private InspectionStepInfoService inspectionStepInfoService;
|
||||
@Resource
|
||||
private CustomerMainService customerMainService;
|
||||
@Autowired
|
||||
private RoleService roleService;
|
||||
|
||||
/**
|
||||
* 查询【请填写功能名称】
|
||||
*
|
||||
@ -81,8 +93,7 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
* @return 【请填写功能名称】
|
||||
*/
|
||||
@Override
|
||||
public InspectionInfo selectInspectionInfoById(Long id)
|
||||
{
|
||||
public InspectionInfo selectInspectionInfoById(Long id) {
|
||||
return baseMapper.selectInspectionInfoById(id);
|
||||
}
|
||||
|
||||
@ -93,8 +104,7 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
* @return 【请填写功能名称】
|
||||
*/
|
||||
@Override
|
||||
public IPage<InspectionInfo> selectInspectionInfoList(Page<InspectionInfo> page, InspectionInfo inspectionInfo)
|
||||
{
|
||||
public IPage<InspectionInfo> selectInspectionInfoList(Page<InspectionInfo> page, InspectionInfo inspectionInfo) {
|
||||
return baseMapper.selectInspectionInfoList(page, inspectionInfo);
|
||||
}
|
||||
|
||||
@ -109,15 +119,19 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
public int insertInspectionInfo(InspectionInfo inspectionInfo) throws Exception {
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
ShopMallPartners partners = appInspectionPartnerService.shopInfo();
|
||||
LambdaQueryWrapper<PartnerWorker> workerQueryWrapper =new LambdaQueryWrapper<>();
|
||||
workerQueryWrapper.eq(PartnerWorker::getUserId,loginUser.getId()).eq(PartnerWorker::getPartnerId,partners.getPartnerId());
|
||||
PartnerWorker worker = workerService.getOne(workerQueryWrapper);
|
||||
if (ObjectUtils.isNotEmpty(worker)){
|
||||
inspectionInfo.setWorkId(worker.getId());
|
||||
}else {
|
||||
throw new Exception("请先将接待员加入员工");
|
||||
// LambdaQueryWrapper<PartnerWorker> workerQueryWrapper =new LambdaQueryWrapper<>();
|
||||
// workerQueryWrapper.eq(PartnerWorker::getUserId,loginUser.getId()).eq(PartnerWorker::getPartnerId,partners.getPartnerId());
|
||||
// PartnerWorker worker = workerService.getOne(workerQueryWrapper);
|
||||
// if (ObjectUtils.isNotEmpty(worker)){
|
||||
// inspectionInfo.setWorkId(worker.getId());
|
||||
// }else {
|
||||
// throw new Exception("请先将接待员加入员工");
|
||||
// }
|
||||
if (ObjectUtils.isEmpty(inspectionInfo.getInspectionWorkNodes())) {
|
||||
throw new RuntimeException("请选择检测项目");
|
||||
}
|
||||
AdminUserDO workerUser =userService.getUser(worker.getUserId());
|
||||
//当前登陆人 就是检测人
|
||||
AdminUserDO workerUser = userService.getUser(loginUser.getId());
|
||||
String buyName = StringUtils.isNotEmpty(inspectionInfo.getBuyName()) ? inspectionInfo.getBuyName() : "未知客户";
|
||||
String buyPhone = StringUtils.isNotEmpty(inspectionInfo.getBuyPhone()) ? inspectionInfo.getBuyPhone() : StringUtils.isNotEmpty(inspectionInfo.getBuyName()) ? inspectionInfo.getBuyName() : "无";
|
||||
AdminUserDO user = userService.getUserByMobile(buyPhone);
|
||||
@ -213,7 +227,23 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
}
|
||||
//追加订单明细记录
|
||||
orderInfoDetailService.save(new OrderInfoDetail(orderInfo.getId(), "线下订单创建", new Date(), 0L, "1"));
|
||||
return baseMapper.insert(inspectionInfo);
|
||||
//默认当前流程的顺序为1
|
||||
inspectionInfo.setNowOrderNum(1);
|
||||
//添加检测工单
|
||||
baseMapper.insert(inspectionInfo);
|
||||
//补充检测流程
|
||||
List<InspectionWorkNode> inspectionWorkNodes = inspectionInfo.getInspectionWorkNodes();
|
||||
//将检测工单流程补充检测工单id
|
||||
inspectionWorkNodes.stream().forEach(inspectionWorkNode -> inspectionWorkNode.setInspectionInfoId(inspectionInfo.getId()));
|
||||
workNodeService.saveBatch(inspectionWorkNodes);
|
||||
|
||||
//检测步骤表插入检测开始
|
||||
InspectionStepInfo stepInfo = new InspectionStepInfo();
|
||||
stepInfo.setInspectionInfoId(Integer.parseInt(String.valueOf(inspectionInfo.getId())));
|
||||
stepInfo.setTitle("检测开始");
|
||||
stepInfo.setContent("检测开始");
|
||||
boolean save = inspectionStepInfoService.save(stepInfo);
|
||||
return save ? 1 : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -284,8 +314,7 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int deleteInspectionInfoByIds(Long id)
|
||||
{
|
||||
public int deleteInspectionInfoByIds(Long id) {
|
||||
InspectionInfo info = this.getById(id);
|
||||
baseMapper.deleteInspectionInfoById(id);
|
||||
OrderInfo orderInfo = orderInfoService.getById(info.getInspectionOrderId());
|
||||
@ -307,10 +336,10 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteInspectionInfoById(Long id)
|
||||
{
|
||||
public int deleteInspectionInfoById(Long id) {
|
||||
return baseMapper.deleteInspectionInfoById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<InspectionInfo> workOrder(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
||||
return baseMapper.workOrder(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime);
|
||||
@ -335,4 +364,51 @@ public class InspectionInfoServiceImpl extends ServiceImpl<InspectionInfoMapper,
|
||||
public Map<String, Object> workOrderData(Long partnerId, String carNum, String goodsTitle, String customerSource, String payType, String startTime, Long roleId, String endTime) {
|
||||
return baseMapper.workOrderData(partnerId, carNum, goodsTitle, customerSource, payType, startTime, roleId, endTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据当前登陆人获取可以选择的工单
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<InspectionInfo> geStelectInspection() {
|
||||
//获取当前登录人
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
//获取当前登陆人的角色
|
||||
List<UserRoleDO> byUserId = roleService.getByUserId(loginUser.getId());
|
||||
List<Long> roleIds = byUserId.stream().map(UserRoleDO::getRoleId).collect(Collectors.toList());
|
||||
//查询所有工单为进行中的
|
||||
List<InspectionInfo> inspectionInfos = baseMapper.selectList(new LambdaQueryWrapper<InspectionInfo>()
|
||||
.eq(InspectionInfo::getStatus, 0));
|
||||
//根据工单id查询工单流程节点
|
||||
List<Long> infoIds = inspectionInfos.stream().map(inspectionInfo -> inspectionInfo.getId()).collect(Collectors.toList());
|
||||
if (ObjectUtils.isNotEmpty(infoIds)) {
|
||||
List<InspectionWorkNode> inspectionWorkNodes = workNodeService.list(new LambdaQueryWrapper<InspectionWorkNode>()
|
||||
.in(InspectionWorkNode::getInspectionInfoId, infoIds)
|
||||
.eq(InspectionWorkNode::getDealUserId, null));
|
||||
|
||||
//工单集合
|
||||
List<InspectionInfo> inspectionInfoList = new ArrayList<>();
|
||||
|
||||
//根据工单id查询工单流程节点
|
||||
Map<Long, List<InspectionWorkNode>> inspectionWorkNodeMap = inspectionWorkNodes.stream().collect(Collectors.groupingBy(InspectionWorkNode::getInspectionInfoId));
|
||||
for (InspectionInfo inspectionInfo : inspectionInfos) {
|
||||
List<InspectionWorkNode> inspectionWorkNodeList = inspectionWorkNodeMap.get(inspectionInfo.getId());
|
||||
//遍历工单流程节点 流程为key
|
||||
if (CollectionUtil.isNotEmpty(inspectionWorkNodeList)) {
|
||||
Map<Integer, InspectionWorkNode> inspectionWorkMap = inspectionWorkNodeList.stream().collect(Collectors.toMap(InspectionWorkNode::getOrderNum, item -> item));
|
||||
InspectionWorkNode inspectionWorkNode = inspectionWorkMap.get(inspectionInfo.getNowOrderNum());
|
||||
if (inspectionWorkNode != null){
|
||||
//判断当前项目 当前登录人员 是否可以处理
|
||||
if (roleIds.contains(inspectionWorkNode.getRoleId())){
|
||||
inspectionInfo.setWorkNodeId(inspectionWorkNode.getId());
|
||||
inspectionInfoList.add(inspectionInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return inspectionInfoList;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package cn.iocoder.yudao.module.inspection.service.impl;
|
||||
|
||||
import cn.iocoder.yudao.module.inspection.entity.InspectionWorkNode;
|
||||
import cn.iocoder.yudao.module.inspection.mapper.InspectionWorkNodeMapper;
|
||||
import cn.iocoder.yudao.module.inspection.service.IInspectionWorkNodeService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 检测流程表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author dianliang
|
||||
* @since 2024-10-31
|
||||
*/
|
||||
@Service
|
||||
public class InspectionWorkNodeServiceImpl extends ServiceImpl<InspectionWorkNodeMapper, InspectionWorkNode> implements IInspectionWorkNodeService {
|
||||
|
||||
}
|
@ -66,15 +66,11 @@ public class SysConfigServiceImpl implements ISysConfigService {
|
||||
*/
|
||||
@Override
|
||||
public String selectConfigByKey(String configKey) {
|
||||
String configValue = Convert.toStr(redisCache2.getCacheObject(getCacheKey(configKey)));
|
||||
if (StringUtils.isNotEmpty(configValue)) {
|
||||
return configValue;
|
||||
}
|
||||
|
||||
SysConfig config = new SysConfig();
|
||||
config.setConfigKey(configKey);
|
||||
SysConfig retConfig = configMapper2.selectConfig(config);
|
||||
if (StringUtils.isNotNull(retConfig)) {
|
||||
redisCache2.setCacheObject(getCacheKey(configKey), retConfig.getConfigValue());
|
||||
return retConfig.getConfigValue();
|
||||
}
|
||||
return StringUtils.EMPTY;
|
||||
|
@ -168,4 +168,11 @@ public interface RoleService {
|
||||
List<RoleDO> pageByQuery(RoleDO roleDO);
|
||||
|
||||
IPage<UserDTO> selectListByRoleId(RolePageReqVO role);
|
||||
|
||||
/**
|
||||
* 根据用户id查询角色
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
List<UserRoleDO> getByUserId(Long userId);
|
||||
}
|
||||
|
@ -359,6 +359,19 @@ public class RoleServiceImpl implements RoleService {
|
||||
return userRoleMapper.selectListByRoleId(page,role);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户id查询角色
|
||||
*
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<UserRoleDO> getByUserId(Long userId) {
|
||||
List<UserRoleDO> userRoleDOS = userRoleMapper.selectList(new LambdaQueryWrapper<UserRoleDO>()
|
||||
.eq(UserRoleDO::getUserId, userId));
|
||||
return userRoleDOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得自身的代理对象,解决 AOP 生效问题
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user