@ -137,12 +137,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
@Resource
@Lazy
private RepairWorkerService repairWorkerService ;
@Resource
private RepairWorkerService workerService ;
@Resource
@Lazy
private RepairRecordsService recordsService ;
@Autowired
@Resource
private RepairRecordsService repairRecordsService ;
@ -217,12 +217,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
repairOrderInfo . setOrderTime ( ticketsRespVO . getCreateTime ( ) ) ;
repairOrderInfo . setOrderStatus ( " 0 " ) ;
repairOrderInfo . setPayMoney ( ticketsRespVO . getTotalPrice ( ) ) ;
if ( ObjectUtil . isNotEmpty ( deptId ) ) {
if ( ObjectUtil . isNotEmpty ( deptId ) ) {
repairOrderInfo . setDeptId ( Integer . parseInt ( deptId + " " ) ) ;
}
/ / 如果选择了预约还要更新预约记录
if ( ObjectUtil . isNotEmpty ( ticketsRespVO . getBookingId ( ) ) ) {
if ( ObjectUtil . isNotEmpty ( ticketsRespVO . getBookingId ( ) ) ) {
DlRepairBooking dlRepairBooking = new DlRepairBooking ( ) ;
dlRepairBooking . setId ( ticketsRespVO . getBookingId ( ) ) ;
dlRepairBooking . setTicketsId ( ticketsRespVO . getId ( ) ) ;
@ -231,7 +231,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
}
repairOrderInfoService . saveOrderInfo ( repairOrderInfo ) ;
/ / 最后记录操作日志 - - 创建工单
repairRecordsService . saveRepairRecord ( ticketsRespVO . getId ( ) , null , RecordTypeEnum . CJGD . getCode ( ) , " 创建工单 " , null ) ;
repairRecordsService . saveRepairRecord ( ticketsRespVO . getId ( ) , null , RecordTypeEnum . CJGD . getCode ( ) , " 创建工单 " , null ) ;
return ticketsRespVO ;
}
@ -260,7 +260,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
DlRepairTickets dlRepairTickets = baseMapper . selectById ( id ) ;
DlRepairTicketsRespVO result = BeanUtil . toBean ( dlRepairTickets , DlRepairTicketsRespVO . class ) ;
/ / 查车辆
if ( ObjectUtil . isNotEmpty ( dlRepairTickets . getCarId ( ) ) ) {
if ( ObjectUtil . isNotEmpty ( dlRepairTickets . getCarId ( ) ) ) {
CarMainRespVO carInfo = carMainService . queryCarById ( dlRepairTickets . getCarId ( ) ) ;
result . setCarInfo ( carInfo ) ;
}
@ -331,17 +331,17 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/ * *
* 客户信息和车辆信息 新增 、 修改
*
* @param customerAndCarVO 用户信息和车辆信息
* @author 小李
* @date 9 : 25 2024 / 10 / 8
* @param customerAndCarVO 用户信息和车辆信息
* * /
@Override
@DSTransactional
public void updateCustomerAndCar ( CustomerAndCarVO customerAndCarVO ) {
public void updateCustomerAndCar ( CustomerAndCarVO customerAndCarVO ) {
/ / 新增用户信息 , 如果不存在
if ( ObjectUtil . isNotEmpty ( customerAndCarVO . getUserInfo ( ) . getPhoneNumber ( ) ) & & ObjectUtil . isNotEmpty ( customerAndCarVO . getUserInfo ( ) . getCusName ( ) ) ) {
if ( ObjectUtil . isNotEmpty ( customerAndCarVO . getUserInfo ( ) . getPhoneNumber ( ) ) & & ObjectUtil . isNotEmpty ( customerAndCarVO . getUserInfo ( ) . getCusName ( ) ) ) {
AdminUserRespDTO userByMobile = adminUserApi . getUserByMobile ( customerAndCarVO . getUserInfo ( ) . getPhoneNumber ( ) ) ;
if ( ObjectUtil . isEmpty ( userByMobile ) ) {
if ( ObjectUtil . isEmpty ( userByMobile ) ) {
UserDTO userDTO = new UserDTO ( ) ;
userDTO . setMobile ( customerAndCarVO . getUserInfo ( ) . getPhoneNumber ( ) ) ;
userDTO . setNickname ( customerAndCarVO . getUserInfo ( ) . getCusName ( ) ) ;
@ -352,32 +352,32 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
}
}
/ / 客户信息
if ( ObjectUtil . isNotEmpty ( customerAndCarVO . getUserInfo ( ) ) ) {
if ( ObjectUtil . isEmpty ( customerAndCarVO . getUserInfo ( ) . getId ( ) ) ) {
if ( ObjectUtil . isNotEmpty ( customerAndCarVO . getUserInfo ( ) ) ) {
if ( ObjectUtil . isEmpty ( customerAndCarVO . getUserInfo ( ) . getId ( ) ) ) {
customerService . save ( customerAndCarVO . getUserInfo ( ) ) ;
} else {
} else {
customerService . updateById ( customerAndCarVO . getUserInfo ( ) ) ;
}
}
/ / 新增车辆信息
if ( ObjectUtil . isNotEmpty ( customerAndCarVO . getCarInfo ( ) ) ) {
if ( ObjectUtil . isEmpty ( customerAndCarVO . getCarInfo ( ) . getId ( ) ) ) {
if ( ObjectUtil . isNotEmpty ( customerAndCarVO . getCarInfo ( ) ) ) {
if ( ObjectUtil . isEmpty ( customerAndCarVO . getCarInfo ( ) . getId ( ) ) ) {
carMainService . createCarMain ( customerAndCarVO . getCarInfo ( ) ) ;
} else {
} else {
carMainService . updateCarMain ( customerAndCarVO . getCarInfo ( ) ) ;
}
}
/ / 新增客户车辆信息关联
String userId = customerAndCarVO . getUserInfo ( ) . getId ( ) ;
String carId = customerAndCarVO . getCarInfo ( ) . getId ( ) ;
if ( ObjectUtil . isNotEmpty ( userId ) & & ObjectUtil . isNotEmpty ( carId ) ) {
if ( ObjectUtil . isNotEmpty ( userId ) & & ObjectUtil . isNotEmpty ( carId ) ) {
/ / 先查询有没有记录
CustomerCar one = customerCarService . getOne ( new LambdaQueryWrapper < CustomerCar > ( ) . and ( item - > {
item . eq ( CustomerCar : : getCusId , userId )
. eq ( CustomerCar : : getCarId , carId ) ;
} ) ) ;
/ / 没有就新增
if ( ObjectUtil . isEmpty ( one ) ) {
if ( ObjectUtil . isEmpty ( one ) ) {
CustomerCar customerCar = new CustomerCar ( ) ;
customerCar . setCusId ( userId ) ;
customerCar . setCarId ( carId ) ;
@ -396,11 +396,11 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
* * /
@Override
public void print ( HttpServletResponse response , String id ) {
Map < String , Object > params = new HashMap < > ( ) ;
params . put ( " jobNumber " , " 123456789 " ) ;
Map < String , Object > params = new HashMap < > ( ) ;
params . put ( " jobNumber " , " 123456789 " ) ;
String fileName = " 结算单.docx " ;
String tmpPath = " D: \\ " + fileName ;
try {
String tmpPath = " D: \\ " + fileName ;
try {
InputStream inputStream = XWPFTemplate . class . getResourceAsStream ( " /templates/gdmb.docx " ) ;
XWPFTemplate template = XWPFTemplate . compile ( inputStream ) ;
template . render ( params ) ;
@ -408,8 +408,8 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
template . write ( fos ) ;
fos . flush ( ) ;
template . close ( ) ;
WordUtil . down ( response , tmpPath , fileName ) ;
} catch ( Exception e ) {
WordUtil . down ( response , tmpPath , fileName ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
}
}
@ -417,22 +417,22 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/ * *
* 分类查询工单分页
*
* @param repairTicketsReqVO 查询对象
* @author 小李
* @date 16 : 26 2024 / 10 / 12
* @param repairTicketsReqVO 查询对象
* * /
@Override
public IPage < DlRepairTickets > getPageType ( DlRepairTicketsReqVO repairTicketsReqVO , Page < DlRepairTickets > page ) {
public IPage < DlRepairTickets > getPageType ( DlRepairTicketsReqVO repairTicketsReqVO , Page < DlRepairTickets > page ) {
String userRoleCode = getUserRole ( ) ;
if ( userRoleCode . equals ( RepairRoleEnum . ADMIN . getCode ( ) ) | | userRoleCode . equals ( RepairRoleEnum . INSPECTION . getCode ( ) ) ) {
/ / 维修管理员和总检 , 看所有数据
} else if ( userRoleCode . equals ( RepairRoleEnum . ADVISOR . getCode ( ) ) ) {
if ( userRoleCode . equals ( RepairRoleEnum . ADMIN . getCode ( ) ) | | userRoleCode . equals ( RepairRoleEnum . INSPECTION . getCode ( ) ) ) {
/ / 维修管理员和总检 , 看所有数据
} else if ( userRoleCode . equals ( RepairRoleEnum . ADVISOR . getCode ( ) ) ) {
/ / 服务顾问看自己的
repairTicketsReqVO . setAdviserId ( String . valueOf ( SecurityFrameworkUtils . getLoginUserId ( ) ) ) ;
} else if ( userRoleCode . equals ( RepairRoleEnum . REPAIR_STAFF . getCode ( ) ) ) {
} else if ( userRoleCode . equals ( RepairRoleEnum . REPAIR_STAFF . getCode ( ) ) ) {
/ / 维修工 , 进一步判断是否是班组长
boolean ifLeader = w orkerService. getIfLeader ( ) ;
if ( ifLeader ) {
boolean ifLeader = repairW orkerService. getIfLeader ( ) ;
if ( ifLeader ) {
/ / 班组长 , 看本班组所有数据
RepairWorker one = repairWorkerService . getOne ( new LambdaQueryWrapper < RepairWorker > ( ) . eq ( RepairWorker : : getUserId , SecurityFrameworkUtils . getLoginUserId ( ) ) ) ;
/ / 查自己班组的员工信息
@ -440,16 +440,16 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/ / 所有的员工信息
List < Long > userIds = list . stream ( ) . map ( RepairWorker : : getUserId ) . collect ( Collectors . toList ( ) ) ;
repairTicketsReqVO . setUserIds ( userIds ) ;
} else {
} else {
/ / 普通维修工
repairTicketsReqVO . setUserIds ( Collections . singletonList ( SecurityFrameworkUtils . getLoginUserId ( ) ) ) ;
}
} else {
} else {
return null ;
}
if ( RepairCons . TICKETS_WAITING . equals ( repairTicketsReqVO . getSelectType ( ) ) ) {
if ( RepairCons . TICKETS_WAITING . equals ( repairTicketsReqVO . getSelectType ( ) ) ) {
return baseMapper . getPageType ( repairTicketsReqVO , page ) ;
} else {
} else {
return baseMapper . getPageTypeAll ( repairTicketsReqVO , page ) ;
}
}
@ -459,9 +459,9 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
*
* @author 小李
* @date 9 : 28 2024 / 10 / 14
* * /
* * /
@Override
public String getUserRole ( ) {
public String getUserRole ( ) {
/ / 查看当前登录用户是什么角色
/ / 当前登录用户的角色信息
List < Long > byUserId = permissionApi . getRoleIdsByUserId ( SecurityFrameworkUtils . getLoginUserId ( ) ) ;
@ -472,27 +472,27 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/ / 取出角色名称
List < String > codes = collect . stream ( ) . map ( RoleReqDTO : : getCode ) . collect ( Collectors . toList ( ) ) ;
/ / 维修业务管理员 - - 可以看所有数据 , 但不能做操作
if ( codes . contains ( RepairRoleEnum . ADMIN . getCode ( ) ) ) {
if ( codes . contains ( RepairRoleEnum . ADMIN . getCode ( ) ) ) {
return RepairRoleEnum . ADMIN . getCode ( ) ;
}
/ / 总检
if ( codes . contains ( RepairRoleEnum . INSPECTION . getCode ( ) ) ) {
if ( codes . contains ( RepairRoleEnum . INSPECTION . getCode ( ) ) ) {
return RepairRoleEnum . INSPECTION . getCode ( ) ;
}
/ / 服务顾问
if ( codes . contains ( RepairRoleEnum . ADVISOR . getCode ( ) ) ) {
if ( codes . contains ( RepairRoleEnum . ADVISOR . getCode ( ) ) ) {
return RepairRoleEnum . ADVISOR . getCode ( ) ;
}
/ / 维修工 ( 或班组长 )
if ( codes . contains ( RepairRoleEnum . REPAIR_STAFF . getCode ( ) ) ) {
if ( codes . contains ( RepairRoleEnum . REPAIR_STAFF . getCode ( ) ) ) {
return RepairRoleEnum . REPAIR_STAFF . getCode ( ) ;
}
/ / 维修仓库管理员
if ( codes . contains ( RepairRoleEnum . WAREHOUSE . getCode ( ) ) ) {
if ( codes . contains ( RepairRoleEnum . WAREHOUSE . getCode ( ) ) ) {
return RepairRoleEnum . WAREHOUSE . getCode ( ) ;
}
/ / 维修财务
if ( codes . contains ( RepairRoleEnum . WXCW . getCode ( ) ) ) {
if ( codes . contains ( RepairRoleEnum . WXCW . getCode ( ) ) ) {
return RepairRoleEnum . WXCW . getCode ( ) ;
}
/ / 啥也不是
@ -502,12 +502,12 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
/ * *
* 接单
*
* @param id 工单ID
* @author 小李
* @date 11 : 48 2024 / 10 / 14
* @param id 工单ID
* * /
@Override
public void updateTake ( String id ) {
public void updateTake ( String id ) {
/ / 改变时看看是否已经被接了
int update = baseMapper . update ( new LambdaUpdateWrapper < DlRepairTickets > ( )
. set ( DlRepairTickets : : getTicketsWorkStatus , TicketsWorkStatusEnum . RECEIVED . getCode ( ) )
@ -515,19 +515,19 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
item . eq ( DlRepairTickets : : getId , id )
. eq ( DlRepairTickets : : getTicketsWorkStatus , TicketsWorkStatusEnum . WAITING_RECEIVING . getCode ( ) ) ;
} ) ) ;
if ( update ! = 1 ) {
if ( update ! = 1 ) {
throw exception0 ( 500 , " 工单已被其他人接单了 " ) ;
}
/ / 最后记录操作日志 - - 接单
repairRecordsService . saveRepairRecord ( id , null , RecordTypeEnum . jd . getCode ( ) , " 接单 " , null ) ;
repairRecordsService . saveRepairRecord ( id , null , RecordTypeEnum . jd . getCode ( ) , " 接单 " , null ) ;
}
/ * *
* 指派员工 , 通知施工
*
* @param reqVO 请求对象
* @author 小李
* @date 15 : 34 2024 / 10 / 14
* @param reqVO 请求对象
* * /
@Override
public void updateRepair ( DlRepairTicketsReqVO reqVO ) {
@ -544,9 +544,9 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
if ( update ! = 1 ) {
throw exception0 ( 500 , " 工单已开始 " ) ;
}
w orkerService. sentMessage ( reqVO . getNowRepairId ( ) , " 您有新的工单要处理 " ) ;
repairW orkerService. sentMessage ( reqVO . getNowRepairId ( ) , " 您有新的工单要处理 " ) ;
/ / 最后记录操作日志 - - 指派施工
repairRecordsService . saveRepairRecord ( reqVO . getId ( ) , null , RecordTypeEnum . ZPSG . getCode ( ) , " 指派施工 " , null ) ;
repairRecordsService . saveRepairRecord ( reqVO . getId ( ) , null , RecordTypeEnum . ZPSG . getCode ( ) , " 指派施工 " , null ) ;
}
/ * *
@ -558,18 +558,18 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
* * /
@Override
@DSTransactional
public void updateStatus ( DlRepairTicketsRespVO respVO ) {
if ( StringUtils . isNotEmpty ( respVO . getTicketsWorkStatus ( ) ) ) {
public void updateStatus ( DlRepairTicketsRespVO respVO ) {
if ( StringUtils . isNotEmpty ( respVO . getTicketsWorkStatus ( ) ) ) {
/ / 更新工单主表
LambdaUpdateWrapper < DlRepairTickets > wrapper = new LambdaUpdateWrapper < > ( ) ;
wrapper . eq ( DlRepairTickets : : getId , respVO . getId ( ) ) ;
wrapper . set ( DlRepairTickets : : getTicketsWorkStatus , respVO . getTicketsWorkStatus ( ) ) ;
if ( ObjectUtil . isNotEmpty ( respVO . getIsFinish ( ) ) ) {
if ( ObjectUtil . isNotEmpty ( respVO . getIsFinish ( ) ) ) {
wrapper . set ( DlRepairTickets : : getIsFinish , respVO . getIsFinish ( ) ) ;
}
baseMapper . update ( wrapper ) ;
}
if ( null ! = respVO . getItem ( ) & & StringUtils . isNotEmpty ( respVO . getItem ( ) . getItemStatus ( ) ) ) {
if ( null ! = respVO . getItem ( ) & & StringUtils . isNotEmpty ( respVO . getItem ( ) . getItemStatus ( ) ) ) {
/ / 更新工单子表
titemService . update ( new LambdaUpdateWrapper < DlRepairTitem > ( )
. set ( DlRepairTitem : : getItemStatus , respVO . getItem ( ) . getItemStatus ( ) )
@ -578,18 +578,90 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl<DlRepairTicketsMappe
}
/ / 记录日志
recordsService . saveRepairRecord ( respVO . getId ( ) , respVO . getItem ( ) . getId ( ) , respVO . getRecordType ( ) , respVO . getRemark ( ) , respVO . getImage ( ) ) ;
/ / 通知服务顾问和维修总检
DlRepairTickets tickets = baseMapper . selectById ( respVO . getId ( ) ) ;
DlRepairTitem titem = titemService . getById ( respVO . getItem ( ) . getId ( ) ) ;
/ *
消息组成 : 谁 , 对那个工单 , 那个项目 , 干了什么
谁 : 工单的当前施工人
对那个工单 : 工单号
那个项目 : 操作的项目
干了什么 : 提交的请求
干了什么有三种情况 : 开始施工 、 施工中的记录上传 、 施工完成
施工完成又分四种情况 : 阶段完成 、 完成并移交下一班组 、 完成并移交总检 、 完成工单 , 其中部分完成同开始施工 、 施工中的记录上传一致 , 只上传 , 不改变
* /
/ / 消息生成
String message = createMessage ( tickets . getNowRepairName ( ) , tickets . getTicketNo ( ) , titem . getItemName ( ) , respVO . getRecordType ( ) , respVO . getFinishType ( ) , respVO . getNextName ( ) ) ;
/ / 通知服务顾问
/ / 如果员工完成了订单
if ( respVO . getRecordType ( ) . equals ( " 03 " ) & & respVO . getFinishType ( ) . equals ( " 03 " ) ) {
repairWorkerService . sentMessage ( Long . valueOf ( tickets . getAdviserId ( ) ) , " 您有新的工单可以交车 " ) ;
} else {
repairWorkerService . sentMessage ( Long . valueOf ( tickets . getAdviserId ( ) ) , message ) ;
}
/ / 通知总检
/ / 总检查角色包含总检的员工
/ / 取这个角色的角色信息
RoleReqDTO roleInfo = roleApi . getRoleInfo ( RepairRoleEnum . INSPECTION . getCode ( ) ) ;
/ / 通过角色信息查有这个角色的人
List < Long > ids = permissionApi . getUserIdByRoleId ( roleInfo . getId ( ) ) ;
if ( CollectionUtil . isEmpty ( ids ) ) return ;
/ / 如果是移交给总检就需要通知总检并让其总检
if ( respVO . getRecordType ( ) . equals ( " 03 " ) & & respVO . getFinishType ( ) . equals ( " 02 " ) ) {
/ / 工单移交给总检 ( 理论上讲只有一个总检 , 就算有多个这里面也只给一个 )
AdminUserRespDTO user = adminUserApi . getUser ( ids . get ( 0 ) ) ;
baseMapper . update ( new LambdaUpdateWrapper < DlRepairTickets > ( )
. set ( DlRepairTickets : : getNowRepairId , user . getId ( ) )
. eq ( DlRepairTickets : : getNowRepairName , user . getNickname ( ) ) ) ;
repairWorkerService . sentMessage ( user . getId ( ) , " 您有新的工单需要总检 " ) ;
} else {
ids . forEach ( id - > {
repairWorkerService . sentMessage ( id , message ) ;
} ) ;
}
}
private String createMessage ( String who , String no , String projectName , String type , String finishType , String nextName ) {
String result = who ;
switch ( type ) {
/ / 开始施工
case " kssg " :
return result + " 开始施工工单: " + no + " 中 " + projectName + " 项目 " ;
/ / 施工记录
case " sgz " :
return result + " 上传了工单: " + no + " 中 " + projectName + " 项目的维修记录 " ;
/ / 施工完成
case " sgwczj " :
result = result + " 完成了工单: " + no + " 中 " + projectName + " 项目 " ;
switch ( finishType ) {
/ / 完成并移交下一班组
case " 01 " :
return result + " 并移交工单给了 " + nextName ;
/ / 完成并移交总检
case " 02 " :
return result + " 并移交给了总检 " ;
/ / 完成工单
case " 03 " :
return who + " 完成了工单 " ;
default :
return " 异常消息 " ;
}
default :
return " 异常消息 " ;
}
}
/ * *
* 配件客户是否可见
*
* @param id 工单ID
* @param show 是否可见 1可见 , 0不可见
* @author 小李
* @date 21 : 52 2024 / 10 / 18
* @param id 工单ID
* @param show 是否可见 1可见 , 0不可见
* * /
@Override
public void updateShow ( String id , String show ) {
public void updateShow ( String id , String show ) {
DlRepairTickets dlRepairTickets = new DlRepairTickets ( ) ;
dlRepairTickets . setId ( id ) ;
dlRepairTickets . setPartShow ( show ) ;