2024-5-13 设备优化

master
A0010407 11 months ago
parent 0262e1237a
commit f70f56fa9c

@ -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);
}
//获取维修人员列表

@ -107,4 +107,6 @@ public interface EquSpareApplyMapper {
* @return
*/
BigDecimal getSparePartsCost(String orderCode);
List<EquSpareApply> selectRepairSparePartsRecord2(EquRepairWorkOrder equRepairWorkOrder);
}

@ -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);
/**
*

@ -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<EquOrder> checkLists = equRepairWorkOrder.getDetailList();
for (EquOrder checkList : checkLists) {
@ -828,12 +895,10 @@ public class DevicePDAServiceImpl implements IDevicePDAService {
checkList.setUpdateTime(DateUtils.getNowDate());
List<EquOrderStandard> 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<BaseFileData> 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<EquSpareApply> 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<EquFaultReason> list = equFaultReasonMapper.selectEquFaultReasonList(equFaultReason);
return success(list);
}
}

@ -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);
}
/**

@ -235,6 +235,10 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService {
@Override
@DS("#header.poolName")
public List<EquSpareApply> selectRepairSparePartsRecord(EquRepairWorkOrder equRepairWorkOrder) {
return equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder);
if(equRepairWorkOrder.getCreateTime() != null){
return equSpareApplyMapper.selectRepairSparePartsRecord2(equRepairWorkOrder);
}else{
return equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder);
}
}
}

@ -45,11 +45,12 @@
<result property="plcPort" column="plc_port"/>
<result property="delFlag" column="del_flag"/>
<result property="sapAsset" column="sap_asset"/>
<result property="equipmentStatus" column="equipment_status"/>
<result property="equipmentCategory" column="equipment_category"/>
</resultMap>
<sql id="selectEquEquipmentVo">
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
</sql>
<select id="selectEquEquipmentList" parameterType="EquEquipment" resultMap="EquEquipmentResult">

@ -41,28 +41,18 @@
<where>
<if test="applyCode != null and applyCode != ''">and apply_code like concat('%', #{applyCode}, '%')</if>
<if test="workCode != null and workCode != ''">and work_code like concat('%', #{workCode}, '%')</if>
<if test="parentCode != null and parentCode != ''">and parent_code like concat('%', #{parentCode}, '%')
</if>
<if test="parentCode != null and parentCode != ''">and parent_code like concat('%', #{parentCode}, '%')</if>
<if test="applyType != null and applyType != ''">and apply_type like concat('%', #{applytype}, '%')</if>
<if test="spareCode != null and spareCode != ''">and spare_code like concat('%', #{spareCode}, '%')</if>
<if test="spareName != null and spareName != ''">and spare_name like concat('%', #{spareName}, '%')</if>
<if test="spareModel != null and spareModel != ''">and spare_model like concat('%', #{spareModel}, '%')
</if>
<if test="spareModel != null and spareModel != ''">and spare_model like concat('%', #{spareModel}, '%')</if>
<if test="spareQuantity != null ">and spare_quantity like concat('%', #{spareQuantity}, '%')</if>
<if test="spareGroupLine != null and spareGroupLine != ''">and spare_group_line like concat('%',
#{spareGroupLine}, '%')
</if>
<if test="spareUseEquipment != null and spareUseEquipment != ''">and spare_use_equipment like concat('%',
#{spareUseEquipment}, '%')
</if>
<if test="spareGroupLine != null and spareGroupLine != ''">and spare_group_line like concat('%',#{spareGroupLine}, '%')</if>
<if test="spareUseEquipment != null and spareUseEquipment != ''">and spare_use_equipment like concat('%',#{spareUseEquipment}, '%')</if>
<if test="applyTimeStart != null ">and CONVERT(date,apply_time) >= #{applyTimeStart}</if>
<if test="applyTimeEnd != null ">and #{applyTimeEnd} >= CONVERT(date,apply_time)</if>
<if test="applyPeople != null and applyPeople != ''">and apply_people like concat('%', #{applyPeople},
'%')
</if>
<if test="applyApprovePeople != null and applyApprovePeople != ''">and apply_approve_people like
concat('%', #{applyApprovePeople}, '%')
</if>
<if test="applyPeople != null and applyPeople != ''">and apply_people like concat('%', #{applyPeople},'%')</if>
<if test="applyApprovePeople != null and applyApprovePeople != ''">and apply_approve_people likeconcat('%', #{applyApprovePeople}, '%')</if>
<if test="attr1 != null and attr1 != ''">and attr1 = #{attr1}</if>
<if test="attr2 != null and attr2 != ''">and attr2 = #{attr2}</if>
<if test="attr3 != null and attr3 != ''">and attr3 = #{attr3}</if>
@ -207,6 +197,17 @@
update equ_spare_apply set del_flag = '1' where apply_id = #{id}
</delete>
<select id="selectRepairSparePartsRecord2" parameterType="EquRepairWorkOrder" resultMap="EquSpareApplyResult">
<include refid="selectEquSpareApplyVo"/>
<where>
<if test="workCode != null and workCode != ''">and work_code = #{workCode}</if>
<if test="equipmentCode != null and equipmentCode != ''">and spare_use_equipment = #{equipmentCode}</if>
and del_flag = '0'
and CONVERT(varchar(10),#{createTime},120) = CONVERT(date,create_time)
</where>
ORDER BY apply_time DESC
</select>
<select id="selectRepairSparePartsRecord" parameterType="EquRepairWorkOrder" resultMap="EquSpareApplyResult">
<include refid="selectEquSpareApplyVo"/>
<where>

Loading…
Cancel
Save