【admin&front】新增&修复# 1.新增巡检单操作记录 2.修复admin和front若干bug
parent
086186df8d
commit
54bf366470
|
@ -293,9 +293,9 @@ public class ClientContactsServiceImpl implements IClientContactsService {
|
|||
User user = userMapper.selectById(model.getUserId());
|
||||
if(user != null){
|
||||
user.setIsDisable(clientContactsParam.getStatus());
|
||||
userMapper.updateById(user);
|
||||
}
|
||||
|
||||
userMapper.updateById(user);
|
||||
systemAuthAdminMapper.updateById(systemAuthAdmin);
|
||||
clientContactsMapper.updateById(model);
|
||||
}
|
||||
|
|
|
@ -105,7 +105,9 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
|||
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
|
||||
|
||||
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
if(insetallUser != null){
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
}
|
||||
}
|
||||
//设置设备模块信息
|
||||
vo.setEquipmentModel(equipmentModelDetailVo);
|
||||
|
|
|
@ -0,0 +1,128 @@
|
|||
package com.hcy.admin.service.crontab.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.entity.configuration.SystemConfiguration;
|
||||
import com.hcy.common.entity.order.MaintenanceOrder;
|
||||
import com.hcy.common.entity.order.RepairOrder;
|
||||
import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
|
||||
import com.hcy.common.enums.OrderStatusEnum;
|
||||
import com.hcy.common.enums.audit.AuditStateEnum;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
import com.hcy.common.mapper.configuration.SystemConfigurationMapper;
|
||||
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
|
||||
import com.hcy.common.mapper.order.RepairOrderMapper;
|
||||
import com.hcy.common.mapper.order.RoutingInspectionOrderMapper;
|
||||
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单定时任务
|
||||
*/
|
||||
@Slf4j
|
||||
@Service(value = "order")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class OrderCrontab {
|
||||
|
||||
@Resource
|
||||
MaintenanceOrderMapper maintenanceOrderMapper;
|
||||
|
||||
@Resource
|
||||
SystemConfigurationMapper systemConfigurationMapper;
|
||||
|
||||
@Resource
|
||||
RoutingInspectionOrderMapper routingInspectionOrderMapper;
|
||||
|
||||
@Resource
|
||||
RepairOrderMapper repairOrderMapper;
|
||||
|
||||
@Resource
|
||||
SparePartStockAuditMapper sparePartStockAuditMapper;
|
||||
|
||||
private void orderTimeOut(){
|
||||
SystemConfiguration systemConfiguration = systemConfigurationMapper.selectById(1);
|
||||
//检修单和巡检单超时时间
|
||||
Integer repairerAutoOrderTime = systemConfiguration.getRepairerAutoOrderTime();
|
||||
//维修单超时时间
|
||||
Integer maintenanceAutoOrderTime = systemConfiguration.getMaintenanceAutoOrderTime();
|
||||
//获取当前时间
|
||||
Calendar currentTime = Calendar.getInstance();
|
||||
|
||||
//检修单
|
||||
LambdaQueryWrapper<MaintenanceOrder> maintenanceOrderQw = new LambdaQueryWrapper<MaintenanceOrder>()
|
||||
.eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.eq(MaintenanceOrder::getOrderStatus, MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
|
||||
List<MaintenanceOrder> maintenanceOrders = maintenanceOrderMapper.selectList(maintenanceOrderQw);
|
||||
for (MaintenanceOrder item : maintenanceOrders) {
|
||||
Calendar orderCreateTime = Calendar.getInstance();
|
||||
orderCreateTime.setTime(item.getCreateTime());
|
||||
orderCreateTime.add(Calendar.MINUTE, repairerAutoOrderTime);
|
||||
|
||||
if(currentTime.compareTo(orderCreateTime) > 0){
|
||||
item.setOrderStatus(MaintenanceOrderStatusEnum.ORDER_TIMEOUT.getStatus());
|
||||
maintenanceOrderMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
|
||||
//巡检单
|
||||
LambdaQueryWrapper<RoutingInspectionOrder> routingInspectionOrderQw = new LambdaQueryWrapper<RoutingInspectionOrder>()
|
||||
.eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.eq(RoutingInspectionOrder::getOrderStatus, OrderStateEnum.PENDING_ORDER.getStatus());
|
||||
List<RoutingInspectionOrder> routingInspectionOrders = routingInspectionOrderMapper.selectList(routingInspectionOrderQw);
|
||||
for (RoutingInspectionOrder item : routingInspectionOrders) {
|
||||
Calendar orderCreateTime = Calendar.getInstance();
|
||||
orderCreateTime.setTime(item.getCreateTime());
|
||||
orderCreateTime.add(Calendar.MINUTE, repairerAutoOrderTime);
|
||||
|
||||
if(currentTime.compareTo(orderCreateTime) > 0){
|
||||
item.setOrderStatus(OrderStateEnum.ORDER_TIMEOUT.getStatus());
|
||||
routingInspectionOrderMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
|
||||
//维修单
|
||||
LambdaQueryWrapper<RepairOrder> repairOrderQw = new LambdaQueryWrapper<RepairOrder>()
|
||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.eq(RepairOrder::getOrderStatus, OrderStateEnum.PENDING_ORDER.getStatus());
|
||||
List<RepairOrder> repairOrders = repairOrderMapper.selectList(repairOrderQw);
|
||||
for (RepairOrder item : repairOrders) {
|
||||
Calendar orderCreateTime = Calendar.getInstance();
|
||||
orderCreateTime.setTime(item.getCreateTime());
|
||||
orderCreateTime.add(Calendar.MINUTE, maintenanceAutoOrderTime);
|
||||
|
||||
if(currentTime.compareTo(orderCreateTime) > 0){
|
||||
item.setOrderStatus(OrderStateEnum.ORDER_TIMEOUT.getStatus());
|
||||
repairOrderMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
|
||||
//配件采购收货超时
|
||||
LambdaQueryWrapper<SparePartStockAudit> sparePartStockAuditQw = new LambdaQueryWrapper<SparePartStockAudit>()
|
||||
.eq(SparePartStockAudit::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.eq(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.WAIT_FOR_RECEIVING.getStatus());
|
||||
List<SparePartStockAudit> sparePartStockAudits = sparePartStockAuditMapper.selectList(sparePartStockAuditQw);
|
||||
for (SparePartStockAudit item : sparePartStockAudits) {
|
||||
Calendar orderConsignerTime = Calendar.getInstance();
|
||||
orderConsignerTime.setTime(item.getConsignerTime());
|
||||
orderConsignerTime.add(Calendar.DAY_OF_YEAR, 7);
|
||||
|
||||
if(currentTime.compareTo(orderConsignerTime) > 0){
|
||||
item.setPurchaseStatus(AuditStateEnum.OVERDUE.getStatus());
|
||||
sparePartStockAuditMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
|
||||
//巡检周期
|
||||
|
||||
}
|
||||
}
|
|
@ -1,111 +0,0 @@
|
|||
package com.hcy.admin.service.crontab.impl.distributor;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.binarywang.wxpay.bean.merchanttransfer.DetailsQueryResult;
|
||||
import com.github.binarywang.wxpay.bean.merchanttransfer.MerchantDetailsQueryRequest;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.github.binarywang.wxpay.service.MerchantTransferService;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.entity.distribution.Distributor;
|
||||
import com.hcy.common.entity.distribution.DistributorCommission;
|
||||
import com.hcy.common.entity.distribution.WithdrawCommission;
|
||||
import com.hcy.common.entity.staff.Staff;
|
||||
import com.hcy.common.enums.PayChannelEnum;
|
||||
import com.hcy.common.enums.distributor.DistributorCommissionStatusEnum;
|
||||
import com.hcy.common.enums.distributor.DistributorWithdrawResultEnum;
|
||||
import com.hcy.common.enums.distributor.DistributorWithdrawStatusEnum;
|
||||
import com.hcy.common.mapper.distribution.DistributorCommissionMapper;
|
||||
import com.hcy.common.mapper.distribution.DistributorMapper;
|
||||
import com.hcy.common.mapper.common.WithdrawCommissionMapper;
|
||||
import com.hcy.common.mapper.staff.StaffMapper;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.WxPayServiceUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service(value = "distributor")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class DistributorCrontab {
|
||||
|
||||
@Resource
|
||||
DistributorCommissionMapper distributorCommissionMapper;
|
||||
|
||||
@Resource
|
||||
DistributorMapper distributorMapper;
|
||||
|
||||
@Resource
|
||||
WithdrawCommissionMapper distributorWithdrawMapper;
|
||||
|
||||
@Resource
|
||||
StaffMapper staffMapper;
|
||||
|
||||
/**
|
||||
* 解冻佣金
|
||||
*/
|
||||
public void unfreezingCommission(){
|
||||
log.info("解冻分销商佣金");
|
||||
//获取所有待解冻的佣金
|
||||
QueryWrapper<DistributorCommission> distributorCommissionQueryWrapper = new QueryWrapper<>();
|
||||
distributorCommissionQueryWrapper.eq("is_delete", GlobalConstant.NOT_DELETE);
|
||||
distributorCommissionQueryWrapper.eq("status", DistributorCommissionStatusEnum.FREEZE.getCode());
|
||||
List<DistributorCommission> distributorCommissions = distributorCommissionMapper.selectList(distributorCommissionQueryWrapper);
|
||||
|
||||
for (DistributorCommission item : distributorCommissions) {
|
||||
QueryWrapper<Distributor> distributorQueryWrapper = new QueryWrapper<>();
|
||||
distributorQueryWrapper.eq("id",item.getDistributorId());
|
||||
Distributor distributor = distributorMapper.selectOne(distributorQueryWrapper);
|
||||
//解冻佣金相加
|
||||
distributor.setCanWithdrawCommission(distributor.getCanWithdrawCommission().add(item.getCommission()));
|
||||
distributorMapper.updateById(distributor);
|
||||
//修改解冻状态为已解冻
|
||||
item.setStatus(DistributorCommissionStatusEnum.MAY_WITHDRAW.getCode());
|
||||
distributorCommissionMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void checkDistributorWithdraw(){
|
||||
List<WithdrawCommission> distributorWithdraws = distributorWithdrawMapper.selectList(new LambdaQueryWrapper<WithdrawCommission>()
|
||||
.eq(WithdrawCommission::getStatus, DistributorWithdrawStatusEnum.WITHDRAW.getStatus()));
|
||||
if(distributorWithdraws.isEmpty()){
|
||||
return;
|
||||
}
|
||||
log.info("处理佣金提现结果");
|
||||
MerchantTransferService merchantTransferService = WxPayServiceUtils.wxPayService(PayChannelEnum.MP_CHANNEL.getCode()).getMerchantTransferService();
|
||||
for (WithdrawCommission item : distributorWithdraws) {
|
||||
MerchantDetailsQueryRequest merchantDetailsQueryRequest = new MerchantDetailsQueryRequest();
|
||||
merchantDetailsQueryRequest.setOutBatchNo(item.getSn());
|
||||
merchantDetailsQueryRequest.setOutDetailNo(item.getDetailSn());
|
||||
try {
|
||||
DetailsQueryResult detailsQueryResult = merchantTransferService.queryMerchantDetails(merchantDetailsQueryRequest);
|
||||
if(DistributorWithdrawResultEnum.FAIL.getStatus().equals(detailsQueryResult.getDetailStatus())){
|
||||
//判断当前提现记录是分销商还师傅的
|
||||
if(item.getDistributorId() != null){
|
||||
Distributor distributor = distributorMapper.queryDistributorById(item.getDistributorId());
|
||||
distributor.setCanWithdrawCommission(distributor.getCanWithdrawCommission().add(item.getWithdrawMoney()));
|
||||
distributorMapper.updateById(distributor);
|
||||
}else{
|
||||
Staff staff = staffMapper.findStaffById(item.getStaffId());
|
||||
staff.setCanWithdrawCommission(staff.getCanWithdrawCommission().add(item.getWithdrawMoney()));
|
||||
staffMapper.updateById(staff);
|
||||
}
|
||||
item.setStatus(DistributorWithdrawStatusEnum.WITHDRAW_FAIL.getStatus());
|
||||
item.setFailReason(detailsQueryResult.getFailReason());
|
||||
distributorWithdrawMapper.updateById(item);
|
||||
}else{
|
||||
item.setUpdateTime(TimeUtil.parseStrToDate(detailsQueryResult.getUpdateTime()));
|
||||
item.setStatus(DistributorWithdrawStatusEnum.WITHDRAW_SUCCESS.getStatus());
|
||||
distributorWithdrawMapper.updateById(item);
|
||||
}
|
||||
}catch (WxPayException e){
|
||||
log.info(e.getErrCodeDes());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,174 +0,0 @@
|
|||
package com.hcy.admin.service.crontab.impl.staff;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.hcy.admin.service.comment.IGoodsCommentService;
|
||||
import com.hcy.admin.service.log.IOrderLogService;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.dto.OrderDto;
|
||||
import com.hcy.common.entity.comment.GoodsComment;
|
||||
import com.hcy.common.entity.log.OrderLog;
|
||||
import com.hcy.common.entity.order.Order;
|
||||
import com.hcy.common.entity.staff.Staff;
|
||||
import com.hcy.common.entity.staff.StaffCommission;
|
||||
import com.hcy.common.enums.*;
|
||||
import com.hcy.common.enums.distributor.DistributorCommissionStatusEnum;
|
||||
import com.hcy.common.enums.staff.StaffCommissionStatusEnum;
|
||||
import com.hcy.common.enums.staff.StaffEnum;
|
||||
import com.hcy.common.enums.staff.StaffStatusEnum;
|
||||
import com.hcy.common.mapper.comment.GoodsCommentMapper;
|
||||
import com.hcy.common.mapper.order.OrderMapper;
|
||||
import com.hcy.common.mapper.staff.StaffCommissionMapper;
|
||||
import com.hcy.common.mapper.staff.StaffMapper;
|
||||
import com.hcy.common.utils.SnUtils;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
@Slf4j
|
||||
@Service(value = "staff")
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class StaffCrontab {
|
||||
|
||||
@Resource
|
||||
OrderMapper orderMapper;
|
||||
|
||||
@Resource
|
||||
GoodsCommentMapper goodsCommentMapper;
|
||||
|
||||
@Resource
|
||||
StaffMapper staffMapper;
|
||||
|
||||
@Resource
|
||||
StaffCommissionMapper staffCommissionMapper;
|
||||
|
||||
@Resource
|
||||
IGoodsCommentService goodsCommentService;
|
||||
|
||||
@Resource
|
||||
IOrderLogService orderLogService;
|
||||
|
||||
/**
|
||||
* 系统自动评分和师傅计算平均分
|
||||
*/
|
||||
public void systemAutoScoreAndCalculateScore(){
|
||||
log.info("系统自动评分");
|
||||
List<OrderDto> noCommentOrder = orderMapper.getNoCommentOrder();
|
||||
for (OrderDto item : noCommentOrder) {
|
||||
//新增评分 默认五星好评
|
||||
GoodsComment goodsComment = new GoodsComment();
|
||||
goodsComment.setGoodsId(item.getGoodsId());
|
||||
goodsComment.setUserId(item.getUserId());
|
||||
goodsComment.setOrderGoodsId(item.getOrderGoodsId());
|
||||
goodsComment.setStaffId(item.getStaffId());
|
||||
goodsComment.setCustomerServiceAppraise(5);
|
||||
goodsComment.setCommentLevel(GoodsCommentLevelEnum.GOOD_COMMENT.getCode());
|
||||
goodsComment.setCreateTime(TimeUtil.timestamp());
|
||||
goodsCommentMapper.insert(goodsComment);
|
||||
}
|
||||
|
||||
log.info("计算师傅平均分");
|
||||
//计算师傅平均分
|
||||
List<Staff> staffList = staffMapper.selectList(new QueryWrapper<Staff>()
|
||||
.eq("is_delete", GlobalConstant.NOT_DELETE));
|
||||
for (Staff staff : staffList) {
|
||||
if(staff != null){
|
||||
goodsCommentService.calculateStaffScore(staff);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解冻师傅佣金
|
||||
*/
|
||||
@Transactional
|
||||
public void unfreezingCommission(){
|
||||
log.info("解冻师傅佣金");
|
||||
//获取所有待解冻的佣金
|
||||
QueryWrapper<StaffCommission> staffCommissionQueryWrapper = new QueryWrapper<>();
|
||||
staffCommissionQueryWrapper.eq("is_delete", GlobalConstant.NOT_DELETE);
|
||||
staffCommissionQueryWrapper.eq("status", StaffCommissionStatusEnum.FREEZE.getCode());
|
||||
List<StaffCommission> staffCommissions = staffCommissionMapper.selectList(staffCommissionQueryWrapper);
|
||||
|
||||
for (StaffCommission item : staffCommissions) {
|
||||
QueryWrapper<Staff> staffQueryWrapper = new QueryWrapper<>();
|
||||
staffQueryWrapper.eq("id",item.getStaffId());
|
||||
Staff staff = staffMapper.selectOne(staffQueryWrapper);
|
||||
if(staff != null){
|
||||
//解冻佣金相加
|
||||
staff.setCanWithdrawCommission(staff.getCanWithdrawCommission().add(item.getCommission()));
|
||||
staffMapper.updateById(staff);
|
||||
//修改解冻状态为已解冻
|
||||
item.setStatus(DistributorCommissionStatusEnum.MAY_WITHDRAW.getCode());
|
||||
staffCommissionMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 师傅自动确认服务
|
||||
*/
|
||||
public void staffAutoConfirmService(){
|
||||
List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>()
|
||||
.eq(Order::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.eq(Order::getOrderStatus, OrderStatusEnum.RESERVE.getStatus()));
|
||||
for (Order item : orderList) {
|
||||
//当前时间大于等于服务时间就自动开始服务
|
||||
if(TimeUtil.timestamp() >= item.getAppointTimeStart()){
|
||||
item.setOrderStatus(OrderStatusEnum.SERVICING.getStatus());
|
||||
item.setVerificationStatus(OrderVerificationStatusEnum.WAIT_VERIFICATION.getStatus());
|
||||
item.setVerificationCode(SnUtils.get6RandomCode());
|
||||
item.setUpdateTime(TimeUtil.timestamp());
|
||||
orderMapper.updateById(item);
|
||||
orderLogService.saveOrderLog(item.getId(), item.getStaffId(), OrderLogEnum.STAFF_AUTO_CONFIRM_ORDER.getDesc());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动派单
|
||||
*/
|
||||
public void autoSendOrders(){
|
||||
//查询出15分钟前未指派师傅的订单
|
||||
List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>()
|
||||
.eq(Order::getIsDispatch, OrderDispatchEnum.NOT_DISPATCH.getStatus())
|
||||
.eq(Order::getOrderStatus, OrderStatusEnum.RESERVE.getStatus())
|
||||
.eq(Order::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.apply("create_time <= UNIX_TIMESTAMP() - 15 * 60"));
|
||||
|
||||
//查询正在上班中的营运师傅
|
||||
List<Staff> staffList = staffMapper.selectList(new LambdaQueryWrapper<Staff>()
|
||||
.eq(Staff::getIsOperational, StaffStatusEnum.OPERATIONAL_STAFF.getCode())
|
||||
.eq(Staff::getIsReceiveOrder, StaffStatusEnum.ORDER_AVAILABLE.getCode())
|
||||
.eq(Staff::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.apply("DATE_FORMAT(NOW(), '%H:%i') BETWEEN work_start_time AND work_end_time")
|
||||
.orderByDesc(Staff::getId));
|
||||
|
||||
if (!staffList.isEmpty()) { //检查列表是否为空,以避免异常
|
||||
log.info("系统自动派单");
|
||||
// 生成 Random 随机数对象
|
||||
Random random = new Random();
|
||||
for (Order order : orderList) {
|
||||
// 根据师傅的数量生成随机整数
|
||||
int number = random.nextInt(staffList.size());
|
||||
// 随机指派师傅
|
||||
Staff staff = staffList.get(number);
|
||||
//指派师傅
|
||||
order.setStaffId(staff.getId()); //指派师傅
|
||||
order.setIsDispatch(OrderDispatchEnum.IS_DISPATCH.getStatus()); //修改订单状态为已派单
|
||||
order.setUpdateTime(TimeUtil.timestamp()); //更新时间
|
||||
orderMapper.updateById(order); //执行
|
||||
//记录操作日志
|
||||
orderLogService.saveOrderLog(order.getId(), order.getUserId(), OrderLogEnum.SYSTEM_AUTO_SENDORDERS.getDesc());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -15,4 +15,12 @@ public interface IOrderOperateRecordService {
|
|||
*/
|
||||
void addMaintenanceOrder(Long orderId,String titleDsc,String description);
|
||||
|
||||
/**
|
||||
* 新增操作检修单记录
|
||||
* @param orderId 订单id
|
||||
* @param titleDsc 标题内容
|
||||
* @param dscType 内容类型
|
||||
* @param description 内容
|
||||
*/
|
||||
void addMaintenanceOrder(Long orderId,String titleDsc,Integer dscType,String description);
|
||||
}
|
||||
|
|
|
@ -115,6 +115,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
@Resource
|
||||
OrderOperateRecordServiceImpl orderOperateRecordService;
|
||||
|
||||
@Resource
|
||||
OrderOperateRecordMapper orderOperateRecordMapper;
|
||||
|
||||
/**
|
||||
* 检修订单列表
|
||||
*
|
||||
|
@ -163,7 +166,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
|
||||
|
||||
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
if(insetallUser != null){
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
}
|
||||
}
|
||||
//设置设备模块信息
|
||||
vo.setEquipmentModel(equipmentModelDetailVo);
|
||||
|
@ -283,6 +288,12 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
vo.setMaintenanceRepair(maintenanceRepairDetailVo);
|
||||
}
|
||||
|
||||
//设置订单操作记录
|
||||
LambdaQueryWrapper<OrderOperateRecord> queryWrapper = new LambdaQueryWrapper<OrderOperateRecord>()
|
||||
.eq(OrderOperateRecord::getOrderType, OrderOperateRecordEnum.MAINTENANCE.getStatus())
|
||||
.eq(OrderOperateRecord::getOrderId, model.getId());
|
||||
vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));;
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
@ -322,7 +333,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
//新增订单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getId()
|
||||
,OrderOperateRecordEnum.NEW_CREATE.getDesc()
|
||||
,"【"+AdminThreadLocal.get("name")+"】创建了检修工单。");
|
||||
,"【"+AdminThreadLocal.get("username")+"】创建了检修工单。");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -349,8 +360,13 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
if(param.getReceiverId() != null && param.getId() != null){
|
||||
model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
|
||||
|
||||
//新增订单操作记录
|
||||
//orderOperateRecordService.addMaintenanceOrder(model.getId(),OrderOperateRecordEnum.);
|
||||
User user = userMapper.selectById(param.getReceiverId());
|
||||
if(user != null){
|
||||
//新增订单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getId()
|
||||
,OrderOperateRecordEnum.APPOINT.getDesc()
|
||||
,"【"+AdminThreadLocal.get("username")+"】指派检修单给检修员【"+user.getUsername()+"】");
|
||||
}
|
||||
}
|
||||
model.setReceiverId(param.getReceiverId());
|
||||
model.setReceiverType(param.getReceiverType());
|
||||
|
|
|
@ -67,7 +67,9 @@ public class MaintenanceRepairServiceImpl implements IMaintenanceRepairService {
|
|||
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
|
||||
|
||||
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
if(insetallUser != null){
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
}
|
||||
}
|
||||
//设置设备模块信息
|
||||
vo.setEquipmentModel(equipmentModelDetailVo);
|
||||
|
|
|
@ -28,4 +28,15 @@ public class OrderOperateRecordServiceImpl implements IOrderOperateRecordService
|
|||
orderOperateRecord.setDescription(description);
|
||||
orderOperateRecordMapper.insert(orderOperateRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMaintenanceOrder(Long orderId,String titleDsc,Integer dscType,String description) {
|
||||
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
|
||||
orderOperateRecord.setOrderId(orderId);
|
||||
orderOperateRecord.setOrderType(SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
|
||||
orderOperateRecord.setTitle(titleDsc);
|
||||
orderOperateRecord.setDscType(dscType);
|
||||
orderOperateRecord.setDescription(description);
|
||||
orderOperateRecordMapper.insert(orderOperateRecord);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.admin.AdminThreadLocal;
|
||||
import com.hcy.admin.service.order.impl.OrderOperateRecordServiceImpl;
|
||||
import com.hcy.admin.service.sparePartStockAudit.ISparePartStockAuditService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.sparePartStockAudit.SparePartStockAuditParam;
|
||||
|
@ -25,6 +26,7 @@ import com.hcy.common.entity.warehouse.Warehouse;
|
|||
import com.hcy.common.enums.SparePartStockAuditEnum;
|
||||
import com.hcy.common.enums.audit.AuditStateEnum;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderOperateRecordEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
|
||||
import com.hcy.common.mapper.order.MaintenanceOrderMapper;
|
||||
|
@ -75,6 +77,9 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
@Resource
|
||||
SystemAuthAdminMapper systemAuthAdminMapper;
|
||||
|
||||
@Resource
|
||||
OrderOperateRecordServiceImpl orderOperateRecordService;
|
||||
|
||||
/**
|
||||
* 备件出入库审核列表
|
||||
*
|
||||
|
@ -134,10 +139,12 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
|
||||
if (item.getOrderType() != null) {
|
||||
User user = userMapper.selectById(item.getCreatorId());
|
||||
vo.setCreator(user.getUsername());
|
||||
item.setConsignee(user.getUsername());
|
||||
vo.setConsignerPhone(user.getUsername() + "/" + item.getPhone());
|
||||
vo.setRecipientAndPhone(user.getUsername() + "/" + item.getPhone()); //领料员工/联系电话
|
||||
if(user != null){
|
||||
vo.setCreator(user.getUsername());
|
||||
item.setConsignee(user.getUsername());
|
||||
vo.setConsignerPhone(user.getUsername() + "/" + item.getPhone());
|
||||
vo.setRecipientAndPhone(user.getUsername() + "/" + item.getPhone()); //领料员工/联系电话
|
||||
}
|
||||
} else {
|
||||
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminById(item.getCreatorId());
|
||||
if (systemAuthAdmin != null) {
|
||||
|
@ -152,7 +159,6 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
|
||||
if (item.getOrderType() != null && item.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()) {
|
||||
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(item.getOrderId());
|
||||
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
|
||||
|
||||
List<OrderSparePartListVo> orderSparePartListVoList = new ArrayList<>();
|
||||
List<OrderSparePart> orderSparePartList = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(item.getOrderId());
|
||||
|
@ -163,14 +169,16 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
|
||||
number += orderSparePart.getQuantity();
|
||||
}
|
||||
|
||||
vo.setOrderSparePartListVoList(orderSparePartListVoList);
|
||||
|
||||
vo.setWorkOrderNo(maintenanceOrder.getOrderNo());
|
||||
vo.setOrderId(maintenanceOrder.getId());
|
||||
vo.setRecipient(user.getUsername());
|
||||
vo.setRecipientPhone(user.getMobile());
|
||||
vo.setRecipientNumber(number);
|
||||
|
||||
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
|
||||
if(user != null){
|
||||
vo.setRecipient(user.getUsername());
|
||||
vo.setRecipientPhone(user.getMobile());
|
||||
}
|
||||
} else {
|
||||
//获取待审核备件信息
|
||||
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
|
||||
|
@ -488,6 +496,13 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
if (model.getPurchaseStatus() != null && model.getPurchaseStatus() == AuditStateEnum.CHECK_PENDING.getStatus()) {
|
||||
model.setPurchaseStatus(AuditStateEnum.WAITDELIVER.getStatus()); //审核通过改成待发货
|
||||
}
|
||||
if(model.getOrderId() != null && model.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
|
||||
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_TWO.getDesc()
|
||||
,OrderOperateRecordEnum.AUDIT.getStatus()
|
||||
,"管理员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过。");
|
||||
}
|
||||
} else if (model.getReceiptType() == AuditStateEnum.ALLOT.getStatus()
|
||||
&& model.getAuditResult() == AuditStateEnum.ALREADY_PASSED.getStatus()) {
|
||||
//通过审核的调拨单
|
||||
|
@ -542,6 +557,15 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.RETURNED.getStatus());
|
||||
maintenanceOrder.setReturnCause(sparePartStockAuditParam.getAuditIdea());
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
||||
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
|
||||
if(user != null){
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
|
||||
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_TWO.getDesc()
|
||||
,OrderOperateRecordEnum.AUDIT.getStatus()
|
||||
,"管理员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+sparePartStockAuditParam.getAuditIdea()+"。系统会自动退回到检修员【"+user.getUsername()+"】重新报价。");
|
||||
}
|
||||
}
|
||||
model.setAuditResult(null); // 审核结果(0=已通过,1=未通过)
|
||||
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
|
@ -598,6 +622,15 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.RETURNED.getStatus());
|
||||
maintenanceOrder.setReturnCause(sparePartStockAuditParam.getPurchaseIdea());
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
||||
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
|
||||
if(user != null){
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
|
||||
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
|
||||
,OrderOperateRecordEnum.AUDIT.getStatus()
|
||||
,"仓管员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+sparePartStockAuditParam.getPurchaseIdea()+"。系统会自动退回到检修员【"+user.getUsername()+"】重新报价。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -626,6 +659,14 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
}
|
||||
sparePartMapper.updateById(sparePart);
|
||||
}
|
||||
|
||||
if(model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
|
||||
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
|
||||
,OrderOperateRecordEnum.AUDIT.getStatus()
|
||||
,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过;等待管理员审核");
|
||||
}
|
||||
}
|
||||
|
||||
sparePartStockAuditMapper.updateById(model);
|
||||
|
@ -741,6 +782,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
* @param sparePartStockAuditParam
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void logisticsSending(SparePartStockAuditParam sparePartStockAuditParam) {
|
||||
SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
|
||||
new QueryWrapper<SparePartStockAudit>()
|
||||
|
@ -755,9 +797,17 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
model.setShipAddress(sparePartStockAuditParam.getShipAddress()); //发货地址
|
||||
model.setLogisticsCompany(sparePartStockAuditParam.getLogisticsCompany()); //物流公司
|
||||
model.setTrackingNumber(sparePartStockAuditParam.getTrackingNumber()); //物流编号
|
||||
model.setPurchaseStatus(AuditStateEnum.WAITFORRECEIVING.getStatus()); // 采购状态 4=待收货
|
||||
model.setPurchaseStatus(AuditStateEnum.WAIT_FOR_RECEIVING.getStatus()); // 采购状态 4=待收货
|
||||
|
||||
sparePartStockAuditMapper.updateById(model);
|
||||
|
||||
if(model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
|
||||
, OrderOperateRecordEnum.DELIVER_GOODS.getDesc()
|
||||
,OrderOperateRecordEnum.DELIVER_GOODS_TYPE.getStatus()
|
||||
,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成发货。配送方式:"+SparePartStockAuditEnum.getMsgByStatus(model.getDeliveryMethod()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -624,7 +624,11 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
|
|||
systemAuthAdminMapper.updateById(systemAuthAdmin);
|
||||
|
||||
if(systemAuthAdmin.getUserId() != null){
|
||||
userMapper.deleteById(systemAuthAdmin.getUserId());
|
||||
User user = userMapper.findUserById(systemAuthAdmin.getUserId());
|
||||
if(user != null){
|
||||
user.setIsDelete(GlobalConstant.DELETE);
|
||||
userMapper.updateById(user);
|
||||
}
|
||||
userAuthMapper.delete(new LambdaQueryWrapper<UserAuth>().eq(UserAuth::getUserId, systemAuthAdmin.getUserId()));
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import com.hcy.admin.vo.client.EquipmentDetailVo;
|
|||
import com.hcy.admin.vo.order.repair.MaintenanceRepairDetailVo;
|
||||
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.entity.order.OrderOperateRecord;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -66,4 +67,5 @@ public class MaintenanceOrderDetailVo implements Serializable {
|
|||
private List<OrderSparePartListVo> sparePartList; // 备件清单
|
||||
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
|
||||
private SparePartStockAuditDetailVo sparePartStockAuditDetailVo; //备件领用申请
|
||||
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
|
||||
}
|
||||
|
|
|
@ -40,4 +40,14 @@ public enum SparePartStockAuditEnum {
|
|||
public String getDesc() {
|
||||
return this.desc;
|
||||
}
|
||||
|
||||
|
||||
public static String getMsgByStatus(Integer status){
|
||||
for(SparePartStockAuditEnum typeEnum: SparePartStockAuditEnum.values()) {
|
||||
if (typeEnum.getStatus() == status) {
|
||||
return typeEnum.getDesc();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ public enum AuditStateEnum {
|
|||
NOT_PASS_STATE(1, "未通过"),
|
||||
CHECK_PENDING(2, "待管理员审核"),
|
||||
WAITDELIVER(3, "待发货"),
|
||||
WAITFORRECEIVING(4, "待收货"),
|
||||
WAIT_FOR_RECEIVING(4, "待收货"),
|
||||
DONE(5, "已完成"),
|
||||
FILLING_OUT(6, "填写中"),
|
||||
OVERDUE(7, "收货超期"),
|
||||
|
|
|
@ -12,21 +12,27 @@ import java.util.Map;
|
|||
public enum OrderOperateRecordEnum {
|
||||
// 标题
|
||||
NEW_CREATE(0,"新建"),
|
||||
ORDER_RECEIVING(1,"接单"),
|
||||
START_SERVICE(2,"开始服务"),
|
||||
CUSTOMER_QUOTATION(3,"客户报价"),
|
||||
SPARE_PARTS_APPLY_FOR(4,"备件领用申请"),
|
||||
SPARE_PARTS_AUDIT(5,"备件领用审核"),
|
||||
DELIVER_GOODS(6,"发货"),
|
||||
RECEIVE_GOODS(7,"收货"),
|
||||
SPARE_PARTS_RECEIVE(8,"配件领用"),
|
||||
FILL_IN_RECEIPT(9,"填写回单"),
|
||||
APPOINT(1,"分配"),
|
||||
ORDER_RECEIVING(2,"接单"),
|
||||
START_SERVICE(3,"开始服务"),
|
||||
CUSTOMER_QUOTATION(4,"客户报价"),
|
||||
CUSTOMER_CONFIRM(5,"客户确认"),
|
||||
SPARE_PARTS_RECEIVE(9,"配件领用"),
|
||||
SPARE_PARTS_AUDIT_ONE(5,"备件领用一级审核"),
|
||||
SPARE_PARTS_AUDIT_TWO(6,"备件领用二级审核"),
|
||||
DELIVER_GOODS(7,"发货"),
|
||||
RECEIVE_GOODS(8,"收货"),
|
||||
FILL_IN_RECEIPT(10,"填写回单"),
|
||||
|
||||
// 描述类型
|
||||
QUOTATION(0,"报价"),
|
||||
SPARE_PARTS_RECEIVE_TYPE(1,"配件领用"),
|
||||
AUDIT(2,"审核"),
|
||||
DELIVER_GOODS_TYPE(3,"发货");
|
||||
DELIVER_GOODS_TYPE(3,"发货"),
|
||||
|
||||
MAINTENANCE(0,"检修单"),
|
||||
REPAIR(1,"维修单"),
|
||||
ROUTING_INSPECTION(2,"巡检单");
|
||||
|
||||
private final int status;
|
||||
private final String desc;
|
||||
|
|
|
@ -38,6 +38,9 @@ public interface UserMapper extends IBaseMapper<User> {
|
|||
@Select("select * from la_user where mobile = #{phone}")
|
||||
User getUserByPhone(@Param("phone") String phone);
|
||||
|
||||
@Select("select * from la_user where is_delete = 0 and id = #{id}")
|
||||
User findUserById(@Param("id") Long id);
|
||||
|
||||
/**
|
||||
* 获取检修员列表
|
||||
* @return
|
||||
|
|
|
@ -88,6 +88,12 @@ public class FrontInterceptor implements HandlerInterceptor {
|
|||
.eq("id", userId)
|
||||
.last("limit 1"));
|
||||
|
||||
if(user == null){
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg());
|
||||
response.getWriter().print(JSON.toJSONString(result));
|
||||
return false;
|
||||
}
|
||||
|
||||
// 校验用户被删除
|
||||
if (user.getIsDelete() == 1) {
|
||||
AjaxResult result = AjaxResult.failed(HttpEnum.TOKEN_INVALID.getCode(), HttpEnum.TOKEN_INVALID.getMsg());
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
package com.hcy.front.service.order;
|
||||
|
||||
/**
|
||||
* 订单操作记录服务接口类
|
||||
*/
|
||||
public interface IOrderOperateRecordService {
|
||||
|
||||
/**
|
||||
* 新增操作检修单记录
|
||||
* @param orderId 订单id
|
||||
* @param titleDsc 标题内容
|
||||
* @param description 内容
|
||||
*/
|
||||
void addMaintenanceOrder(Long orderId,String titleDsc,String description);
|
||||
|
||||
/**
|
||||
* 新增操作检修单记录
|
||||
* @param orderId 订单id
|
||||
* @param titleDsc 标题内容
|
||||
* @param dscType 内容类型
|
||||
* @param description 内容
|
||||
*/
|
||||
void addMaintenanceOrder(Long orderId,String titleDsc,Integer dscType,String description);
|
||||
}
|
|
@ -1,7 +1,6 @@
|
|||
package com.hcy.front.service.order.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
@ -23,6 +22,7 @@ import com.hcy.common.enums.ClientStatusEnum;
|
|||
import com.hcy.common.enums.SparePartStockAuditEnum;
|
||||
import com.hcy.common.enums.audit.AuditStateEnum;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderOperateRecordEnum;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.address.UserAddressMapper;
|
||||
|
@ -47,7 +47,6 @@ import com.hcy.front.service.region.IDevRegionService;
|
|||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.MaintenanceOrderParam;
|
||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||
import com.hcy.front.vo.client.EquipmentDetailVo;
|
||||
import com.hcy.front.vo.client.EquipmentModelDetailVo;
|
||||
import com.hcy.front.vo.order.*;
|
||||
import com.hcy.front.vo.order.MaintenanceOrderDetailVo;
|
||||
|
@ -60,12 +59,10 @@ import org.springframework.beans.BeanUtils;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -117,6 +114,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
@Resource
|
||||
MaintenanceRepairMapper maintenanceRepairMapper;
|
||||
|
||||
@Resource
|
||||
OrderOperateRecordServiceImpl orderOperateRecordService;
|
||||
|
||||
private final DecimalFormat df = new DecimalFormat ("#.#");
|
||||
|
||||
@Override
|
||||
|
@ -136,6 +136,11 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
model.setCreatorId(FrontThreadLocal.getUserId().longValue());
|
||||
|
||||
maintenanceOrderMapper.insert(model);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getId()
|
||||
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
|
||||
,"客户【"+FrontThreadLocal.get("username")+"】创建了检修工单");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -263,6 +268,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
vo.setSparePartStockAudit(sparePartStockAuditDetailVo);
|
||||
}
|
||||
|
||||
//设置设备信息
|
||||
Equipment equipment = equipmentMapper.selectById(item.getEquipmentId());
|
||||
if(equipment != null){
|
||||
vo.setDetailedAddress(regionMap.get(equipment.getProvinceId()) +
|
||||
regionMap.get(equipment.getCityId()) +
|
||||
regionMap.get(equipment.getDistrictId()) +
|
||||
equipment.getDetailedAddress());
|
||||
}
|
||||
|
||||
returnData.add(vo);
|
||||
}
|
||||
|
||||
|
@ -270,6 +284,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void grabTheOrder(MaintenanceOrderParam maintenanceOrderParam) {
|
||||
MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId());
|
||||
Assert.notNull(maintenanceOrder, "数据不存在");
|
||||
|
@ -280,6 +295,11 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
|
||||
maintenanceOrder.setReceiverTime(new Date());
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
, OrderOperateRecordEnum.ORDER_RECEIVING.getDesc()
|
||||
,"检修人员【"+FrontThreadLocal.get("username")+"】已自主抢单。联系人电话:"+FrontThreadLocal.get("mobile"));
|
||||
}else{
|
||||
throw new OperateException("订单已被其他人抢走");
|
||||
}
|
||||
|
@ -295,6 +315,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHECKING.getStatus());
|
||||
maintenanceOrder.setReceiverTime(new Date());
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
||||
|
||||
}else{
|
||||
throw new OperateException("订单状态不正确");
|
||||
}
|
||||
|
@ -343,6 +365,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
MaintenanceOrderDetailVo vo = new MaintenanceOrderDetailVo();
|
||||
BeanUtils.copyProperties(maintenanceOrder, vo);
|
||||
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
|
||||
//设置客户信息
|
||||
Client client = clientMapper.selectById(maintenanceOrder.getClientId());
|
||||
if(client != null){
|
||||
|
@ -352,6 +376,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
//设置设备信息
|
||||
Equipment equipment = equipmentMapper.selectById(maintenanceOrder.getEquipmentId());
|
||||
if(equipment != null){
|
||||
equipment.setDetailedAddress(regionMap.get(equipment.getProvinceId()) +
|
||||
regionMap.get(equipment.getCityId()) +
|
||||
regionMap.get(equipment.getDistrictId()) +
|
||||
equipment.getDetailedAddress());
|
||||
vo.setEquipment(equipment);
|
||||
}
|
||||
|
||||
|
@ -402,7 +430,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
|
||||
|
||||
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
if(insetallUser != null){
|
||||
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||
}
|
||||
}
|
||||
//设置设备模块信息
|
||||
vo.setEquipmentModel(equipmentModelDetailVo);
|
||||
|
@ -410,7 +440,6 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
//设置返修信息
|
||||
MaintenanceRepair maintenanceRepair = maintenanceRepairMapper.findMaintenanceRepairByOrderId(maintenanceOrder.getId());
|
||||
if(maintenanceRepair != null){
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();
|
||||
MaintenanceRepairDetailVo maintenanceRepairDetailVo = new MaintenanceRepairDetailVo();
|
||||
BeanUtils.copyProperties(maintenanceRepair,maintenanceRepairDetailVo);
|
||||
|
||||
|
@ -460,11 +489,22 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setWarehouseType(maintenanceOrderParam.getWarehouseType());
|
||||
maintenanceOrder.setQuotationTime(new Date());
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.CUSTOMER_QUOTATION.getDesc()
|
||||
,OrderOperateRecordEnum.QUOTATION.getStatus()
|
||||
,"【"+FrontThreadLocal.get("username")+"】已经为客户发送服务报价。");
|
||||
|
||||
Client client = clientMapper.findClientById(maintenanceOrder.getClientId());
|
||||
//判断当前客户是全包还是半包
|
||||
if(client.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){
|
||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
|
||||
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.CUSTOMER_CONFIRM.getDesc()
|
||||
,"客户【"+client.getClientName()+"】已确认报价。");
|
||||
}else{
|
||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus());
|
||||
}
|
||||
|
@ -490,7 +530,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
orderSparePart.setWarehouseId(sparePart.getWarehouseId());
|
||||
orderSparePart.setQuantity(item.getQuantity());
|
||||
//设置订单实际价格
|
||||
BigDecimal practicalPrice = sparePart.getUnitPrice().multiply(client.getPurchaseDivisor());
|
||||
BigDecimal practicalPrice = sparePart.getUnitPrice().multiply(client.getPointMaintainDivisor());
|
||||
orderSparePart.setUnitPrice(practicalPrice);
|
||||
|
||||
BigDecimal totalPrice = practicalPrice.multiply(BigDecimal.valueOf(item.getQuantity()));
|
||||
|
@ -516,6 +556,13 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
if(maintenanceOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){
|
||||
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
|
||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus());
|
||||
|
||||
Client client = clientMapper.findClientById(maintenanceOrder.getClientId());
|
||||
if(client != null){
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.CUSTOMER_CONFIRM.getDesc()
|
||||
,"客户【"+client.getClientName()+"】已确认报价。");
|
||||
}
|
||||
}else{
|
||||
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.NOT_MAINTAIN.getStatus());
|
||||
maintenanceOrder.setRefuseMaintenanceCause(maintenanceOrderParam.getRefuseMaintenanceCause());
|
||||
|
@ -551,6 +598,11 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus());
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
|
||||
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE_TYPE.getStatus()
|
||||
,"【"+FrontThreadLocal.get("username")+"】创建了【配件领用】单。选择仓库:自身仓库");
|
||||
//我的仓库也要新增配件领用记录 并且状态是已完成
|
||||
/*SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(maintenanceOrderParam);
|
||||
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
|
||||
|
@ -568,6 +620,12 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(maintenanceOrderParam);
|
||||
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
sparePartStockAuditMapper.insert(sparePartStockAudit);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
|
||||
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE_TYPE.getStatus()
|
||||
,"【"+FrontThreadLocal.get("username")+"】创建了配件领用申请单。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -623,6 +681,11 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
||||
maintenanceOrder.setCompleteImg(maintenanceOrderParam.getCompleteImg()); // 完工照片
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.FILL_IN_RECEIPT.getDesc()
|
||||
,"【"+FrontThreadLocal.get("username")+"】已经完成任务");
|
||||
}else{
|
||||
throw new OperateException("当前订单状态无法进行填写回单操作");
|
||||
}
|
||||
|
@ -685,7 +748,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
|
||||
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
|
||||
if(resultSps != null){
|
||||
if(resultSps.getPurchaseStatus() == AuditStateEnum.WAITFORRECEIVING.getStatus()){
|
||||
if(resultSps.getPurchaseStatus() == AuditStateEnum.WAIT_FOR_RECEIVING.getStatus()){
|
||||
//确认收货后可进行填写回单操作
|
||||
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
@ -693,6 +756,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
//将对应的配件领用订单改成已完成
|
||||
resultSps.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
|
||||
sparePartStockAuditMapper.updateById(resultSps);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.RECEIVE_GOODS.getDesc()
|
||||
,"检修员【"+FrontThreadLocal.get("username")+"】已确认收货");
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE.getDesc()
|
||||
,"【"+FrontThreadLocal.get("username")+"】已完成配件领用");
|
||||
}else{
|
||||
throw new OperateException("当前订单状态无法进行确认收货");
|
||||
}
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package com.hcy.front.service.order.impl;
|
||||
|
||||
import com.hcy.common.entity.order.OrderOperateRecord;
|
||||
import com.hcy.common.enums.SparePartStockAuditEnum;
|
||||
import com.hcy.common.mapper.order.OrderOperateRecordMapper;
|
||||
import com.hcy.front.service.order.IOrderOperateRecordService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 订单操作记录实现类
|
||||
*/
|
||||
@Service
|
||||
public class OrderOperateRecordServiceImpl implements IOrderOperateRecordService {
|
||||
|
||||
@Resource
|
||||
private OrderOperateRecordMapper orderOperateRecordMapper;
|
||||
|
||||
@Override
|
||||
public void addMaintenanceOrder(Long orderId,String titleDsc,String description) {
|
||||
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
|
||||
orderOperateRecord.setOrderId(orderId);
|
||||
orderOperateRecord.setOrderType(SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
|
||||
orderOperateRecord.setTitle(titleDsc);
|
||||
orderOperateRecord.setDescription(description);
|
||||
orderOperateRecordMapper.insert(orderOperateRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addMaintenanceOrder(Long orderId,String titleDsc,Integer dscType,String description) {
|
||||
OrderOperateRecord orderOperateRecord = new OrderOperateRecord();
|
||||
orderOperateRecord.setOrderId(orderId);
|
||||
orderOperateRecord.setOrderType(SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
|
||||
orderOperateRecord.setTitle(titleDsc);
|
||||
orderOperateRecord.setDscType(dscType);
|
||||
orderOperateRecord.setDescription(description);
|
||||
orderOperateRecordMapper.insert(orderOperateRecord);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue