【admin&front】新增&修复# 1.新增巡检单操作记录 2.修复admin和front若干bug

dev
dabin 2024-08-29 22:54:57 +08:00
parent 086186df8d
commit 54bf366470
20 changed files with 420 additions and 322 deletions

View File

@ -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);
}

View File

@ -105,8 +105,10 @@ public class EquipmentServiceImpl implements IEquipmentService {
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
if(insetallUser != null){
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
}
}
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);

View File

@ -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);
}
}
//巡检周期
}
}

View File

@ -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());
}
}
}
}

View File

@ -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());
}
}
}
}

View File

@ -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);
}

View File

@ -115,6 +115,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
@Resource
OrderOperateRecordServiceImpl orderOperateRecordService;
@Resource
OrderOperateRecordMapper orderOperateRecordMapper;
/**
*
*
@ -163,8 +166,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
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());
User user = userMapper.selectById(param.getReceiverId());
if(user != null){
//新增订单操作记录
//orderOperateRecordService.addMaintenanceOrder(model.getId(),OrderOperateRecordEnum.);
orderOperateRecordService.addMaintenanceOrder(model.getId()
,OrderOperateRecordEnum.APPOINT.getDesc()
,"【"+AdminThreadLocal.get("username")+"】指派检修单给检修员【"+user.getUsername()+"】");
}
}
model.setReceiverId(param.getReceiverId());
model.setReceiverType(param.getReceiverType());

View File

@ -67,8 +67,10 @@ public class MaintenanceRepairServiceImpl implements IMaintenanceRepairService {
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
if(insetallUser != null){
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
}
}
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);

View File

@ -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);
}
}

View File

@ -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());
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.setRecipientNumber(number);
User user = userMapper.selectById(maintenanceOrder.getReceiverId());
if(user != null){
vo.setRecipient(user.getUsername());
vo.setRecipientPhone(user.getMobile());
vo.setRecipientNumber(number);
}
} 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()));
}
}
/**

View File

@ -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()));
}

View File

@ -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; //订单操作记录
}

View File

@ -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;
}
}

View File

@ -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, "收货超期"),

View File

@ -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;

View File

@ -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

View File

@ -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());

View File

@ -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);
}

View File

@ -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,15 +430,16 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
if(insetallUser != null){
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
}
}
//设置设备模块信息
vo.setEquipmentModel(equipmentModelDetailVo);
//设置返修信息
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("当前订单状态无法进行确认收货");
}

View File

@ -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);
}
}