【admin&front】新增&优化# 1、优化小程序维修单步骤,新增维修主管端 2、优化后台管理系统出入库审核列表

dev1.0
renfan 2024-09-12 22:06:18 +08:00
parent 2e626f7ae8
commit a7000a6d02
5 changed files with 58 additions and 9 deletions

View File

@ -21,6 +21,7 @@ import com.hcy.common.entity.client.Client;
import com.hcy.common.entity.client.ClientContacts; import com.hcy.common.entity.client.ClientContacts;
import com.hcy.common.entity.order.MaintenanceOrder; import com.hcy.common.entity.order.MaintenanceOrder;
import com.hcy.common.entity.order.RepairOrder; import com.hcy.common.entity.order.RepairOrder;
import com.hcy.common.entity.order.RepairOrderStepData;
import com.hcy.common.entity.sparePart.SparePart; import com.hcy.common.entity.sparePart.SparePart;
import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit; import com.hcy.common.entity.sparePartStockAudit.SparePartStockAudit;
import com.hcy.common.entity.system.SystemAuthAdmin; import com.hcy.common.entity.system.SystemAuthAdmin;
@ -39,6 +40,7 @@ import com.hcy.common.mapper.client.ClientMapper;
import com.hcy.common.mapper.order.MaintenanceOrderMapper; import com.hcy.common.mapper.order.MaintenanceOrderMapper;
import com.hcy.common.mapper.order.OrderSparePartMapper; import com.hcy.common.mapper.order.OrderSparePartMapper;
import com.hcy.common.mapper.order.RepairOrderMapper; import com.hcy.common.mapper.order.RepairOrderMapper;
import com.hcy.common.mapper.order.RepairOrderStepDataMapper;
import com.hcy.common.mapper.sparePart.SparePartMapper; import com.hcy.common.mapper.sparePart.SparePartMapper;
import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper; import com.hcy.common.mapper.sparePartStockAudit.SparePartStockAuditMapper;
import com.hcy.common.mapper.system.SystemAuthAdminMapper; import com.hcy.common.mapper.system.SystemAuthAdminMapper;
@ -97,6 +99,9 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
@Resource @Resource
ClientContactsMapper clientContactsMapper; ClientContactsMapper clientContactsMapper;
@Resource
RepairOrderStepDataMapper repairOrderStepDataMapper;
/** /**
* *
* *
@ -154,6 +159,15 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.AUDITED.getStatus()) .ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.AUDITED.getStatus())
.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.CANCELED_AUDIT.getStatus()) .ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.CANCELED_AUDIT.getStatus())
.ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.FILLING_OUT.getStatus()))); .ne(SparePartStockAudit::getPurchaseStatus, AuditStateEnum.FILLING_OUT.getStatus())));
//配件领用不用在配件出入库审核显示
queryWrapper.and(query -> query.isNull(SparePartStockAudit::getReceiveStatus)
.or(orQuery -> orQuery
.ne(SparePartStockAudit::getReceiveStatus, AuditStateEnum.UNREVIEWED.getStatus())
.ne(SparePartStockAudit::getReceiveStatus, AuditStateEnum.AUDITED.getStatus())
.ne(SparePartStockAudit::getReceiveStatus, AuditStateEnum.UNCLAIMED.getStatus())
.ne(SparePartStockAudit::getReceiveStatus, AuditStateEnum.TO_BE_CONFIRMED.getStatus())
.ne(SparePartStockAudit::getReceiveStatus, AuditStateEnum.FINISHED.getStatus())
));
}else if(params.getQueryType() == SparePartStockAuditEnum.WAREHOUSING.getStatus() }else if(params.getQueryType() == SparePartStockAuditEnum.WAREHOUSING.getStatus()
|| params.getQueryType() == SparePartStockAuditEnum.GO_OUT_WAREHOUSE.getStatus() || params.getQueryType() == SparePartStockAuditEnum.GO_OUT_WAREHOUSE.getStatus()
|| params.getQueryType() == SparePartStockAuditEnum.ALLOT.getStatus()){ || params.getQueryType() == SparePartStockAuditEnum.ALLOT.getStatus()){
@ -869,6 +883,15 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
repairOrder.setRepairNextStep(RepairOrderStopEnum.RECOLLAR_FITTING.getStatus());//维修单审核不通过步骤为重领配件 repairOrder.setRepairNextStep(RepairOrderStopEnum.RECOLLAR_FITTING.getStatus());//维修单审核不通过步骤为重领配件
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
} }
//新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getOrderId());// 维修单id
repairOrderStepData.setRemark("仓管员【"+AdminThreadLocal.get("username")+"】完成审核,审核结果:不通过,审核意见:"+sparePartStockAuditParam.getPurchaseIdea());// 备注
repairOrderStepData.setTitle("仓库员进行审核"); // 标题
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间
repairOrderStepDataMapper.insert(repairOrderStepData);
} }
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足 // 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
@ -879,7 +902,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
.eq("is_delete", 0) .eq("is_delete", 0)
); );
if (model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus() if (model.getReceiptType() == AuditStateEnum.OUT_WAREHOUSE.getStatus()
&& model.getReceiveStatus() == AuditStateEnum.UNREVIEWED.getStatus()) { && model.getReceiveStatus() == AuditStateEnum.UNCLAIMED.getStatus()) {
// 通过审核的出库单 // 通过审核的出库单
//获取备件信息 //获取备件信息
for (SparePartAudit sparePartAudit : stockAuditId) { for (SparePartAudit sparePartAudit : stockAuditId) {
@ -890,7 +913,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
.last("limit 1")); .last("limit 1"));
// 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足 // 出库时需要判断库存数量是否大于出库数量,大于才允许出库;反之,提示备件库存数量不足
if (sparePart.getQuantity() >= sparePartAudit.getCount()) { if (sparePart.getQuantity() >= sparePartAudit.getCount()) {
model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus()); /*model.setAuditState(AuditStateEnum.UNREVIEWED.getStatus());*/
sparePart.setQuantity(sparePart.getQuantity() - sparePartAudit.getCount()); sparePart.setQuantity(sparePart.getQuantity() - sparePartAudit.getCount());
} else { } else {
throw new OperateException("备件库存数量不足,请联系客服人员!"); throw new OperateException("备件库存数量不足,请联系客服人员!");
@ -904,13 +927,21 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc() , OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
,OrderOperateRecordEnum.AUDIT.getStatus() ,OrderOperateRecordEnum.AUDIT.getStatus()
,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过;等待管理员审核。"); ,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过;等待管理员审核。");
} /*else if (model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.REPAIR_ORDER.getStatus()) { } else if (model.getOrderType() != null && model.getOrderType() == SparePartStockAuditEnum.REPAIR_ORDER.getStatus()) {
//新增维修单操作记录 /* //新增维修单操作记录
orderOperateRecordService.addRepairOrder(model.getOrderId() orderOperateRecordService.addRepairOrder(model.getOrderId()
, OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc() , OrderOperateRecordEnum.SPARE_PARTS_AUDIT_ONE.getDesc()
,OrderOperateRecordEnum.AUDIT.getStatus() ,OrderOperateRecordEnum.AUDIT.getStatus()
,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过;等待管理员审核"); ,"仓管员【"+AdminThreadLocal.get("username")+"】已经完成审核,审核通过;等待管理员审核");*/
}*/ //新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getOrderId());// 维修单id
repairOrderStepData.setRemark("仓管员【"+AdminThreadLocal.get("username")+"】完成审核,审核通过");// 备注
repairOrderStepData.setTitle("仓管员进行审核"); // 标题
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间
repairOrderStepDataMapper.insert(repairOrderStepData);
}
} }
} }
@ -1102,6 +1133,7 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
* @param sparePartStockAuditParam * @param sparePartStockAuditParam
*/ */
@Override @Override
@Transactional
public void warehouseKeeperImg(SparePartStockAuditParam sparePartStockAuditParam) { public void warehouseKeeperImg(SparePartStockAuditParam sparePartStockAuditParam) {
SparePartStockAudit model = sparePartStockAuditMapper.selectOne( SparePartStockAudit model = sparePartStockAuditMapper.selectOne(
new LambdaQueryWrapper<SparePartStockAudit>() new LambdaQueryWrapper<SparePartStockAudit>()
@ -1121,6 +1153,15 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
.eq(RepairOrder::getId, model.getOrderId())); .eq(RepairOrder::getId, model.getOrderId()));
repairOrder.setOrderStatus(AuditStateEnum.TO_BE_CONFIRMED.getStatus());// 维修工单状态 3=待确认 repairOrder.setOrderStatus(AuditStateEnum.TO_BE_CONFIRMED.getStatus());// 维修工单状态 3=待确认
repairOrderMapper.updateById(repairOrder); repairOrderMapper.updateById(repairOrder);
//新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getOrderId());// 维修单id
repairOrderStepData.setRemark("仓管员【"+AdminThreadLocal.get("username")+"】上传确认照片。");// 备注
repairOrderStepData.setTitle("仓管员上传确认照片"); // 标题
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间
repairOrderStepDataMapper.insert(repairOrderStepData);
} }
} }
} }

