diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java index 1fad4e5c..706ab5e1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairWorkOrderController.java @@ -93,7 +93,7 @@ public class EquRepairWorkOrderController extends BaseController { @Log(title = "维修工单", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody EquRepairWorkOrder equRepairWorkOrder) { - return toAjax(equRepairWorkOrderService.updateEquRepairWorkOrder(equRepairWorkOrder)); + return equRepairWorkOrderService.updateEquRepairWorkOrder(equRepairWorkOrder); } /** @@ -121,8 +121,7 @@ public class EquRepairWorkOrderController extends BaseController { @RequiresPermissions("device:repairOrder:write") @PostMapping("/write") public AjaxResult write(@RequestBody EquRepairWorkOrder equRepairWorkOrder) { - equRepairWorkOrder.setWorkCost(equRepairWorkOrder.getWorkCost()); - return toAjax(equRepairWorkOrderService.updateEquRepairWorkOrder(equRepairWorkOrder)); + return equRepairWorkOrderService.write(equRepairWorkOrder); } //获取维修人员列表 diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java index 45f046b6..a76a40bd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java @@ -107,4 +107,6 @@ public interface EquSpareApplyMapper { * @return */ BigDecimal getSparePartsCost(String orderCode); + + List selectRepairSparePartsRecord2(EquRepairWorkOrder equRepairWorkOrder); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java index 47f4ecb5..72efe063 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairWorkOrderService.java @@ -2,6 +2,7 @@ package com.op.device.service; import java.util.List; +import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquEquipment; import com.op.device.domain.EquRepairWorkOrder; import com.op.device.domain.EquTeamUser; @@ -43,7 +44,8 @@ public interface IEquRepairWorkOrderService { * @param equRepairWorkOrder 维修工单 * @return 结果 */ - public int updateEquRepairWorkOrder(EquRepairWorkOrder equRepairWorkOrder); + public AjaxResult updateEquRepairWorkOrder(EquRepairWorkOrder equRepairWorkOrder); + public AjaxResult write(EquRepairWorkOrder equRepairWorkOrder); /** * 批量删除维修工单 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index 81c0d674..166d57bc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -89,7 +89,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquOperationMapper equOperationMapper; - /** * 获取今日任务工单list-状态不为已完成 * @@ -331,7 +330,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equOrder.setUpdateBy(SecurityContextHolder.getUserName()); equOrder.setPlanPerson(SecurityContextHolder.getUserName());// 设置负责人 equOrder.setOrderEnd(DateUtils.getNowDate());// 设置检查时间结束 - equOrder.setOrderStart(DateUtils.getNowDate());// 设置检查时间开始 + equOrder.setOrderStart(DateUtils.getNowDate());// 设置检查时间开始,实际上不需要开始时间 // 是否存在报修单 boolean checkRepair = false; @@ -751,14 +750,31 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { try { + ////0.时间 + Date date = DateUtils.getNowDate(); + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + String formattedDate = dateFormat.format(date); + ////1.判断是否停机 EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); if (list.getWorkDownMachine().equals("1")) { - //维修真正停机时间 - equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); + equRepairWorkOrder.setActualDownEndTime(date);//维修真正停机时间 + } + equRepairWorkOrder.setWorkEndTime(date);//维修工单结束时间 + + //1.2判断字段里面是否为空,是空的用,用无替代 + if(equRepairWorkOrder.getWorkFaultDesc() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){//故障描述 + equRepairWorkOrder.setWorkFaultDesc("无"); + } + if(equRepairWorkOrder.getWorkReason() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){ //故障原因 + equRepairWorkOrder.setWorkFaultDesc("无"); + } + if(equRepairWorkOrder.getRepairMeasures() == null || equRepairWorkOrder.getRepairMeasures().equals("")){//故障措施 + equRepairWorkOrder.setRepairMeasures("无"); + } + if(equRepairWorkOrder.getWorkPerson() == null || equRepairWorkOrder.getWorkPerson().equals("")){//维修人 + equRepairWorkOrder.setWorkPerson("无"); } - //维修工单结束时间 - equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); ////2.计算维修工单用时 + 故障停机时间 if (list.getWorkStartTime() != null && equRepairWorkOrder.getWorkEndTime() != null) { @@ -772,8 +788,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { double workMinutes = ((workDateTime.until(workEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60; double workSeconds = ((workDateTime.until(workEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; double workHour = BigDecimal.valueOf(workHours + workMinutes + workSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); - //塞入维修用时 - equRepairWorkOrder.setWorkCostTime(String.valueOf(workHour)+"小时"); + equRepairWorkOrder.setWorkCostTime(String.valueOf(workHour)+"小时"); //塞入维修用时 ////2.2 计算故障停机时间差值 //报修的故障时间 和 快速工单的故障开始时间 @@ -793,19 +808,18 @@ public class DevicePDAServiceImpl implements IDevicePDAService { double downHour = BigDecimal.valueOf(downHours + downMinutes + downSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); equRepairWorkOrder.setFaultDownTime(String.valueOf(downHour)+"小时"); - ////2.2查询当日完好率报表 + ////完好率报表 + ////3.1查询当日完好率报表 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode()); - ////2.3修改完好率报表 + ////3.2修改完好率报表 if (equOperation != null) { if (list.getWorkDownMachine().equals("1")) { DecimalFormat df = new DecimalFormat("#.##"); - //实际运行时间 = 实际运行时间 - 故障停机时间 - double result = Double.parseDouble(equOperation.getActualOperationTime()) - downHour; - //故障时间 = 原来的故障停机时间 + 这次的故障停机时间 - double faultTime = Double.parseDouble(equOperation.getFaultTime()) + downHour; + double result = Double.parseDouble(equOperation.getActualOperationTime()) - downHour;//实际运行时间 = 实际运行时间 - 故障停机时间 + double faultTime = Double.parseDouble(equOperation.getFaultTime()) + downHour;//故障时间 = 原来的故障停机时间 + 这次的故障停机时间 BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障停机时间 BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 @@ -815,12 +829,65 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1 equOperation.setUpdateBy(SecurityUtils.getUsername()); - equOperation.setUpdateTime(DateUtils.getNowDate()); + equOperation.setUpdateTime(date); + + String GZMS = equOperation.getFailureDescription();//故障描述 + String GZYY = equOperation.getReasonAnalyze();//故障原因 + String GZCS = equOperation.getHandlingMethod();//维修措施 + String WXR = equOperation.getRepairPerson();//维修人 + if (GZMS != null) { + equOperation.setFailureDescription(GZMS + formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); + } else { + equOperation.setFailureDescription(formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); + } + if (GZYY != null) { + equOperation.setReasonAnalyze(GZYY + formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); + } else { + equOperation.setReasonAnalyze(formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); + } + if (GZCS != null) { + equOperation.setHandlingMethod(GZCS + formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); + } else { + equOperation.setHandlingMethod(formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); + } + if (WXR != null) { + equOperation.setRepairPerson(WXR + formattedDate + ":" + SecurityUtils.getUsername() + ";"); + } else { + equOperation.setRepairPerson(formattedDate + ":" + SecurityUtils.getUsername() + ";"); + } + + ////4.修改设备状态 由维修中改为正常运行 ;设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(list.getEquipmentCode()); + EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode()); + String equStatus = ""; + if(equ.getEquipmentStatus().equals("0")){ + equStatus = "设备状态由故障转为正常运行;"; + }else if(equ.getEquipmentStatus().equals("2")){ + equStatus = "设备状态由维修中转为正常运行;"; + } + else if(equ.getEquipmentStatus().equals("1")){ + equStatus = "设备状态正常运行;"; + } + // else if(equ.getEquipmentStatus().equals("4")){ + // equStatus = "设备状态由维修保养中转为保养中;"; + // } + + if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) { + equOperation.setEquStatusDes(formattedDate + ":" + equStatus); + } else { + equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述 + } + + if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){ + equEquipment.setEquipmentStatus("1"); + } + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); equOperationMapper.updateEquOperation(equOperation); } } - ////3.更新每一项点检/巡检检查项信息 + ////5.更新每一项点检/巡检检查项信息 if (StringUtils.isNotEmpty(equRepairWorkOrder.getDetailList())) { List checkLists = equRepairWorkOrder.getDetailList(); for (EquOrder checkList : checkLists) { @@ -828,12 +895,10 @@ public class DevicePDAServiceImpl implements IDevicePDAService { checkList.setUpdateTime(DateUtils.getNowDate()); List standardLists = checkList.getStandardList(); for (EquOrderStandard standardList : standardLists) { - //先删除每个检查项标准图片 String imageType = "4"; - equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId(), imageType); - //图片批量新增 + equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId(), imageType);//先删除每个检查项标准图片 if (StringUtils.isNotEmpty(standardList.getPicturePath())) { - String[] ids = standardList.getPicturePath().split(","); + String[] ids = standardList.getPicturePath().split(","); //图片批量新增 List files = new ArrayList<>(); BaseFileData file = null; for (String id : ids) { @@ -844,8 +909,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { file.setSourceId(standardList.getId()); file.setCreateBy(SecurityUtils.getUsername()); file.setCreateTime(new Date()); - //图片类型 维修后 - file.setImageType("4"); + file.setImageType("4");//图片类型 维修后 files.add(file); } equOrderStandardMapper.insertBaseFileBatch(files); @@ -860,37 +924,28 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } } - ////4.新建申领单 + ////6.新建申领单 if (StringUtils.isNotEmpty(equRepairWorkOrder.getApplyList())) { List equSpareApplies = equRepairWorkOrder.getApplyList(); for (EquSpareApply equSpareApply : equSpareApplies) { - //生成领料单code - String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber());//生成领料单code String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); - //十五位单号 - equSpareApply.setApplyCode("AW" + code + serialNum); + equSpareApply.setApplyCode("AW" + code + serialNum); //十五位单号 equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); //备品备件规格型号!!!!! //equSpareApply.setSpareModel(equSpareApply.getSpareMode()); - //备件编码 - equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); - //备件名称 - equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); - //申领人 - equSpareApply.setApplyPeople(SecurityUtils.getUsername()); + equSpareApply.setSpareCode(equSpareApply.getMaterialCode());//备件编码 + equSpareApply.setSpareName(equSpareApply.getMaterialDesc());//备件名称 + equSpareApply.setApplyPeople(SecurityUtils.getUsername()); //申领人 equSpareApply.setCreateBy(SecurityUtils.getUsername()); equSpareApply.setCreateTime(DateUtils.getNowDate()); - //申领时间 - equSpareApply.setApplyTime(DateUtils.getNowDate()); - //使用设备 - equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode()); - //关联维修工单号 - equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode()); + equSpareApply.setApplyTime(DateUtils.getNowDate());//申领时间 + equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode());//使用设备 + equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode());//关联维修工单号 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - //工厂号 //备件费用????? - equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", ""));//工厂号 equSpareApplyMapper.insertEquSpareApply(equSpareApply); ////更新完备品申领单后,更新库存 @@ -898,14 +953,12 @@ public class DevicePDAServiceImpl implements IDevicePDAService { sparePartsLedger.setStorageId(equSpareApply.getStorageId()); BigDecimal applyNum = equSpareApply.getSpareQuantity(); BigDecimal amount = equSpareApply.getAmount(); - //减去库存 - sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedger.setAmount(amount.subtract(applyNum));//减去库存 sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); } } - ////5.增加多个维修后照片 - //先删除每个维修工单对应图片 + ////7.增加多个维修后照片 先删除每个维修工单对应图片 equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { String[] ids = equRepairWorkOrder.getFileList().split(","); @@ -919,36 +972,23 @@ public class DevicePDAServiceImpl implements IDevicePDAService { file.setSourceId(equRepairWorkOrder.getWorkId()); file.setCreateBy(SecurityUtils.getUsername()); file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); + file.setImageType("4");//维修后 files.add(file); } equRepairWorkOrderMapper.insertBaseFileBatch(files); } - ////6.更新维修工单 - //维修状态 - equRepairWorkOrder.setWorkStatus("1"); - //维修人 - equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); - //维修人员联系方式TODO!!!! - equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + ////8.更新维修工单 + equRepairWorkOrder.setWorkStatus("1"); //维修状态 + equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername());//维修人 + equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername());//维修人员联系方式TODO!!!! equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); - //维修工单里面的设备名 简化TODO - EquRepairWorkOrder example = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); - // 费用 // BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); // BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); // equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); - - ////7.修改设备状态 由维修中改为正常运行 - EquEquipment equEquipment = new EquEquipment(); - equEquipment.setEquipmentCode(example.getEquipmentCode()); - equEquipment.setEquipmentStatus("1"); - equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); return success("提交成功,维修完成!"); } catch (Exception e) { return error("提交失败!"); @@ -1080,5 +1120,4 @@ public class DevicePDAServiceImpl implements IDevicePDAService { List list = equFaultReasonMapper.selectEquFaultReasonList(equFaultReason); return success(list); } - } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index a5ff390c..6a70be32 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -13,18 +13,23 @@ import com.op.common.core.domain.BaseFileData; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; import com.op.device.domain.*; import com.op.device.mapper.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.device.service.IEquRepairWorkOrderService; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; +import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; + /** * 维修工单Service业务层处理 @@ -52,6 +57,9 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService @Autowired private EquOperationMapper equOperationMapper; + @Autowired + private EquEquipmentMapper equEquipmentMapper; + /** * 查询维修工单 * @@ -160,6 +168,21 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService return result; } + /** + * 修改维修工单 + * + * @param equRepairWorkOrder 维修工单 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public AjaxResult updateEquRepairWorkOrder(EquRepairWorkOrder equRepairWorkOrder) { + equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + return success("修改成功!"); + } + /** * 修改维修工单 * @@ -168,18 +191,34 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService */ @Override @DS("#header.poolName") - public int updateEquRepairWorkOrder(EquRepairWorkOrder equRepairWorkOrder) { +// @Transactional//增加事务注解,出错时自动回滚 + public AjaxResult write(EquRepairWorkOrder equRepairWorkOrder) { + ////0.今日时间 Date date = DateUtils.getNowDate(); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String formattedDate = dateFormat.format(date); - //1.是否停机 + + ////1.塞入值 + //1.1判断是否停机,塞入更新时间更新人 if (equRepairWorkOrder.getWorkDownMachine().equals("0")) { equRepairWorkOrder.setWorkPlanDownTime(null); } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(date); - //2.先删除每个维修工单对应图片,再新增照片 + //1.2判断字段里面是否为空,是空的用,用无替代 + if(equRepairWorkOrder.getWorkFaultDesc() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){//故障描述 + equRepairWorkOrder.setWorkFaultDesc("无"); + } + if(equRepairWorkOrder.getWorkReason() == null || equRepairWorkOrder.getWorkFaultDesc().equals("")){ //故障原因 + equRepairWorkOrder.setWorkFaultDesc("无"); + } + if(equRepairWorkOrder.getRepairMeasures() == null || equRepairWorkOrder.getRepairMeasures().equals("")){//故障措施 + equRepairWorkOrder.setRepairMeasures("无"); + } + if(equRepairWorkOrder.getWorkPerson() == null || equRepairWorkOrder.getWorkPerson().equals("")){//维修人 + equRepairWorkOrder.setWorkPerson("无"); + } + + ////2.先删除每个维修工单对应图片,再新增照片 equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); if (StringUtils.isNotEmpty(equRepairWorkOrder.getAfterRepairFile())) { String[] ids = equRepairWorkOrder.getAfterRepairFile().split(","); @@ -200,7 +239,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equRepairWorkOrderMapper.insertBaseFileBatch(files); } - //3.更新标准表 + ////3.更新标准表,更新每个检查项信息 for (EquOrderStandard equOrderStandard : equRepairWorkOrder.getStandardList()) { //先删除每个检查项标准图片 String imageType = "4"; @@ -224,77 +263,114 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService } equOrderStandardMapper.insertBaseFileBatch(files); } - equOrderStandard.setUpdateBy(SecurityUtils.getUsername()); equOrderStandard.setUpdateTime(DateUtils.getNowDate()); equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard); } - //5.更新设备状态 + //5.更新运行表 + 更新设备表 if (equRepairWorkOrder.getWorkStatus().equals("1")) { - //5.1修改设备状态 由维修中改为正常运行 - EquEquipment equEquipment = new EquEquipment(); - equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode()); - equEquipment.setEquipmentStatus("1"); - equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); - - //5.2维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时 - String hours = equRepairWorkOrder.getFaultDownTime().substring(0, equRepairWorkOrder.getFaultDownTime().length() - 2); //截掉后两位 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); - EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode()); - - if (equOperation != null) { - if (equRepairWorkOrder.getWorkDownMachine().equals("1")) { - DecimalFormat df = new DecimalFormat("#.##"); - //实际运行时间 = 实际运行时间 - 故障时间 - double result = Double.parseDouble(equOperation.getActualOperationTime()) - Double.parseDouble(hours); - //故障时间 = 原来的故障时间 + 这次的故障时间 - double faultTime = Double.parseDouble(equOperation.getFaultTime()) + Double.parseDouble(hours); - BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障时间 - BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 - equOperation.setFaultTime(String.valueOf(faultTime));//故障时间 - equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 - //故障率计算(故障时间/运行时间) - equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%"); - equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//停机次数加1 - } + int updateOperation = updateEquOperation(equRepairWorkOrder,date); + } + // 备件费用 +// BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); +// BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); +// equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + return success("提交成功,维修完成!"); + } - //5.3更新 - equOperation.setUpdateBy(SecurityUtils.getUsername());//更新人 - equOperation.setUpdateTime(DateUtils.getNowDate());//更新时间 - //故障次数增加,但是停机次数可能不增加 - equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1 - //取当天的 - String GZMS = equOperation.getFailureDescription(); - String GZYY = equOperation.getReasonAnalyze(); - String GZCS = equOperation.getHandlingMethod(); - if(GZMS != null){ - equOperation.setFailureDescription(GZMS + formattedDate + ":"+ equRepairWorkOrder.getWorkFaultDesc() + ";");//故障描述 - }else{ - equOperation.setFailureDescription(formattedDate + ":"+ equRepairWorkOrder.getWorkFaultDesc() + ";");//故障描述 - } + //5.更新运行表 + 设备表 + private int updateEquOperation(EquRepairWorkOrder equRepairWorkOrder,Date date) { + //5.1时间 + SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); + String formattedDate = dateFormat.format(date); - if(GZYY != null){ - equOperation.setReasonAnalyze(GZYY + formattedDate + ":"+ equRepairWorkOrder.getWorkReason() + ";");//故障原因 - }else{ - equOperation.setReasonAnalyze(formattedDate + ":"+ equRepairWorkOrder.getWorkReason() + ";");//故障原因 - } + //5.2维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时 + if(equRepairWorkOrder.getWorkDownMachine().equals("0")){ + equRepairWorkOrder.setFaultDownTime("0.0小时"); + } + String hours = equRepairWorkOrder.getFaultDownTime().substring(0, equRepairWorkOrder.getFaultDownTime().length() - 2); //截掉后两位 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); + EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode()); + if (equOperation != null) { + if (equRepairWorkOrder.getWorkDownMachine().equals("1")) { + DecimalFormat df = new DecimalFormat("#.##"); + //实际运行时间 = 实际运行时间 - 故障时间 + double result = Double.parseDouble(equOperation.getActualOperationTime()) - Double.parseDouble(hours); + //故障时间 = 原来的故障时间 + 这次的故障时间 + double faultTime = Double.parseDouble(equOperation.getFaultTime()) + Double.parseDouble(hours); + BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障时间 + BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 + equOperation.setFaultTime(String.valueOf(faultTime));//故障时间 + equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 + //故障率计算(故障时间/运行时间) + equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%"); + equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//停机次数加1 + } - if(GZCS != null){ - equOperation.setHandlingMethod(GZCS + formattedDate + ":"+ equRepairWorkOrder.getRepairMeasures() + ";");//维修措施 - }else{ - equOperation.setHandlingMethod(formattedDate + ":"+ equRepairWorkOrder.getRepairMeasures() + ";");//维修措施 - } - equOperationMapper.updateEquOperation(equOperation); + equOperation.setUpdateBy(SecurityUtils.getUsername());//更新人 + equOperation.setUpdateTime(DateUtils.getNowDate());//更新时间 + + //故障次数增加,但是停机次数可能不增加 + equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1 + + //取当天的 + String GZMS = equOperation.getFailureDescription();//故障描述 + String GZYY = equOperation.getReasonAnalyze();//故障原因 + String GZCS = equOperation.getHandlingMethod();//维修措施 + String WXR = equOperation.getRepairPerson();//维修人 + if (GZMS != null) { + equOperation.setFailureDescription(GZMS + formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); + } else { + equOperation.setFailureDescription(formattedDate + ":" + equRepairWorkOrder.getWorkFaultDesc() + ";"); + } + if (GZYY != null) { + equOperation.setReasonAnalyze(GZYY + formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); + } else { + equOperation.setReasonAnalyze(formattedDate + ":" + equRepairWorkOrder.getWorkReason() + ";"); + } + if (GZCS != null) { + equOperation.setHandlingMethod(GZCS + formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); + } else { + equOperation.setHandlingMethod(formattedDate + ":" + equRepairWorkOrder.getRepairMeasures() + ";"); + } + if (WXR != null) { + equOperation.setRepairPerson(WXR + formattedDate + ":" + equRepairWorkOrder.getWorkPerson() + ";"); + } else { + equOperation.setRepairPerson(formattedDate + ":" + equRepairWorkOrder.getWorkPerson() + ";"); } } - // 备件费用 -// BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); -// BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); -// equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); - return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + //5.3设备状态描述 由什么状态转为什么状态,修改设备状态 由维修中改为正常运行 + EquEquipment equEquipment = new EquEquipment(); + equEquipment.setEquipmentCode(equRepairWorkOrder.getEquipmentCode()); + EquEquipment equ = equEquipmentMapper.selectEquEquipmentByEquEquipmentCode(equEquipment.getEquipmentCode()); + String equStatus = ""; + if(equ.getEquipmentStatus().equals("0")){ + equStatus = "设备状态由故障转为正常运行;"; + }else if(equ.getEquipmentStatus().equals("2")){ + equStatus = "设备状态由维修中转为正常运行;"; + } +// else if(equ.getEquipmentStatus().equals("4")){ +// equStatus = "设备状态由维修保养中转为保养中;"; +// } + + if (equOperation.getEquStatusDes() == null || equOperation.getEquStatusDes().equals("")) { + equOperation.setEquStatusDes(formattedDate + ":" + equStatus); + } else { + equOperation.setEquStatusDes(equOperation.getEquStatusDes() + formattedDate + equStatus);//设备状态描述 + } + + if(equ.getEquipmentStatus().equals("0") || equ.getEquipmentStatus().equals("2")){ + equEquipment.setEquipmentStatus("1"); + } +// else if(equ.getEquipmentStatus().equals("4")){//如果是维修保养中,改为保养中 +// equEquipment.setEquipmentStatus("3"); +// } + equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); + return equOperationMapper.updateEquOperation(equOperation); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java index f96f3c02..3a59b697 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java @@ -235,6 +235,10 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { @Override @DS("#header.poolName") public List selectRepairSparePartsRecord(EquRepairWorkOrder equRepairWorkOrder) { - return equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); + if(equRepairWorkOrder.getCreateTime() != null){ + return equSpareApplyMapper.selectRepairSparePartsRecord2(equRepairWorkOrder); + }else{ + return equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); + } } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml index c357cfd8..7ed12fde 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquEquipmentMapper.xml @@ -45,11 +45,12 @@ + - select equipment_id, equipment_code, equipment_name, equipment_brand, equipment_spec, equipment_type_id, equipment_type_code, equipment_type_name, workshop_id, workshop_code, workshop_name, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, workshop_section, equipment_location, hourly_unit_price, equipment_barcode, equipment_barcode_image, manufacturer, supplier, use_life, buy_time, asset_original_value, net_asset_value, asset_head, fixed_asset_code, department, unit_working_hours, plc_ip, plc_port, del_flag, sap_asset,equipment_category from base_equipment + select equipment_id, equipment_code, equipment_name, equipment_brand, equipment_spec, equipment_type_id, equipment_type_code, equipment_type_name, workshop_id, workshop_code, workshop_name, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, workshop_section, equipment_location, hourly_unit_price, equipment_barcode, equipment_barcode_image, manufacturer, supplier, use_life, buy_time, asset_original_value, net_asset_value, asset_head, fixed_asset_code, department, unit_working_hours, plc_ip, plc_port, del_flag, sap_asset,equipment_status,equipment_category from base_equipment + + + and work_code = #{workCode} + and spare_use_equipment = #{equipmentCode} + and del_flag = '0' + and CONVERT(varchar(10),#{createTime},120) = CONVERT(date,create_time) + + ORDER BY apply_time DESC + +