【admin&front】 新增&优化 # 1、新增后台模块维修报表支持导出excel 2、优化维修单的工单步骤图片不显示问题 3、新增检修单、维修单显示配件领用状态 4、新增维修单显示仓管员上传的照片

dev1.0
renfan 2024-09-19 22:20:32 +08:00
parent 6cf0352042
commit 7b3ea8773c
27 changed files with 364 additions and 18 deletions

View File

@ -21,7 +21,6 @@
<dependency>
<groupId>org.hcy</groupId>
<artifactId>common</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.hcy</groupId>
@ -44,10 +43,6 @@
<version>2.0.12</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hcy</groupId>
<artifactId>common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>

View File

@ -1,8 +1,11 @@
package com.hcy.admin.controller.order;
import com.hcy.admin.config.aop.Log;
import com.hcy.admin.service.order.DistributionOrderExcel;
import com.hcy.admin.service.order.IRepairOrderService;
import com.hcy.admin.service.order.RepairOrderExcel;
import com.hcy.admin.validate.order.MaintenanceOrderParam;
import com.hcy.admin.validate.order.OrderDistributionParam;
import com.hcy.admin.validate.order.RepairOrderParam;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.RoutingInspectionOrderParam;
@ -10,16 +13,22 @@ import com.hcy.admin.vo.order.RepairOrderListVo;
import com.hcy.admin.vo.order.RepairOrderDetailVo;
import com.hcy.common.core.AjaxResult;
import com.hcy.common.core.PageResult;
import com.hcy.common.utils.ExcelUtils;
import com.hcy.common.validator.annotation.IDMust;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
*
*/
@Slf4j
@RestController
@RequestMapping("api/order/repairOrder")
public class RepairOrderController {
@ -137,4 +146,16 @@ public class RepairOrderController {
iRepairOrderService.returnRepair(repairOrderParam);
return AjaxResult.success();
}
//导出Excel
@ApiOperation(value = "模块管理 - 导出模块维修报表")
@PostMapping(value="/exportModuleMaintenanceExcel")
public void exportModuleMaintenanceExcel(@Validated @RequestBody RepairOrderParam params, HttpServletResponse response) {
try {
List<RepairOrderExcel> list = iRepairOrderService.getExportModuleMaintenanceExcel(params);
ExcelUtils.export2Web(response, "模块维修报表", "模块维修报表", RepairOrderExcel.class, list);
} catch (Exception e) {
log.error("报表导出异常:", e);
}
}
}

View File

@ -211,7 +211,7 @@ public class OrderCrontab {
//判断当前维修单是加急还是普通 priority; // 优先级0=普通1=加急)
if(item.getPriority() == RepairOrderStatusEnum.URGENT.getStatus()){
//加急维修单状态停滞一天,需要提醒
orderCreateTime.add(Calendar.MINUTE, 1);
orderCreateTime.add(Calendar.MINUTE, 1440);
if(currentTime.compareTo(orderCreateTime) > 0){
item.setTimeoutOrNot(RepairOrderStatusEnum.YES.getStatus());// 是否超时0=是1=否)
repairOrderMapper.updateById(item);
@ -219,7 +219,7 @@ public class OrderCrontab {
} else if (item.getPriority() == RepairOrderStatusEnum.COMMON.getStatus()) {
//普通维修单状态停滞三天,需要提醒
orderCreateTime.add(Calendar.MINUTE, 3);
orderCreateTime.add(Calendar.MINUTE, 4320);
if(currentTime.compareTo(orderCreateTime) > 0){
item.setTimeoutOrNot(RepairOrderStatusEnum.YES.getStatus());// 是否超时0=是1=否)
repairOrderMapper.updateById(item);

View File

@ -6,6 +6,8 @@ import com.hcy.admin.vo.order.RepairOrderListVo;
import com.hcy.admin.vo.order.RepairOrderDetailVo;
import com.hcy.common.core.PageResult;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
@ -71,4 +73,11 @@ public interface IRepairOrderService {
* @param repairOrderParam
*/
void returnRepair(RepairOrderParam repairOrderParam);
/**
*
* @param params
* @return
*/
List<RepairOrderExcel> getExportModuleMaintenanceExcel(RepairOrderParam params);
}

View File

@ -0,0 +1,47 @@
package com.hcy.admin.service.order;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
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;
/**
* RepairOrderExcel
*/
@Data
public class RepairOrderExcel implements Serializable {
/*private Long id; // 主键id
private String orderNo; // 订单编号*/
@ColumnWidth(20) // 定义列宽
@ExcelProperty(value = {"模块号"}, index = 0)
private String moduleNumber; // 模块号
@ColumnWidth(20) // 定义列宽
@ExcelProperty(value = {"模块代码"}, index = 1)
private String moduleCode; // 模块代码
@ColumnWidth(20) // 定义列宽
@ExcelProperty(value = {"发现时间"}, index = 2)
private Date createTime; // 创建时间
@ColumnWidth(20) // 定义列宽
@ExcelProperty(value = {"维修前(现场图片)"}, index = 3)
private String preMaintenanceImg; // 维修前照片
@ColumnWidth(20) // 定义列宽
@ExcelProperty(value = {"维修中"}, index = 4)
private String inMaintenanceImg; // 维修中照片
@ColumnWidth(20) // 定义列宽
@ExcelProperty(value = {"维修后"}, index = 5)
private String afterRepairImg; // 维修后照片
@ColumnWidth(20) // 定义列宽
@ExcelProperty(value = {"故障原因"}, index = 6)
private String faultName; //故障名称
@ExcelProperty(value = {"是否报废"}, index = 7)
private String scrapOrNot; // 是否报废0=是1=否)
}

View File

@ -35,6 +35,8 @@ 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.OrderStatusEnum;
import com.hcy.common.enums.OrderTypeEnum;
import com.hcy.common.enums.SparePartStockAuditEnum;
import com.hcy.common.enums.equipment.EquipmentStateEnum;
import com.hcy.common.enums.order.MaintenanceOrderStatusEnum;
@ -187,6 +189,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
}
//配件领用状态
SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getOrderId, item.getId())
.eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()));
if(sparePartStockAudit != null){
vo.setReceiveStatus(sparePartStockAudit.getReceiveStatus());
}
list.add(vo);
}
@ -318,6 +328,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
}
//配件领用状态
SparePartStockAudit receiverStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getOrderId, model.getId())
.eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()));
if(receiverStatus != null){
vo.setReceiveStatus(receiverStatus.getReceiveStatus());
}
return vo;
}

View File

