【admin&front】新增&优化# 1、优化小程序维修单列表 2、新增扫一扫维修单接单功能 3、新增维修单详情 4、新增维修单拆机功能、开始清洗、订单改派、订单改派审核

dev1.0
renfan 2024-09-09 23:26:41 +08:00
parent 8c36f1c5a1
commit bd92831ec0
33 changed files with 839 additions and 322 deletions

View File

@ -84,20 +84,6 @@ public class RepairOrderController {
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param repairOrderParam
* @return Object
*/
@Log(title = "修改派单方式")
@PostMapping("/alterReceiverType")
public Object alterReceiverType(@RequestBody RepairOrderParam repairOrderParam) {
iRepairOrderService.alterReceiverType(repairOrderParam);
return AjaxResult.success();
}
/**
*
*

View File

@ -48,12 +48,6 @@ public interface IRepairOrderService {
*/
void del(Integer id);
/**
*
* @param repairOrderParam
*/
void alterReceiverType(RepairOrderParam repairOrderParam);
/**
*
* @param repairOrderParam

View File

@ -363,12 +363,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id
model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号
model.setBrand(repairOrderParam.getBrand()); // 品牌
model.setPriorityId(repairOrderParam.getPriorityId()); // 优先级 0-普通 1-加急
model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 0-物流快递 1=自领带回
model.setExpressName(repairOrderParam.getExpressName()); // 快递名称
model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄0=是 1=否)
model.setRepairWorkOrderFlow(repairOrderParam.getRepairWorkOrderFlow()); // 工单去向 0=工单池 1=检修员
model.setReceiverType(repairOrderParam.getReceiverType()); // 接单类型 0-区域派单1-距离派单
model.setReceiverId(repairOrderParam.getReceiverId()); // 接单人id
model.setOrderDistance(repairOrderParam.getOrderDistance()); // 自动抢单最大距离
model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述
@ -443,51 +440,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
}
}
/**
*
*
* @param repairOrderParam
*/
@Override
public void alterReceiverType(RepairOrderParam repairOrderParam) {
RepairOrder model = repairOrderMapper.selectOne(
new QueryWrapper<RepairOrder>()
.eq("id", repairOrderParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setReceiverType(repairOrderParam.getReceiverType()); // 派单方式 0-区域派单1-距离派单
model.setOrderDistance(repairOrderParam.getOrderDistance()); //派单距离
if(repairOrderParam.getReceiverType() == 0){ //派单方式是区域派单的话派单距离清空
model.setOrderDistance(null); //派单距离
}
repairOrderMapper.updateById(model);
//原本派单方式
String oldReceiverType;
if(model.getReceiverType() == 0){
oldReceiverType = OrderStateEnum.REGIONAL_DISPATCH.getDesc();
}else{
oldReceiverType = OrderStateEnum.DISTANCE_ORDER.getDesc();
}
//现在派单方式
String newReceiverType;
if(repairOrderParam.getReceiverType() == 0){
newReceiverType = OrderStateEnum.REGIONAL_DISPATCH.getDesc();
}else{
newReceiverType = OrderStateEnum.DISTANCE_ORDER.getDesc();
}
//新增订单操作记录
orderOperateRecordService.addRepairOrder(model.getId()
,OrderOperateRecordEnum.ALTER_RECEIVER_TYPE.getDesc()
,"【"+AdminThreadLocal.get("username")+"】已修改派单方式。原本派单方式为:" +
oldReceiverType + ",已修改派单方式为:" + newReceiverType + "。");
}
/**
*
*
@ -504,9 +456,9 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
Assert.notNull(model, "数据不存在!");
model.setOrderDistance(repairOrderParam.getOrderDistance()); //派单距离
if(model.getReceiverType() == 0){ //派单方式是区域派单的话派单距离清空
/*if(model.getReceiverType() == 0){ //派单方式是区域派单的话派单距离清空
model.setOrderDistance(null); //派单距离
}
}*/
repairOrderMapper.updateById(model);

View File

@ -363,6 +363,7 @@ public class SystemAuthAdminServiceImpl implements ISystemAuthAdminService {
model.setAge(systemAuthAdminParam.getAge());
model.setEmail(systemAuthAdminParam.getEmail());
model.setTechnicalGrade(systemAuthAdminParam.getTechnicalGrade());
model.setIsApprentice(systemAuthAdminParam.getIsApprentice());
systemAuthAdminMapper.insert(model);
//获取管理员id
Long adminId = model.getId().longValue();

View File

@ -70,11 +70,6 @@ public class RepairOrderParam implements Serializable {
@DecimalMin(value = "0", message = "maintenanceOrderId参数值不能少于0", groups = {create.class, update.class})
private Long maintenanceOrderId;
@DecimalMin(value = "0", message = "priorityId参数值不能少于0", groups = {create.class, update.class})
private Integer priorityId;
@DecimalMin(value = "0", message = "returnOrNot参数值不能少于0", groups = {create.class, update.class})
private Integer returnOrNot;
@ -88,44 +83,26 @@ public class RepairOrderParam implements Serializable {
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
private String creatorName; // 创建人名称
private String receiverName; //接单人名称
private Integer receiverType; // 接单类型 0-区域派单1-距离派单
private BigDecimal orderDistance; // 订单距离
private Long receiverId; // 接单人id
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
private BigDecimal totalAmount; // 总金额
private BigDecimal actualAmount; // 实际金额
private String returnCause; //退回原因
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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=填写回单)
}

View File

@ -77,5 +77,6 @@ public class SystemAuthAdminParam implements Serializable {
private String email; // 邮箱
private String technicalGrade; // 技术等级
private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单)
private Integer isApprentice; // 是否学徒 0=否1=是
}

View File

@ -111,34 +111,17 @@ public class RepairOrderDetailVo implements Serializable {
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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=填写回单)
}

View File

@ -74,34 +74,17 @@ public class RepairOrderListVo implements Serializable {
private SparePartStockAuditDetailVo sparePartStockAudit; //备件领用信息
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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=填写回单)
}

View File

@ -42,4 +42,6 @@ public class SystemAuthAdminVo implements Serializable {
private String email; // 邮箱
private String technicalGrade; // 技术等级
private Integer receiveOrderStatus; //接单状态0=休假/停止接单中 1=作业中 2=可接单)
private Integer isApprentice; // 是否学徒 0=否1=是
}

View File

@ -38,4 +38,6 @@ public class SystemAuthAdminDto implements Serializable {
private Integer age; // 年龄
private String email; // 邮箱
private String technicalGrade; // 技术等级
private Integer isApprentice; // 是否学徒 0=否1=是
}

View File

@ -39,8 +39,6 @@ public class RepairOrderDto implements Serializable {
private Integer returnOrNot; // 是否回寄0=是 1=否)
private Long addressId; // 回寄地址
private String siteImg; // 现场照片
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
private Integer receiverType; // 接单类型 0-区域派单1-距离派单
private BigDecimal orderDistance; // 订单距离
private String likeWork; //关键字
@ -64,9 +62,6 @@ public class RepairOrderDto implements Serializable {
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
private String completeImg; // 完工照片
private Integer scrapOrNot; // 是否报废0=是1=否)
private String inMaintenanceImg; // 维修中照片
private String afterRepairImg; // 维修后照片
private String preMaintenanceImg; // 维修前照片
private String faultPointImg; // 故障点照片
private Date orderAccomplishTime; // 订单完成时间
private Date quotationTime; // 报价时间
@ -80,35 +75,17 @@ public class RepairOrderDto implements Serializable {
private Long scrapConfirmation; // 报废确认0=是1=否)
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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=填写回单)
}

View File

@ -0,0 +1,22 @@
package com.hcy.common.entity.order;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
*
*/
@Data
public class OrderPartCode implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
private Long id; // 配件编码id
private Long repairOrderId; // 维修单id
private String partCode; // 配件编码
}

View File

@ -40,8 +40,8 @@ public class RepairOrder implements Serializable {
@TableField(value = "receiver_time",updateStrategy = FieldStrategy.IGNORED)
private Date receiverTime; // 接单时间
private Date quotationTime; // 报价时间
private Date cancelOrderTime; // 取消订单时间
private String cancelCause; // 取消原因
private Date cancelOrderTime; // 申请改派订单时间
private String cancelCause; // 申请改派原因
private String refuseMaintenanceCause; // 拒绝维修原因
private String returnCause; //退回原因
private String remark; // 备注
@ -60,10 +60,7 @@ public class RepairOrder implements Serializable {
private Integer returnOrNot; // 是否回寄0=是 1=否)
private Long addressId; // 回寄地址
private String siteImg; // 现场照片
private String inMaintenanceImg; // 维修中照片
private String afterRepairImg; // 维修后照片
private String sparePartIds; // 更换配件ids
private String preMaintenanceImg; // 维修前照片
private String faultPointImg; // 故障点照片
private Integer scrapOrNot; // 是否报废0=是1=否)
private Long scrapFaultId; // 报废类型id
@ -77,37 +74,19 @@ public class RepairOrder implements Serializable {
private Long clientScrapAddressId; // 客户报废收货地址
private Long scrapConfirmation; // 报废确认0=是1=否)
private Integer priority; // 优先级0=加急1=普通)
private Integer priority; // 优先级0=普通1=加急)
@TableField(value = "is_reassignment",updateStrategy = FieldStrategy.IGNORED)
private Integer isReassignment; // 是否在改派中0=是1=否)
@TableField(value = "reassignment_agree_or_not",updateStrategy = FieldStrategy.IGNORED)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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=填写回单)
}

View File

@ -0,0 +1,52 @@
package com.hcy.common.entity.order;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
*
*/
@Data
public class RepairOrderStepData implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value="id", type= IdType.AUTO)
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; // 创建时间
public RepairOrderStepData() {
}
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Long creatorId) {
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.creatorId = creatorId;
}
public RepairOrderStepData(Long repairOrderId, Integer repairStep, String remark, String img, String title, Integer dscType, Integer auditStatus, Long creatorId) {
this.repairOrderId = repairOrderId;
this.repairStep = repairStep;
this.remark = remark;
this.img = img;
this.title = title;
this.dscType = dscType;
this.auditStatus = auditStatus;
this.creatorId = creatorId;
}
}