View File

@ -22,6 +22,7 @@ public enum RepairOrderStatusEnum {
CLIENT(0,"客户端"), CLIENT(0,"客户端"),
REPAIRER(1,"维修员"), REPAIRER(1,"维修员"),
MAINTENANCE_SUPERVISOR(2,"维修主管端"),
MAINTAIN(0,"维修"), MAINTAIN(0,"维修"),
NOT_MAINTAIN(1,"不维修"), NOT_MAINTAIN(1,"不维修"),

View File

@ -67,6 +67,9 @@
<if test="form.clientId != null"> <if test="form.clientId != null">
and ro.client_id = #{form.clientId} and ro.client_id = #{form.clientId}
</if> </if>
<if test="form.creatorId != null">
and ro.creator_id = #{form.creatorId}
</if>
<if test="form.creatorName != null and form.creatorName != ''"> <if test="form.creatorName != null and form.creatorName != ''">
and u1.username LIKE concat('%', #{form.creatorName}, '%') and u1.username LIKE concat('%', #{form.creatorName}, '%')
</if> </if>

View File

@ -477,8 +477,12 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
}else{ }else{
repairOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); // 接单人id repairOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); // 接单人id
} }
}else{ }else if(repairOrderParam.getIsClient() == RepairOrderStatusEnum.CLIENT.getStatus()){
repairOrderDto.setClientId(repairOrderDto.getClientId()); // 根据客户id进行查询 repairOrderDto.setClientId(repairOrderDto.getClientId()); // 根据客户id进行查询
} else if (repairOrderParam.getIsClient() == RepairOrderStatusEnum.MAINTENANCE_SUPERVISOR.getStatus()) {
repairOrderDto.setCreatorId(FrontThreadLocal.getUserId().longValue()); // 创建人id只查维修主管自己创建的单
}else{
throw new OperateException("isClient不可为空");
} }
IPage<RepairOrderDto> iPage = repairOrderMapper.pageList(new Page<>(page, limit), repairOrderDto); IPage<RepairOrderDto> iPage = repairOrderMapper.pageList(new Page<>(page, limit), repairOrderDto);
@ -857,7 +861,6 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
/** /**
* *
*
* @param repairOrderParam * @param repairOrderParam
*/ */
@Override @Override
@ -1131,6 +1134,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
repairOrderMapper.updateById(repairOrder); // 更新维修单 repairOrderMapper.updateById(repairOrder); // 更新维修单
return; return;
} else if (repairOrderParam.getRepairStep() == RepairOrderStopEnum.CONFIRMATION_SIGNATURE.getStatus()) { } else if (repairOrderParam.getRepairStep() == RepairOrderStopEnum.CONFIRMATION_SIGNATURE.getStatus()) {
// 确认签名
//判断当前订单是否仓管员已拍照上传 //判断当前订单是否仓管员已拍照上传
SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(repairOrder.getId() SparePartStockAudit resultSps = sparePartStockAuditMapper.findSparePartStockAuditByOrderId(repairOrder.getId()
, SparePartStockAuditEnum.REPAIR_ORDER.getStatus()); , SparePartStockAuditEnum.REPAIR_ORDER.getStatus());

View File

@ -98,7 +98,7 @@ public class RepairOrderParam implements Serializable {
//配件领用列表 //配件领用列表
private List<SparePartParam> sparePartParams; private List<SparePartParam> sparePartParams;
private Integer isClient; //是否客户 0-客户端 1-检修员 private Integer isClient; //是否客户 0-客户端 1-维修员端 2-维修主管
private Integer isMaintain; //是否维修 0-维修 1-不维修 private Integer isMaintain; //是否维修 0-维修 1-不维修
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库 private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门 private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门