【admin&front】优化# 1、优化检修单配件领用 2、优化工单全包价格显示0,半包正常显示 3、优化维修员配件领用使用公共仓库
parent
a7000a6d02
commit
6cf0352042
|
@ -16,6 +16,7 @@ import com.hcy.common.enums.audit.AuditStateEnum;
|
|||
import com.hcy.common.enums.equipment.EquipmentStateEnum;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
import com.hcy.common.enums.order.RepairOrderStatusEnum;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.common.mapper.configuration.SystemConfigurationMapper;
|
||||
|
@ -189,4 +190,42 @@ public class OrderCrontab {
|
|||
// 获取当前的用户
|
||||
routingInspectionOrderMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 维修单步骤停滞提醒
|
||||
*/
|
||||
public void repairTimeOut(){
|
||||
log.info("repairTimeOut 被执行......");
|
||||
//获取当前时间
|
||||
Calendar currentTime = Calendar.getInstance();
|
||||
|
||||
//维修单
|
||||
LambdaQueryWrapper<RepairOrder> repairOrderQw = new LambdaQueryWrapper<RepairOrder>()
|
||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.ne(RepairOrder::getOrderStatus, RepairOrderStatusEnum.FINISHED.getStatus());
|
||||
List<RepairOrder> repairOrders = repairOrderMapper.selectList(repairOrderQw);
|
||||
for (RepairOrder item : repairOrders) {
|
||||
Calendar orderCreateTime = Calendar.getInstance();
|
||||
orderCreateTime.setTime(item.getUpdateTime());
|
||||
|
||||
//判断当前维修单是加急还是普通 priority; // 优先级(0=普通,1=加急)
|
||||
if(item.getPriority() == RepairOrderStatusEnum.URGENT.getStatus()){
|
||||
//加急维修单状态停滞一天,需要提醒
|
||||
orderCreateTime.add(Calendar.MINUTE, 1);
|
||||
if(currentTime.compareTo(orderCreateTime) > 0){
|
||||
item.setTimeoutOrNot(RepairOrderStatusEnum.YES.getStatus());// 是否超时(0=是,1=否)
|
||||
repairOrderMapper.updateById(item);
|
||||
}
|
||||
|
||||
} else if (item.getPriority() == RepairOrderStatusEnum.COMMON.getStatus()) {
|
||||
//普通维修单状态停滞三天,需要提醒
|
||||
orderCreateTime.add(Calendar.MINUTE, 3);
|
||||
if(currentTime.compareTo(orderCreateTime) > 0){
|
||||
item.setTimeoutOrNot(RepairOrderStatusEnum.YES.getStatus());// 是否超时(0=是,1=否)
|
||||
repairOrderMapper.updateById(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@ import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
|
|||
import com.hcy.common.entity.system.SystemAuthAdmin;
|
||||
import com.hcy.common.entity.user.User;
|
||||
import com.hcy.common.entity.warehouse.Warehouse;
|
||||
import com.hcy.common.enums.ClientStatusEnum;
|
||||
import com.hcy.common.enums.SparePartStockAuditEnum;
|
||||
import com.hcy.common.enums.equipment.EquipmentStateEnum;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
|
@ -245,6 +246,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
User user = userMapper.selectById(model.getReceiverId());
|
||||
if(user != null){
|
||||
vo.setReceiverName(user.getNickname());
|
||||
vo.setReceiverPhone(user.getMobile());
|
||||
}
|
||||
|
||||
//设置故障名称
|
||||
|
@ -307,6 +309,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
.eq(OrderOperateRecord::getOrderId, model.getId());
|
||||
vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));;
|
||||
|
||||
//全包工单报价为0,半包正常显示 actualAmount; // 实际金额 clientType; // 桩点维修类型 0-全包 1-半包
|
||||
Client clientType = clientMapper.findClientById(vo.getClientId());
|
||||
if(clientType != null){
|
||||
if(clientType.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){
|
||||
vo.setTotalAmount(BigDecimal.valueOf(0));
|
||||
vo.setActualAmount(BigDecimal.valueOf(0));
|
||||
}
|
||||
}
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
@ -440,7 +451,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
orderOperateRecordService.addMaintenanceOrder(model.getId()
|
||||
,OrderOperateRecordEnum.ALTER_ORDER_DISTANCE.getDesc()
|
||||
,"【"+AdminThreadLocal.get("username")+"】已修改抢单范围。原本抢单范围为:" +
|
||||
model.getOrderDistance() + "公里,已修改抢单范围为:" + model.getOrderDistance() + "公里。");
|
||||
model.getOrderDistance() + "公里,已修改抢单范围为:" + model.getOrderDistance() + "公里。");
|
||||
|
||||
}
|
||||
}else{
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.hcy.admin.vo.client.EquipmentListVo;
|
|||
import com.hcy.admin.vo.order.OrderSparePartListVo;
|
||||
import com.hcy.admin.vo.order.RepairOrderListVo;
|
||||
import com.hcy.admin.vo.order.RepairOrderDetailVo;
|
||||
import com.hcy.admin.vo.order.RepairOrderStepDataVo;
|
||||
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
@ -25,10 +26,7 @@ import com.hcy.common.entity.address.UserAddress;
|
|||
import com.hcy.common.entity.client.Client;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.entity.fault.Fault;
|
||||
import com.hcy.common.entity.order.MaintenanceOrder;
|
||||
import com.hcy.common.entity.order.OrderOperateRecord;
|
||||
import com.hcy.common.entity.order.RepairOrder;
|
||||
import com.hcy.common.entity.order.RoutingInspectionOrder;
|
||||
import com.hcy.common.entity.order.*;
|
||||
import com.hcy.common.entity.plant.Plant;
|
||||
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
|
||||
import com.hcy.common.entity.system.SystemAuthAdmin;
|
||||
|
@ -44,9 +42,7 @@ import com.hcy.common.mapper.address.UserAddressMapper;
|
|||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||
import com.hcy.common.mapper.fault.FaultMapper;
|
||||
import com.hcy.common.mapper.order.OrderOperateRecordMapper;
|
||||
import com.hcy.common.mapper.order.OrderSparePartMapper;
|
||||
import com.hcy.common.mapper.order.RepairOrderMapper;
|
||||
import com.hcy.common.mapper.order.*;
|
||||
import com.hcy.common.mapper.plant.PlantMapper;
|
||||
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
|
||||
import com.hcy.common.mapper.system.SystemAuthAdminMapper;
|
||||
|
@ -114,6 +110,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
@Resource
|
||||
OrderOperateRecordMapper orderOperateRecordMapper;
|
||||
|
||||
@Resource
|
||||
RepairOrderStepDataMapper repairOrderStepDataMapper;
|
||||
|
||||
@Resource
|
||||
OrderPartCodeMapper orderPartCodeMapper;
|
||||
|
||||
/**
|
||||
* 维修订单列表
|
||||
*
|
||||
|
@ -179,6 +181,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
vo.setSparePartStockAudit(sparePartStockAuditDetailVo);
|
||||
}
|
||||
|
||||
//配件编码
|
||||
List<OrderPartCode> orderPartCodes = orderPartCodeMapper.selectList(new LambdaQueryWrapper<OrderPartCode>()
|
||||
.eq(OrderPartCode::getRepairOrderId, vo.getId()));
|
||||
vo.setOrderPartCodeList(orderPartCodes);
|
||||
|
||||
vo.setCreateTime(item.getCreateTime());
|
||||
vo.setUpdateTime(item.getUpdateTime());
|
||||
list.add(vo);
|
||||
|
@ -334,11 +341,39 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
vo.setFamiliarFaultName(familiarFaultName.getName());
|
||||
}
|
||||
|
||||
//设置订单操作记录
|
||||
/*//设置订单操作记录
|
||||
LambdaQueryWrapper<OrderOperateRecord> queryWrapper = new LambdaQueryWrapper<OrderOperateRecord>()
|
||||
.eq(OrderOperateRecord::getOrderType, OrderOperateRecordEnum.REPAIR.getStatus())
|
||||
.eq(OrderOperateRecord::getOrderId, model.getId());
|
||||
vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));;
|
||||
vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));;*/
|
||||
|
||||
//维修单步骤
|
||||
List<RepairOrderStepData> repairOrderStepData = repairOrderStepDataMapper.selectList(new LambdaQueryWrapper<RepairOrderStepData>()
|
||||
.eq(RepairOrderStepData::getRepairOrderId, vo.getId())
|
||||
.orderByDesc(RepairOrderStepData::getId));
|
||||
if(repairOrderStepData != null){
|
||||
List<RepairOrderStepDataVo> stepDataVoList = new ArrayList<>();
|
||||
for (RepairOrderStepData repairOrderStepDatum : repairOrderStepData) {
|
||||
RepairOrderStepDataVo repairOrderStepDataVo = new RepairOrderStepDataVo();
|
||||
BeanUtils.copyProperties(repairOrderStepDatum,repairOrderStepDataVo);
|
||||
//创建人名称
|
||||
User user1 = userMapper.selectOne(new LambdaQueryWrapper<User>()
|
||||
.eq(User::getId, repairOrderStepDataVo.getCreatorId()));
|
||||
if(user1 != null){
|
||||
repairOrderStepDataVo.setCreatorName(user1.getUsername());
|
||||
}
|
||||
//当前维修员是否是学徒
|
||||
SystemAuthAdmin isApprentice = systemAuthAdminMapper.selectOne(
|
||||
new QueryWrapper<SystemAuthAdmin>()
|
||||
.eq("user_id", repairOrderStepDataVo.getCreatorId()));
|
||||
if(isApprentice != null){
|
||||
repairOrderStepDataVo.setIsApprentice(isApprentice.getIsApprentice());
|
||||
}
|
||||
stepDataVoList.add(repairOrderStepDataVo);
|
||||
}
|
||||
vo.setOrderOperateRecords(stepDataVoList);
|
||||
}
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
@ -359,21 +394,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
|
||||
model.setClientId(repairOrderParam.getClientId()); // 客户id
|
||||
model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id
|
||||
model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号
|
||||
model.setBrand(repairOrderParam.getBrand()); // 品牌
|
||||
model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 0-物流快递 1=自领带回
|
||||
model.setExpressName(repairOrderParam.getExpressName()); // 快递名称
|
||||
model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否)
|
||||
model.setReceiverId(repairOrderParam.getReceiverId()); // 接单人id
|
||||
model.setOrderDistance(repairOrderParam.getOrderDistance()); // 自动抢单最大距离
|
||||
model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述
|
||||
model.setRemark(repairOrderParam.getRemark()); // 备注
|
||||
model.setAddressId(repairOrderParam.getAddressId()); // 回寄地址
|
||||
if(model.getOrderStatus() != RepairOrderStatusEnum.PENDING_ORDER.getStatus()){
|
||||
throw new OperateException("当前工单状态,无法进行编辑!");
|
||||
}
|
||||
|
||||
RepairOrder repairOrder = new RepairOrder();
|
||||
BeanUtils.copyProperties(model, repairOrder);
|
||||
//priority; // 优先级(0=普通,1=加急)
|
||||
repairOrder.setPriority(repairOrderParam.getPriority());
|
||||
|
||||
//重新指派员工
|
||||
if(repairOrderParam.getReceiverId() != null && repairOrderParam.getId() != null){
|
||||
model.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
|
||||
/*if(repairOrderParam.getReceiverId() != null && repairOrderParam.getId() != null){
|
||||
repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus());
|
||||
|
||||
User user = userMapper.selectById(repairOrderParam.getReceiverId());
|
||||
if(user != null){
|
||||
|
@ -382,8 +414,8 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
, OrderOperateRecordEnum.APPOINT.getDesc()
|
||||
,"【"+AdminThreadLocal.get("username")+"】重新分配工单给检修员【"+user.getUsername()+"】");
|
||||
}
|
||||
}
|
||||
repairOrderMapper.updateById(model);
|
||||
}*/
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -95,12 +95,16 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
inspectionOrderDto.setClientName(StringUtils.isEmpty(params.get("clientName")) ? null : params.get("clientName"));
|
||||
inspectionOrderDto.setEquipmentName(StringUtils.isEmpty(params.get("equipmentName")) ? null : params.get("equipmentName"));
|
||||
inspectionOrderDto.setReceiverName(StringUtils.isEmpty(params.get("receiverName")) ? null : params.get("receiverName"));
|
||||
|
||||
if(StringUtils.isNotEmpty(params.get("orderSource"))){
|
||||
inspectionOrderDto.setOrderSource(Long.valueOf(params.get("orderSource")));
|
||||
}
|
||||
if(StringUtils.isNotEmpty(params.get("orderStatus"))){
|
||||
inspectionOrderDto.setOrderStatus(Long.valueOf(params.get("orderStatus")));
|
||||
}
|
||||
if(StringUtils.isNotEmpty(params.get("clientId"))){
|
||||
inspectionOrderDto.setClientId(Long.valueOf(params.get("clientId")));
|
||||
}
|
||||
|
||||
Page<RoutingInspectionOrderDto> iPage = routingInspectionOrderMapper.pageList(page, inspectionOrderDto);
|
||||
|
||||
|
|
|
@ -223,7 +223,7 @@ public class SparePartServiceImpl implements ISparePartService {
|
|||
model.setWarehouseId(sparePartParam.getWarehouseId());
|
||||
model.setSpecificationsModel(sparePartParam.getSpecificationsModel());
|
||||
model.setUnit(sparePartParam.getUnit());
|
||||
model.setQuantity(sparePartParam.getQuantity());
|
||||
/*model.setQuantity(sparePartParam.getQuantity());// 库存数量*/
|
||||
model.setUnitPrice(sparePartParam.getUnitPrice());
|
||||
model.setUpdateTime(System.currentTimeMillis() / 1000);//更新时间
|
||||
sparePartMapper.updateById(model);
|
||||
|
|
|
@ -32,6 +32,7 @@ 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.RepairOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.RepairOrderStopEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.SparePartAudit.SparePartAuditMapper;
|
||||
|
@ -218,7 +219,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
BeanUtils.copyProperties(orderSparePart, orderSparePartListVo);
|
||||
orderSparePartListVoList.add(orderSparePartListVo);
|
||||
|
||||
number += orderSparePart.getQuantity();
|
||||
number += orderSparePart.getCount();
|
||||
}
|
||||
vo.setOrderSparePartListVoList(orderSparePartListVoList);
|
||||
vo.setWorkOrderNo(maintenanceOrder.getOrderNo());
|
||||
|
@ -231,7 +232,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
vo.setRecipientPhone(user.getMobile());
|
||||
}
|
||||
} else if (item.getOrderType() != null && item.getOrderType() == SparePartStockAuditEnum.REPAIR_ORDER.getStatus()) {
|
||||
RepairOrder repairOrder = maintenanceOrderMapper.findRepairOrderById(item.getOrderId());
|
||||
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(item.getOrderId());
|
||||
|
||||
List<OrderSparePartListVo> orderSparePartListVoList = new ArrayList<>();
|
||||
List<OrderSparePart> orderSparePartList = orderSparePartMapper.findOrderSparePartByRepairOrderId(item.getOrderId());
|
||||
|
@ -240,7 +241,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
BeanUtils.copyProperties(orderSparePart, orderSparePartListVo);
|
||||
orderSparePartListVoList.add(orderSparePartListVo);
|
||||
|
||||
number += orderSparePart.getQuantity();
|
||||
number += orderSparePart.getCount();
|
||||
}
|
||||
|
||||
vo.setOrderSparePartListVoList(orderSparePartListVoList);
|
||||
|
@ -881,6 +882,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
if(repairOrder != null){
|
||||
repairOrder.setReturnCause(sparePartStockAuditParam.getPurchaseIdea());
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.RECOLLAR_FITTING.getStatus());//维修单审核不通过步骤为重领配件
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}
|
||||
|
||||
|
@ -889,6 +891,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
repairOrderStepData.setRepairOrderId(model.getOrderId());// 维修单id
|
||||
repairOrderStepData.setRemark("仓管员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+sparePartStockAuditParam.getPurchaseIdea());// 备注
|
||||
repairOrderStepData.setTitle("仓库员进行审核"); // 标题
|
||||
repairOrderStepData.setAuditStatus(AuditStateEnum.NOT_PASS_STATE.getStatus()); //审核不通过
|
||||
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
|
||||
repairOrderStepData.setCreateTime(new Date()); // 创建时间
|
||||
repairOrderStepDataMapper.insert(repairOrderStepData);
|
||||
|
@ -896,25 +899,25 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
|
||||
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
|
||||
//获取待审核备件信息
|
||||
List<SparePartAudit> stockAuditId = sparePartAuditMapper.selectList(
|
||||
new QueryWrapper<SparePartAudit>()
|
||||
.eq("stock_audit_id", model.getId())
|
||||
List<OrderSparePart> orderSpareParts = orderSparePartMapper.selectList(
|
||||
new QueryWrapper<OrderSparePart>()
|
||||
.eq("repair_order_id", model.getOrderId())
|
||||
.eq("is_delete", 0)
|
||||
);
|
||||
if (model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
|
||||
&& model.getReceiveStatus() == AuditStateEnum.UNCLAIMED.getStatus()) {
|
||||
// 通过审核的出库单
|
||||
//获取备件信息
|
||||
for (SparePartAudit sparePartAudit : stockAuditId) {
|
||||
for (OrderSparePart orderSparePart : orderSpareParts) {
|
||||
SparePart sparePart = sparePartMapper.selectOne(
|
||||
new QueryWrapper<SparePart>()
|
||||
.eq("id", sparePartAudit.getSparePartsId())
|
||||
.eq("id", orderSparePart.getSparePartsId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
|
||||
if (sparePart.getQuantity() >= sparePartAudit.getCount()) {
|
||||
if (sparePart.getQuantity() >= orderSparePart.getCount()) {
|
||||
/*model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());*/
|
||||
sparePart.setQuantity(sparePart.getQuantity() - sparePartAudit.getCount());
|
||||
sparePart.setQuantity(sparePart.getQuantity() - orderSparePart.getCount());
|
||||
} else {
|
||||
throw new OperateException("备件库存数量不足,请联系客服人员!");
|
||||
}
|
||||
|
@ -924,7 +927,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
if(model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
|
||||
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
|
||||
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT.getDesc()
|
||||
,OrderOperateRecordEnum.AUDIT.getStatus()
|
||||
,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过;等待管理员审核。");
|
||||
} else if (model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.REPAIR_ORDER.getStatus()) {
|
||||
|
@ -933,11 +936,19 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
|
||||
,OrderOperateRecordEnum.AUDIT.getStatus()
|
||||
,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过;等待管理员审核");*/
|
||||
|
||||
//仓管员维修单审核通过
|
||||
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(model.getOrderId());
|
||||
if(repairOrder != null){
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
}
|
||||
//新增维修单操作记录
|
||||
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
|
||||
repairOrderStepData.setRepairOrderId(model.getOrderId());// 维修单id
|
||||
repairOrderStepData.setRemark("仓管员【"+AdminThreadLocal.get("username")+"】完成审核,审核通过");// 备注
|
||||
repairOrderStepData.setTitle("仓管员进行审核"); // 标题
|
||||
repairOrderStepData.setAuditStatus(AuditStateEnum.ALREADY_PASSED.getStatus()); //审核通过
|
||||
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
|
||||
repairOrderStepData.setCreateTime(new Date()); // 创建时间
|
||||
repairOrderStepDataMapper.insert(repairOrderStepData);
|
||||
|
@ -1147,11 +1158,16 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
|
|||
sparePartStockAuditMapper.updateById(model);
|
||||
|
||||
if(model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(model.getOrderId()
|
||||
, "仓管员上传确认照片"
|
||||
,OrderOperateRecordEnum.SPARE_PARTS_AUDIT.getStatus()
|
||||
,"仓管员【"+AdminThreadLocal.get("username")+"】上传确认照片。");
|
||||
} else if (model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.REPAIR_ORDER.getStatus()) {
|
||||
RepairOrder repairOrder = repairOrderMapper.selectOne(new LambdaQueryWrapper<RepairOrder>()
|
||||
.eq(RepairOrder::getId, model.getOrderId()));
|
||||
repairOrder.setOrderStatus(AuditStateEnum.TO_BE_CONFIRMED.getStatus());// 维修工单状态 3=待确认
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
|
||||
//新增维修单操作记录
|
||||
|
|
|
@ -104,5 +104,5 @@ public class RepairOrderParam implements Serializable {
|
|||
|
||||
private Integer repairStep; // 当前步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
|
||||
private Integer timeoutOrNot; // 是否超时(0=是,1=否)
|
||||
}
|
||||
|
|
|
@ -68,4 +68,6 @@ public class MaintenanceOrderDetailVo implements Serializable {
|
|||
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
|
||||
private SparePartStockAuditDetailVo sparePartStockAuditDetailVo; //备件领用申请
|
||||
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
|
||||
|
||||
private Date quotationTime; //报价时间
|
||||
}
|
||||
|
|
|
@ -22,7 +22,8 @@ public class OrderSparePartListVo implements Serializable {
|
|||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private BigDecimal unitPrice; // 价格
|
||||
private Integer quantity; // 数量
|
||||
private Integer quantity; // 库存数量
|
||||
private Integer count; // 出入库数量
|
||||
private BigDecimal totalPrice; // 总价
|
||||
|
||||
private String warehouseName; //仓库名称
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
|
|||
import com.hcy.common.entity.address.UserAddress;
|
||||
import com.hcy.common.entity.client.Equipment;
|
||||
import com.hcy.common.entity.order.OrderOperateRecord;
|
||||
import com.hcy.common.entity.order.OrderPartCode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -97,7 +98,7 @@ public class RepairOrderDetailVo implements Serializable {
|
|||
private Long clientScrapAddressId; // 客户报废收货地址id
|
||||
private UserAddressListVo clientScrapAddress; //客户报废收货地址
|
||||
|
||||
private Long scrapConfirmation; // 报废确认(0=是,1=否)
|
||||
private Integer scrapConfirmation; // 报废确认(0=是,1=否)
|
||||
private Integer warehouseType; // 仓库类型 0-我的仓库 1-公共仓库
|
||||
|
||||
private Long repairId; // 返修id
|
||||
|
@ -108,7 +109,9 @@ public class RepairOrderDetailVo implements Serializable {
|
|||
private Long userId; // 送修人
|
||||
|
||||
private Integer maintainType; // 客户维修类型 模块维修类型 0-全包 1-半包
|
||||
/*
|
||||
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
|
||||
*/
|
||||
|
||||
private Integer priority; // 优先级(0=加急,1=普通)
|
||||
private Integer isReassignment; // 是否在改派中(0=是,1=否)
|
||||
|
@ -123,5 +126,7 @@ public class RepairOrderDetailVo implements Serializable {
|
|||
|
||||
private Integer repairStep; // 当前步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
|
||||
private List<OrderPartCode> orderPartCodeList; // 配件编码列表
|
||||
private List<RepairOrderStepDataVo> orderOperateRecords; // 维修单步骤数据列表 //repairOrderStepDataList
|
||||
private Integer timeoutOrNot; // 是否超时(0=是,1=否)
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package com.hcy.admin.vo.order;
|
||||
|
||||
import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo;
|
||||
import com.hcy.common.entity.order.OrderPartCode;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RepairOrderVo
|
||||
|
@ -86,5 +88,6 @@ public class RepairOrderListVo implements Serializable {
|
|||
|
||||
private Integer repairStep; // 当前步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
|
||||
private List<OrderPartCode> orderPartCodeList; // 配件编码列表
|
||||
private Integer timeoutOrNot; // 是否超时(0=是,1=否)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package com.hcy.admin.vo.order;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class RepairOrderStepDataVo implements Serializable {
|
||||
private Long id; // 主键id
|
||||
private Long repairOrderId; // 维修单id
|
||||
private Integer repairStep; // 当前步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private String remark; // 备注
|
||||
private String img; // 照片
|
||||
private String title; // 标题
|
||||
private Integer dscType; // 描述类型:0=配件领用
|
||||
private Integer auditStatus; // 审核状态(0=通过,1=不通过)
|
||||
private Long creatorId; // 创建人id
|
||||
private Date createTime; // 创建时间
|
||||
private String creatorName; // 创建人名称
|
||||
private Integer isApprentice; //是否学徒:0=否 1=是
|
||||
}
|
|
@ -26,7 +26,8 @@ public class OrderSparePart implements Serializable {
|
|||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private BigDecimal unitPrice; // 价格
|
||||
private Integer quantity; // 数量
|
||||
private Integer quantity; // 库存数量
|
||||
private Integer count; // 出入库数量
|
||||
private BigDecimal totalPrice; // 总价
|
||||
private Integer isDelete; // 是否删除 0-未删除 1-删除
|
||||
|
||||
|
|
|
@ -87,5 +87,5 @@ public class RepairOrderDto implements Serializable {
|
|||
|
||||
private Integer repairStep; // 当前步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
|
||||
private Integer timeoutOrNot; // 是否超时(0=是,1=否)
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ public class MaintenanceOrder implements Serializable {
|
|||
@TableField(value = "receiver_id",updateStrategy = FieldStrategy.IGNORED)
|
||||
private Long receiverId; // 接单人id
|
||||
private Long repairId; // 返修id
|
||||
@TableField(value = "receiver_time",updateStrategy = FieldStrategy.IGNORED)
|
||||
private Date receiverTime; // 接单时间
|
||||
private Date quotationTime; //报价时间
|
||||
private Date cancelOrderTime; // 取消订单时间
|
||||
|
|
|
@ -89,4 +89,6 @@ public class RepairOrder implements Serializable {
|
|||
|
||||
private Integer repairStep; // 当前步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private Integer timeoutOrNot; // 是否超时(0=是,1=否)
|
||||
|
||||
}
|
|
@ -28,6 +28,7 @@ public enum OrderOperateRecordEnum {
|
|||
RETURN_TECHNICIAN(10, "退回检修员"),
|
||||
UPLOADING_IN_MAINTENANCE(6, "上传维修中照片"),
|
||||
UPLOADING_AFTER_REPAIR(7, "上传维修后照片"),
|
||||
SPARE_PARTS_AUDIT(5,"备件领用审核"),
|
||||
SPARE_PARTS_AUDIT_ONE(5,"备件领用一级审核"),
|
||||
SPARE_PARTS_AUDIT_TWO(6,"备件领用二级审核"),
|
||||
DELIVER_GOODS(7,"发货"),
|
||||
|
|
|
@ -31,16 +31,6 @@ public interface MaintenanceOrderMapper extends IBaseMapper<MaintenanceOrder> {
|
|||
@Select("select * from la_maintenance_order where is_delete = 0 and order_no like concat('%',#{time},'%') order by order_no desc limit 1")
|
||||
MaintenanceOrder findLastMaintenanceOrderByTime(@Param("time") String time);
|
||||
|
||||
/**
|
||||
* 通过订单id查询维修订单
|
||||
* @return MaintenanceOrder
|
||||
*/
|
||||
@Select("select * from la_repair_order where is_delete = 0 and id = #{id}")
|
||||
RepairOrder findRepairOrderById(@Param("id") Long id);
|
||||
|
||||
@Select("select * from la_repair_order where is_delete = 0 and order_no like concat('%',#{time},'%') order by order_no desc limit 1")
|
||||
RepairOrder findRepairOrderByTime(@Param("time") String time);
|
||||
|
||||
/**
|
||||
* 获取待接单状态数量
|
||||
* @return
|
||||
|
|
|
@ -50,6 +50,9 @@ public interface RepairOrderMapper extends IBaseMapper<RepairOrder> {
|
|||
@Select("select * from la_repair_order where is_delete = 0 and module_code = #{moduleCode}")
|
||||
RepairOrder findRepairOrderByModuleCode(@Param("moduleCode") String moduleCode);
|
||||
|
||||
@Select("select * from la_repair_order where is_delete = 0 and order_no like concat('%',#{time},'%') order by order_no desc limit 1")
|
||||
RepairOrder findRepairOrderByTime(@Param("time") String time);
|
||||
|
||||
/**
|
||||
* 获取待接单工单状态数量
|
||||
* @return
|
||||
|
|
|
@ -25,4 +25,11 @@ public interface WarehouseMapper extends IBaseMapper<Warehouse> {
|
|||
*/
|
||||
@Select("select * from la_warehouse where is_delete = 0 and pid IN ( SELECT id FROM la_warehouse WHERE warehouse_coding = 'topWarehouse' OR warehouse_coding = 'areaWarehouse') or id = #{id}")
|
||||
List<Warehouse> findPublicWarehouseList(@Param("id") Long id);
|
||||
|
||||
/**
|
||||
* 获取公共仓库
|
||||
* @return List<Warehouse>
|
||||
*/
|
||||
@Select("select * from la_warehouse where is_delete = 0 and pid IN ( SELECT id FROM la_warehouse WHERE warehouse_coding = 'topWarehouse' OR warehouse_coding = 'areaWarehouse')")
|
||||
List<Warehouse> findPublicWarehouseList();
|
||||
}
|
||||
|
|
|
@ -41,6 +41,9 @@
|
|||
<if test="form.orderStatus != null">
|
||||
and i.order_status = #{form.orderStatus}
|
||||
</if>
|
||||
<if test="form.clientId != null">
|
||||
and i.client_id = #{form.clientId}
|
||||
</if>
|
||||
ORDER BY create_time DESC
|
||||
</select>
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
lw.warehouse_name as warehouseName
|
||||
FROM
|
||||
la_spare_part AS lsp
|
||||
LEFT JOIN la_warehouse AS lw ON lw.id = lsp.warehouse_id
|
||||
LEFT JOIN la_warehouse AS lw ON lw.id = lsp.warehouse_id and lw.is_delete = 0
|
||||
<where>
|
||||
lsp.is_delete = 0
|
||||
and lsp.quantity > 0
|
||||
|
|
|
@ -122,6 +122,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
|
|||
vo.setProvince(regionMap.get(vo.getProvinceId()));
|
||||
vo.setCity(regionMap.get(vo.getCityId()));
|
||||
vo.setDistrict(regionMap.get(vo.getDistrictId()));
|
||||
|
||||
//是否学徒 isApprentice; //是否学徒:0=否 1=是
|
||||
vo.setIsApprentice(authAdmin.getIsApprentice());
|
||||
|
||||
//设置客户id
|
||||
ClientContacts clientContacts = clientContactsMapper.selectOne(new LambdaQueryWrapper<ClientContacts>()
|
||||
.eq(ClientContacts::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
|
|
|
@ -99,7 +99,7 @@ public interface IMaintenanceOrderService {
|
|||
void oldModuleRepair(MaintenanceOrderParam maintenanceOrderParam);
|
||||
|
||||
/**
|
||||
* 旧模块返修
|
||||
* 确认收货
|
||||
* @param maintenanceOrderParam 参数
|
||||
*/
|
||||
void confirmReceipt(MaintenanceOrderParam maintenanceOrderParam);
|
||||
|
|
|
@ -4,7 +4,6 @@ package com.hcy.front.service.order;
|
|||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.front.validate.PageParam;
|
||||
import com.hcy.front.validate.order.RepairOrderParam;
|
||||
import com.hcy.front.vo.order.MaintenanceOrderListVo;
|
||||
import com.hcy.front.vo.order.OrderStatusCountVo;
|
||||
import com.hcy.front.vo.order.RepairOrderDetailVo;
|
||||
import com.hcy.front.vo.order.RepairOrderListVo;
|
||||
|
@ -30,7 +29,6 @@ public interface IRepairOrderService {
|
|||
* 维修订单详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param repairOrderParam
|
||||
* @return RepairOrder
|
||||
*/
|
||||
RepairOrderDetailVo detail(RepairOrderParam repairOrderParam);
|
||||
|
@ -45,98 +43,82 @@ public interface IRepairOrderService {
|
|||
|
||||
/**
|
||||
* 抢单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void grabTheOrder(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 接单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void receivingOrder(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 扫一扫
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void sweep(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 故障检测
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void faultDetect(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 工单池
|
||||
* @param repairOrderParam
|
||||
* @return
|
||||
*/
|
||||
List<RepairOrderListVo> list(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 统计工单状态数量
|
||||
* @return
|
||||
*/
|
||||
OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 确认服务报价
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void confirmServiceOfferPrice(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 确认报废
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void confirmedScrap(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 填写报废单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void scrapForm(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 填写回单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void fillInReceipt(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 备件领用申请
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void sparePartsRequisition(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 确认收货
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void confirmReceipt(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 扫一扫
|
||||
*/
|
||||
void sweep(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 拆机
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void dismantle(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 申请改派维修单
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void applyForReassignment(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 审核改派
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void auditReassignment(RepairOrderParam repairOrderParam);
|
||||
|
||||
/**
|
||||
* 维修步骤
|
||||
* @param repairOrderParam
|
||||
*/
|
||||
void maintenanceProcedure(RepairOrderParam repairOrderParam);
|
||||
}
|
||||
|
|
|
@ -22,9 +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.equipment.EquipmentStateEnum;
|
||||
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.enums.order.*;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.address.UserAddressMapper;
|
||||
import com.hcy.common.mapper.client.ClientContactsMapper;
|
||||
|
@ -397,6 +395,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
if(maintenanceOrder.getRepairWorkOrderFlow() == OrderStateEnum.WORK_ORDER_TANK.getStatus()){
|
||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAITING_LIST.getStatus());
|
||||
maintenanceOrder.setReceiverId(null);
|
||||
maintenanceOrder.setReceiverTime(null);
|
||||
}else{
|
||||
maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus());
|
||||
}
|
||||
|
@ -457,7 +456,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
vo.setCreatorName(systemAuthAdmin.getNickname());
|
||||
}
|
||||
}*/
|
||||
|
||||
//设置创建人姓名
|
||||
User userName = userMapper.selectOne(new LambdaQueryWrapper<User>()
|
||||
.eq(User::getId, maintenanceOrder.getCreatorId()));
|
||||
if(userName != null){
|
||||
|
@ -531,6 +530,15 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
vo.setSparePartStockAudit(sparePartStockAuditDetailVo);
|
||||
}
|
||||
|
||||
//全包工单报价为0,半包正常显示 actualAmount; // 实际金额 clientType; // 桩点维修类型 0-全包 1-半包
|
||||
Client clientType = clientMapper.findClientById(vo.getClientId());
|
||||
if(clientType != null){
|
||||
if(clientType.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){
|
||||
vo.setTotalAmount(BigDecimal.valueOf(0));
|
||||
vo.setActualAmount(BigDecimal.valueOf(0));
|
||||
}
|
||||
}
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
@ -590,22 +598,22 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
orderSparePartMapper.deleteById(orderSparePart);
|
||||
}
|
||||
|
||||
for (SparePartParam item : maintenanceOrderParam.getSparePartParams()) {
|
||||
for (OrderSparePartVo item : maintenanceOrderParam.getSparePartParams()) {
|
||||
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
|
||||
|
||||
OrderSparePart orderSparePart = new OrderSparePart();
|
||||
BeanUtils.copyProperties(sparePart, orderSparePart);
|
||||
|
||||
orderSparePart.setId(null);
|
||||
orderSparePart.setMaintenanceOrderId(maintenanceOrder.getId());
|
||||
orderSparePart.setSparePartsId(item.getId());
|
||||
orderSparePart.setWarehouseId(sparePart.getWarehouseId());
|
||||
orderSparePart.setQuantity(item.getQuantity());
|
||||
orderSparePart.setMaintenanceOrderId(maintenanceOrder.getId()); //检修单id
|
||||
orderSparePart.setSparePartsId(item.getId()); // 备件id
|
||||
orderSparePart.setWarehouseId(sparePart.getWarehouseId()); // 所属仓库id
|
||||
orderSparePart.setCount(item.getCount()); // 出入库数量
|
||||
//设置订单实际价格
|
||||
BigDecimal practicalPrice = sparePart.getUnitPrice().multiply(client.getPointMaintainDivisor());
|
||||
orderSparePart.setUnitPrice(practicalPrice);
|
||||
|
||||
BigDecimal totalPrice = practicalPrice.multiply(BigDecimal.valueOf(item.getQuantity()));
|
||||
BigDecimal totalPrice = practicalPrice.multiply(BigDecimal.valueOf(item.getCount()));
|
||||
actualAmount = actualAmount.add(totalPrice);
|
||||
|
||||
orderSparePart.setTotalPrice(totalPrice);
|
||||
|
@ -687,9 +695,9 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
for (OrderSparePart item : orderSpareParts) {
|
||||
//获取备件信息
|
||||
SparePart sparePart = sparePartMapper.findSparePartById(item.getSparePartsId());
|
||||
if(sparePart.getQuantity() >= item.getQuantity()){
|
||||
if(sparePart.getQuantity() >= item.getCount()){
|
||||
//扣除对应的数量
|
||||
sparePart.setQuantity(sparePart.getQuantity() - item.getQuantity());
|
||||
sparePart.setQuantity(sparePart.getQuantity() - item.getCount());
|
||||
sparePartMapper.updateById(sparePart);
|
||||
}else{
|
||||
throw new OperateException("仓库中【" + sparePart.getSparePartsName() + "】备件数量不足" + item.getQuantity() + sparePart.getUnit() + ",配件领用失败");
|
||||
|
@ -705,21 +713,24 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
,OrderOperateRecordEnum.SPARE_PARTS_RECEIVE_TYPE.getStatus()
|
||||
,"【"+FrontThreadLocal.get("username")+"】创建了【配件领用】单。选择仓库:自身仓库。");
|
||||
//我的仓库也要新增配件领用记录 并且状态是已完成
|
||||
/*SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(maintenanceOrderParam);
|
||||
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
|
||||
sparePartStockAuditMapper.insert(sparePartStockAudit);*/
|
||||
SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(maintenanceOrderParam);
|
||||
/*sparePartStockAudit.setPurchaseStatus(AuditStateEnum.DONE.getStatus());*/
|
||||
sparePartStockAudit.setReceiveStatus(AuditStateEnum.FINISHED.getStatus());
|
||||
sparePartStockAuditMapper.insert(sparePartStockAudit);
|
||||
}else{
|
||||
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
|
||||
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
|
||||
if(resultSps != null){
|
||||
//已有领取记录但被拒绝则重新审核
|
||||
resultSps.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
/*resultSps.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());*/
|
||||
resultSps.setReceiveStatus(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
resultSps.setCreateTime(new Date());
|
||||
sparePartStockAuditMapper.updateById(resultSps);
|
||||
}else{
|
||||
//没领过配件则创建新的领用单
|
||||
SparePartStockAudit sparePartStockAudit = getSparePartStockAudit(maintenanceOrderParam);
|
||||
sparePartStockAudit.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
/*sparePartStockAudit.setPurchaseStatus(AuditStateEnum.UNREVIEWED.getStatus());*/
|
||||
sparePartStockAudit.setReceiveStatus(AuditStateEnum.UNREVIEWED.getStatus());
|
||||
sparePartStockAuditMapper.insert(sparePartStockAudit);
|
||||
|
||||
//新增检修单操作记录
|
||||
|
@ -729,6 +740,8 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
,"【"+FrontThreadLocal.get("username")+"】创建了配件领用申请单。");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -772,9 +785,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
Assert.notNull(maintenanceOrderParam.getFamiliarFaultId(), "结论类型不可为空");
|
||||
Assert.notNull(maintenanceOrderParam.getFamiliarFaultDescription(), "结论描述不可为空");
|
||||
|
||||
//只有维修中和填写回单状态才可以填写回单
|
||||
if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus() &&
|
||||
maintenanceOrder.getIsConfirmReceipt() == MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()){
|
||||
//只有维修中和填写回单状态才可以填写回单 检测中的工单也支持填写回单
|
||||
if((maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus() &&
|
||||
maintenanceOrder.getIsConfirmReceipt() == MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()) ||
|
||||
maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus()){
|
||||
|
||||
maintenanceOrder.setFamiliarFaultId(maintenanceOrderParam.getFamiliarFaultId());
|
||||
maintenanceOrder.setFamiliarFaultDescription(maintenanceOrderParam.getFamiliarFaultDescription());
|
||||
|
@ -862,13 +876,13 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
|
|||
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(maintenanceOrder.getId()
|
||||
,SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus());
|
||||
if(resultSps != null){
|
||||
if(resultSps.getPurchaseStatus() == AuditStateEnum.WAIT_FOR_RECEIVING.getStatus()){
|
||||
if(resultSps.getReceiveStatus() == AuditStateEnum.TO_BE_CONFIRMED.getStatus()){
|
||||
//确认收货后可进行填写回单操作
|
||||
maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus());
|
||||
maintenanceOrderMapper.updateById(maintenanceOrder);
|
||||
|
||||
//将对应的配件领用订单改成已完成
|
||||
resultSps.setPurchaseStatus(AuditStateEnum.DONE.getStatus());
|
||||
resultSps.setReceiveStatus(AuditStateEnum.FINISHED.getStatus());// 已完成
|
||||
sparePartStockAuditMapper.updateById(resultSps);
|
||||
|
||||
//新增检修单操作记录
|
||||
|
|
|
@ -207,32 +207,64 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
RepairOrderDto repairOrderDto = new RepairOrderDto();
|
||||
BeanUtils.copyProperties(repairOrderParam,repairOrderDto);
|
||||
|
||||
if(repairOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){
|
||||
if(repairOrderParam.getIsClient() == RepairOrderStatusEnum.REPAIRER.getStatus()){
|
||||
repairOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人
|
||||
}else if(repairOrderParam.getIsClient() == RepairOrderStatusEnum.CLIENT.getStatus()){
|
||||
repairOrderDto.setClientId(repairOrderDto.getClientId()); // 根据客户id进行查询
|
||||
} else if (repairOrderParam.getIsClient() == RepairOrderStatusEnum.MAINTENANCE_SUPERVISOR.getStatus()) {
|
||||
repairOrderDto.setCreatorId(FrontThreadLocal.getUserId().longValue()); // 创建人id,只查维修主管自己创建的单
|
||||
}else{
|
||||
repairOrderDto.setClientId(repairOrderDto.getClientId()); // 客户id
|
||||
throw new OperateException("isClient不可为空!");
|
||||
}
|
||||
|
||||
// 待接单数量
|
||||
Integer pendingOrderCount = orderStatusCount(RepairOrderStatusEnum.PENDING_ORDER.getStatus(),repairOrderDto.getClientId(),repairOrderDto.getReceiverId());
|
||||
Integer pendingOrderCount = orderStatusCount(
|
||||
RepairOrderStatusEnum.PENDING_ORDER.getStatus(),
|
||||
repairOrderDto.getClientId(),
|
||||
repairOrderDto.getReceiverId(),
|
||||
repairOrderDto.getCreatorId());
|
||||
|
||||
// 待维修数量
|
||||
Integer waitingRepairCount = orderStatusCount(RepairOrderStatusEnum.AWAITING_REPAIR.getStatus(),repairOrderDto.getClientId(),repairOrderDto.getReceiverId());
|
||||
Integer waitingRepairCount = orderStatusCount(
|
||||
RepairOrderStatusEnum.AWAITING_REPAIR.getStatus(),
|
||||
repairOrderDto.getClientId(),
|
||||
repairOrderDto.getReceiverId(),
|
||||
repairOrderDto.getCreatorId());
|
||||
|
||||
// 排查中数量
|
||||
Integer underInvestigationCount = orderStatusCount(RepairOrderStatusEnum.UNDER_INVESTIGATION.getStatus(),repairOrderDto.getClientId(),repairOrderDto.getReceiverId());
|
||||
Integer underInvestigationCount = orderStatusCount(
|
||||
RepairOrderStatusEnum.UNDER_INVESTIGATION.getStatus(),
|
||||
repairOrderDto.getClientId(),
|
||||
repairOrderDto.getReceiverId(),
|
||||
repairOrderDto.getCreatorId());
|
||||
|
||||
// 待确认数量
|
||||
Integer toBeConfirmedCount = orderStatusCount(RepairOrderStatusEnum.TO_BE_CONFIRMED.getStatus(),repairOrderDto.getClientId(),repairOrderDto.getReceiverId());
|
||||
Integer toBeConfirmedCount = orderStatusCount(
|
||||
RepairOrderStatusEnum.TO_BE_CONFIRMED.getStatus(),
|
||||
repairOrderDto.getClientId(),
|
||||
repairOrderDto.getReceiverId(),
|
||||
repairOrderDto.getCreatorId());
|
||||
|
||||
// 维修中数量
|
||||
Integer inMaintenanceCount = orderStatusCount(RepairOrderStatusEnum.IN_MAINTENANCE.getStatus(),repairOrderDto.getClientId(),repairOrderDto.getReceiverId());
|
||||
Integer inMaintenanceCount = orderStatusCount(
|
||||
RepairOrderStatusEnum.IN_MAINTENANCE.getStatus(),
|
||||
repairOrderDto.getClientId(),
|
||||
repairOrderDto.getReceiverId(),
|
||||
repairOrderDto.getCreatorId());
|
||||
|
||||
// 测试中数量
|
||||
Integer testInProcessCount = orderStatusCount(RepairOrderStatusEnum.TEST_IN_PROCESS.getStatus(),repairOrderDto.getClientId(),repairOrderDto.getReceiverId());
|
||||
Integer testInProcessCount = orderStatusCount(
|
||||
RepairOrderStatusEnum.TEST_IN_PROCESS.getStatus(),
|
||||
repairOrderDto.getClientId(),
|
||||
repairOrderDto.getReceiverId(),
|
||||
repairOrderDto.getCreatorId());
|
||||
|
||||
// 已完成数量
|
||||
Integer completedCount = orderStatusCount(RepairOrderStatusEnum.FINISHED.getStatus(),repairOrderDto.getClientId(),repairOrderDto.getReceiverId());
|
||||
Integer completedCount = orderStatusCount(
|
||||
RepairOrderStatusEnum.FINISHED.getStatus(),
|
||||
repairOrderDto.getClientId(),
|
||||
repairOrderDto.getReceiverId(),
|
||||
repairOrderDto.getCreatorId());
|
||||
|
||||
OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo();
|
||||
orderStatusCountVo.setPendingOrderCount(pendingOrderCount);
|
||||
|
@ -252,13 +284,14 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
* @param receiverId
|
||||
* @return
|
||||
*/
|
||||
public Integer orderStatusCount(Integer orderStatus,Long clientId,Long receiverId){
|
||||
public Integer orderStatusCount(Integer orderStatus,Long clientId,Long receiverId,Long creatorId){
|
||||
Integer count = repairOrderMapper.selectCount(
|
||||
new LambdaQueryWrapper<RepairOrder>()
|
||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.eq(RepairOrder:: getOrderStatus, orderStatus)
|
||||
.eq(clientId != null, RepairOrder::getClientId, clientId)
|
||||
.eq(receiverId != null, RepairOrder::getReceiverId, receiverId));
|
||||
.eq(receiverId != null, RepairOrder::getReceiverId, receiverId)
|
||||
.eq(creatorId != null, RepairOrder::getCreatorId, creatorId));
|
||||
return count;
|
||||
}
|
||||
|
||||
|
@ -549,6 +582,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
vo.setClientName(clientName.getClientName());
|
||||
vo.setDirector(clientName.getDirector());
|
||||
vo.setPhone(clientName.getPhone());
|
||||
vo.setMaintainType(clientName.getMaintainType());
|
||||
}
|
||||
|
||||
//创建人名称
|
||||
|
@ -615,6 +649,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
Warehouse warehouse = warehouseMapper.selectOne(new LambdaQueryWrapper<Warehouse>()
|
||||
.eq(Warehouse::getId, item.getWarehouseId()));
|
||||
orderSparePartListVo.setWarehouseName(warehouse.getWarehouseName());
|
||||
|
||||
//配件库存数量
|
||||
SparePart sparePart = sparePartMapper.selectOne(new LambdaQueryWrapper<SparePart>()
|
||||
.eq(SparePart::getId, item.getSparePartsId()));
|
||||
orderSparePartListVo.setQuantity(sparePart.getQuantity());
|
||||
orderSparePartListVos.add(orderSparePartListVo);
|
||||
}
|
||||
vo.setSparePartList(orderSparePartListVos);
|
||||
|
@ -650,11 +689,21 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
if(user1 != null){
|
||||
repairOrderStepDataVo.setCreatorName(user1.getUsername());
|
||||
}
|
||||
//当前维修员是否是学徒 返回角色
|
||||
SystemAuthAdmin isApprentice = systemAuthAdminMapper.selectOne(
|
||||
new QueryWrapper<SystemAuthAdmin>()
|
||||
.eq("user_id", repairOrderStepDataVo.getCreatorId()));
|
||||
if(isApprentice != null){
|
||||
repairOrderStepDataVo.setIsApprentice(isApprentice.getIsApprentice());
|
||||
repairOrderStepDataVo.setRole(isApprentice.getRole());
|
||||
}
|
||||
stepDataVoList.add(repairOrderStepDataVo);
|
||||
}
|
||||
vo.setRepairOrderStepDataList(stepDataVoList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
@ -677,6 +726,13 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
model.setModuleCode(repairOrderParam.getModuleCode()); // 模块代码
|
||||
model.setPriority(repairOrderParam.getPriority()); // 优先级
|
||||
|
||||
Integer count = repairOrderMapper.selectCount(new LambdaQueryWrapper<RepairOrder>()
|
||||
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||
.eq(RepairOrder::getModuleCode, repairOrderParam.getModuleCode()));
|
||||
if(count > 0){
|
||||
throw new OperateException("模块代码不可重复!");
|
||||
}
|
||||
|
||||
// 获取当前的用户
|
||||
model.setCreatorId(FrontThreadLocal.getUserId().longValue()); // 创建人id
|
||||
Date currentTime = new Date();
|
||||
|
@ -770,6 +826,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
if(repairOrder.getRepairNextStep() == null){
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.DISMANTLE.getStatus()); // 下个步骤
|
||||
}
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
|
||||
//新增维修单操作记录
|
||||
|
@ -805,6 +862,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
repairOrder.setCancelCause(repairOrderParam.getCancelCause()); // 申请改派原因
|
||||
repairOrder.setIsReassignment(RepairOrderStatusEnum.YES.getStatus());// 是否在改派中(0=是,1=否)
|
||||
repairOrder.setReassignmentAgreeOrNot(null); // 再次申请改派时,reassignmentAgreeOrNot字段设为null
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
|
||||
//新增维修单操作记录
|
||||
|
@ -845,6 +903,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
}
|
||||
//审核改派时,不管同不同意,都把isReassignment字段设置回null
|
||||
repairOrder.setIsReassignment(null);
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
repairOrderMapper.updateById(repairOrder);
|
||||
|
||||
//新增维修单操作记录
|
||||
|
@ -872,6 +931,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
if(repairOrderParam.getRepairStep() == RepairOrderStopEnum.DISMANTLE.getStatus()){
|
||||
repairOrder.setRepairStep(repairOrderParam.getRepairStep());// 当前步骤
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.RINSE.getStatus()); // 下个步骤
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
|
||||
//批量添加配件编码
|
||||
List<OrderPartCode> orderPartCodeList = repairOrderParam.getOrderPartCodeList();
|
||||
|
@ -912,6 +972,22 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
throw new OperateException("当前步骤不可为空!");
|
||||
}
|
||||
repairOrder.setRepairStep(repairOrderParam.getRepairStep());// 当前步骤
|
||||
repairOrder.setUpdateTime(new Date()); // 更新时间
|
||||
|
||||
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
|
||||
new QueryWrapper<SystemAuthAdmin>()
|
||||
.eq("user_id", FrontThreadLocal.getUserId().longValue()));
|
||||
//判断当前维修员是否是学徒,学徒不可操作以下步骤:配件领用、确认签名、上传维修前中后照片
|
||||
if(authAdmin.getIsApprentice() == StatusEnum.YES.getCode()){
|
||||
if(repairOrderParam.getRepairStep() == RepairOrderStopEnum.TROUBLESHOOTING.getStatus()
|
||||
|| repairOrderParam.getRepairStep() == RepairOrderStopEnum.CONFIRMATION_SIGNATURE.getStatus()
|
||||
|| repairOrderParam.getRepairStep() == RepairOrderStopEnum.RECOLLAR_FITTING.getStatus()
|
||||
|| repairOrderParam.getRepairStep() == RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus()
|
||||
|| repairOrderParam.getRepairStep() == RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus()
|
||||
|| repairOrderParam.getRepairStep() == RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus()){
|
||||
throw new OperateException("学徒不可操作当前步骤!");
|
||||
}
|
||||
}
|
||||
|
||||
//查看当前步骤是否有记录
|
||||
RepairOrderStepData repairOrderStepData1 = repairOrderStepDataMapper.selectOne(
|
||||
|
@ -925,7 +1001,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
repairOrder.setOrderStatus(RepairOrderStatusEnum.UNDER_INVESTIGATION.getStatus()); //清洗完工单状态变为排查中
|
||||
}else if(repairOrderParam.getRepairStep() == RepairOrderStopEnum.TROUBLESHOOTING.getStatus()){
|
||||
//故障排查
|
||||
repairOrder.setRepairStep(repairOrderParam.getRepairStep());// 当前步骤
|
||||
repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot());// 是否报废(0=是,1=否)
|
||||
//判断是否报废
|
||||
if(repairOrderParam.getScrapOrNot() == RepairOrderStatusEnum.YES.getStatus()){
|
||||
|
@ -975,7 +1050,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
|
||||
//故障排查完,如果有申请配件,变成待确认
|
||||
repairOrder.setOrderStatus(RepairOrderStatusEnum.TO_BE_CONFIRMED.getStatus());
|
||||
for (SparePartParam item : repairOrderParam.getSparePartParams()) {
|
||||
for (OrderSparePartVo item : repairOrderParam.getSparePartParams()) {
|
||||
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
|
||||
Assert.notNull(sparePart, "配件数据不存在");
|
||||
|
||||
|
@ -986,7 +1061,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
orderSparePart.setRepairOrderId(repairOrder.getId()); //维修单id
|
||||
orderSparePart.setSparePartsId(item.getId()); // 备件id
|
||||
orderSparePart.setWarehouseId(sparePart.getWarehouseId()); // 所属仓库id
|
||||
orderSparePart.setQuantity(item.getQuantity()); // 数量
|
||||
orderSparePart.setCount(item.getCount()); // 出入库数量
|
||||
orderSparePartMapper.insert(orderSparePart);
|
||||
}
|
||||
|
||||
|
@ -1074,7 +1149,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
|
||||
//故障排查完,如果有申请配件,变成待确认
|
||||
repairOrder.setOrderStatus(RepairOrderStatusEnum.TO_BE_CONFIRMED.getStatus());
|
||||
for (SparePartParam item : repairOrderParam.getSparePartParams()) {
|
||||
for (OrderSparePartVo item : repairOrderParam.getSparePartParams()) {
|
||||
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
|
||||
Assert.notNull(sparePart, "配件数据不存在");
|
||||
|
||||
|
@ -1085,7 +1160,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
orderSparePart.setRepairOrderId(repairOrder.getId()); //维修单id
|
||||
orderSparePart.setSparePartsId(item.getId()); // 备件id
|
||||
orderSparePart.setWarehouseId(sparePart.getWarehouseId()); // 所属仓库id
|
||||
orderSparePart.setQuantity(item.getQuantity()); // 数量
|
||||
orderSparePart.setCount(item.getCount()); // 出入库数量
|
||||
orderSparePartMapper.insert(orderSparePart);
|
||||
}
|
||||
|
||||
|
@ -1200,6 +1275,14 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
}else if (repairOrderParam.getRepairStep() == RepairOrderStopEnum.FUNCTIONAL_TEST.getStatus()) {
|
||||
// 功能测试
|
||||
// 更新不更新步骤
|
||||
repairOrder.setFunctionalTestPassed(repairOrderParam.getFunctionalTestPassed()); // 功能测试是否通过(0=是,1=否)
|
||||
if(repairOrderParam.getFunctionalTestPassed() == RepairOrderStatusEnum.YES.getStatus()){
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.AGING_TEST.getStatus()); // 下个步骤
|
||||
}else{
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.FUNCTIONAL_TEST.getStatus()); // 下个步骤
|
||||
}
|
||||
repairOrderMapper.updateById(repairOrder); // 更新维修单
|
||||
|
||||
if(repairOrderStepData1 != null){
|
||||
//维修单步骤数据
|
||||
repairOrderStepDataMapper.updateById(new RepairOrderStepData(
|
||||
|
@ -1213,14 +1296,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
FrontThreadLocal.getUserId().longValue(),
|
||||
new Date()));
|
||||
}else{
|
||||
repairOrder.setRepairStep(repairOrderParam.getRepairStep());// 当前步骤
|
||||
repairOrder.setFunctionalTestPassed(repairOrderParam.getFunctionalTestPassed()); // 功能测试是否通过(0=是,1=否)
|
||||
if(repairOrderParam.getFunctionalTestPassed() == RepairOrderStatusEnum.YES.getStatus()){
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.AGING_TEST.getStatus()); // 下个步骤
|
||||
}else{
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.FUNCTIONAL_TEST.getStatus()); // 下个步骤
|
||||
}
|
||||
repairOrderMapper.updateById(repairOrder); // 更新维修单
|
||||
//维修单步骤数据
|
||||
repairOrderStepDataMapper.insert(new RepairOrderStepData(repairOrderParam.getId(),
|
||||
repairOrder.getRepairStep(),
|
||||
|
@ -1230,10 +1305,19 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
repairOrderParam.getFunctionalTestPassed(),
|
||||
FrontThreadLocal.getUserId().longValue()));
|
||||
}
|
||||
|
||||
return;
|
||||
}else if (repairOrderParam.getRepairStep() == RepairOrderStopEnum.AGING_TEST.getStatus()) {
|
||||
// 老化测试
|
||||
// 更新不更新步骤
|
||||
repairOrder.setAgingTestPassed(repairOrderParam.getAgingTestPassed()); // 老化测试是否通过(0=是,1=否)
|
||||
if(repairOrderParam.getAgingTestPassed() == RepairOrderStatusEnum.YES.getStatus()){
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.PACKAGE_AND_SHIP.getStatus()); // 下个步骤
|
||||
}else{
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.AGING_TEST.getStatus()); // 下个步骤
|
||||
}
|
||||
repairOrderMapper.updateById(repairOrder); // 更新维修单
|
||||
|
||||
if(repairOrderStepData1 != null){
|
||||
//维修单步骤数据
|
||||
repairOrderStepDataMapper.updateById(new RepairOrderStepData(
|
||||
|
@ -1247,14 +1331,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
FrontThreadLocal.getUserId().longValue(),
|
||||
new Date()));
|
||||
}else{
|
||||
repairOrder.setRepairStep(repairOrderParam.getRepairStep());// 当前步骤
|
||||
repairOrder.setAgingTestPassed(repairOrderParam.getAgingTestPassed()); // 老化测试是否通过(0=是,1=否)
|
||||
if(repairOrderParam.getAgingTestPassed() == RepairOrderStatusEnum.YES.getStatus()){
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.PACKAGE_AND_SHIP.getStatus()); // 下个步骤
|
||||
}else{
|
||||
repairOrder.setRepairNextStep(RepairOrderStopEnum.AGING_TEST.getStatus()); // 下个步骤
|
||||
}
|
||||
repairOrderMapper.updateById(repairOrder); // 更新维修单
|
||||
//维修单步骤数据
|
||||
repairOrderStepDataMapper.insert(new RepairOrderStepData(repairOrderParam.getId(),
|
||||
repairOrder.getRepairStep(),
|
||||
|
@ -1449,7 +1525,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
|
||||
//确认报废不用填配件数据
|
||||
if(repairOrderParam.getScrapOrNot() == RepairOrderStatusEnum.NO.getStatus()){
|
||||
for (SparePartParam item : repairOrderParam.getSparePartParams()) {
|
||||
for (OrderSparePartVo item : repairOrderParam.getSparePartParams()) {
|
||||
SparePart sparePart = sparePartMapper.findSparePartById(item.getId());
|
||||
Assert.notNull(sparePart, "配件数据不存在");
|
||||
|
||||
|
@ -1460,7 +1536,8 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
|
|||
orderSparePart.setRepairOrderId(repairOrder.getId()); //维修单id
|
||||
orderSparePart.setSparePartsId(item.getId()); // 备件id
|
||||
orderSparePart.setWarehouseId(sparePart.getWarehouseId()); // 所属仓库id
|
||||
orderSparePart.setQuantity(item.getQuantity()); // 数量
|
||||
orderSparePart.setQuantity(item.getQuantity()); // 库存数量
|
||||
orderSparePart.setCount(item.getCount()); // 出入库数量
|
||||
|
||||
//设置订单实际价格 = 单价 * 配件维修价格因子
|
||||
BigDecimal practicalPrice = sparePart.getUnitPrice().multiply(client.getPartMaintainDivisor());
|
||||
|
|
|
@ -292,6 +292,11 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde
|
|||
maintenanceOrder.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单
|
||||
maintenanceOrderMapper.insert(maintenanceOrder);
|
||||
|
||||
//新增检修单操作记录
|
||||
orderOperateRecordService.addMaintenanceOrder(maintenanceOrder.getId()
|
||||
, OrderOperateRecordEnum.NEW_CREATE.getDesc()
|
||||
,"检修员【"+FrontThreadLocal.get("username")+"】创建了检修工单");
|
||||
|
||||
//新增巡检单操作记录
|
||||
orderOperateRecordService.addRoutingInspectionOrder(model.getId()
|
||||
, OrderOperateRecordEnum.FAULT_DETECT.getDesc()
|
||||
|
|
|
@ -12,8 +12,11 @@ import com.hcy.common.entity.client.ClientContacts;
|
|||
import com.hcy.common.entity.sparePart.SparePart;
|
||||
import com.hcy.common.entity.user.User;
|
||||
import com.hcy.common.entity.warehouse.Warehouse;
|
||||
import com.hcy.common.enums.ClientStatusEnum;
|
||||
import com.hcy.common.enums.OrderStatusEnum;
|
||||
import com.hcy.common.enums.SparePartStockAuditEnum;
|
||||
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
|
||||
import com.hcy.common.enums.order.OrderStateEnum;
|
||||
import com.hcy.common.exception.OperateException;
|
||||
import com.hcy.common.mapper.client.ClientContactsMapper;
|
||||
import com.hcy.common.mapper.client.ClientMapper;
|
||||
|
@ -79,18 +82,27 @@ public class SparePartServiceImpl implements ISparePartService {
|
|||
|
||||
//判断仓库类型
|
||||
User user = userMapper.selectById(FrontThreadLocal.getUserId().longValue());
|
||||
|
||||
if(param.getWarehouseType() == MaintenanceOrderStatusEnum.MY_WAREHOUSE.getStatus()){
|
||||
sparePartDto.setWarehouseIds(user.getWarehouseId().toString());
|
||||
}else{
|
||||
}else if(param.getWarehouseType() == MaintenanceOrderStatusEnum.PUBLIC_WAREHOUSE.getStatus() &&
|
||||
param.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
|
||||
List<Warehouse> warehouseList = warehouseMapper.findPublicWarehouseList(user.getWarehouseId());
|
||||
String warehouseIds = warehouseList.stream().map(Warehouse::getId).map(String::valueOf).collect(Collectors.joining(","));
|
||||
sparePartDto.setWarehouseIds(warehouseIds);
|
||||
}else if(param.getWarehouseType() == MaintenanceOrderStatusEnum.PUBLIC_WAREHOUSE.getStatus() &&
|
||||
param.getOrderType() == SparePartStockAuditEnum.REPAIR_ORDER.getStatus()){
|
||||
//维修员只查公共仓库
|
||||
List<Warehouse> warehouseList = warehouseMapper.findPublicWarehouseList();
|
||||
String warehouseIds = warehouseList.stream().map(Warehouse::getId).map(String::valueOf).collect(Collectors.joining(","));
|
||||
sparePartDto.setWarehouseIds(warehouseIds);
|
||||
}
|
||||
|
||||
Client client = clientMapper.findClientById(param.getClientId());
|
||||
Map<Long,String> warehouseMap = new HashMap<>();
|
||||
|
||||
List<SparePartListVo> sparePartList = new ArrayList<>();
|
||||
|
||||
IPage<SparePartDto> iPage = sparePartMapper.pageList(new Page<>(page, limit),sparePartDto);
|
||||
for (SparePartDto item : iPage.getRecords()) {
|
||||
SparePartListVo sparePartListVo = new SparePartListVo();
|
||||
|
@ -105,10 +117,18 @@ public class SparePartServiceImpl implements ISparePartService {
|
|||
}
|
||||
sparePartListVo.setUnitPrice(practicalPrice);
|
||||
|
||||
//如果该工单是全包工单,实际价格为0,半包正常显示 clientType; // 桩点维修类型 0-全包 1-半包
|
||||
if(client.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus() &&
|
||||
param.getOrderType() == SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()){
|
||||
sparePartListVo.setUnitPrice(BigDecimal.valueOf(0));
|
||||
}
|
||||
|
||||
if(warehouseMap.get(item.getWarehouseId()) == null){
|
||||
Warehouse warehouse = warehouseMapper.findWarehouseById(item.getWarehouseId());
|
||||
if(warehouse != null){
|
||||
sparePartListVo.setWarehouseName(warehouse.getWarehouseName());
|
||||
warehouseMap.put(warehouse.getId(),warehouse.getWarehouseName());
|
||||
}
|
||||
}else{
|
||||
sparePartListVo.setWarehouseName(warehouseMap.get(item.getWarehouseId()));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.hcy.front.validate.order;
|
||||
|
||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||
import com.hcy.front.vo.order.OrderSparePartVo;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
@ -105,7 +106,7 @@ public class MaintenanceOrderParam implements Serializable {
|
|||
private String orderStatusIds; //订单状态ids
|
||||
|
||||
//服务报价列表
|
||||
private List<SparePartParam> sparePartParams;
|
||||
private List<OrderSparePartVo> sparePartParams;
|
||||
private Integer isClient; //是否客户 0-客户端 1-检修员端
|
||||
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package com.hcy.front.validate.order;
|
||||
|
||||
import com.hcy.common.dto.order.OrderSparePart;
|
||||
import com.hcy.common.entity.order.OrderPartCode;
|
||||
import com.hcy.front.validate.warehouse.SparePartParam;
|
||||
import com.hcy.front.vo.order.OrderSparePartVo;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
@ -96,7 +98,7 @@ public class RepairOrderParam implements Serializable {
|
|||
private String cancelCause; // 改派原因
|
||||
|
||||
//配件领用列表
|
||||
private List<SparePartParam> sparePartParams;
|
||||
private List<OrderSparePartVo> sparePartParams; //配件领用列表
|
||||
|
||||
private Integer isClient; //是否客户 0-客户端 1-维修员端 2-维修主管端
|
||||
private Integer isMaintain; //是否维修 0-维修 1-不维修
|
||||
|
|
|
@ -49,7 +49,7 @@ public class SparePartParam implements Serializable {
|
|||
@Length(max = 11, message = "unit参数不能超出11个字符", groups = {create.class, update.class})
|
||||
private String unit;
|
||||
|
||||
private Integer quantity;
|
||||
private Integer quantity; // 库存数量
|
||||
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
|
@ -59,4 +59,5 @@ public class SparePartParam implements Serializable {
|
|||
private Long clientId; //客户id
|
||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||
private Integer orderType; //订单类型 0-检修单 1-维修单
|
||||
private Integer count; // 出入库数量
|
||||
}
|
||||
|
|
|
@ -21,7 +21,8 @@ public class OrderSparePartDetailVo implements Serializable {
|
|||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private BigDecimal price; // 价格
|
||||
private Long quantity; // 数量
|
||||
private Long quantity; // 库存数量
|
||||
private Integer count; // 出入库数量
|
||||
private BigDecimal totalPrice; // 总价
|
||||
|
||||
}
|
||||
|
|
|
@ -24,7 +24,8 @@ public class OrderSparePartListVo implements Serializable {
|
|||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private BigDecimal unitPrice; // 价格
|
||||
private Integer quantity; // 数量
|
||||
private Integer quantity; // 库存数量
|
||||
private Integer count; // 出入库数量
|
||||
private BigDecimal totalPrice; // 总价
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
package com.hcy.front.vo.order;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 备件信息参数
|
||||
*/
|
||||
@Data
|
||||
public class OrderSparePartVo implements Serializable {
|
||||
|
||||
|
||||
private Long id;
|
||||
private String sparePartsCode; // 备件编码
|
||||
private String sparePartsName; // 备件名称
|
||||
private Long warehouseId; // 所属仓库id
|
||||
private String specificationsModel; // 规格型号
|
||||
private String unit;// 单位
|
||||
private Integer quantity; // 库存数量
|
||||
private Integer count; // 出入库数量
|
||||
private BigDecimal unitPrice; // 价格
|
||||
private List<Integer> ids; //批量删除
|
||||
private String keywords; //关键字
|
||||
private Long clientId; //客户id
|
||||
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
|
||||
private Integer orderType; //订单类型 0-检修单 1-维修单
|
||||
}
|
|
@ -109,4 +109,7 @@ public class RepairOrderDetailVo implements Serializable {
|
|||
private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private List<OrderPartCode> orderPartCodeList; // 配件编码列表
|
||||
private List<RepairOrderStepDataVo> repairOrderStepDataList; // 维修单步骤数据列表
|
||||
private Integer timeoutOrNot; // 是否超时(0=是,1=否)
|
||||
private Integer maintainType; // 模块维修类型 0-全包 1-半包
|
||||
|
||||
}
|
||||
|
|
|
@ -88,5 +88,6 @@ public class RepairOrderListVo implements Serializable {
|
|||
private Integer repairStep; // 当前步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单)
|
||||
private List<OrderPartCode> orderPartCodeList; // 配件编码列表
|
||||
private Integer timeoutOrNot; // 是否超时(0=是,1=否)
|
||||
|
||||
}
|
||||
|
|
|
@ -18,4 +18,7 @@ public class RepairOrderStepDataVo implements Serializable {
|
|||
private Long creatorId; // 创建人id
|
||||
private Date createTime; // 创建时间
|
||||
private String creatorName; // 创建人名称
|
||||
private Integer isApprentice; //是否学徒:0=否 1=是
|
||||
private String role; // 角色主键
|
||||
|
||||
}
|
||||
|
|
|
@ -34,5 +34,5 @@ public class UserCenterVo implements Serializable {
|
|||
private Long warehouseId; // 仓库id
|
||||
private String clientName; // 客户名称
|
||||
private String plantName; // 管辖工厂名称
|
||||
|
||||
private Integer isApprentice; //是否学徒:0=否 1=是
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue