|
|
|
@ -10,6 +10,8 @@ import com.aucma.dms.domain.vo.DmsBillsFaultInstanceScanVo;
|
|
|
|
import com.aucma.dms.domain.vo.DmsBillsInspectInstanceScanVo;
|
|
|
|
import com.aucma.dms.domain.vo.DmsBillsInspectInstanceScanVo;
|
|
|
|
import com.aucma.base.domain.BaseDeviceLedger;
|
|
|
|
import com.aucma.base.domain.BaseDeviceLedger;
|
|
|
|
import com.aucma.base.service.IBaseDeviceLedgerService;
|
|
|
|
import com.aucma.base.service.IBaseDeviceLedgerService;
|
|
|
|
|
|
|
|
import com.aucma.base.domain.BaseDeviceParamVal;
|
|
|
|
|
|
|
|
import com.aucma.base.service.IBaseDeviceParamValService;
|
|
|
|
import com.aucma.dms.service.*;
|
|
|
|
import com.aucma.dms.service.*;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
@ -17,6 +19,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
@ -67,6 +70,17 @@ public class DmsMobileController extends BaseController {
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private IBaseDeviceLedgerService baseDeviceLedgerService;
|
|
|
|
private IBaseDeviceLedgerService baseDeviceLedgerService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IBaseDeviceParamValService baseDeviceParamValService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 停机原因服务
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IDmsBaseShutReasonService dmsBaseShutReasonService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 停机记录服务
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private IDmsRecordShutDownService dmsRecordShutDownService;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 根据设备编号获取设备信息
|
|
|
|
* 根据设备编号获取设备信息
|
|
|
|
* 【重构】使用aucma-base模块的BaseDeviceLedger,返回类型转换为DmsBaseDeviceLedger
|
|
|
|
* 【重构】使用aucma-base模块的BaseDeviceLedger,返回类型转换为DmsBaseDeviceLedger
|
|
|
|
@ -210,6 +224,101 @@ public class DmsMobileController extends BaseController {
|
|
|
|
return dms;
|
|
|
|
return dms;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ========== PDA 停机相关 ==========
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* PDA-获取停机原因列表(仅启用 isFlag=1)
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@GetMapping("/shutReason/list")
|
|
|
|
|
|
|
|
public AjaxResult listShutReasonsForPda(DmsBaseShutReason reason) {
|
|
|
|
|
|
|
|
reason.setIsFlag("1");
|
|
|
|
|
|
|
|
List<DmsBaseShutReason> list = dmsBaseShutReasonService.selectDmsBaseShutReasonList(reason);
|
|
|
|
|
|
|
|
return success(list);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* PDA-新增停机记录:根据停机原因自动匹配停机类型
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@PostMapping("/shutDown/add")
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
|
|
|
public AjaxResult addShutDownForPda(@RequestBody DmsRecordShutDown shutDown) {
|
|
|
|
|
|
|
|
// 若传入了停机原因ID,则查询原因并回填类型
|
|
|
|
|
|
|
|
if (shutDown.getShutReason() != null) {
|
|
|
|
|
|
|
|
DmsBaseShutReason query = new DmsBaseShutReason();
|
|
|
|
|
|
|
|
query.setShutReason(shutDown.getShutReason());
|
|
|
|
|
|
|
|
query.setIsFlag("1");
|
|
|
|
|
|
|
|
List<DmsBaseShutReason> reasons = dmsBaseShutReasonService.selectDmsBaseShutReasonList(query);
|
|
|
|
|
|
|
|
if (!reasons.isEmpty()) {
|
|
|
|
|
|
|
|
shutDown.setShutType(reasons.get(0).getShutTypeId());
|
|
|
|
|
|
|
|
// 若前端未传 deviceId,尝试从原因带出
|
|
|
|
|
|
|
|
if (shutDown.getDeviceId() == null) {
|
|
|
|
|
|
|
|
shutDown.setDeviceId(reasons.get(0).getDeviceId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 默认启用标识
|
|
|
|
|
|
|
|
if (shutDown.getIsFlag() == null) {
|
|
|
|
|
|
|
|
shutDown.setIsFlag(1L);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
int rows = dmsRecordShutDownService.insertDmsRecordShutDown(shutDown);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 对指定设备(OLD-01~OLD-05)同步写入三色灯状态参数,供设备状态统计使用
|
|
|
|
|
|
|
|
String deviceCode = shutDown.getDeviceCode();
|
|
|
|
|
|
|
|
if (deviceCode != null && deviceCode.startsWith("OLD-")) {
|
|
|
|
|
|
|
|
insertTriColorStatusParams(deviceCode, shutDown.getDeviceId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return success(rows);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 插入三色灯状态参数(运行/暂停/报警),以“暂停”为当前状态
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private void insertTriColorStatusParams(String deviceCode, Long deviceId) {
|
|
|
|
|
|
|
|
// 仅处理 OLD-01~OLD-05
|
|
|
|
|
|
|
|
if (!"OLD-01".equals(deviceCode) && !"OLD-02".equals(deviceCode)
|
|
|
|
|
|
|
|
&& !"OLD-03".equals(deviceCode) && !"OLD-04".equals(deviceCode)
|
|
|
|
|
|
|
|
&& !"OLD-05".equals(deviceCode)) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 补齐 deviceId(如果未传)
|
|
|
|
|
|
|
|
Long resolvedDeviceId = deviceId;
|
|
|
|
|
|
|
|
if (resolvedDeviceId == null) {
|
|
|
|
|
|
|
|
BaseDeviceLedger query = new BaseDeviceLedger();
|
|
|
|
|
|
|
|
query.setDeviceCode(deviceCode);
|
|
|
|
|
|
|
|
query.setIsFlag(1L);
|
|
|
|
|
|
|
|
List<BaseDeviceLedger> list = baseDeviceLedgerService.selectBaseDeviceLedgerList(query);
|
|
|
|
|
|
|
|
if (!list.isEmpty()) {
|
|
|
|
|
|
|
|
resolvedDeviceId = list.get(0).getObjId();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date now = new Date();
|
|
|
|
|
|
|
|
// 运行、暂停、报警 三个参数,只有“暂停”置 TRUE,其余 FALSE
|
|
|
|
|
|
|
|
List<BaseDeviceParamVal> records = new ArrayList<>();
|
|
|
|
|
|
|
|
records.add(buildParamVal("295", deviceCode, resolvedDeviceId, "机台状态-三色灯机器运行", "False", now));
|
|
|
|
|
|
|
|
records.add(buildParamVal("296", deviceCode, resolvedDeviceId, "机台状态-三色灯机器暂停", "True", now));
|
|
|
|
|
|
|
|
records.add(buildParamVal("297", deviceCode, resolvedDeviceId, "机台状态-三色灯机器报警", "False", now));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (BaseDeviceParamVal rec : records) {
|
|
|
|
|
|
|
|
baseDeviceParamValService.insertBaseDeviceParamVal(rec);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private BaseDeviceParamVal buildParamVal(String paramCode, String deviceCode, Long deviceId,
|
|
|
|
|
|
|
|
String paramName, String paramValue, Date time) {
|
|
|
|
|
|
|
|
BaseDeviceParamVal v = new BaseDeviceParamVal();
|
|
|
|
|
|
|
|
v.setParamCode(paramCode);
|
|
|
|
|
|
|
|
v.setDeviceCode(deviceCode);
|
|
|
|
|
|
|
|
v.setDeviceId(deviceId);
|
|
|
|
|
|
|
|
v.setParamName(paramName);
|
|
|
|
|
|
|
|
v.setParamValue(paramValue);
|
|
|
|
|
|
|
|
v.setCollectTime(time);
|
|
|
|
|
|
|
|
v.setRecordTime(time);
|
|
|
|
|
|
|
|
return v;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* PDA-报修
|
|
|
|
* PDA-报修
|
|
|
|
* <p>
|
|
|
|
* <p>
|
|
|
|
@ -236,6 +345,8 @@ public class DmsMobileController extends BaseController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}*/
|
|
|
|
}*/
|
|
|
|
dmsBillsFaultInstance.setFileUrls(fileUrls);
|
|
|
|
dmsBillsFaultInstance.setFileUrls(fileUrls);
|
|
|
|
|
|
|
|
// PDA发起的报修默认视为已审批通过,避免进入待审批状态
|
|
|
|
|
|
|
|
dmsBillsFaultInstance.setApproveStatus("2");
|
|
|
|
return success(dmsBillsFaultInstanceService.insertDmsBillsFaultInstance(dmsBillsFaultInstance));
|
|
|
|
return success(dmsBillsFaultInstanceService.insertDmsBillsFaultInstance(dmsBillsFaultInstance));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -321,8 +432,8 @@ public class DmsMobileController extends BaseController {
|
|
|
|
* - 触发断点1和断点2,确保数据完整性
|
|
|
|
* - 触发断点1和断点2,确保数据完整性
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@PostMapping("/startRepair")
|
|
|
|
@PostMapping("/startRepair")
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public AjaxResult startRepair(@RequestBody DmsFaultInstanceActivity dmsFaultInstanceActivity) {
|
|
|
|
public AjaxResult startRepair(@RequestBody DmsFaultInstanceActivity dmsFaultInstanceActivity) {
|
|
|
|
try {
|
|
|
|
|
|
|
|
Long repairInstanceId = dmsFaultInstanceActivity.getRepairInstanceId();
|
|
|
|
Long repairInstanceId = dmsFaultInstanceActivity.getRepairInstanceId();
|
|
|
|
String repairer = dmsFaultInstanceActivity.getRepairer();
|
|
|
|
String repairer = dmsFaultInstanceActivity.getRepairer();
|
|
|
|
|
|
|
|
|
|
|
|
@ -402,10 +513,6 @@ public class DmsMobileController extends BaseController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return success(result);
|
|
|
|
return success(result);
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
log.error("PDA开始维修失败", e);
|
|
|
|
|
|
|
|
return error("开始维修失败:" + e.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@ -417,8 +524,8 @@ public class DmsMobileController extends BaseController {
|
|
|
|
* - 触发断点3,确保数据完整性
|
|
|
|
* - 触发断点3,确保数据完整性
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@PostMapping("/completeRepair")
|
|
|
|
@PostMapping("/completeRepair")
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public AjaxResult completeRepair(DmsFaultInstanceActivity dmsFaultInstanceActivity, @RequestParam(value = "files", required = false) List<MultipartFile> files) throws JsonProcessingException {
|
|
|
|
public AjaxResult completeRepair(DmsFaultInstanceActivity dmsFaultInstanceActivity, @RequestParam(value = "files", required = false) List<MultipartFile> files) throws JsonProcessingException {
|
|
|
|
try {
|
|
|
|
|
|
|
|
Long repairInstanceId = dmsFaultInstanceActivity.getRepairInstanceId();
|
|
|
|
Long repairInstanceId = dmsFaultInstanceActivity.getRepairInstanceId();
|
|
|
|
String repairer = dmsFaultInstanceActivity.getRepairer();
|
|
|
|
String repairer = dmsFaultInstanceActivity.getRepairer();
|
|
|
|
|
|
|
|
|
|
|
|
@ -427,6 +534,8 @@ public class DmsMobileController extends BaseController {
|
|
|
|
// ========== 步骤1:原有逻辑 - 设置确认信息和解析配件 ==========
|
|
|
|
// ========== 步骤1:原有逻辑 - 设置确认信息和解析配件 ==========
|
|
|
|
dmsFaultInstanceActivity.setRepairConfirm(2);
|
|
|
|
dmsFaultInstanceActivity.setRepairConfirm(2);
|
|
|
|
dmsFaultInstanceActivity.setConfirmTime(new Date());
|
|
|
|
dmsFaultInstanceActivity.setConfirmTime(new Date());
|
|
|
|
|
|
|
|
// 标记完成节点,确保维修内容/安全措施等信息持久化并可回显
|
|
|
|
|
|
|
|
dmsFaultInstanceActivity.setProcessActivityId(1021L);
|
|
|
|
String parts1 = dmsFaultInstanceActivity.getParts1();
|
|
|
|
String parts1 = dmsFaultInstanceActivity.getParts1();
|
|
|
|
if (parts1 != null && !parts1.isEmpty()) {
|
|
|
|
if (parts1 != null && !parts1.isEmpty()) {
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
|
@ -448,7 +557,8 @@ public class DmsMobileController extends BaseController {
|
|
|
|
updateOrder.setWorkOrderId(workOrder.getWorkOrderId());
|
|
|
|
updateOrder.setWorkOrderId(workOrder.getWorkOrderId());
|
|
|
|
updateOrder.setOrderStatus("3"); // 已完成
|
|
|
|
updateOrder.setOrderStatus("3"); // 已完成
|
|
|
|
updateOrder.setActualEndTime(new Date());
|
|
|
|
updateOrder.setActualEndTime(new Date());
|
|
|
|
updateOrder.setRepairResult(dmsFaultInstanceActivity.getRepairContent());
|
|
|
|
updateOrder.setRepairResult("1"); // 维修结果:1-成功
|
|
|
|
|
|
|
|
updateOrder.setRepairNotes(dmsFaultInstanceActivity.getRepairContent()); // 维修内容存到维修说明
|
|
|
|
dmsRepairWorkOrderService.updateDmsRepairWorkOrder(updateOrder);
|
|
|
|
dmsRepairWorkOrderService.updateDmsRepairWorkOrder(updateOrder);
|
|
|
|
log.info("PDA更新维修工单[{}]状态为已完成", workOrder.getWorkOrderCode());
|
|
|
|
log.info("PDA更新维修工单[{}]状态为已完成", workOrder.getWorkOrderCode());
|
|
|
|
|
|
|
|
|
|
|
|
@ -474,8 +584,9 @@ public class DmsMobileController extends BaseController {
|
|
|
|
// 维修时间
|
|
|
|
// 维修时间
|
|
|
|
record.setStartTime(workOrder.getActualStartTime());
|
|
|
|
record.setStartTime(workOrder.getActualStartTime());
|
|
|
|
record.setEndTime(new Date());
|
|
|
|
record.setEndTime(new Date());
|
|
|
|
// 维修内容
|
|
|
|
// 维修结果和维修方法
|
|
|
|
record.setRepairResult(dmsFaultInstanceActivity.getRepairContent());
|
|
|
|
record.setRepairResult("1"); // 维修结果:1-成功
|
|
|
|
|
|
|
|
record.setRepairMethod(dmsFaultInstanceActivity.getRepairContent()); // 维修内容存到维修方法
|
|
|
|
// 默认未存档
|
|
|
|
// 默认未存档
|
|
|
|
record.setIsArchived("0");
|
|
|
|
record.setIsArchived("0");
|
|
|
|
|
|
|
|
|
|
|
|
@ -498,10 +609,6 @@ public class DmsMobileController extends BaseController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return success(result);
|
|
|
|
return success(result);
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
log.error("PDA完成维修失败", e);
|
|
|
|
|
|
|
|
return error("完成维修失败:" + e.getMessage());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|