View File

@ -47,4 +47,5 @@ public class SystemAuthAdmin implements Serializable {
private String technicalGrade; // 技术等级
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Long userId; //用户id
private Integer isApprentice; // 是否学徒 0=否1=是
}

View File

@ -5,6 +5,8 @@ import com.google.common.collect.Maps;
import java.util.Map;
public enum StatusEnum {
NOT(0,"否"),
YES(1, "是"),
ENABLE(1, "启用"),
NOT_ENABLE(0, "禁用");

View File

@ -5,7 +5,7 @@ import com.google.common.collect.Maps;
import java.util.Map;
/**
*
*
* @author dabin
*/
public enum RepairOrderStatusEnum {

View File

@ -0,0 +1,79 @@
package com.hcy.common.enums.order;
import com.google.common.collect.Maps;
import java.util.Map;
/**
*
* @author dabin
*/
public enum RepairOrderStopEnum {
// 步骤0=拆机1=清洗2=故障排查3=确认签名4=重领配件5=上传维修前图片6=上传维修中图片7=上传维修后图片,
// 8=补强三防漆9=补强点胶10=DC&PFC组装11=补强三防漆和点胶12=模块装配13=功能测试14=老化测试,
// 15=包装出货16=填写回单)
DISMANTLE(0,"拆机"),
RINSE(1,"清洗"),
TROUBLESHOOTING(2,"故障排查"),
CONFIRMATION_SIGNATURE(3,"确认签名"),
RECOLLAR_FITTING(4,"重领配件"),
PRE_MAINTENANCE_IMG(5,"上传维修前图片"),
IN_MAINTENANCE_IMG(6,"上传维修中图片"),
AFTER_REPAIR_IMG(7,"上传维修后图片"),
REINFORCING_THREE_ANTI_PAINT(8,"补强三防漆"),
REINFORCING_DISPENSING(9,"补强点胶"),
DC_AND_PFC_ASSEMBLE(10,"DC&PFC组装"),
REINFORCING_THREE_ANTI_PAINT_AND_DISPENSING(11,"补强三防漆和点胶"),
MODULE_ASSEMBLY(12,"模块装配"),
FUNCTIONAL_TEST(13,"功能测试"),
AGING_TEST(14,"老化测试"),
PACKAGE_AND_SHIP(15,"包装出货"),
FILL_IN_THE_RECEIPT(16,"填写回单");
private final int status;
private final String desc;
RepairOrderStopEnum(int status, String desc) {
this.status = status;
this.desc = desc;
}
/**
*
*
* @return int
* @author dabin
*/
public int getStatus() {
return this.status;
}
/**
*
*
* @return String
* @author dabin
*/
public String getDesc() {
return this.desc;
}
public static Map<Integer, String> getMap() {
Map<Integer, String> map = Maps.newHashMap();
for (RepairOrderStopEnum maintenanceOrderStatusEnum : RepairOrderStopEnum.values()) {
map.put(maintenanceOrderStatusEnum.status, maintenanceOrderStatusEnum.desc);
}
return map;
}
public static String getMsgByCode(Integer status){
for(RepairOrderStopEnum typeEnum: RepairOrderStopEnum.values()) {
if (typeEnum.getStatus() == status) {
return typeEnum.getDesc();
}
}
return null;
}
}

View File

@ -0,0 +1,13 @@
package com.hcy.common.mapper.order;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.order.OrderPartCode;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
*/
@Mapper
public interface OrderPartCodeMapper extends IBaseMapper<OrderPartCode> {
}

View File

@ -43,6 +43,13 @@ public interface RepairOrderMapper extends IBaseMapper<RepairOrder> {
@Select("select * from la_repair_order where is_delete = 0 and id = #{id}")
RepairOrder findRepairOrderById(@Param("id") Long id);
/**
*
* @return MaintenanceOrder
*/
@Select("select * from la_repair_order where is_delete = 0 and module_code = #{moduleCode}")
RepairOrder findRepairOrderByModuleCode(@Param("moduleCode") String moduleCode);
/**
*
* @return

View File

@ -0,0 +1,13 @@
package com.hcy.common.mapper.order;
import com.hcy.common.core.basics.IBaseMapper;
import com.hcy.common.entity.order.RepairOrderStepData;
import org.apache.ibatis.annotations.Mapper;
/**
* Mapper
*/
@Mapper
public interface RepairOrderStepDataMapper extends IBaseMapper<RepairOrderStepData> {
}

View File

@ -61,9 +61,6 @@
<if test="form.clientName != null and form.clientName != ''">
and c.client_name LIKE concat('%', #{form.clientName}, '%')
</if>
<!--<if test="form.priorityId != null">
and ro.priority_id = #{form.priorityId}
</if>-->
<if test="form.receiverId != null">
and ro.receiver_id = #{form.receiverId}
</if>

View File

@ -0,0 +1,81 @@
package com.hcy.front.controller.order;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.validator.annotation.IDMust;
import com.hcy.front.service.order.IOrderPartCodeService;
import com.hcy.front.validate.PageParam;
import com.hcy.front.validate.order.OrderPartCodeParam;
import com.hcy.front.vo.order.OrderPartCodeVo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;
/**
*
*/
@RestController
@RequestMapping("api/code")
public class OrderPartCodeController {
@Resource
IOrderPartCodeService iOrderPartCodeService;
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return Object
*/
@GetMapping("/list")
public Object list(@Validated PageParam pageParam,
@RequestParam Map<String, String> params) {
PageResult<OrderPartCodeVo> list = iOrderPartCodeService.list(pageParam, params);
return AjaxResult.success(list);
}
/**
*
*
* @author hcy
* @param id ID
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
OrderPartCodeVo detail = iOrderPartCodeService.detail(id);
return AjaxResult.success(detail);
}
/**
*
*
* @author hcy
* @param orderPartCodeParam
* @return Object
*/
@PostMapping("/add")
public Object add(@Validated(value = OrderPartCodeParam.create.class) @RequestBody OrderPartCodeParam orderPartCodeParam) {
iOrderPartCodeService.add(orderPartCodeParam);
return AjaxResult.success();
}
/**
*
*
* @author hcy
* @param orderPartCodeParam
* @return Object
*/
@PostMapping("/edit")
public Object edit(@Validated(value = OrderPartCodeParam.update.class) @RequestBody OrderPartCodeParam orderPartCodeParam) {
iOrderPartCodeService.edit(orderPartCodeParam);
return AjaxResult.success();
}
}

View File

@ -57,12 +57,12 @@ public class RepairOrderController {
*
*
* @author hcy
* @param id ID
* @param repairOrderParam
* @return Object
*/
@GetMapping("/detail")
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
RepairOrderDetailVo detail = iRepairOrderService.detail(id);
public Object detail(RepairOrderParam repairOrderParam) {
RepairOrderDetailVo detail = iRepairOrderService.detail(repairOrderParam);
return AjaxResult.success(detail);
}
@ -101,6 +101,61 @@ public class RepairOrderController {
return AjaxResult.success();
}
/**
*
* @param repairOrderParam
* @return Object
*/
@PostMapping("/sweep")
public Object sweep(@RequestBody RepairOrderParam repairOrderParam) {
iRepairOrderService.sweep(repairOrderParam);
return AjaxResult.success();
}
/**
*
* @param repairOrderParam
* @return Object
*/
@PostMapping("/applyForReassignment")
public Object applyForReassignment(@RequestBody RepairOrderParam repairOrderParam) {
iRepairOrderService.applyForReassignment(repairOrderParam);
return AjaxResult.success();
}
/**
*
* @param repairOrderParam
* @return Object
*/
@PostMapping("/auditReassignment")
public Object auditReassignment(@RequestBody RepairOrderParam repairOrderParam) {
iRepairOrderService.auditReassignment(repairOrderParam);
return AjaxResult.success();
}
/**
*
* @param repairOrderParam
* @return Object
*/
@PostMapping("/dismantle")
public Object dismantle(@RequestBody RepairOrderParam repairOrderParam) {
iRepairOrderService.dismantle(repairOrderParam);
return AjaxResult.success();
}
/**
*
* @param repairOrderParam
* @return Object
*/
@PostMapping("/maintenanceProcedure")
public Object startCleaning(@RequestBody RepairOrderParam repairOrderParam) {
iRepairOrderService.maintenanceProcedure(repairOrderParam);
return AjaxResult.success();
}
/**
* 退
* @param repairOrderParam

View File

@ -0,0 +1,51 @@
package com.hcy.front.service.order;
import com.hcy.common.core.PageResult;
import com.hcy.front.validate.PageParam;
import com.hcy.front.validate.order.OrderPartCodeParam;
import com.hcy.front.vo.order.OrderPartCodeVo;
import java.util.Map;
/**
*
*/
public interface IOrderPartCodeService {
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return PageResult<OrderPartCodeVo>
*/
PageResult<OrderPartCodeVo> list(PageParam pageParam, Map<String, String> params);
/**
*
*
* @author hcy
* @param id ID
* @return OrderPartCode
*/
OrderPartCodeVo detail(Integer id);
/**
*
*
* @author hcy
* @param orderPartCodeParam
*/
void add(OrderPartCodeParam orderPartCodeParam);
/**
*
*
* @author hcy
* @param orderPartCodeParam
*/
void edit(OrderPartCodeParam orderPartCodeParam);
}

View File

@ -30,10 +30,10 @@ public interface IRepairOrderService {
*
*
* @author hcy
* @param id ID
* @param repairOrderParam
* @return RepairOrder
*/
RepairOrderDetailVo detail(Integer id);
RepairOrderDetailVo detail(RepairOrderParam repairOrderParam);
/**
*
@ -55,6 +55,12 @@ public interface IRepairOrderService {
*/
void receivingOrder(RepairOrderParam repairOrderParam);
/**
*
* @param repairOrderParam
*/
void sweep(RepairOrderParam repairOrderParam);
/**
* 退
* @param repairOrderParam
@ -121,4 +127,28 @@ public interface IRepairOrderService {
* @param repairOrderParam
*/
void confirmReceipt(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);
}

View File

@ -0,0 +1,119 @@
package com.hcy.front.service.order.impl;
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.common.core.PageResult;
import com.hcy.common.entity.order.OrderPartCode;
import com.hcy.common.mapper.order.OrderPartCodeMapper;
import com.hcy.front.service.order.IOrderPartCodeService;
import com.hcy.front.validate.PageParam;
import com.hcy.front.validate.order.OrderPartCodeParam;
import com.hcy.front.vo.order.MaintenanceOrderListVo;
import com.hcy.front.vo.order.OrderPartCodeVo;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.*;
/**
*
*/
@Service
public class OrderPartCodeServiceImpl implements IOrderPartCodeService {
@Resource
OrderPartCodeMapper orderPartCodeMapper;
/**
*
*
* @author hcy
* @param pageParam
* @param params
* @return PageResult<OrderPartCodeListVo>
*/
@Override
public PageResult<OrderPartCodeVo> list(PageParam pageParam, Map<String, String> params) {
Integer page = pageParam.getPageNo();
Integer limit = pageParam.getPageSize();
QueryWrapper<OrderPartCode> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("id");
orderPartCodeMapper.setSearch(queryWrapper, params, new String[]{
"=:repairOrderId@repair_order_id:long",
"=:partCode@part_code:str",
});
IPage<OrderPartCode> iPage = orderPartCodeMapper.selectPage(new Page<>(page, limit), queryWrapper);
List<OrderPartCodeVo> list = new ArrayList<>();
for (OrderPartCode record : iPage.getRecords()) {
OrderPartCodeVo vo = new OrderPartCodeVo();
BeanUtils.copyProperties(record, vo);
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
/**
*
*
* @author hcy
* @param id
* @return OrderPartCode
*/
@Override
public OrderPartCodeVo detail(Integer id) {
OrderPartCode model = orderPartCodeMapper.selectOne(
new QueryWrapper<OrderPartCode>()
.eq("id", id)
.last("limit 1"));
Assert.notNull(model, "数据不存在");
OrderPartCodeVo vo = new OrderPartCodeVo();
BeanUtils.copyProperties(model, vo);
return vo;
}
/**
*
*
* @author hcy
* @param orderPartCodeParam
*/
@Override
public void add(OrderPartCodeParam orderPartCodeParam) {
OrderPartCode model = new OrderPartCode();
model.setRepairOrderId(orderPartCodeParam.getRepairOrderId());
model.setPartCode(orderPartCodeParam.getPartCode());
orderPartCodeMapper.insert(model);
}
/**
*
*
* @author hcy
* @param orderPartCodeParam
*/
@Override
public void edit(OrderPartCodeParam orderPartCodeParam) {
OrderPartCode model = orderPartCodeMapper.selectOne(
new QueryWrapper<OrderPartCode>()
.eq("id", orderPartCodeParam.getId())
.last("limit 1"));
Assert.notNull(model, "数据不存在!");
model.setId(orderPartCodeParam.getId());
model.setRepairOrderId(orderPartCodeParam.getRepairOrderId());
model.setPartCode(orderPartCodeParam.getPartCode());
orderPartCodeMapper.updateById(model);
}
}

View File

@ -12,7 +12,9 @@ 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.OrderPartCode;
import com.hcy.common.entity.order.RepairOrder;
import com.hcy.common.entity.order.RepairOrderStepData;
import com.hcy.common.entity.plant.Plant;
import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
@ -21,19 +23,19 @@ 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.StatusEnum;
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.RepairOrderStatusEnum;
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.ClientMapper;
import com.hcy.common.mapper.client.EquipmentMapper;
import com.hcy.common.mapper.fault.FaultMapper;
import com.hcy.common.mapper.order.OrderPartCodeMapper;
import com.hcy.common.mapper.order.OrderSparePartMapper;
import com.hcy.common.mapper.order.RepairOrderMapper;
import com.hcy.common.mapper.order.RepairOrderStepDataMapper;
import com.hcy.common.mapper.plant.PlantMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
@ -117,6 +119,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
@Resource
RestTemplateUtil restTemplateUtil;
@Resource
RepairOrderStepDataMapper repairOrderStepDataMapper;
@Resource
OrderPartCodeMapper orderPartCodeMapper;
private final DecimalFormat df = new DecimalFormat ("#.#");
/**
@ -132,7 +140,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.findSystemAuthAdminByUserId(FrontThreadLocal.getUserId());
List<RepairOrderListVo> returnData = new LinkedList<>();
for (RepairOrderDto item : repairOrderDtoList) {
/*for (RepairOrderDto item : repairOrderDtoList) {
if(repairOrderParam.getQueryType() == MaintenanceOrderStatusEnum.NEAREST_TO_ME.getStatus()){
SystemAuthAdmin systemAuthAdminByUserId = systemAuthAdminMapper.findSystemAuthAdminByUserId(Math.toIntExact(item.getCreatorId()));
//获取工厂
@ -186,7 +194,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
}
}
}
}
}*/
return returnData;
}
@ -343,7 +351,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
public void uploadPictures(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
if(repairOrderParam.getInMaintenanceImg() != null){
/*if(repairOrderParam.getInMaintenanceImg() != null){
repairOrder.setInMaintenanceImg(repairOrderParam.getInMaintenanceImg()); // 维修中照片
//新增维修单操作记录
@ -357,7 +365,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
orderOperateRecordService.addRepairOrder(repairOrder.getId()
,OrderOperateRecordEnum.UPLOADING_AFTER_REPAIR.getDesc()
,"【"+FrontThreadLocal.get("username")+"】已上传维修后照片。");
}
}*/
repairOrderMapper.updateById(repairOrder);
}
@ -561,7 +569,11 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
BeanUtils.copyProperties(repairOrderParam,repairOrderDto);
if(repairOrderParam.getIsClient() == RepairOrderStatusEnum.REPAIRER.getStatus()){
repairOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); // 接单人id
if(Objects.equals(repairOrderParam.getOrderStatusIds(), String.valueOf(RepairOrderStatusEnum.PENDING_ORDER.getStatus()))){
repairOrderDto.setReceiverId(null); // 接单人id
}else{
repairOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); // 接单人id
}
}else{
repairOrderDto.setClientId(repairOrderDto.getClientId()); // 根据客户id进行查询
}
@ -613,16 +625,16 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
*
*
* @author hcy
* @param id
* @param repairOrderParam
* @return RepairOrder
*/
@Override
public RepairOrderDetailVo detail(Integer id) {
public RepairOrderDetailVo detail(RepairOrderParam repairOrderParam) {
RepairOrder model = repairOrderMapper.selectOne(
new QueryWrapper<RepairOrder>()
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
new LambdaQueryWrapper<RepairOrder>()
.eq(repairOrderParam.getId() != null, RepairOrder::getId, repairOrderParam.getId())
.eq(repairOrderParam.getModuleCode() != null, RepairOrder::getModuleCode, repairOrderParam.getModuleCode())
.eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE));
Assert.notNull(model, "数据不存在");
@ -685,7 +697,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
}
//报废地址
UserAddress scrapAddress = userAddressMapper.selectOne(
/*UserAddress scrapAddress = userAddressMapper.selectOne(
new QueryWrapper<UserAddress>()
.eq("id", model.getScrapAddressId()));
if(scrapAddress != null){
@ -695,10 +707,10 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
scrapAddressListVo.setCity(regionMap.get(scrapAddressListVo.getCityId()));
scrapAddressListVo.setDistrict(regionMap.get(scrapAddressListVo.getDistrictId()));
vo.setScrapAddress(scrapAddressListVo);
}
}*/
//设备信息
Equipment equipment = equipmentMapper.selectOne(
/*Equipment equipment = equipmentMapper.selectOne(
new QueryWrapper<Equipment>()
.eq("id", model.getEquipmentId()));
if(equipment != null){
@ -708,7 +720,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
equipmentListVo.setDistrict(regionMap.get(equipment.getDistrictId()));
BeanUtils.copyProperties(equipment, equipmentListVo);
vo.setEquipment(equipmentListVo);
}
}*/
//故障类型名称
Fault faultName = faultMapper.selectOne(
@ -734,7 +746,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
vo.setSparePartList(orderSparePartListVos);
//确认报废 收件地址
UserAddress clientScrapAddress = userAddressMapper.selectOne(
/*UserAddress clientScrapAddress = userAddressMapper.selectOne(
new QueryWrapper<UserAddress>()
.eq("id", model.getClientScrapAddressId()));
if(clientScrapAddress != null){
@ -744,7 +756,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
clientScrapAddressVo.setCity(regionMap.get(clientScrapAddressVo.getCityId()));
clientScrapAddressVo.setDistrict(regionMap.get(clientScrapAddressVo.getDistrictId()));
vo.setClientScrapAddress(clientScrapAddressVo);
}
}*/
//设置备件领用信息
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(model.getId()
@ -846,6 +858,166 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
}
}
/**
*
*/
@Override
@Transactional
public void sweep(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderByModuleCode(repairOrderParam.getModuleCode());
Assert.notNull(repairOrder, "数据不存在");
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
new QueryWrapper<SystemAuthAdmin>()
.eq("user_id", FrontThreadLocal.getUserId().longValue()));
//判断当前维修员是否是学徒,学徒不可接单
if(authAdmin.getIsApprentice() == StatusEnum.NOT.getCode()){
repairOrder.setReceiverId(FrontThreadLocal.getUserId().longValue()); // 接单人
repairOrder.setOrderStatus(RepairOrderStatusEnum.AWAITING_REPAIR.getStatus()); // 工单状态
repairOrder.setReceiverTime(new Date()); // 接单时间
if(repairOrder.getRepairNextStep() == null){
repairOrder.setRepairNextStep(RepairOrderStopEnum.DISMANTLE.getStatus()); // 下个步骤
}
repairOrderMapper.updateById(repairOrder);
}else {
throw new OperateException("当前角色不可接单!");
}
}
/**
*
*
* @param repairOrderParam
*/
@Override
public void applyForReassignment(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
new QueryWrapper<SystemAuthAdmin>()
.eq("user_id", FrontThreadLocal.getUserId().longValue()));
//判断当前维修员是否是学徒,学徒不可改派
if(authAdmin.getIsApprentice() == StatusEnum.NOT.getCode()){
repairOrder.setCancelOrderTime(new Date()); // 申请改派订单时间
repairOrder.setCancelCause(repairOrderParam.getCancelCause()); // 申请改派原因
repairOrder.setIsReassignment(RepairOrderStatusEnum.YES.getStatus());// 是否在改派中0=是1=否)
repairOrder.setReassignmentAgreeOrNot(null); // 再次申请改派时reassignmentAgreeOrNot字段设为null
repairOrderMapper.updateById(repairOrder);
}else {
throw new OperateException("当前角色不可改派!");
}
}
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
public void auditReassignment(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
SystemAuthAdmin authAdmin = systemAuthAdminMapper.selectOne(
new QueryWrapper<SystemAuthAdmin>()
.eq("user_id", FrontThreadLocal.getUserId().longValue()));
//判断当前维修员是否是学徒,学徒不可改派
if(authAdmin.getIsApprentice() == StatusEnum.NOT.getCode()){
if(repairOrderParam.getReassignmentAgreeOrNot() == RepairOrderStatusEnum.YES.getStatus()){
//改派通过
repairOrder.setReceiverId(null);// 接单人id
repairOrder.setReceiverTime(null);// 接单时间
repairOrder.setReassignmentAgreeOrNot(repairOrderParam.getReassignmentAgreeOrNot());
}else{
// 改派不通过
repairOrder.setReassignmentAgreeOrNot(repairOrderParam.getReassignmentAgreeOrNot());
}
//审核改派时不管同不同意都把isReassignment字段设置回null
repairOrder.setIsReassignment(null);
repairOrderMapper.updateById(repairOrder);
}else {
throw new OperateException("当前角色不可改派!");
}
}
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
public void dismantle(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
if(repairOrder.getRepairNextStep() == RepairOrderStopEnum.DISMANTLE.getStatus()){
repairOrder.setRepairStep(RepairOrderStopEnum.RINSE.getStatus());// 当前步骤
repairOrder.setRepairNextStep(RepairOrderStopEnum.RINSE.getStatus()); // 下个步骤
//批量添加配件编码
List<OrderPartCode> orderPartCodeList = repairOrderParam.getOrderPartCodeList();
for (OrderPartCode orderPartCode : orderPartCodeList) {
orderPartCode.setRepairOrderId(repairOrder.getId()); // 维修单号
orderPartCodeMapper.insert(orderPartCode);
}
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(repairOrderParam.getId());// 维修单id
repairOrderStepData.setRepairStep(RepairOrderStopEnum.DISMANTLE.getStatus());// 当前步骤
repairOrderStepData.setRemark(repairOrderParam.getRepairOrderStepRemark());// 备注
repairOrderStepData.setImg(repairOrderParam.getRepairOrderStepImg());// 照片
repairOrderStepData.setCreatorId(FrontThreadLocal.getUserId().longValue()); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间
repairOrderStepDataMapper.insert(repairOrderStepData);
repairOrderMapper.updateById(repairOrder); // 更新维修单
}else {
throw new OperateException("当前步骤不正确!");
}
}
/**
*
*
* @param repairOrderParam
*/
@Override
@Transactional
public void maintenanceProcedure(RepairOrderParam repairOrderParam) {
RepairOrder repairOrder = repairOrderMapper.findRepairOrderById(repairOrderParam.getId());
Assert.notNull(repairOrder, "数据不存在");
if(repairOrderParam.getRepairStep() == RepairOrderStopEnum.RINSE.getStatus()){
repairOrder.setRepairNextStep(RepairOrderStopEnum.TROUBLESHOOTING.getStatus()); // 下个步骤
}else if(repairOrderParam.getRepairStep() == RepairOrderStopEnum.TROUBLESHOOTING.getStatus()){
repairOrder.setRepairNextStep(RepairOrderStopEnum.TROUBLESHOOTING.getStatus()); // 下个步骤
repairOrder.setRepairStep(repairOrder.getRepairNextStep());// 当前步骤
return;
}else {
throw new OperateException("当前步骤不正确!");
}
repairOrder.setRepairStep(repairOrder.getRepairNextStep());// 当前步骤
//维修单步骤数据
repairOrderStepDataMapper.insert(new RepairOrderStepData(repairOrderParam.getId(),
RepairOrderStopEnum.RINSE.getStatus(),repairOrderParam.getRepairOrderStepRemark(),
repairOrderParam.getRepairOrderStepImg(),
RepairOrderStopEnum.getMsgByCode(repairOrder.getRepairNextStep()),
FrontThreadLocal.getUserId().longValue()));
repairOrderMapper.updateById(repairOrder); // 更新维修单
}
/**
* 退
*/
@ -976,7 +1148,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
}
repairOrder.setFaultId(repairOrderParam.getFaultId()); //故障原因id
repairOrder.setPreMaintenanceImg(repairOrderParam.getPreMaintenanceImg()); // 维修前图片
repairOrder.setFaultPointImg(repairOrderParam.getFaultPointImg()); //故障点图片
repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废0=是1=否)
repairOrder.setScrapFaultId(repairOrderParam.getScrapFaultId()); // 报废类型id

View File

@ -0,0 +1,36 @@
package com.hcy.front.validate.order;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import lombok.Data;
import javax.validation.constraints.*;
import java.io.Serializable;
/**
*
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class OrderPartCodeParam implements Serializable {
private static final long serialVersionUID = 1L;
public interface create{}
public interface update{}
public interface delete{}
private Long id;
@NotNull(message = "repairOrderId参数缺失", groups = {create.class, update.class})
@DecimalMin(value = "0", message = "repairOrderId参数值不能少于0", groups = {create.class, update.class})
private Long repairOrderId;
@NotNull(message = "partCode参数缺失", groups = {create.class, update.class})
@Length(max = 255, message = "partCode参数不能超出255个字符", groups = {create.class, update.class})
private String partCode;
}

View File

@ -1,5 +1,6 @@
package com.hcy.front.validate.order;
import com.hcy.common.entity.order.OrderPartCode;
import com.hcy.front.validate.warehouse.SparePartParam;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -84,19 +85,15 @@ public class RepairOrderParam implements Serializable {
private Integer logisticsMode; // 物流方式 0-物流快递 1=自领带回
private String creatorName; // 创建人名称
private String receiverName; //接单人名称
private Integer receiverType; // 接单类型 0-区域派单1-距离派单
private BigDecimal orderDistance; // 订单距离
private Long receiverId; // 接单人id
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
private String likeWork; //关键字
private String orderStatusIds; //订单状态ids
private Double longitude; // 经度
private Double latitude; // 纬度
private Integer queryType; // 查询类型 0-离我最近 1-时间优先
private Date cancelOrderTime; // 取消订单时间
private String cancelCause; // 取消原因
private Date cancelOrderTime; // 改派订单时间
private String cancelCause; // 改派原因
//服务报价列表
private List<SparePartParam> sparePartParams;
@ -106,9 +103,6 @@ public class RepairOrderParam implements Serializable {
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门
private String preMaintenanceImg; // 维修前照片
private String inMaintenanceImg; // 维修中照片
private String afterRepairImg; // 维修后照片
private String faultPointImg; // 故障点照片
private Integer scrapOrNot; // 是否报废0=是1=否)
private Long scrapFaultId; // 报废类型id
@ -127,36 +121,19 @@ public class RepairOrderParam implements Serializable {
private Long scrapConfirmation; // 报废确认0=是1=否)
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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 String repairOrderStepRemark; // 维修单步骤备注
private String repairOrderStepImg; // 维修单步骤照片
}

View File

@ -0,0 +1,19 @@
package com.hcy.front.vo.order;
import lombok.Data;
import java.io.Serializable;
/**
* OrderPartCodeVo
*/
@Data
public class OrderPartCodeVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id; // 配件编码id
private Long repairOrderId; // 维修单id
private String partCode; // 配件编码
}

View File

@ -65,10 +65,7 @@ public class RepairOrderDetailVo implements Serializable {
private String faultName; //故障名称
private Integer scrapOrNot; // 是否报废0=是1=否)
private String preMaintenanceImg; // 维修前照片
private String faultPointImg; // 故障点照片
private String inMaintenanceImg; // 维修中照片
private String afterRepairImg; // 维修后照片
private Date orderAccomplishTime; // 订单完成时间
private Date quotationTime; // 报价时间
private Date cancelOrderTime; // 取消订单时间
@ -96,36 +93,17 @@ public class RepairOrderDetailVo implements Serializable {
private Integer warehouseType; // 仓库类型 0-我的仓库 1-公共仓库
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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=填写回单)
}

View File

@ -41,8 +41,6 @@ public class RepairOrderListVo implements Serializable {
private String siteImg; // 现场照片
private Long plantId; // 管辖工厂
private String plantName; //管辖工厂名
private Integer receiverType; // 接单类型 0-区域派单1-距离派单
private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员
private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Double distance; //距离
@ -66,8 +64,6 @@ public class RepairOrderListVo implements Serializable {
private String clientScrapRemark; // 客户报废备注
private String completeImg; // 完工照片
private Integer scrapOrNot; // 是否报废0=是1=否)
private String inMaintenanceImg; // 维修中照片
private String afterRepairImg; // 维修后照片
private Date orderAccomplishTime; // 订单完成时间
private BigDecimal totalAmount; // 总金额
private BigDecimal actualAmount; // 实际金额
@ -78,35 +74,16 @@ public class RepairOrderListVo implements Serializable {
private SparePartStockAuditDetailVo sparePartStockAudit; //备件领用信息
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)
private String dismantleRemark; // 拆机备注
private String dismantleImg; // 拆机照片
private String startCleaningRemark; // 开始清洗备注
private String startCleaningImg; // 开始清洗照片
private String investigationResultRemark; // 排查结果备注
private String investigationResultImg; // 排查结果照片
private String signatureImg; // 签名照片
private String reinforcingThreeAntiPaintRemark; // 补强三防漆备注
private String reinforcingThreeAntiPaintImg; // 补强三防漆照片
private String reinforcingGlueRemark; // 补强点胶备注
private String reinforcingGlueImg; // 补强点胶照片
private String moduleAssemblyRemark; // 模块装配备注
private String moduleAssemblyImg; // 模块装配照片
private String dcAndPfcAssembleRemark; // DC&PFC组装备注
private String dcAndPfcAssembleImg; // DC&PFC组装照片
private Integer functionalTestPassed; // 功能测试是否通过0=是1=否)
private String functionalTestRemark; // 功能测试备注
private String functionalTestImg; // 功能测试照片
private Integer agingTestPassed; // 老化测试是否通过0=是1=否)
private String agingTestRemark; // 老化测试备注
private String agingTestImg; // 老化测试照片
private String expressName; // 快递名称
private String expressNo; // 快递单号
private String packageAndShipRemark; // 包装出货备注
private String packageAndShipImg; // 包装出货照片
private Long faultId; // 维修结论类型id
private String faultDescription; // 维修结论描述
private String fillInTheReceiptRemark; // 填写回单备注
private String fillInTheReceiptImg; // 填写回单照片
private String moduleCode; // 模块代码
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=填写回单)
}