@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hcy.admin.AdminThreadLocal;
import com.hcy.admin.service.order.DistributionOrderExcel;
import com.hcy.admin.service.order.IRepairOrderService;
import com.hcy.admin.service.order.RepairOrderExcel;
import com.hcy.admin.service.region.IDevRegionService;
import com.hcy.admin.validate.common.PageParam;
import com.hcy.admin.validate.order.RepairOrderParam;
@ -33,10 +35,7 @@ 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.SparePartStockAuditEnum;
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;
@ -186,6 +185,36 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
.eq(OrderPartCode::getRepairOrderId, vo.getId()));
vo.setOrderPartCodeList(orderPartCodes);
//返回前中后照片
//返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus()));
if(preMaintenanceImg != null){
vo.setPreMaintenanceImg(preMaintenanceImg.getImg());
}
//返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus()));
if(inMaintenanceImg != null){
vo.setInMaintenanceImg(inMaintenanceImg.getImg());
}
//返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus()));
if(afterRepairImg != null){
vo.setAfterRepairImg(afterRepairImg.getImg());
}
//返回故障点照片 faultPointImg; // 故障点照片
RepairOrderStepData troubleshooting = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus()));
if(troubleshooting != null){
vo.setFaultPointImg(troubleshooting.getImg());
}
vo.setCreateTime(item.getCreateTime());
vo.setUpdateTime(item.getUpdateTime());
list.add(vo);
@ -374,6 +403,36 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
vo.setOrderOperateRecords(stepDataVoList);
}
//返回前中后照片
//返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus()));
if(preMaintenanceImg != null){
vo.setPreMaintenanceImg(preMaintenanceImg.getImg());
}
//返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus()));
if(inMaintenanceImg != null){
vo.setInMaintenanceImg(inMaintenanceImg.getImg());
}
//返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus()));
if(afterRepairImg != null){
vo.setAfterRepairImg(afterRepairImg.getImg());
}
//返回故障点照片 faultPointImg; // 故障点照片
RepairOrderStepData troubleshooting = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, model.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus()));
if(troubleshooting != null){
vo.setFaultPointImg(troubleshooting.getImg());
}
return vo;
}
@ -596,4 +655,72 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
throw new OperateException("当前工单状态,无法退回维修");
}
}
/**
*
*
* @param params
* @return
*/
@Override
public List<RepairOrderExcel> getExportModuleMaintenanceExcel(RepairOrderParam params) {
RepairOrderDto repairOrderDto = new RepairOrderDto();
BeanUtils.copyProperties(params,repairOrderDto);
List<RepairOrderDto> resultDtoList = repairOrderMapper.getExportModuleMaintenanceExcel(repairOrderDto);
List<RepairOrderExcel> list = new LinkedList<>();
for (RepairOrderDto item : resultDtoList) {
RepairOrderExcel repairOrderExcel = new RepairOrderExcel();
BeanUtils.copyProperties(item, repairOrderExcel);
//返回前中后照片
//返回维修前照片
RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus()));
if(preMaintenanceImg != null){
repairOrderExcel.setPreMaintenanceImg(preMaintenanceImg.getImg());
}
//返回维修中照片
RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus()));
if(inMaintenanceImg != null){
repairOrderExcel.setInMaintenanceImg(inMaintenanceImg.getImg());
}
//返回维修后照片
RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper<RepairOrderStepData>()
.eq(RepairOrderStepData::getRepairOrderId, item.getId())
.eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus()));
if(afterRepairImg != null){
repairOrderExcel.setAfterRepairImg(afterRepairImg.getImg());
}
//故障类型名称
Fault faultName = faultMapper.selectOne(
new LambdaQueryWrapper<Fault>()
.eq(Fault::getId, item.getFaultId()));
if(faultName != null){
repairOrderExcel.setFaultName(faultName.getName());
}
// scrapOrNot 是否报废0=是1=否)
if(item.getScrapOrNot() != null){
if(item.getScrapOrNot() == 0){
repairOrderExcel.setScrapOrNot("是");
} else if (item.getScrapOrNot() == 1) {
repairOrderExcel.setScrapOrNot("否");
}
}
list.add(repairOrderExcel);
}
return list;
}
}

View File

@ -1173,7 +1173,9 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi
//新增维修单操作记录
RepairOrderStepData repairOrderStepData = new RepairOrderStepData();
repairOrderStepData.setRepairOrderId(model.getOrderId());// 维修单id
repairOrderStepData.setRepairStep(RepairOrderStopEnum.WAREHOUSE_KEEPER_UPLOADS_IMG.getStatus()); // 仓管员上传图片
repairOrderStepData.setRemark("仓管员【"+AdminThreadLocal.get("username")+"】上传确认照片。");// 备注
repairOrderStepData.setImg(model.getWarehouseKeeperImg()); // 仓管员上传图片
repairOrderStepData.setTitle("仓管员上传确认照片"); // 标题
repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人
repairOrderStepData.setCreateTime(new Date()); // 创建时间

View File

@ -105,4 +105,6 @@ public class MaintenanceOrderParam implements Serializable {
private String createTimeStart; //报修开始时间
private String createTimeEnd; //报修结束时间
private String createImg; // 创建照片
}

View File

