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