|
|
|
@ -5,7 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
|
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
|
|
|
@ -21,11 +21,14 @@ import org.dromara.dms.domain.vo.*;
|
|
|
|
|
import org.dromara.dms.service.*;
|
|
|
|
|
import org.dromara.resource.api.RemoteFileService;
|
|
|
|
|
import org.dromara.resource.api.domain.RemoteFile;
|
|
|
|
|
import org.dromara.system.api.RemoteDictService;
|
|
|
|
|
import org.dromara.system.api.domain.vo.RemoteDictDataVo;
|
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
@ -35,7 +38,7 @@ import java.util.List;
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/mobile")
|
|
|
|
|
@Slf4j
|
|
|
|
|
public class DmsMobileController extends BaseController {
|
|
|
|
|
public class DmsMobileController extends BaseController {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final IDmsBillsFaultInstanceService dmsBillsFaultInstanceService;
|
|
|
|
@ -50,11 +53,116 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
|
|
|
|
|
private final IDmsBillsLubeInstanceService dmsBillsLubeInstanceService;
|
|
|
|
|
|
|
|
|
|
@DubboReference(timeout = 15000, retries = 1)
|
|
|
|
|
private final RemoteFileService remoteFileService;
|
|
|
|
|
|
|
|
|
|
@DubboReference(timeout = 15000, retries = 1)
|
|
|
|
|
private RemoteDictService remoteDictService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 标准时间格式化器,用于PDA客户端兼容
|
|
|
|
|
*/
|
|
|
|
|
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 格式化时间字段,确保PDA客户端兼容性
|
|
|
|
|
*
|
|
|
|
|
* @param mobileInstance Mobile实例
|
|
|
|
|
* @param voInstance VO实例
|
|
|
|
|
*/
|
|
|
|
|
private void formatTimeFields(DmsBillsFaultInstanceMobile mobileInstance, DmsBillsFaultInstanceVo voInstance) {
|
|
|
|
|
// 时间字段格式化
|
|
|
|
|
// if (voInstance.getApplyTime() != null) {
|
|
|
|
|
// mobileInstance.setApplyTime(DATE_FORMAT.format(voInstance.getApplyTime()));
|
|
|
|
|
// }
|
|
|
|
|
// if (voInstance.getRealBeginTime() != null) {
|
|
|
|
|
// mobileInstance.setRealBeginTime(DATE_FORMAT.format(voInstance.getRealBeginTime()));
|
|
|
|
|
// }
|
|
|
|
|
// if (voInstance.getRealEndTime() != null) {
|
|
|
|
|
// mobileInstance.setRealEndTime(DATE_FORMAT.format(voInstance.getRealEndTime()));
|
|
|
|
|
// }
|
|
|
|
|
// if (voInstance.getRequireEndTime() != null) {
|
|
|
|
|
// mobileInstance.setRequireEndTime(DATE_FORMAT.format(voInstance.getRequireEndTime()));
|
|
|
|
|
// }
|
|
|
|
|
// if (voInstance.getConfirmTime() != null) {
|
|
|
|
|
// mobileInstance.setConfirmTime(DATE_FORMAT.format(voInstance.getConfirmTime()));
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// PDA客户端字段映射 - 从voInstance正确获取数据
|
|
|
|
|
mobileInstance.setDeviceCode(voInstance.getMachineCode());
|
|
|
|
|
mobileInstance.setDeviceName(voInstance.getMachineName());
|
|
|
|
|
mobileInstance.setDeviceLocation(voInstance.getMachineLocation());
|
|
|
|
|
mobileInstance.setDeviceSpec(voInstance.getMachineSpec());
|
|
|
|
|
|
|
|
|
|
// ID字段类型转换 - Long到String
|
|
|
|
|
if (voInstance.getRepairInstanceId() != null) {
|
|
|
|
|
mobileInstance.setRepairInstanceId(String.valueOf(voInstance.getRepairInstanceId()));
|
|
|
|
|
}
|
|
|
|
|
if (voInstance.getFaultSourceId() != null) {
|
|
|
|
|
mobileInstance.setFaultSourceId(String.valueOf(voInstance.getFaultSourceId()));
|
|
|
|
|
}
|
|
|
|
|
if (voInstance.getWfDefinitionId() != null) {
|
|
|
|
|
mobileInstance.setWfDefinitionId(String.valueOf(voInstance.getWfDefinitionId()));
|
|
|
|
|
// PDA客户端兼容字段
|
|
|
|
|
mobileInstance.setWfProcessId(String.valueOf(voInstance.getWfDefinitionId()));
|
|
|
|
|
}
|
|
|
|
|
if (voInstance.getMachineId() != null) {
|
|
|
|
|
mobileInstance.setMachineId(String.valueOf(voInstance.getMachineId()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 格式化保养工单时间字段,确保PDA客户端兼容性
|
|
|
|
|
*
|
|
|
|
|
* @param mobileInstance Mobile实例
|
|
|
|
|
* @param voInstance VO实例
|
|
|
|
|
*/
|
|
|
|
|
private void formatMaintTimeFields(DmsBillsMaintInstanceMobile mobileInstance, DmsBillsMaintInstanceVo voInstance) {
|
|
|
|
|
if (voInstance.getPlanBeginTime() != null) {
|
|
|
|
|
mobileInstance.setPlanBeginTime(DATE_FORMAT.format(voInstance.getPlanBeginTime()));
|
|
|
|
|
}
|
|
|
|
|
if (voInstance.getRealBeginTime() != null) {
|
|
|
|
|
mobileInstance.setRealBeginTime(DATE_FORMAT.format(voInstance.getRealBeginTime()));
|
|
|
|
|
}
|
|
|
|
|
if (voInstance.getPlanEndTime() != null) {
|
|
|
|
|
mobileInstance.setPlanEndTime(DATE_FORMAT.format(voInstance.getPlanEndTime()));
|
|
|
|
|
}
|
|
|
|
|
if (voInstance.getRealEndTime() != null) {
|
|
|
|
|
mobileInstance.setRealEndTime(DATE_FORMAT.format(voInstance.getRealEndTime()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据字典类型查询字典数据信息 (适配PDA)
|
|
|
|
|
*
|
|
|
|
|
* @param dictType 字典类型
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping(value = "/dict/type/{dictType}")
|
|
|
|
|
public AjaxResult getDictType(@PathVariable String dictType) {
|
|
|
|
|
List<RemoteDictDataVo> data = remoteDictService.selectDictDataByType(dictType);
|
|
|
|
|
|
|
|
|
|
// 手动转换,只映射PDA端需要的字段
|
|
|
|
|
List<Dict> dictList = new ArrayList<>();
|
|
|
|
|
if (data != null) {
|
|
|
|
|
for (RemoteDictDataVo vo : data) {
|
|
|
|
|
Dict dict = new Dict();
|
|
|
|
|
dict.setDictLabel(vo.getDictLabel());
|
|
|
|
|
dict.setDictValue(vo.getDictValue());
|
|
|
|
|
dict.setDictType(vo.getDictType());
|
|
|
|
|
// PDA端兼容:将Long类型的dictCode转换为String
|
|
|
|
|
dict.setDictCode(vo.getDictCode() != null ? String.valueOf(vo.getDictCode()) : null);
|
|
|
|
|
dictList.add(dict);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success(dictList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 处理文件上传的函数
|
|
|
|
|
*
|
|
|
|
|
* @param files 多部分文件列表
|
|
|
|
|
* @return 上传文件的URL列表
|
|
|
|
|
*/
|
|
|
|
@ -99,9 +207,7 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
log.error("文件上传过程中发生未知错误: {}", originalFilename, e);
|
|
|
|
|
throw new ServiceException("文件上传过程中发生未知错误,请联系管理员。");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 返回上传文件的URL列表
|
|
|
|
|
return fileUrls;
|
|
|
|
@ -115,12 +221,12 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/getDeviceByDeviceCode/{deviceCode}")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R getDeviceByDeviceCode(@PathVariable("deviceCode") String deviceCode) {
|
|
|
|
|
public AjaxResult getDeviceByDeviceCode(@PathVariable("deviceCode") String deviceCode) {
|
|
|
|
|
DmsBaseMachineInfoBo dmsBaseMachineInfoBo = new DmsBaseMachineInfoBo();
|
|
|
|
|
dmsBaseMachineInfoBo.setMachineCode(deviceCode);
|
|
|
|
|
//TODO:根据设备编号查一个设备
|
|
|
|
|
DmsBaseMachineInfoVo dmsBaseDeviceLedger = baseDeviceLedgerService.queryList(dmsBaseMachineInfoBo).get(0);
|
|
|
|
|
return R.ok(dmsBaseDeviceLedger);
|
|
|
|
|
return AjaxResult.success(dmsBaseDeviceLedger);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -131,7 +237,7 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/getOutsrcInfos")
|
|
|
|
|
// @RepeatSubmit
|
|
|
|
|
public R<List<Outsourcing>> getOutsrcInfos() {
|
|
|
|
|
public AjaxResult getOutsrcInfos() {
|
|
|
|
|
DmsBaseOutsourcingInfoBo queryBaseOutsrcInfo = new DmsBaseOutsourcingInfoBo();
|
|
|
|
|
|
|
|
|
|
//沒有外协状态,用激活状态
|
|
|
|
@ -139,17 +245,6 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
queryBaseOutsrcInfo.setActiveFlag("1");
|
|
|
|
|
|
|
|
|
|
List<DmsBaseOutsourcingInfoVo> baseOutsrcInfos = dmsBaseOutsrcInfoService.queryList(queryBaseOutsrcInfo);
|
|
|
|
|
// 将 DmsBaseOutsourcingInfoVo 转换为 Outsourcing 对象
|
|
|
|
|
/* List<Outsourcing> outsourcingList = baseOutsrcInfos.stream()
|
|
|
|
|
.map(vo -> {
|
|
|
|
|
Outsourcing outsourcing = new Outsourcing();
|
|
|
|
|
// 手动设置每个字段,确保正确映射
|
|
|
|
|
outsourcing.setOutsrcId(vo.getOutsourcingId().intValue()); // Long转int
|
|
|
|
|
outsourcing.setOutsrcCode(vo.getOutsourcingCode());
|
|
|
|
|
outsourcing.setOutsrcName(vo.getOutsourcingName());
|
|
|
|
|
return outsourcing;
|
|
|
|
|
})
|
|
|
|
|
.collect(Collectors.toList());*/
|
|
|
|
|
List<Outsourcing> outsourcingList = new ArrayList<>();
|
|
|
|
|
for (DmsBaseOutsourcingInfoVo vo : baseOutsrcInfos) {
|
|
|
|
|
Outsourcing outsourcing = new Outsourcing();
|
|
|
|
@ -159,7 +254,7 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
outsourcingList.add(outsourcing);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return R.ok(outsourcingList);
|
|
|
|
|
return AjaxResult.success(outsourcingList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -169,10 +264,10 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/likeDeviceName")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R<List<DeviceBeen>> likeDeviceName(String deviceName) {
|
|
|
|
|
public AjaxResult likeDeviceName(String deviceName) {
|
|
|
|
|
// 直接调用 PDA 端专用查询方法,无需对象转换
|
|
|
|
|
List<DeviceBeen> deviceBeenList = baseDeviceLedgerService.likeDeviceNameForPda(deviceName);
|
|
|
|
|
return R.ok(deviceBeenList);
|
|
|
|
|
return AjaxResult.success(deviceBeenList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -192,11 +287,46 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "故障报修工单", businessType = BusinessType.INSERT)
|
|
|
|
|
@PostMapping("/insertFaultInstsanceActivity")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R insertFaultInstsanceActivity(DmsBillsFaultInstanceBo dmsBillsFaultInstance,
|
|
|
|
|
List<MultipartFile> files) {
|
|
|
|
|
List<String> fileUrls = handleFileUploads(files);
|
|
|
|
|
public AjaxResult insertFaultInstsanceActivity(DmsBillsFaultInstanceBo dmsBillsFaultInstance,
|
|
|
|
|
List<MultipartFile> files) {
|
|
|
|
|
List<String> fileUrls = new ArrayList<>();
|
|
|
|
|
if (files != null) {
|
|
|
|
|
for (MultipartFile file : files) {
|
|
|
|
|
// 从 MultipartFile 中提取 RemoteFileService 所需的参数
|
|
|
|
|
String originalFilename = file.getOriginalFilename();
|
|
|
|
|
String contentType = file.getContentType();
|
|
|
|
|
byte[] fileBytes;
|
|
|
|
|
try {
|
|
|
|
|
fileBytes = file.getBytes();
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
log.error("获取文件字节失败: {}", originalFilename, e);
|
|
|
|
|
return AjaxResult.error("文件获取失败,请重试。");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
// 'name' 参数在当前RemoteFileServiceImpl实现中并非强制决定最终文件名,
|
|
|
|
|
// 这里传入originalFilename以保持一致性或作为备用标识
|
|
|
|
|
RemoteFile sysFile = remoteFileService.upload(originalFilename, originalFilename, contentType, fileBytes);
|
|
|
|
|
if (sysFile != null && sysFile.getUrl() != null) {
|
|
|
|
|
fileUrls.add(sysFile.getUrl());
|
|
|
|
|
} else {
|
|
|
|
|
log.warn("文件上传成功但未返回URL或返回数据为空: {}", originalFilename);
|
|
|
|
|
// 可以选择返回失败,或继续处理其他文件
|
|
|
|
|
}
|
|
|
|
|
} catch (ServiceException e) {
|
|
|
|
|
log.error("文件上传服务异常: {}", originalFilename, e);
|
|
|
|
|
return AjaxResult.error("文件上传服务异常:" + e.getMessage());
|
|
|
|
|
} catch (Exception e) { // 捕获其他未知异常
|
|
|
|
|
log.error("文件上传过程中发生未知错误: {}", originalFilename, e);
|
|
|
|
|
return AjaxResult.error("文件上传过程中发生未知错误,请联系管理员。");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//TODO:文件存储待测试
|
|
|
|
|
dmsBillsFaultInstance.setFileUrls(fileUrls);
|
|
|
|
|
return R.ok(dmsBillsFaultInstanceService.insertByBo(dmsBillsFaultInstance));
|
|
|
|
|
dmsBillsFaultInstanceService.insertByBo(dmsBillsFaultInstance);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -208,10 +338,11 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/getBillsFaultInstances")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public TableDataInfo getBillsFaultInstances() {
|
|
|
|
|
public AjaxResult getBillsFaultInstances() {
|
|
|
|
|
DmsBillsFaultInstanceBo queryBillsFaultInstance = new DmsBillsFaultInstanceBo();
|
|
|
|
|
List<DmsBillsFaultInstanceVo> billsFaultInstances = dmsBillsFaultInstanceService.queryList(queryBillsFaultInstance);
|
|
|
|
|
return TableDataInfo.build(billsFaultInstances);
|
|
|
|
|
TableDataInfo<DmsBillsFaultInstanceVo> dataTable = TableDataInfo.build(billsFaultInstances);
|
|
|
|
|
return AjaxResult.success().put("rows", dataTable.getRows()).put("total", dataTable.getTotal());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -222,12 +353,16 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/getBillsFaultInstanceByRepairInstanceId/{repairInstanceId}")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R<DmsBillsFaultInstanceMobile> getBillsFaultInstanceByRepairInstanceId(@PathVariable("repairInstanceId") Long repairInstanceId) {
|
|
|
|
|
public AjaxResult getBillsFaultInstanceByRepairInstanceId(@PathVariable("repairInstanceId") Long repairInstanceId) {
|
|
|
|
|
//fixme:图片地址完整路径(IP)
|
|
|
|
|
DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId);
|
|
|
|
|
// 使用MapstructUtils进行高性能对象转换,避免时间字段序列化问题
|
|
|
|
|
DmsBillsFaultInstanceMobile mobileInstance = MapstructUtils.convert(billsFaultInstance, DmsBillsFaultInstanceMobile.class);
|
|
|
|
|
return R.ok(mobileInstance);
|
|
|
|
|
|
|
|
|
|
// 手动格式化时间字段,确保PDA客户端兼容性
|
|
|
|
|
formatTimeFields(mobileInstance, billsFaultInstance);
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success(mobileInstance);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -238,11 +373,12 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "故障报修工单", businessType = BusinessType.UPDATE)
|
|
|
|
|
@PostMapping("/updateFaultInstanceActivity")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R<Integer> updateFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity,
|
|
|
|
|
@RequestParam(value = "files") List<MultipartFile> files) {
|
|
|
|
|
public AjaxResult updateFaultInstanceActivity(DmsFaultInstanceActivityBo dmsFaultInstanceActivity,
|
|
|
|
|
@RequestParam(value = "files" , required = false) List<MultipartFile> files) {
|
|
|
|
|
List<String> fileUrls = handleFileUploads(files);
|
|
|
|
|
dmsFaultInstanceActivity.setFileUrls(fileUrls);
|
|
|
|
|
return R.ok(dmsBillsFaultInstanceService.updateDmsFaultInstanceActivity(dmsFaultInstanceActivity));
|
|
|
|
|
dmsBillsFaultInstanceService.updateDmsFaultInstanceActivity(dmsFaultInstanceActivity);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -253,11 +389,16 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/getBillsFaultInstance4Repair/{repairInstanceId}")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R<DmsBillsFaultInstanceMobile> getBillsFaultInstance4Repair(@PathVariable("repairInstanceId") Long repairInstanceId) {
|
|
|
|
|
DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.queryById(repairInstanceId);
|
|
|
|
|
public AjaxResult getBillsFaultInstance4Repair(@PathVariable("repairInstanceId") Long repairInstanceId) {
|
|
|
|
|
// DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.queryById(repairInstanceId);
|
|
|
|
|
DmsBillsFaultInstanceVo billsFaultInstance = dmsBillsFaultInstanceService.selectDmsBillsFaultInstanceByRepairInstanceId(repairInstanceId);
|
|
|
|
|
// 使用MapstructUtils进行高性能对象转换,避免时间字段序列化问题
|
|
|
|
|
DmsBillsFaultInstanceMobile mobileInstance = MapstructUtils.convert(billsFaultInstance, DmsBillsFaultInstanceMobile.class);
|
|
|
|
|
return R.ok(mobileInstance);
|
|
|
|
|
|
|
|
|
|
// 手动格式化时间字段,确保PDA客户端兼容性
|
|
|
|
|
formatTimeFields(mobileInstance, billsFaultInstance);
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success(mobileInstance);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -269,9 +410,9 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/scanDevice4Repair")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R<Long> scanDevice4Repair(@Validated DmsBillsFaultInstanceScanBo dmsBillsFaultInstanceScan) {
|
|
|
|
|
public AjaxResult scanDevice4Repair(@Validated DmsBillsFaultInstanceScanBo dmsBillsFaultInstanceScan) {
|
|
|
|
|
//FIXME:返回从void改为long
|
|
|
|
|
return R.ok(dmsBillsFaultInstanceService.scanDevice4Repair(dmsBillsFaultInstanceScan));
|
|
|
|
|
return AjaxResult.success(dmsBillsFaultInstanceService.scanDevice4Repair(dmsBillsFaultInstanceScan));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -282,8 +423,9 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "故障报修工单", businessType = BusinessType.START)
|
|
|
|
|
@PostMapping("/startRepair")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R<Integer> startRepair(@RequestBody DmsFaultInstanceActivityBo dmsFaultInstanceActivity) {
|
|
|
|
|
return R.ok(dmsBillsFaultInstanceService.startRepair(dmsFaultInstanceActivity));
|
|
|
|
|
public AjaxResult startRepair(@RequestBody DmsFaultInstanceActivityBo dmsFaultInstanceActivity) {
|
|
|
|
|
dmsBillsFaultInstanceService.startRepair(dmsFaultInstanceActivity);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -293,19 +435,21 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "故障报修工单", businessType = BusinessType.COMPLETE)
|
|
|
|
|
@PostMapping("/completeRepair")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity,
|
|
|
|
|
@RequestParam(value = "files") List<MultipartFile> files) throws JsonProcessingException {
|
|
|
|
|
public AjaxResult completeRepair(DmsFaultInstanceActivityBo dmsFaultInstanceActivity,
|
|
|
|
|
@RequestParam(value = "files", required = false) List<MultipartFile> files) throws JsonProcessingException {
|
|
|
|
|
dmsFaultInstanceActivity.setRepairConfirm("2");
|
|
|
|
|
dmsFaultInstanceActivity.setConfirmTime(new Date());
|
|
|
|
|
String parts1 = dmsFaultInstanceActivity.getParts1();
|
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
|
List<DmsFaultComponentsParts> parts2 = objectMapper.readValue(parts1, new TypeReference<List<DmsFaultComponentsParts>>() {});
|
|
|
|
|
List<DmsFaultComponentsParts> parts2 = objectMapper.readValue(parts1, new TypeReference<List<DmsFaultComponentsParts>>() {
|
|
|
|
|
});
|
|
|
|
|
dmsFaultInstanceActivity.setParts(parts2);
|
|
|
|
|
|
|
|
|
|
List<String> fileUrls = handleFileUploads(files);
|
|
|
|
|
dmsFaultInstanceActivity.setFileUrls(fileUrls);
|
|
|
|
|
//FIXME:关于工作流相关的本页代码以及调用方法都需测试完善修改
|
|
|
|
|
return R.ok(dmsBillsFaultInstanceService.completeRepair(dmsFaultInstanceActivity));
|
|
|
|
|
dmsBillsFaultInstanceService.completeRepair(dmsFaultInstanceActivity);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -317,22 +461,23 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/getNewestInspectInstance")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R<DmsBillsInspectInstanceMobile> getNewestInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstance) {
|
|
|
|
|
public AjaxResult getNewestInspectInstance(DmsBillsInspectInstanceBo dmsBillsInspectInstance) {
|
|
|
|
|
DmsBillsInspectInstanceVo newestInspectInstance = dmsBillsInspectInstanceService.getNewestBillsInspectInstance(dmsBillsInspectInstance);
|
|
|
|
|
// 使用MapstructUtils进行高性能对象转换,避免时间字段序列化问题
|
|
|
|
|
DmsBillsInspectInstanceMobile mobileInstance = MapstructUtils.convert(newestInspectInstance, DmsBillsInspectInstanceMobile.class);
|
|
|
|
|
return R.ok(mobileInstance);
|
|
|
|
|
return AjaxResult.success(mobileInstance);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 扫描设备编号或者输入设备编号进行巡检验证
|
|
|
|
|
* */
|
|
|
|
|
*/
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/scanInspectInstanceDetail")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R scanInspectInstanceDetail(@Validated DmsBillsInspectInstanceScanBo dmsBillsInspectInstanceScan) {
|
|
|
|
|
return R.ok(dmsBillsInspectInstanceService.scanInspectInstanceDetail(dmsBillsInspectInstanceScan));
|
|
|
|
|
public AjaxResult scanInspectInstanceDetail(@Validated DmsBillsInspectInstanceScanBo dmsBillsInspectInstanceScan) {
|
|
|
|
|
dmsBillsInspectInstanceService.scanInspectInstanceDetail(dmsBillsInspectInstanceScan);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -346,7 +491,6 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取最新一条待保养或保养中的保养工单
|
|
|
|
|
*
|
|
|
|
@ -355,11 +499,15 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/getNewestMaintInstance")
|
|
|
|
|
// @RepeatSubmit
|
|
|
|
|
public R<DmsBillsMaintInstanceMobile> getNewestMaintInstance(DmsBillsMaintInstanceBo dmsBillsMaintInstance) {
|
|
|
|
|
public AjaxResult getNewestMaintInstance(DmsBillsMaintInstanceBo dmsBillsMaintInstance) {
|
|
|
|
|
DmsBillsMaintInstanceVo newestMaintInstance = dmsBillsMaintInstanceService.getNewestBillsMaintInstance(dmsBillsMaintInstance);
|
|
|
|
|
// 使用MapstructUtils进行高性能对象转换,避免时间字段序列化问题
|
|
|
|
|
DmsBillsMaintInstanceMobile mobileInstance = MapstructUtils.convert(newestMaintInstance, DmsBillsMaintInstanceMobile.class);
|
|
|
|
|
return R.ok(mobileInstance);
|
|
|
|
|
|
|
|
|
|
// 手动格式化时间字段,确保PDA客户端兼容性
|
|
|
|
|
formatMaintTimeFields(mobileInstance, newestMaintInstance);
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success(mobileInstance);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -370,8 +518,9 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "保养工单", businessType = BusinessType.START)
|
|
|
|
|
@PostMapping("/startMaint")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R startMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) {
|
|
|
|
|
return R.ok(dmsBillsMaintInstanceService.startMaint(dmsBillsMaintDetail));
|
|
|
|
|
public AjaxResult startMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) {
|
|
|
|
|
dmsBillsMaintInstanceService.startMaint(dmsBillsMaintDetail);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -381,8 +530,9 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "保养工单", businessType = BusinessType.COMPLETE)
|
|
|
|
|
@PostMapping("/completeMaint")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R completeMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) {
|
|
|
|
|
return R.ok(dmsBillsMaintInstanceService.completeMaint(dmsBillsMaintDetail));
|
|
|
|
|
public AjaxResult completeMaint(@RequestBody DmsBillsMaintDetail dmsBillsMaintDetail) {
|
|
|
|
|
dmsBillsMaintInstanceService.completeMaint(dmsBillsMaintDetail);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -394,11 +544,15 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
// @RequiresPermissions("qms:checkrule:list")
|
|
|
|
|
@GetMapping("/getNewestLubeInstance")
|
|
|
|
|
// @RepeatSubmit
|
|
|
|
|
public R<DmsBillsLubeInstanceMobile> getNewestLubeInstance(DmsBillsLubeInstanceBo dmsBillsLubeInstance) {
|
|
|
|
|
public AjaxResult getNewestLubeInstance(DmsBillsLubeInstanceBo dmsBillsLubeInstance) {
|
|
|
|
|
DmsBillsLubeInstanceVo newestLubeInstance = dmsBillsLubeInstanceService.getNewestBillsLubeInstance(dmsBillsLubeInstance);
|
|
|
|
|
// 使用MapstructUtils进行高性能对象转换,避免时间字段序列化问题
|
|
|
|
|
DmsBillsLubeInstanceMobile mobileInstance = MapstructUtils.convert(newestLubeInstance, DmsBillsLubeInstanceMobile.class);
|
|
|
|
|
return R.ok(mobileInstance);
|
|
|
|
|
|
|
|
|
|
// 注意:润滑Mobile类中的时间字段已被注释,无需格式化
|
|
|
|
|
// 如果将来启用时间字段,请添加相应的格式化方法
|
|
|
|
|
|
|
|
|
|
return AjaxResult.success(mobileInstance);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -408,9 +562,10 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "润滑工单", businessType = BusinessType.START)
|
|
|
|
|
@PostMapping("/startLube")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R startLube(@RequestBody DmsBillsLubeDetailBo dmsBillsLubeDetail) {
|
|
|
|
|
public AjaxResult startLube(@RequestBody DmsBillsLubeDetailBo dmsBillsLubeDetail) {
|
|
|
|
|
|
|
|
|
|
return R.ok(dmsBillsLubeInstanceService.startLube(dmsBillsLubeDetail));
|
|
|
|
|
dmsBillsLubeInstanceService.startLube(dmsBillsLubeDetail);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -420,8 +575,9 @@ public class DmsMobileController extends BaseController {
|
|
|
|
|
@Log(title = "润滑工单", businessType = BusinessType.COMPLETE)
|
|
|
|
|
@PostMapping("/completeLube")
|
|
|
|
|
@RepeatSubmit
|
|
|
|
|
public R completeLube(@RequestBody DmsBillsLubeDetailBo dmsBillsLubeDetail) {
|
|
|
|
|
return R.ok(dmsBillsLubeInstanceService.completeLube(dmsBillsLubeDetail));
|
|
|
|
|
public AjaxResult completeLube(@RequestBody DmsBillsLubeDetailBo dmsBillsLubeDetail) {
|
|
|
|
|
dmsBillsLubeInstanceService.completeLube(dmsBillsLubeDetail);
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|