@ -90,7 +90,9 @@ public class RepairOrderParam implements Serializable {
private BigDecimal totalAmount; // 总金额
private BigDecimal actualAmount; // 实际金额
private String returnCause; //退回原因
private Integer scrapOrNot; // 是否报废0=是1=否)
private Integer scrapConfirmation; // 报废确认0=是1=否)
private Integer priority; // 优先级0=加急1=普通)
private Integer isReassignment; // 是否在改派中0=是1=否)
private Integer reassignmentAgreeOrNot; // 改派是否同意0=是1=否)

View File

@ -70,4 +70,7 @@ public class MaintenanceOrderDetailVo implements Serializable {
private List<OrderOperateRecord> orderOperateRecords; //订单操作记录
private Date quotationTime; //报价时间
private Integer receiveStatus; // 配件领用状态0=未审核1=审核未通过2=待领取3=待确认4=已完成)
private String createImg; // 创建照片
}

View File

@ -57,5 +57,8 @@ public class MaintenanceOrderListVo implements Serializable {
private String receiverName; // 接单人姓名
private String shortName; //客户简称
private EquipmentModelDetailVo equipmentModel; //设备模块信息
private Integer receiveStatus; // 配件领用状态0=未审核1=审核未通过2=待领取3=待确认4=已完成)
private String createImg; // 创建照片
}

View File

@ -59,8 +59,8 @@ public class RepairOrderListVo implements Serializable {
private String clientScrapRemark; // 客户报废备注
private String completeImg; // 完工照片
private Integer scrapOrNot; // 是否报废0=是1=否)
private String preMaintenanceImg; // 维修前照片
private String faultPointImg; // 故障点照片
private String preMaintenanceImg; // 维修前照片
private String inMaintenanceImg; // 维修中照片
private String afterRepairImg; // 维修后照片
private Date orderAccomplishTime; // 订单完成时间
@ -71,7 +71,7 @@ public class RepairOrderListVo implements Serializable {
private String refuseMaintenanceCause; // 拒绝维修原因
private Long clientScrapAddressId; // 客户报废收货地址id
private Long scrapConfirmation; // 报废确认0=是1=否)
private Integer scrapConfirmation; // 报废确认0=是1=否)
private SparePartStockAuditDetailVo sparePartStockAudit; //备件领用信息

View File

@ -69,4 +69,6 @@ public class MaintenanceOrderDto implements Serializable {
private String completeImg; // 完工照片
private String createTimeStart; //报修开始时间
private String createTimeEnd; //报修结束时间
private String createImg; // 创建照片
}

View File

@ -58,5 +58,5 @@ public class MaintenanceOrder implements Serializable {
private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库
private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货
private String completeImg; // 完工照片
private String createImg; // 创建照片
}

View File

@ -22,6 +22,7 @@ public class SparePartStockAudit implements Serializable {
private Long id; // 主键id
private String receiptNumber; // 单据编号
private Long orderId; //订单编号
private Integer orderType; // 0-检修工单 1-维修工单
private Integer receiptType; // 单据类型0=入库单1=出库单2=仓库调拨单)
private Long warehouseId; // 所属仓库
private Long importWarehouse; // 调入仓库
@ -40,7 +41,7 @@ public class SparePartStockAudit implements Serializable {
private Date updateTime; // 更新时间
private Date deleteTime; // 删除时间
private Integer outInWarehouseType; // 出入库类别0=采购入库1=库存调拨2=员工领料3=销售出库)
private Integer orderType; // 0-检修工单 1-维修工单
private String shippingAddress; //收货地址
private String consigner; //发货人
private String consignerPhone; //发货人联系电话

View File

@ -12,7 +12,7 @@ public enum RepairOrderStopEnum {
// 步骤0=拆机1=清洗2=故障排查3=确认签名4=重领配件5=上传维修前图片6=上传维修中图片7=上传维修后图片,
// 8=补强三防漆9=补强点胶10=DC&PFC组装11=补强三防漆和点胶12=模块装配13=功能测试14=老化测试,
// 15=包装出货16=填写回单)
// 15=包装出货16=填写回单) 99=仓管员上传图片
DISMANTLE(0,"拆机"),
RINSE(1,"清洗"),
TROUBLESHOOTING(2,"故障排查"),
@ -31,6 +31,7 @@ public enum RepairOrderStopEnum {
PACKAGE_AND_SHIP(15,"包装出货"),
FILL_IN_THE_RECEIPT(16,"填写回单"),
FINISH(17, "结束"),
WAREHOUSE_KEEPER_UPLOADS_IMG(99,"仓管员上传图片"),
//描述类型0-配件领用
ACCESSORY_REQUISITION(0,"配件领用");

View File

@ -36,6 +36,13 @@ public interface RepairOrderMapper extends IBaseMapper<RepairOrder> {
*/
Page<RepairOrderDto> pageList(@Param("page") Page page, @Param("form") RepairOrderDto form);
/**
*
* @param form
* @return
*/
List<RepairOrderDto> getExportModuleMaintenanceExcel(@Param("form") RepairOrderDto form);
/**
* id
* @return MaintenanceOrder

View File

@ -34,7 +34,7 @@ public class AliyunStorage {
* @return String
*/
public OSS ossClient() {
String endpoint = "https://oss-cn-shenzhen.aliyuncs.com";
String endpoint = "https://oss-cn-guangzhou.aliyuncs.com";
String accessKeyId = this.config.get("accessKey");
String accessKeySecret = this.config.get("secretKey");
return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

View File

@ -70,6 +70,15 @@
<if test="form.creatorId != null">
and ro.creator_id = #{form.creatorId}
</if>
<if test="form.scrapOrNot != null">
and ro.scrap_or_not = #{form.scrapOrNot}
</if>
<if test="form.moduleNumber != null and form.moduleNumber != ''">
and ro.module_number LIKE concat('%', #{form.moduleNumber}, '%')
</if>
<if test="form.moduleCode != null and form.moduleCode != ''">
and ro.module_code LIKE concat('%', #{form.moduleCode}, '%')
</if>
<if test="form.creatorName != null and form.creatorName != ''">
and u1.username LIKE concat('%', #{form.creatorName}, '%')
</if>
@ -107,4 +116,64 @@
</if>
</select>
<select id="getExportModuleMaintenanceExcel" resultType="com.hcy.common.dto.order.RepairOrderDto">
select ro.*,
u1.username as creatorName,
u2.username as receiverName,
c.client_name as clientName,
c.short_name
from la_repair_order as ro
LEFT JOIN la_client as c on ro.client_id = c.id
LEFT JOIN la_user as u1 on ro.creator_id = u1.id
LEFT JOIN la_user as u2 on ro.receiver_id = u2.id
where
ro.is_delete = 0
<if test="form.id != null">
and ro.id = #{form.id}
</if>
<if test="form.orderNo != null and form.orderNo != ''">
and ro.order_no like concat('%', #{form.orderNo}, '%')
</if>
<if test="form.orderSource != null">
and ro.order_source = #{form.orderSource}
</if>
<if test="form.clientName != null and form.clientName != ''">
and c.client_name LIKE concat('%', #{form.clientName}, '%')
</if>
<if test="form.receiverId != null">
and ro.receiver_id = #{form.receiverId}
</if>
<if test="form.clientId != null">
and ro.client_id = #{form.clientId}
</if>
<if test="form.creatorId != null">
and ro.creator_id = #{form.creatorId}
</if>
<if test="form.scrapOrNot != null">
and ro.scrap_or_not = #{form.scrapOrNot}
</if>
<if test="form.moduleNumber != null and form.moduleNumber != ''">
and ro.module_number LIKE concat('%', #{form.moduleNumber}, '%')
</if>
<if test="form.moduleCode != null and form.moduleCode != ''">
and ro.module_code LIKE concat('%', #{form.moduleCode}, '%')
</if>
<if test="form.creatorName != null and form.creatorName != ''">
and u1.username LIKE concat('%', #{form.creatorName}, '%')
</if>
<if test="form.receiverName != null and form.receiverName != ''">
and u2.username LIKE concat('%', #{form.receiverName}, '%')
</if>
<if test="form.likeWork != null and form.likeWork != ''">
and (ro.order_no like concat('%',#{form.likeWork},'%')
or u1.username LIKE concat('%', #{form.likeWork}, '%'))
</if>
<if test="form.orderStatus != null">
and find_in_set(ro.order_status,#{form.orderStatus})
</if>
<if test="form.orderStatusIds != null and form.orderStatusIds != ''">
and find_in_set(ro.order_status,#{form.orderStatusIds})
</if>
order by ro.create_time desc
</select>
</mapper>

View File

@ -317,6 +317,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
}
//配件领用状态
SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getOrderId, item.getId())
.eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()));
if(receiveStatus != null){
vo.setReceiveStatus(receiveStatus.getReceiveStatus());
}
returnData.add(vo);
}
@ -539,6 +547,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService {
}
}
//配件领用状态
SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getOrderId, maintenanceOrder.getId())
.eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus()));
if(receiveStatus != null){
vo.setReceiveStatus(receiveStatus.getReceiveStatus());
}
return vo;
}

View File

@ -548,6 +548,14 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
.eq(OrderPartCode::getRepairOrderId, vo.getId()));
vo.setOrderPartCodeList(orderPartCodes);
//配件领用状态
SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getOrderId, item.getId())
.eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.REPAIR_ORDER.getStatus()));
if(receiveStatus != null){
vo.setReceiveStatus(receiveStatus.getReceiveStatus());
}
list.add(vo);
}
@ -702,7 +710,13 @@ public class RepairOrderServiceImpl implements IRepairOrderService {
vo.setRepairOrderStepDataList(stepDataVoList);
}
//配件领用状态
SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper<SparePartStockAudit>()
.eq(SparePartStockAudit::getOrderId, model.getId())
.eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.REPAIR_ORDER.getStatus()));
if(receiveStatus != null){
vo.setReceiveStatus(receiveStatus.getReceiveStatus());
}
return vo;
}

View File

@ -123,5 +123,6 @@ public class MaintenanceOrderParam implements Serializable {
private String moduleNo; // 模块号
private String moduleImg; // 模块图片
private String completeImg; // 完工照片
private String createImg; // 创建照片
}

View File

@ -67,5 +67,7 @@ public class MaintenanceOrderDetailVo implements Serializable {
private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息
private SparePartStockAuditDetailVo sparePartStockAudit; //备件领用信息
private String completeImg; // 完工照片
private Integer receiveStatus; // 配件领用状态0=未审核1=审核未通过2=待领取3=待确认4=已完成)
private String createImg; // 创建照片
}

View File

@ -70,5 +70,7 @@ public class MaintenanceOrderListVo implements Serializable {
private Integer completedCount; // 已完成数量
private String completeImg; // 完工照片
private Integer receiveStatus; // 配件领用状态0=未审核1=审核未通过2=待领取3=待确认4=已完成)
private String createImg; // 创建照片
}

View File

@ -111,5 +111,6 @@ public class RepairOrderDetailVo implements Serializable {
private List<RepairOrderStepDataVo> repairOrderStepDataList; // 维修单步骤数据列表
private Integer timeoutOrNot; // 是否超时0=是1=否)
private Integer maintainType; // 模块维修类型 0-全包 1-半包
private Integer receiveStatus; // 配件领用状态0=未审核1=审核未通过2=待领取3=待确认4=已完成)
}

View File

@ -89,5 +89,6 @@ public class RepairOrderListVo 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 Integer timeoutOrNot; // 是否超时0=是1=否)
private Integer receiveStatus; // 配件领用状态0=未审核1=审核未通过2=待领取3=待确认4=已完成)
}