From 34e131289b241eff751accd95b58bebb960714cb Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 15:13:35 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E6=97=B6=E5=80=99?= =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=AD=90=E6=AF=8D=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/mes/mapper/MesReportWorkMapper.java | 2 ++ .../service/impl/IWCInterfaceServiceImpl.java | 8 +++++-- .../mapper/mes/MesReportWorkMapper.xml | 4 ++++ .../java/com/op/open/mapper/OpenMapper.java | 2 ++ .../op/open/service/impl/OpenServiceImpl.java | 21 ++++++------------- .../main/resources/mapper/open/OpenMapper.xml | 4 ++++ 6 files changed, 24 insertions(+), 17 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index 74694cd0d..00ef2696c 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -108,4 +108,6 @@ public interface MesReportWorkMapper { List getMesListEquip(EquEquipmentDTO qo); List getBatchList(ProOrderWorkorder proOrderWorkorder); + + List getSapWorkOrder(String workorderCode); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 6ef93e070..0c42940d3 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -336,8 +336,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); //工单完成,关闭工单 - R r2= remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); - logger.info("工单"+work.getWorkorderCodeSap()+"sap关闭"+r2.getCode()+",返回信息:"+r2.getMsg()); + List sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 + for(String sapWorkOrder:sapWorkOrders){ + R r2= remoteSapService.sapCloseOrder(sapWorkOrder); + logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); + } + work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); //pro_work_order status->w3报工--belong_work_order diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index a4fcf4a93..34401f485 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -443,6 +443,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where powb.del_flag = '0' and pow.del_flag = '0' and pow.workorder_code = #{workorderCode} + insert into mes_report_work diff --git a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java index 9ab9d523e..ab2138534 100644 --- a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java +++ b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java @@ -41,5 +41,7 @@ public interface OpenMapper { ProOrderWorkorderDTO getOrderByCode(String workorderCode); List getLGInfo(WCSDTO wcsDTO); + + List getSapWorkOrder(String workorderCode); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index f0e10cb36..49ba40346 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -204,9 +204,13 @@ public class OpenServiceImpl implements OpenService { "1".equals(work.getEndReport())//最终报工标识 ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); + //工单完成,关闭工单 - R rclose = remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); - logger.info("工单"+work.getWorkorderCodeSap()+"sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); + List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 + for(String sapWorkOrder:sapWorkOrders){ + R rclose = remoteSapService.sapCloseOrder(sapWorkOrder); + logger.info("工单"+work.getWorkorderCode()+",sapworkorder:"+sapWorkOrder+",sap关闭"+r.getCode()+",返回信息:"+r.getMsg()); + } work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); //pro_work_order status->w3报工--belong_work_order @@ -222,19 +226,6 @@ public class OpenServiceImpl implements OpenService { return openMapper.getLGInfo(wcsDTO); } -// //根据工单子单编码获取最顶级订单的母单 -// private ProOrderWorkorderDTO getTopOrder(String workorderCode) { -// //pro_order_workorder -// ProOrderWorkorderDTO topOrder = openMapper.getOrderByCode(workorderCode); -// while (!"0".equals(topOrder.getParentOrder()) && StringUtils.isNotEmpty(topOrder.getParentOrder())) { -// //pro_order_workorder -// topOrder = openMapper.getOrderByCode(topOrder.getParentOrder()); -// } -// return topOrder; -// } - - - public static void main(String args[]){ DateTimeFormatter ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate today = LocalDate.now(); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 4dd3944d3..40ab74cef 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -122,5 +122,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join pro_order_workorder pow on pw.workorder_id = pow.workorder_id where CONVERT(varchar(10),plan_time, 120) = #{reqTime} + From a6070a59723501101e8aafc77854848651f10bc7 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 27 Nov 2023 15:53:10 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E7=9C=8B=E6=9D=BF=E6=8E=A5=E5=8F=A3:?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=B7=A5=E5=8D=95init=E3=80=81=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AFinit=E3=80=81?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E8=B4=A8=E9=87=8Finit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceInterfaceController.java | 19 +++++ .../com/op/device/domain/vo/IEquipmentVO.java | 75 +++++++++++++++++++ .../device/domain/vo/IRepairWorkOrderVO.java | 71 ++++++++++++++++++ .../device/mapper/DeviceInterfaceMapper.java | 28 +++++++ .../service/IDeviceInterfaceService.java | 12 +++ .../impl/DeviceInterfaceServiceImpl.java | 67 +++++++++++++++-- .../mapper/device/DeviceInterfaceMapper.xml | 43 +++++++++++ 7 files changed, 308 insertions(+), 7 deletions(-) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java create mode 100644 op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java create mode 100644 op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index ae5352175..1e4a53c3b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -30,4 +30,23 @@ public class DeviceInterfaceController { return deviceInterfaceService.getRepairWorkOrder(); } + /** + * 获取设备信息 + * @return + */ + @GetMapping("/getEquipmentInfo") + public AjaxResult getEquipmentInfo() { + return deviceInterfaceService.getEquipmentInfo(); + } + + /** + * 获取设备维修质量TOP10 + * 设备维修质量:故障时间/故障次数 + * @return + */ + @GetMapping("/getRepairQuantity") + public AjaxResult getRepairQuantity() { + return deviceInterfaceService.getRepairQuantity(); + } + } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java new file mode 100644 index 000000000..fa8fa23d7 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java @@ -0,0 +1,75 @@ +package com.op.device.domain.vo; + +// 设备信息VO、设备维修质量VO +public class IEquipmentVO { + // 设备名称 + private String equipmentName; + // 设备编码 + private String equipmentCode; + // 所在部门 + private String department; + // 状态 + private String status; + // 设备故障率 + private Double failureRate; + // 设备有效利用率 + private Double utilizationRatio; + // 设备维修质量 + private Double rapairQuantity; + + public Double getRapairQuantity() { + return rapairQuantity; + } + + public void setRapairQuantity(Double rapairQuantity) { + this.rapairQuantity = rapairQuantity; + } + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentCode() { + return equipmentCode; + } + + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Double getFailureRate() { + return failureRate; + } + + public void setFailureRate(Double failureRate) { + this.failureRate = failureRate; + } + + public Double getUtilizationRatio() { + return utilizationRatio; + } + + public void setUtilizationRatio(Double utilizationRatio) { + this.utilizationRatio = utilizationRatio; + } +} diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java index 1151ebc66..b8416871a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java @@ -1,6 +1,77 @@ package com.op.device.domain.vo; +import java.util.Date; + // 看板维修工单返回VO public class IRepairWorkOrderVO { + // 设备名称 + private String equipmentName; + // 设备编码 + private String equipmentCode; + // 故障描述 + private String workFaultDesc; + // 维修班组 + private String teamName; + // 是否立即维修 + private String workHandle; + // 计划维修时间 + private Date workPlanTime; + // 设备位置 + private String equipmentLocation; + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentCode() { + return equipmentCode; + } + + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getWorkFaultDesc() { + return workFaultDesc; + } + + public void setWorkFaultDesc(String workFaultDesc) { + this.workFaultDesc = workFaultDesc; + } + + public String getTeamName() { + return teamName; + } + + public void setTeamName(String teamName) { + this.teamName = teamName; + } + + public String getWorkHandle() { + return workHandle; + } + + public void setWorkHandle(String workHandle) { + this.workHandle = workHandle; + } + + public Date getWorkPlanTime() { + return workPlanTime; + } + + public void setWorkPlanTime(Date workPlanTime) { + this.workPlanTime = workPlanTime; + } + + public String getEquipmentLocation() { + return equipmentLocation; + } + + public void setEquipmentLocation(String equipmentLocation) { + this.equipmentLocation = equipmentLocation; + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java new file mode 100644 index 000000000..d5e16ac35 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -0,0 +1,28 @@ +package com.op.device.mapper; + +import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.vo.IEquipmentVO; +import com.op.device.domain.vo.IRepairWorkOrderVO; + +import java.util.List; + +public interface DeviceInterfaceMapper { + + /** + * 查询待维修工单信息-看板 + * @return + */ + List selectEquRepairWorkOrderList(); + + /** + * 获取所有设备信息 + * @return + */ + List selectEquipmentList(); + + /** + * 获取维修工单中设备信息 + * @return + */ + List selectRepairEquipmentList(); +} diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index e8d229182..da05dd4fb 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -12,4 +12,16 @@ public interface IDeviceInterfaceService { * @return */ AjaxResult getRepairWorkOrder(); + + /** + * 获取设备信息 + * @return + */ + AjaxResult getEquipmentInfo(); + + /** + * 设备维修质量TOP10 + * @return + */ + AjaxResult getRepairQuantity(); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 1fe6f3c88..acc321811 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -3,6 +3,9 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.vo.IEquipmentVO; +import com.op.device.domain.vo.IRepairWorkOrderVO; +import com.op.device.mapper.DeviceInterfaceMapper; import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.service.IDeviceInterfaceService; import org.springframework.beans.factory.annotation.Autowired; @@ -20,19 +23,69 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Autowired private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + @Autowired + private DeviceInterfaceMapper deviceInterfaceMapper; /** - * 获取维修工单 + * 获取待维修的维修工单 + * * @return */ @Override @DS("#header.poolName") public AjaxResult getRepairWorkOrder() { - // 获取待维修的工单 - EquRepairWorkOrder workTemp = new EquRepairWorkOrder(); - workTemp.setWorkStatus("0"); - List workOrderList = equRepairWorkOrderMapper.selectEquRepairWorkOrderList(workTemp); -// EquRepairWorkOrder workOrder = equRepairWorkOrderMapper.selectWaitingWorkOrder(); - return success(workOrderList); + List workOrderVOList = deviceInterfaceMapper.selectEquRepairWorkOrderList(); + for (IRepairWorkOrderVO orderVO : workOrderVOList) { + if (orderVO.getWorkHandle().equals("0")) { + orderVO.setWorkHandle("立即"); + } else { + orderVO.setWorkHandle("计划"); + } + } + return success(workOrderVOList); + } + + /** + * 获取设备信息 + * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) + * 设备有效利用率:(试机产量/理论产量) + * + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentInfo() { + // 获取所有设备信息 + List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); + for (IEquipmentVO equipmentVO : equipmentVOList) { + // TODO 设备状态待修改 + if (equipmentVO.getStatus().equals("1")) { + equipmentVO.setStatus("正常"); + } else { + equipmentVO.setStatus("停用"); + } + // TODO 设备故障停机率 + equipmentVO.setFailureRate(0.90); + // TODO 设备有效利用率 + equipmentVO.setUtilizationRatio(0.80); + } + return success(equipmentVOList); + } + + /** + * 获取设备维修质量TOP10 + * 设备维修质量:故障时间/故障次数 + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getRepairQuantity() { + List equipmentVOList = deviceInterfaceMapper.selectRepairEquipmentList(); + for (IEquipmentVO equipmentVO : equipmentVOList) { + // TODO 设备维修质量 + // TODO 排序TOP10 + equipmentVO.setRapairQuantity(0.70); + } + return success(equipmentVOList); } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml new file mode 100644 index 000000000..72c636d12 --- /dev/null +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + \ No newline at end of file From 2ce35572f2ae91403365e49d97724c4b7e5669ed Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 16:50:28 +0800 Subject: [PATCH 03/14] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=8B=86=E5=88=86?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5sap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteSapService.java | 4 ++++ .../api/factory/RemoteSapFallbackFactory.java | 6 ++++++ .../service/impl/ProOrderServiceImpl.java | 15 +++++++++++++++ .../impl/ProOrderWorkorderServiceImpl.java | 19 +++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index ab5b53b6d..6b8d2a27d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -24,6 +24,10 @@ public interface RemoteSapService { @PostMapping("/sap/shopOrderSync") public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder); + /**传递母订单号和母订单数量**/ + @PostMapping("/sap/shopUpdateSync") + public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder); + @PostMapping("/sap/sapRouterSync") public R sapRouterSync(@RequestBody SapRouterQuery sapRouterQuery); diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index a89735e02..fb002c675 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -7,6 +7,7 @@ import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -73,6 +74,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory Date: Mon, 27 Nov 2023 16:56:32 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=20=E8=AE=BE=E5=A4=87=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=90=AF=E7=94=A8+=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BaseEquipmentController.java | 18 +++++++++++++++--- .../java/com/op/wms/domain/BaseEquipment.java | 14 +++++++++++++- .../op/wms/mapper/BaseEquipmentMapper.java | 5 ++++- .../op/wms/service/IBaseEquipmentService.java | 5 ++++- .../impl/BaseEquipmentServiceImpl.java | 19 +++++++++++++++++-- .../mapper/wms/BaseEquipmentMapper.xml | 17 ++++++++++++++++- 6 files changed, 69 insertions(+), 9 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java index 1421808f0..1ee831377 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java @@ -7,7 +7,10 @@ import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import com.op.common.core.domain.ExcelCol; +import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.poi.ExcelMapUtil; +import com.op.common.security.utils.SecurityUtils; +import com.op.system.api.domain.SysUser; import com.op.wms.domain.EquSpareEquipment; import com.op.wms.domain.WmsSparePartsLedger; import com.op.wms.service.IBaseEquipmentService; @@ -114,7 +117,6 @@ public class BaseEquipmentController extends BaseController { /** * 查询设备类型 */ -// @RequiresPermissions("wms:equipment:getEquipmentTypeList") @GetMapping("/getEquipmentTypeList") public TableDataInfo getEquipmentTypeList(BaseEquipment baseEquipment) { List list = baseEquipmentService.getEquipmentTypeList(baseEquipment); @@ -125,8 +127,8 @@ public class BaseEquipmentController extends BaseController { * 查询设备备件 */ @GetMapping("/getSparePartsList") - public TableDataInfo getSparePartsList(BaseEquipment baseEquipment) { - List list = baseEquipmentService.getSparePartsList(baseEquipment); + public TableDataInfo getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger) { + List list = baseEquipmentService.getSparePartsList(wmsSparePartsLedger); return getDataTable(list); } @@ -218,4 +220,14 @@ public class BaseEquipmentController extends BaseController { return baseEquipmentService.importFile(orderList); } + /** + * 状态修改 + */ + @RequiresPermissions("wms:equipment:edit") + @Log(title = "修改设备状态", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody BaseEquipment baseEquipment) { + return toAjax(baseEquipmentService.updateBaseEquipmentStatus(baseEquipment)); + } + } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java index 840fb3170..3aab7b213 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java @@ -61,7 +61,7 @@ public class BaseEquipment extends BaseEntity { private String workshopName; /** 设备状态 */ - @Excel(name = "设备状态") + @Excel(name = "设备是否启用") private String status; /** 预留字段1 */ @@ -207,6 +207,10 @@ public class BaseEquipment extends BaseEntity { @Excel(name = "工厂号") private String factoryCode; + /** 设备状态 */ + @Excel(name = "设备状态") + private String equipmentStatus; + private String imageFileList; private String barCodeFileList; @@ -619,6 +623,14 @@ public class BaseEquipment extends BaseEntity { return factoryCode; } + //设备状态 + public void setEquipmentStatus(String equipmentStatus) { + this.equipmentStatus = equipmentStatus; + } + public String getEquipmentStatus() { + return equipmentStatus; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java index 5b7d0208d..a2132e720 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java @@ -81,7 +81,7 @@ public interface BaseEquipmentMapper { Long getEquipmentId(String equipmentCode); //查询备件 - List getSparePartsList(BaseEquipment baseEquipment); + List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger); //绑定备品备件 public int bindSpareParts(EquSpareEquipment equSpareEquipment); @@ -107,4 +107,7 @@ public interface BaseEquipmentMapper { //设备 BaseEquipment selectExistByEquipmentCode(String equipmentCode); + + //更新设备状态 + Integer updateBaseEquipmentStatus(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java index 449a8105d..a8562b48c 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java @@ -69,11 +69,14 @@ public interface IBaseEquipmentService { List getEquipmentTypeList(BaseEquipment baseEquipment); //查询设备备品备件 - List getSparePartsList(BaseEquipment baseEquipment); + List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger); //查询设备备品备件右侧列表 public List getRightSparePartsList(BaseEquipment baseEquipment); //导入设备基础数据文件 AjaxResult importFile(List equipmentList); + + //更改设备状态 + int updateBaseEquipmentStatus(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java index 0dd6c1cf7..472f40a9a 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java @@ -372,8 +372,8 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { */ @Override @DS("#header.poolName") - public List getSparePartsList(BaseEquipment baseEquipment) { - return baseEquipmentMapper.getSparePartsList(baseEquipment); + public List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger) { + return baseEquipmentMapper.getSparePartsList(wmsSparePartsLedger); } /** @@ -481,4 +481,19 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { return failEquipment; } + /** + * 修改设备管理 + * + * @param baseEquipment 设备管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseEquipmentStatus(BaseEquipment baseEquipment) { + baseEquipment.setUpdateBy(SecurityUtils.getUsername()); + baseEquipment.setUpdateTime(DateUtils.getNowDate()); + Integer list = baseEquipmentMapper.updateBaseEquipmentStatus(baseEquipment); + return list; + } + } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml index b8a74f66a..97f14bfed 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml @@ -47,6 +47,7 @@ + @@ -159,7 +160,9 @@ asset_head, fixed_asset_code, department, - equipment_head + equipment_head, + factory_code, + equipment_status from base_equipment @@ -201,6 +204,7 @@ and department = #{department} and sap_asset = #{sapAsset} and factory_code = #{factoryCode} + and equipment_status = #{equipmentStatus} and del_flag ='0' @@ -254,6 +258,7 @@ sap_asset, equipment_head, factory_code, + equipment_status, #{equipmentCode}, @@ -296,6 +301,7 @@ #{sapAsset}, #{equipmentHead}, #{factoryCode}, + equipmentStatus, @@ -342,6 +348,7 @@ sap_asset = #{sapAsset}, equipment_head = #{equipmentHead}, factory_code = #{factoryCode}, + equipment_status = #{equipmentStatus}, where equipment_id = #{equipmentId} @@ -514,4 +521,12 @@ and del_flag ='0' + + update base_equipment + + status = #{status}, + + where equipment_id = #{equipmentId} + + \ No newline at end of file From 116c224f452ae6c76f8ace591c2f0e705a5c38d8 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 27 Nov 2023 17:37:15 +0800 Subject: [PATCH 05/14] 1 --- .../controller/DevicePDAController.java | 11 +- .../com/op/device/domain/vo/IEquipmentVO.java | 20 +- .../op/device/service/IDevicePDAService.java | 17 +- .../impl/DeviceInterfaceServiceImpl.java | 11 +- .../service/impl/DevicePDAServiceImpl.java | 316 +++++++++--------- .../mapper/device/DeviceInterfaceMapper.xml | 8 +- 6 files changed, 205 insertions(+), 178 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java index 8a2cb991e..2a89399a2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DevicePDAController.java @@ -31,6 +31,7 @@ public class DevicePDAController extends BaseController { /** * 获取今日巡检任务工单list + * * @param pdadto * @return */ @@ -41,6 +42,7 @@ public class DevicePDAController extends BaseController { /** * 获取巡检记录 + * * @param pdadto * @return */ @@ -51,6 +53,7 @@ public class DevicePDAController extends BaseController { /** * 获取任务详情 + * * @param equOrder * @return */ @@ -60,7 +63,8 @@ public class DevicePDAController extends BaseController { } /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 + * * @param equOrder * @return */ @@ -70,8 +74,10 @@ public class DevicePDAController extends BaseController { } //报修 + /** * 新增手持报修记录 + * * @param equRepairOrder * @return */ @@ -81,6 +87,7 @@ public class DevicePDAController extends BaseController { } //维修 + /** * 获取维修记录(待处理) * @@ -143,6 +150,7 @@ public class DevicePDAController extends BaseController { /** * 填写维修记录 + * * @param equRepairWorkOrder * @return */ @@ -159,6 +167,7 @@ public class DevicePDAController extends BaseController { /** * 开始保养任务 + * * @param pdadto * @return */ diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java index fa8fa23d7..a079d7ac3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java @@ -8,14 +8,22 @@ public class IEquipmentVO { private String equipmentCode; // 所在部门 private String department; - // 状态 - private String status; // 设备故障率 private Double failureRate; // 设备有效利用率 private Double utilizationRatio; // 设备维修质量 private Double rapairQuantity; + // 设备状态 + private String equipmentStatus; + + public String getEquipmentStatus() { + return equipmentStatus; + } + + public void setEquipmentStatus(String equipmentStatus) { + this.equipmentStatus = equipmentStatus; + } public Double getRapairQuantity() { return rapairQuantity; @@ -49,14 +57,6 @@ public class IEquipmentVO { this.department = department; } - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - public Double getFailureRate() { return failureRate; } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index 79af434c2..cadf7322f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -16,12 +16,14 @@ public interface IDevicePDAService { /** * 获取今日巡检任务工单list + * * @return */ AjaxResult getTodayTask(PDADTO pdadto); /** * 获取巡检记录 + * * @param pdadto * @return */ @@ -29,37 +31,45 @@ public interface IDevicePDAService { /** * 获取任务详情 + * * @param equOrder * @return */ AjaxResult getInspectionOrderInfo(EquOrder equOrder); /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 + * * @param equOrder * @return */ AjaxResult updateInspectionRecord(EquOrder equOrder); //报修 + /** * 手持新增报修记录 + * * @param equRepairOrder * @return */ public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder); //维修 + /** * 手持查询维修记录 (待处理和已经维修完成) + * * @param equRepairWorkOrder * @return */ public AjaxResult getMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder); //班组 + /** * 维修班组 + * * @param equTeamUser * @return */ @@ -67,6 +77,7 @@ public interface IDevicePDAService { /** * 手持是否停机 + * * @param equRepairWorkOrder * @return */ @@ -74,6 +85,7 @@ public interface IDevicePDAService { /** * 查询设备详细信息 + * * @param equipmentId * @return */ @@ -81,6 +93,7 @@ public interface IDevicePDAService { /** * 查询维修工单 + * * @param workId * @return */ @@ -88,6 +101,7 @@ public interface IDevicePDAService { /** * 填写维修工单 + * * @param equRepairWorkOrder * @return */ @@ -101,6 +115,7 @@ public interface IDevicePDAService { /** * 开始保养任务 + * * @param pdadto * @return */ diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index acc321811..a56dec8f2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -58,14 +58,15 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 获取所有设备信息 List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); for (IEquipmentVO equipmentVO : equipmentVOList) { - // TODO 设备状态待修改 - if (equipmentVO.getStatus().equals("1")) { - equipmentVO.setStatus("正常"); + // 设备状态 + if (equipmentVO.getEquipmentStatus().equals("1")) { + equipmentVO.setEquipmentStatus("正常"); } else { - equipmentVO.setStatus("停用"); + equipmentVO.setEquipmentStatus("停用"); } // TODO 设备故障停机率 - equipmentVO.setFailureRate(0.90); + + equipmentVO.setFailureRate(0.10); // TODO 设备有效利用率 equipmentVO.setUtilizationRatio(0.80); } 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 0f385a171..c744876d3 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 @@ -56,7 +56,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquEquipmentMapper equEquipmentMapper; @Autowired - private EquSpareApplyMapper equSpareApplyMapper; + private EquSpareApplyMapper equSpareApplyMapper; @Autowired private EquFileMapper equFileMapper; @@ -165,7 +165,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 * * @param equOrder * @return @@ -178,11 +178,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (equOrder.getRepairCode() != null) { if (!equOrder.getRepairCode().isEmpty()) { EquRepairOrder repairOrder = equRepairOrderMapper.selectEquRepairOrderByRepairCode(equOrder.getRepairCode()); - if (repairOrder==null) { - return error(500,"未查询到报修单信息!"); - }else { - if (!repairOrder.getOrderStatus().equals("待审核")){ - return error(500,"报修单已审核,不可修改记录!"); + if (repairOrder == null) { + return error(500, "未查询到报修单信息!"); + } else { + if (!repairOrder.getOrderStatus().equals("待审核")) { + return error(500, "报修单已审核,不可修改记录!"); } } } @@ -228,7 +228,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { hasError = true; standard.setDetailReach("0"); } - }else { + } else { // 未达标 standard.setErrorFlag("0"); if (standard.getDetailReach().equals("0")) { @@ -255,10 +255,10 @@ public class DevicePDAServiceImpl implements IDevicePDAService { boolean checkRepair = false; - if (equOrder.getRepairCode() == null){ + if (equOrder.getRepairCode() == null) { checkRepair = true; - }else { - if (equOrder.getRepairCode().isEmpty()){ + } else { + if (equOrder.getRepairCode().isEmpty()) { checkRepair = true; } } @@ -270,7 +270,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); String equipmentCode = equOrder.getEquipmentCode(); //报修单号 - equRepairOrder.setOrderCode("BX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); //在主表中存入报修单号信息 equOrder.setRepairCode(equRepairOrder.getOrderCode()); @@ -289,19 +289,19 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setOrderConnection(equTeamUserList.getPhonenumber()); equRepairOrder.setOrderRepairmanName(equTeamUserList.getNickName()); // 报修来源 - if (equOrder.getPlanType().equals("inspection")){ + if (equOrder.getPlanType().equals("inspection")) { equRepairOrder.setOrderSource("巡检"); } - if (equOrder.getPlanType().equals("spotInspection")){ + if (equOrder.getPlanType().equals("spotInspection")) { equRepairOrder.setOrderSource("点检"); } - if (equOrder.getPlanType().equals("maintenance")){ + if (equOrder.getPlanType().equals("maintenance")) { equRepairOrder.setOrderSource("保养"); } equRepairOrder.setOrderStatus("待审核"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); equRepairOrderMapper.insertEquRepairOrder(equRepairOrder); } @@ -344,8 +344,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } //////////////////////报修 + /** - * 新增报修记录 + * 新增报修记录 * * @param equRepairOrder * @return @@ -362,7 +363,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); String equipmentCode = equRepairOrder.getEquipmentCode(); //报修单号 - equRepairOrder.setOrderCode("BX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); equRepairOrder.setCreateTime(DateUtils.getNowDate()); equRepairOrder.setCreateBy(SecurityUtils.getUsername()); equRepairOrder.setOrderRepairmanCode(SecurityUtils.getUsername()); @@ -370,7 +371,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setOrderStatus("待审核"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); equRepairOrderMapper.insertEquRepairOrder(equRepairOrder); //删除照片 不需要清照片 因为是新增 @@ -435,6 +436,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { /** * 开始保养任务 + * TODO 修改设备状态 + * * @param pdadto * @return */ @@ -490,6 +493,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { return error(); } } + /** * 获取维修人员 * @@ -520,7 +524,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { //不停机 那么实际停机开始时间和实际停机结束时间都没有 //如果停机 那么实际停机时间就是传入的时间 equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate()); - if(equRepairWorkOrder.getWorkDownMachine().equals("1")){ + if (equRepairWorkOrder.getWorkDownMachine().equals("1")) { equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate()); } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); @@ -535,8 +539,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } /** - * - * * @param equipmentId * @return */ @@ -544,8 +546,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult selectEquEquipmentByEquEquipmentId(Long equipmentId) { try { - EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentId(equipmentId); - return success(list); + EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentId(equipmentId); + return success(list); } catch (Exception e) { return error(); } @@ -561,43 +563,43 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult selectPdaRepairWorkOrderDetails(String workId) { try { - EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); - //查询对应检查项信息 - EquOrder equOrder = new EquOrder(); - equOrder.setWorkCode(list.getWorkCode()); - //检查项 - List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); - //每个检查项对应的检测标准 - for(EquOrder equOrder1 :checkLists){ - EquOrderStandard equOrderStandard = new EquOrderStandard(); - equOrderStandard.setOrderCode(equOrder1.getOrderCode()); - equOrderStandard.setParentCode(equOrder1.getId()); - List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); - for(EquOrderStandard standardList :standardLists){ - //每个检查标准里面的照片 - List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); - if (!CollectionUtils.isEmpty(files)) { - standardList.setPicturePaths(files); + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); + //查询对应检查项信息 + EquOrder equOrder = new EquOrder(); + equOrder.setWorkCode(list.getWorkCode()); + //检查项 + List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); + //每个检查项对应的检测标准 + for (EquOrder equOrder1 : checkLists) { + EquOrderStandard equOrderStandard = new EquOrderStandard(); + equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); + List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); + for (EquOrderStandard standardList : standardLists) { + //每个检查标准里面的照片 + List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); + if (!CollectionUtils.isEmpty(files)) { + standardList.setPicturePaths(files); + } + standardList.setDetailReach(standardList.getRepairReach()); + standardList.setActualValue(standardList.getRepairValue()); } - standardList.setDetailReach(standardList.getRepairReach()); - standardList.setActualValue(standardList.getRepairValue()); + equOrder1.setStandardList(standardLists); } - equOrder1.setStandardList(standardLists); - } - list.setDetailList(checkLists); + list.setDetailList(checkLists); - //备件申领单 - EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); - equRepairWorkOrder.setWorkCode(list.getWorkCode()); - List applyLists = equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); - list.setApplyList(applyLists); + //备件申领单 + EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); + equRepairWorkOrder.setWorkCode(list.getWorkCode()); + List applyLists = equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); + list.setApplyList(applyLists); - //文件 - List files = equRepairWorkOrderMapper.getBaseFileBatch(workId); - if (!CollectionUtils.isEmpty(files)) { - list.setFiles(files); - } - return success(list); + //文件 + List files = equRepairWorkOrderMapper.getBaseFileBatch(workId); + if (!CollectionUtils.isEmpty(files)) { + list.setFiles(files); + } + return success(list); } catch (Exception e) { return error(); } @@ -612,114 +614,114 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Override @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { - //判断是否停机 - EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); - if(list.getWorkDownMachine().equals("1")){ - //维修结束时间、维修真正停机时间 - equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); - } - equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); - //更新每一项点检/巡检检查项信息 - List checkLists = equRepairWorkOrder.getDetailList(); - for(EquOrder checkList:checkLists){ - checkList.setUpdateBy(SecurityUtils.getUsername()); - checkList.setUpdateTime(DateUtils.getNowDate()); - List standardLists = checkList.getStandardList(); - for(EquOrderStandard standardList :standardLists){ - //先删除每个检查项标准图片 - equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); - //图片 - if (StringUtils.isNotEmpty(standardList.getPicturePath())) { - String[] ids = standardList.getPicturePath().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(standardList.getId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); - } - equOrderStandardMapper.insertBaseFileBatch(files); + //判断是否停机 + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + if (list.getWorkDownMachine().equals("1")) { + //维修结束时间、维修真正停机时间 + equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); + } + equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); + //更新每一项点检/巡检检查项信息 + List checkLists = equRepairWorkOrder.getDetailList(); + for (EquOrder checkList : checkLists) { + checkList.setUpdateBy(SecurityUtils.getUsername()); + checkList.setUpdateTime(DateUtils.getNowDate()); + List standardLists = checkList.getStandardList(); + for (EquOrderStandard standardList : standardLists) { + //先删除每个检查项标准图片 + equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); + //图片 + if (StringUtils.isNotEmpty(standardList.getPicturePath())) { + String[] ids = standardList.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(standardList.getId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); } - standardList.setRepairReach(standardList.getDetailReach()); - standardList.setRepairValue(standardList.getActualValue()); - standardList.setUpdateTime(DateUtils.getNowDate()); - standardList.setUpdateBy(SecurityUtils.getUsername()); - equOrderStandardMapper.updateActualValues(standardList); + equOrderStandardMapper.insertBaseFileBatch(files); } - equOrderMapper.updateEquOrder(checkList); + standardList.setRepairReach(standardList.getDetailReach()); + standardList.setRepairValue(standardList.getActualValue()); + standardList.setUpdateTime(DateUtils.getNowDate()); + standardList.setUpdateBy(SecurityUtils.getUsername()); + equOrderStandardMapper.updateActualValues(standardList); } + equOrderMapper.updateEquOrder(checkList); + } - //新建申领单 - List equSpareApplies = equRepairWorkOrder.getApplyList(); - for(EquSpareApply equSpareApply:equSpareApplies){ - //生成领料单code - String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); - String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); - //十五位单号 - equSpareApply.setApplyCode("AW" + code + serialNum); - equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); - //备品备件规格型号!!!!! + //新建申领单 + List equSpareApplies = equRepairWorkOrder.getApplyList(); + for (EquSpareApply equSpareApply : equSpareApplies) { + //生成领料单code + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); + //十五位单号 + equSpareApply.setApplyCode("AW" + code + serialNum); + equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); + //备品备件规格型号!!!!! // equSpareApply.setSpareModel(equSpareApply.getS); - 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()); - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String key = "#header.poolName"; - equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); - equSpareApplyMapper.insertEquSpareApply(equSpareApply); + 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()); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + equSpareApplyMapper.insertEquSpareApply(equSpareApply); - //更新完备品申领单后,更新库存 - SparePartsLedger sparePartsLedger = new SparePartsLedger(); - sparePartsLedger.setStorageId(equSpareApply.getStorageId()); - BigDecimal applyNum = equSpareApply.getSpareQuantity(); - BigDecimal amount = equSpareApply.getAmount(); - sparePartsLedger.setAmount(amount.subtract(applyNum)); - sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); - } + //更新完备品申领单后,更新库存 + SparePartsLedger sparePartsLedger = new SparePartsLedger(); + sparePartsLedger.setStorageId(equSpareApply.getStorageId()); + BigDecimal applyNum = equSpareApply.getSpareQuantity(); + BigDecimal amount = equSpareApply.getAmount(); + sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); + } - //图片 - //先删除每个维修工单对应图片 - equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); - if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { - String[] ids = equRepairWorkOrder.getFileList().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(equRepairWorkOrder.getWorkId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); - } - equRepairWorkOrderMapper.insertBaseFileBatch(files); + //图片 + //先删除每个维修工单对应图片 + equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); + if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { + String[] ids = equRepairWorkOrder.getFileList().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equRepairWorkOrder.getWorkId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); } - //维修人:当前登录人 - //维修状态 - equRepairWorkOrder.setWorkStatus("1"); - //维修结束时间 - equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); - equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); - //需要更新设备状态????这里没做 - return success("提交成功,维修完成!"); + equRepairWorkOrderMapper.insertBaseFileBatch(files); + } + //维修人:当前登录人 + //维修状态 + equRepairWorkOrder.setWorkStatus("1"); + //维修结束时间 + equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); + equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + //需要更新设备状态????这里没做 + return success("提交成功,维修完成!"); } /** diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 72c636d12..6d07432ac 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -21,10 +21,10 @@ From 9b8b47ae1cb6b56155aacb51b7edba939e828317 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Mon, 27 Nov 2023 17:37:30 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E8=AE=B0=E5=BD=95init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/domain/EquOperationRecord.java | 173 ++++++++++++++++++ .../mapper/EquOperationRecordMapper.java | 61 ++++++ .../device/EquOperationRecordMapper.xml | 123 +++++++++++++ 3 files changed, 357 insertions(+) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java create mode 100644 op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java create mode 100644 op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java new file mode 100644 index 000000000..6c435598f --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java @@ -0,0 +1,173 @@ +package com.op.device.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 设备运行记录对象 equ_operation_record + * + * @author Open Platform + * @date 2023-11-27 + */ +public class EquOperationRecord extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 主键 */ + private String id; + + /** 设备编码 */ + @Excel(name = "设备编码") + private String equipmentCode; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 类型(on:开机、off:关机) */ + @Excel(name = "类型(on:开机、off:关机)") + private String type; + + /** 维护类型(upkeep:保养、repair:维修) */ + @Excel(name = "维护类型", readConverterExp = "u=pkeep:保养、repair:维修") + private String maintenanceType; + + /** 关联记录id */ + @Excel(name = "关联记录id") + private String parentId; + + /** 工厂 */ + @Excel(name = "工厂") + private String factoryCode; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private String attr1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String attr2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String attr3; + + /** 删除标识 */ + private String delFlag; + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getEquipmentCode() { + return equipmentCode; + } + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getStartTime() { + return startTime; + } + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Date getEndTime() { + return endTime; + } + public void setType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + public void setMaintenanceType(String maintenanceType) { + this.maintenanceType = maintenanceType; + } + + public String getMaintenanceType() { + return maintenanceType; + } + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getParentId() { + return parentId; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("equipmentCode", getEquipmentCode()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("type", getType()) + .append("maintenanceType", getMaintenanceType()) + .append("parentId", getParentId()) + .append("factoryCode", getFactoryCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java new file mode 100644 index 000000000..63c673804 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -0,0 +1,61 @@ +package com.op.device.mapper; + +import java.util.List; + +import com.op.device.domain.EquOperationRecord; + +/** + * 设备运行记录Mapper接口 + * + * @author Open Platform + * @date 2023-11-27 + */ +public interface EquOperationRecordMapper { + /** + * 查询设备运行记录 + * + * @param id 设备运行记录主键 + * @return 设备运行记录 + */ + public EquOperationRecord selectEquOperationRecordById(String id); + + /** + * 查询设备运行记录列表 + * + * @param equOperationRecord 设备运行记录 + * @return 设备运行记录集合 + */ + public List selectEquOperationRecordList(EquOperationRecord equOperationRecord); + + /** + * 新增设备运行记录 + * + * @param equOperationRecord 设备运行记录 + * @return 结果 + */ + public int insertEquOperationRecord(EquOperationRecord equOperationRecord); + + /** + * 修改设备运行记录 + * + * @param equOperationRecord 设备运行记录 + * @return 结果 + */ + public int updateEquOperationRecord(EquOperationRecord equOperationRecord); + + /** + * 删除设备运行记录 + * + * @param id 设备运行记录主键 + * @return 结果 + */ + public int deleteEquOperationRecordById(String id); + + /** + * 批量删除设备运行记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEquOperationRecordByIds(String[] ids); +} diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml new file mode 100644 index 000000000..409edfe96 --- /dev/null +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select id, equipment_code, start_time, end_time, type, maintenance_type, parent_id, factory_code, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time from equ_operation_record + + + + + + + + insert into equ_operation_record + + id, + equipment_code, + start_time, + end_time, + type, + maintenance_type, + parent_id, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{equipmentCode}, + #{startTime}, + #{endTime}, + #{type}, + #{maintenanceType}, + #{parentId}, + #{factoryCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update equ_operation_record + + equipment_code = #{equipmentCode}, + start_time = #{startTime}, + end_time = #{endTime}, + type = #{type}, + maintenance_type = #{maintenanceType}, + parent_id = #{parentId}, + factory_code = #{factoryCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from equ_operation_record where id = #{id} + + + + delete from equ_operation_record where id in + + #{id} + + + \ No newline at end of file From 8ea69a31c2b32f3bdacb8d6d6c06bef1bf49ca4d Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 27 Nov 2023 17:39:05 +0800 Subject: [PATCH 07/14] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E4=B8=8B=E6=B4=BEbug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/plan/service/impl/ProOrderWorkorderServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 8f5f46423..d5f4972ed 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -266,7 +266,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { whiteOrder.setUpdateBy(SecurityUtils.getUsername()); whiteOrder.setUpdateTime(DateUtils.getNowDate()); - return proOrderWorkorderMapper.updateWhiteWorkOrder(whiteOrder); + proOrderWorkorderMapper.updateWhiteWorkOrder(whiteOrder); } else if (whiteOrder != null && !"white".equals(whiteOrder.getProdType())) { List wids = new ArrayList<>();//一起下发用 List wcodes = new ArrayList<>();//领料单用 @@ -353,10 +353,10 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } //下达工单 String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); - return proOrderWorkorderMapper.downWorkorders(idsArrayAll); + proOrderWorkorderMapper.downWorkorders(idsArrayAll); } } - return 0; + return 1; } //子查父递归 From d8759052047f47e57d2aae618e2f1ade63a151b5 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 28 Nov 2023 15:07:04 +0800 Subject: [PATCH 08/14] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=EF=BC=9A=E7=BB=B4=E4=BF=AE=E5=B7=A5=E5=8D=95=E3=80=81=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E4=BF=A1=E6=81=AF=E3=80=81=E7=BB=B4=E4=BF=AE=E8=B4=A8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/domain/MesReportWork.java | 647 ++++++++++++++++++ .../device/mapper/DeviceInterfaceMapper.java | 12 + .../mapper/EquOperationRecordMapper.java | 7 + .../impl/DeviceInterfaceServiceImpl.java | 110 ++- .../mapper/device/DeviceInterfaceMapper.xml | 44 +- .../device/EquOperationRecordMapper.xml | 85 ++- 6 files changed, 854 insertions(+), 51 deletions(-) create mode 100644 op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java new file mode 100644 index 000000000..fabd9e6b3 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java @@ -0,0 +1,647 @@ +package com.op.device.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 报工报表对象 mes_report_work + * + * @author Open Platform + * @date 2023-08-24 + */ +public class MesReportWork extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 记录id */ + private String id; + + /** 报工单编号 */ + @Excel(name = "报工单编号") + private String reportCode; + + /** 报工类型,报工类型:SELF自行报工、UNI统一报工 */ + @Excel(name = "报工类型,报工类型:SELF上位机报工、UNI系统报工") + private String reportType; + + /** 生产工单编码 */ + @Excel(name = "生产工单编码") + private String workorderCode; + + /** 产品编码 */ + @Excel(name = "产品编码") + private String productCode; + + /** 产品名称 */ + @Excel(name = "产品名称") + private String productName; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String spec; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 排产数量 */ + @Excel(name = "排产数量") + private BigDecimal quantity; + private BigDecimal quantitySplit; + /** 本次报工数量 */ + @Excel(name = "本次报工数量") + private BigDecimal quantityFeedback; + + /** 合格数量 */ + //@Excel(name = "合格数量") + private BigDecimal quantityQualified; + + /** 不合格数量 */ + //@Excel(name = "不合格数量") + private BigDecimal quantityUnqualified; + + /** 报工人员 */ + @Excel(name = "报工人员") + private String userName; + + /** 人员名称 */ + @Excel(name = "人员名称") + private String nickName; + + /** 报工途径:PAD、MOBILE、PC */ + //@Excel(name = "报工途径:PAD、MOBILE、PC") + private String feedbackChannel; + + /** 报工时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "报工时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date feedbackTime; + + /** 录入人员 */ + @Excel(name = "录入人员") + private String recordUser; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + /** 工时 */ + @Excel(name = "工时") + private Long workTime; + + @Excel(name = "用人") + private Long useMan; + + /** 线体编码 */ + @Excel(name = "线体编码") + private String machineCode; + + /** 线体名称 */ + @Excel(name = "线体名称") + private String machineName; + + /** 班组编码 */ + @Excel(name = "班组编码") + private String teamCode; + + /** 班次编码 */ + @Excel(name = "班次编码") + private String shiftCode; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "SAP报工时间") + private Date uploadTime; + @Excel(name = "SAP报工状态0待报工1成功2失败") + private String uploadStatus; + @Excel(name = "SAP报工信息") + private String uploadMsg; + /** 预留字段1 */ + //@Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + //@Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + //@Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + //@Excel(name = "预留字段4") + private String attr4; + @Excel(name = "计划生产日期") + private String productDate; + private String productDateStart; + private String productDateEnd; + @Excel(name = "订单编号") + private String orderCode; + @Excel(name = "规格型号") + private String productSpc; + @Excel(name = "工序名称") + private String processName; + @Excel(name = "工序编码") + private String processCode; + private String factoryCode; + private String factoryName; + private String carCode; + private String carName; + private String workorderCodeSap; + private String routeCode; + private String sac1; + private String sac2; + private String sac3; + private String sac4; + private String sac5; + private String sac6; + private String prodType; + private String createTimeStart; + private String createTimeEnd; + private String feedbackTimeStart; + private String feedbackTimeEnd; + private String batch; + private String endReport; + + public String getEndReport() { + return endReport; + } + + public void setEndReport(String endReport) { + this.endReport = endReport; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public Long getUseMan() { + return useMan; + } + + public void setUseMan(Long useMan) { + this.useMan = useMan; + } + + public BigDecimal getQuantitySplit() { + return quantitySplit; + } + + public void setQuantitySplit(BigDecimal quantitySplit) { + this.quantitySplit = quantitySplit; + } + + public String getFeedbackTimeStart() { + return feedbackTimeStart; + } + + public void setFeedbackTimeStart(String feedbackTimeStart) { + this.feedbackTimeStart = feedbackTimeStart; + } + + public String getFeedbackTimeEnd() { + return feedbackTimeEnd; + } + + public void setFeedbackTimeEnd(String feedbackTimeEnd) { + this.feedbackTimeEnd = feedbackTimeEnd; + } + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public String getProdType() { + return prodType; + } + + public void setProdType(String prodType) { + this.prodType = prodType; + } + + public String getWorkorderCodeSap() { + return workorderCodeSap; + } + + public void setWorkorderCodeSap(String workorderCodeSap) { + this.workorderCodeSap = workorderCodeSap; + } + + public String getRouteCode() { + return routeCode; + } + + public void setRouteCode(String routeCode) { + this.routeCode = routeCode; + } + + public String getSac1() { + return sac1; + } + + public void setSac1(String sac1) { + this.sac1 = sac1; + } + + public String getSac2() { + return sac2; + } + + public void setSac2(String sac2) { + this.sac2 = sac2; + } + + public String getSac3() { + return sac3; + } + + public void setSac3(String sac3) { + this.sac3 = sac3; + } + + public String getSac4() { + return sac4; + } + + public void setSac4(String sac4) { + this.sac4 = sac4; + } + + public String getSac5() { + return sac5; + } + + public void setSac5(String sac5) { + this.sac5 = sac5; + } + + public String getSac6() { + return sac6; + } + + public void setSac6(String sac6) { + this.sac6 = sac6; + } + + public Date getUploadTime() { + return uploadTime; + } + + public void setUploadTime(Date uploadTime) { + this.uploadTime = uploadTime; + } + + public String getUploadStatus() { + return uploadStatus; + } + + public void setUploadStatus(String uploadStatus) { + this.uploadStatus = uploadStatus; + } + + public String getUploadMsg() { + return uploadMsg; + } + + public void setUploadMsg(String uploadMsg) { + this.uploadMsg = uploadMsg; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryName() { + return factoryName; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public String getCarCode() { + return carCode; + } + + public void setCarCode(String carCode) { + this.carCode = carCode; + } + + public String getCarName() { + return carName; + } + + public void setCarName(String carName) { + this.carName = carName; + } + + public String getProcessCode() { + return processCode; + } + + public void setProcessCode(String processCode) { + this.processCode = processCode; + } + + public String getProductDateStart() { + return productDateStart; + } + + public void setProductDateStart(String productDateStart) { + this.productDateStart = productDateStart; + } + + public String getProductDateEnd() { + return productDateEnd; + } + + public void setProductDateEnd(String productDateEnd) { + this.productDateEnd = productDateEnd; + } + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setReportType(String reportType) { + this.reportType = reportType; + } + public String getReportType() { + return reportType; + } + + public void setReportCode(String reportCode) { + this.reportCode = reportCode; + } + public String getReportCode() { + return reportCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() { + return workorderCode; + } + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductCode() { + return productCode; + } + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductName() { + return productName; + } + public void setSpec(String spec) { + this.spec = spec; + } + + public String getSpec() { + return spec; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantityFeedback(BigDecimal quantityFeedback) { + this.quantityFeedback = quantityFeedback; + } + + public BigDecimal getQuantityFeedback() { + return quantityFeedback; + } + public void setQuantityQualified(BigDecimal quantityQualified) { + this.quantityQualified = quantityQualified; + } + + public BigDecimal getQuantityQualified() { + return quantityQualified; + } + public void setQuantityUnqualified(BigDecimal quantityUnqualified) { + this.quantityUnqualified = quantityUnqualified; + } + + public BigDecimal getQuantityUnqualified() { + return quantityUnqualified; + } + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserName() { + return userName; + } + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getNickName() { + return nickName; + } + public void setFeedbackChannel(String feedbackChannel) { + this.feedbackChannel = feedbackChannel; + } + + public String getFeedbackChannel() { + return feedbackChannel; + } + public void setFeedbackTime(Date feedbackTime) { + this.feedbackTime = feedbackTime; + } + + public Date getFeedbackTime() { + return feedbackTime; + } + public void setRecordUser(String recordUser) { + this.recordUser = recordUser; + } + + public String getRecordUser() { + return recordUser; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setWorkTime(Long workTime) { + this.workTime = workTime; + } + + public Long getWorkTime() { + return workTime; + } + public void setMachineCode(String machineCode) { + this.machineCode = machineCode; + } + + public String getMachineCode() { + return machineCode; + } + public void setMachineName(String machineName) { + this.machineName = machineName; + } + + public String getMachineName() { + return machineName; + } + public void setTeamCode(String teamCode) { + this.teamCode = teamCode; + } + + public String getTeamCode() { + return teamCode; + } + public void setShiftCode(String shiftCode) { + this.shiftCode = shiftCode; + } + + public String getShiftCode() { + return shiftCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + + public String getProductDate() { + return productDate; + } + + public void setProductDate(String productDate) { + this.productDate = productDate; + } + + public String getOrderCode() { + return orderCode; + } + + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getProductSpc() { + return productSpc; + } + + public void setProductSpc(String productSpc) { + this.productSpc = productSpc; + } + + public String getProcessName() { + return processName; + } + + public void setProcessName(String processName) { + this.processName = processName; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("reportType", getReportType()) + .append("reportCode", getReportCode()) + .append("workorderCode", getWorkorderCode()) + .append("productCode", getProductCode()) + .append("productName", getProductName()) + .append("spec", getSpec()) + .append("unit", getUnit()) + .append("quantity", getQuantity()) + .append("quantityFeedback", getQuantityFeedback()) + .append("quantityQualified", getQuantityQualified()) + .append("quantityUnqualified", getQuantityUnqualified()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("feedbackChannel", getFeedbackChannel()) + .append("feedbackTime", getFeedbackTime()) + .append("recordUser", getRecordUser()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("workTime", getWorkTime()) + .append("machineCode", getMachineCode()) + .append("machineName", getMachineName()) + .append("teamCode", getTeamCode()) + .append("shiftCode", getShiftCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("updateBy", getUpdateBy()) + .toString(); + } +} + diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java index d5e16ac35..c0391bb88 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -1,6 +1,8 @@ package com.op.device.mapper; +import com.op.device.domain.EquOperationRecord; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.MesReportWork; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; @@ -25,4 +27,14 @@ public interface DeviceInterfaceMapper { * @return */ List selectRepairEquipmentList(); + + /** + * 通过设备code查询该设备最近一个月的报工单信息 + * 其中quantity:理论产量总和 、quantityFeedback:实际产量总和 + * @param equipmentCode + * @return + */ + MesReportWork selectReportWorkByEquipmentCode(String equipmentCode); + + List selectRepairRecordByEquipmentCode(String equipmentCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java index 63c673804..c26347bf8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -58,4 +58,11 @@ public interface EquOperationRecordMapper { * @return 结果 */ public int deleteEquOperationRecordByIds(String[] ids); + + /** + * 通过设备编码查询设备运行记录 + * @param equipmentCode + * @return + */ + List selectEquOperationRecordByEquipmentCode(String equipmentCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index a56dec8f2..0a7cb9ebc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -2,16 +2,24 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.MesReportWork; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; import com.op.device.mapper.DeviceInterfaceMapper; +import com.op.device.mapper.EquOperationRecordMapper; import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.service.IDeviceInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; +import java.util.Random; +import java.util.stream.Collectors; import static com.op.common.core.web.domain.AjaxResult.success; @@ -25,6 +33,8 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { private EquRepairWorkOrderMapper equRepairWorkOrderMapper; @Autowired private DeviceInterfaceMapper deviceInterfaceMapper; + @Autowired + private EquOperationRecordMapper equOperationRecordMapper; /** * 获取待维修的维修工单 @@ -48,7 +58,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备信息 * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) - * 设备有效利用率:(试机产量/理论产量) + * 设备有效利用率:(实际产量/理论产量) * * @return */ @@ -64,11 +74,55 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { } else { equipmentVO.setEquipmentStatus("停用"); } - // TODO 设备故障停机率 - equipmentVO.setFailureRate(0.10); - // TODO 设备有效利用率 - equipmentVO.setUtilizationRatio(0.80); + + /* 停机故障率逻辑 */ + long totalTime = 0L;// 运行总时间 + long downTime = 0L;// 停机时间 + // 通过设备编码获取运行记录中的运行记录List + List operationRecordList = equOperationRecordMapper.selectEquOperationRecordByEquipmentCode(equipmentVO.getEquipmentCode()); + if (operationRecordList.size() != 0) { + for (EquOperationRecord operationRecord : operationRecordList) { + // 运行时间差值 + long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); + // 开机运行时间运行总时间累加 + if (operationRecord.getType().equals("on")) { + totalTime+=diffTime; + } + // 维修停机时间累加(故障) + if (operationRecord.getMaintenanceType().equals("repair")) { + downTime+=diffTime; + } + } + + // 设置停机故障率 + if (downTime == 0L) { + // 如果未查到该设备停机故障时间 + equipmentVO.setFailureRate(0D); + }else { + // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) + double failureRate = downTime / totalTime; + equipmentVO.setFailureRate(failureRate); + } + + } + + /* 设备有效利用率逻辑(每月) */ + // 查询该设备下报工单信息(年月日可在该sql中修改) + MesReportWork reportWork = deviceInterfaceMapper.selectReportWorkByEquipmentCode(equipmentVO.getEquipmentCode()); + if (reportWork != null) { + BigDecimal theoryQuantity = reportWork.getQuantity();// 理论产量 + BigDecimal actualQuantity = reportWork.getQuantityFeedback();// 实际产量 + + // 计算该设备有效利用率(实际产量/理论产量) + BigDecimal utilizationRatio = actualQuantity.divide(theoryQuantity, 2, BigDecimal.ROUND_HALF_UP); + equipmentVO.setUtilizationRatio(utilizationRatio.doubleValue()); + + }else { + // 如果未查到该信息,则默认设置为0 + equipmentVO.setUtilizationRatio(0D); + } + } return success(equipmentVOList); } @@ -81,12 +135,48 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Override @DS("#header.poolName") public AjaxResult getRepairQuantity() { - List equipmentVOList = deviceInterfaceMapper.selectRepairEquipmentList(); + + // 获取维修工单中的设备列表 + List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); + for (IEquipmentVO equipmentVO : equipmentVOList) { - // TODO 设备维修质量 - // TODO 排序TOP10 - equipmentVO.setRapairQuantity(0.70); + // 通过该设备code获取设备维修记录(只获取开始时间、结束时间) + List workOrderList = deviceInterfaceMapper.selectRepairRecordByEquipmentCode(equipmentVO.getEquipmentCode()); + if (workOrderList.size() != 0) { + Long runTime = 0l; + for (EquRepairWorkOrder workOrder : workOrderList) { + // 维修时间差值 + long diffTime = workOrder.getWorkEndTime().getTime() - workOrder.getWorkStartTime().getTime(); + // 累加时间 + runTime += diffTime; + } + // 计算维修质量(故障时间(小时)/故障次数) + long rapairQuantity = runTime / 3600000 / workOrderList.size(); + equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); + }else { + // 没有该记录则默认为0 + equipmentVO.setRapairQuantity(0D); + } } - return success(equipmentVOList); + + // 排序TOP10 + + // 假数据 +// Random random = new Random(); +// List test = new ArrayList<>(); +// for (int i = 0 ; i < 30 ; i++) { +// IEquipmentVO vo = new IEquipmentVO(); +// vo.setRapairQuantity(random.nextDouble()); +// test.add(vo); +// } + + // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 + List top10 = equipmentVOList.stream() + .sorted(Comparator.comparingDouble(IEquipmentVO::getRapairQuantity)) // 排序 + .limit(10) // 限制结果数量为10 + .collect(Collectors.toList()); // 将结果收集到List中 + + return success(top10); } + } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 6d07432ac..27dfd636f 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -21,23 +21,41 @@ - - + + + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml index 409edfe96..8f958d4d6 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -5,41 +5,57 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - select id, equipment_code, start_time, end_time, type, maintenance_type, parent_id, factory_code, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time from equ_operation_record + select id, + equipment_code, + start_time, + end_time, + type, + maintenance_type, + parent_id, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time + from equ_operation_record @@ -48,6 +64,17 @@ where id = #{id} + + insert into equ_operation_record @@ -111,7 +138,9 @@ - delete from equ_operation_record where id = #{id} + delete + from equ_operation_record + where id = #{id} From 2f221e1905d22ba281e18832a78504fec0947555 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 28 Nov 2023 15:33:35 +0800 Subject: [PATCH 09/14] =?UTF-8?q?sap=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MesPrepareServiceImpl.java | 68 +++++++++---------- .../mapper/mes/MesReportWorkMapper.xml | 2 +- .../op/open/service/impl/OpenServiceImpl.java | 2 +- .../main/resources/mapper/open/OpenMapper.xml | 2 +- .../service/impl/ProOrderServiceImpl.java | 3 - .../impl/ProOrderWorkorderServiceImpl.java | 12 ++-- .../op/quality/controller/QuaController.java | 48 ++++++++++--- .../op/quality/domain/QcCheckTaskIncome.java | 2 +- .../domain/QcCheckTaskWarehousing.java | 2 +- .../mapper/QcCheckTaskIncomeMapper.java | 5 ++ .../op/quality/mapper/QcProCheckMapper.java | 3 + .../service/IQcCheckTaskIncomeService.java | 3 + .../quality/service/IQcCheckTypeService.java | 4 ++ .../op/quality/service/QcProCheckService.java | 4 ++ .../impl/QcCheckTaskIncomeServiceImpl.java | 56 ++++++++++++++- .../QcCheckReportIncomeServiceImpl.java | 3 +- .../QcCheckReportProduceServiceImpl.java | 2 +- .../QcCheckReportProductServiceImpl.java | 2 +- .../serviceImpl/QcProCheckServiceImpl.java | 13 ++++ .../quality/QcCheckTaskIncomeMapper.xml | 28 +++++++- .../mapper/quality/QcProCheckMapper.xml | 47 ++++++++++++- 21 files changed, 249 insertions(+), 62 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java index ef37bf940..db84819b5 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java @@ -248,40 +248,40 @@ public class MesPrepareServiceImpl implements IMesPrepareService { //报工 public void reportWorkByFactory(String poolName) { MesReportWork mesReportWork = new MesReportWork(); - mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 - mesReportWork.setProdType("prod"); - List reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork); - for(MesReportWork work:reportWorks) { - SapRFW sapRFW = new SapRFW(); - sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 - sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 - ltgs.setConf_activity1(work.getSac1());//人工 - ltgs.setConf_activity2(work.getSac2()); - ltgs.setConf_activity3(work.getSac3()); - ltgs.setConf_activity4(work.getSac4()); - ltgs.setConf_activity5(work.getSac5()); - ltgs.setConf_activity6(work.getSac6()); - SapRFW.lt_hw lthw = sapRFW.getLt_hw();//MES生产订单报工货物移动修改 - lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; - lthw.setMaterial(work.getProcessCode()); - R r = remoteSapService.sapRFWOrder(sapRFW); - //上传成功,更改mes_report_work状态 - if (r.getCode() == 200) { - work.setUploadStatus("1"); - } else { - work.setUploadStatus("2"); - work.setUploadMsg(r.getMsg()); - } - work.setUploadTime(DateUtils.getNowDate()); - mesReportWorkMapper.updateSyncSapStatus(work); - //关闭订单 - remoteSapService.sapCloseOrder(work.getOrderCode()); - //pro_work_order status->w4报工 - work.setStatus("w4"); - work.setUpdateTime(DateUtils.getNowDate()); - mesReportWorkMapper.updateWorkOrderStatus(work); - } +// mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 +// mesReportWork.setProdType("prod"); +// List reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork); +// for(MesReportWork work:reportWorks) { +// SapRFW sapRFW = new SapRFW(); +// sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 +// sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 +// SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 +// ltgs.setConf_activity1(work.getSac1());//人工 +// ltgs.setConf_activity2(work.getSac2()); +// ltgs.setConf_activity3(work.getSac3()); +// ltgs.setConf_activity4(work.getSac4()); +// ltgs.setConf_activity5(work.getSac5()); +// ltgs.setConf_activity6(work.getSac6()); +// SapRFW.lt_hw lthw = sapRFW.getLt_hw();//MES生产订单报工货物移动修改 +// lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; +// lthw.setMaterial(work.getProcessCode()); +// R r = remoteSapService.sapRFWOrder(sapRFW); +// //上传成功,更改mes_report_work状态 +// if (r.getCode() == 200) { +// work.setUploadStatus("1"); +// } else { +// work.setUploadStatus("2"); +// work.setUploadMsg(r.getMsg()); +// } +// work.setUploadTime(DateUtils.getNowDate()); +// mesReportWorkMapper.updateSyncSapStatus(work); +// //关闭订单 +// remoteSapService.sapCloseOrder(work.getOrderCode()); +// //pro_work_order status->w4报工 +// work.setStatus("w4"); +// work.setUpdateTime(DateUtils.getNowDate()); +// mesReportWorkMapper.updateWorkOrderStatus(work); +// } } public static void main(String args[]) { List list = new ArrayList<>(); diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 34401f485..c10cc1b83 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -445,7 +445,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 49ba40346..eef5e8e8e 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -205,7 +205,7 @@ public class OpenServiceImpl implements OpenService { ){ logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); - //工单完成,关闭工单 + //工单完成,关闭母工单 List sapWorkOrders = openMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 for(String sapWorkOrder:sapWorkOrders){ R rclose = remoteSapService.sapCloseOrder(sapWorkOrder); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index 40ab74cef..6057fab1e 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 9ed1c9605..fc41f382c 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -522,9 +522,6 @@ public class ProOrderServiceImpl implements IProOrderService { failOrder = proOrder.getOrderCode(); logger.info("=======订单"+failOrder+"同步失败"); } -// else {//关闭订单 -// remoteSapService.sapCloseOrder(proOrder.getOrderCode()); -// } } return failOrder; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index d5f4972ed..ce1bf79c5 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -294,6 +294,8 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { //顺序母子 Collections.reverse(wids); Collections.reverse(wcodes); + Collections.reverse(ordercodes); + sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); sap.setWerks(whiteOrder.getFactoryCode());//工厂编码 @@ -346,11 +348,11 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { //获取领料单 this.getMesPrepare(returnCodes,wcodes); - //关闭订单//订单的订单编码 - for(String orderCode:ordercodes){ - R closeR= remoteSapService.sapCloseOrder(orderCode); - logger.info(workorderId+"下发工单后关闭母订单"+orderCode+":"+closeR.getMsg()); - } + //关闭母订单子订单会自动关闭//订单的订单编码 + //for(String orderCode:ordercodes){ + R closeR= remoteSapService.sapCloseOrder(ordercodes.get(0)); + logger.info(workorderId+"下发工单后关闭母订单"+ordercodes.get(0)+":"+closeR.getMsg()); + //} //下达工单 String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); proOrderWorkorderMapper.downWorkorders(idsArrayAll); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index d242a381b..fc0cc81e9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -2,18 +2,18 @@ package com.op.quality.controller; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; +import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.page.TableDataInfo; +import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.*; -import com.op.quality.service.IQcCheckTaskProduceService; -import com.op.quality.service.IQcCheckTaskWarehousingService; -import com.op.quality.service.IQcCheckTypeService; -import com.op.quality.service.QcProCheckService; +import com.op.quality.service.*; import com.op.system.api.RemoteMesService; import com.op.system.api.domain.dto.WCSDTO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -40,6 +40,9 @@ public class QuaController extends BaseController { @Autowired private IQcCheckTypeService qcCheckTypeService; + @Autowired + private IQcCheckTaskIncomeService qcCheckTaskIncomeService; + @PostMapping("/saveQcProCheck") public R saveQcProCheck(@RequestBody QcProCheck qcProCheck) { DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode()); @@ -177,10 +180,37 @@ public class QuaController extends BaseController { */ @GetMapping(value = "getCheckTaskList") public AjaxResult getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { -// if(StringUtils.isBlank(qcCheckType.getFactoryCode())){ -// return error("[factoryCode]不能为空"); -// } -// return success(qcCheckTypeService.getCheckType(qcCheckType)); - return null; + if(StringUtils.isBlank(qcCheckTaskIncome.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskIncome.getCheckType())){ + return error("[checkType]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskIncome.getCheckManCode())){ + return error("[checkManCode]不能为空"); + } + return success(qcProCheckService.getCheckTaskList(qcCheckTaskIncome)); } + /** + * 获取待检验信息列表 + */ + @GetMapping(value = "getCheckTaskDetailList") + public AjaxResult getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { + if(StringUtils.isBlank(qcCheckTaskDetail.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskDetail.getBelongTo())){ + return error("[belongTo]不能为空"); + } + return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail)); + } + /**检测结果提交**/ + @PostMapping("/commitCheckResults") + public AjaxResult commitCheckResults(@RequestBody List details) { + if(CollectionUtils.isEmpty(details)){ + return error("[List]不能为空"); + } + return toAjax(qcCheckTaskIncomeService.commitCheckResults(details)); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index 6aef89b54..0f66846dd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -25,7 +25,7 @@ public class QcCheckTaskIncome extends BaseEntity { private String checkNo; /** 来料批次号 */ - @Excel(name = "来料批次号") + @Excel(name = "批次号") private String incomeBatchNo; /** 订单号 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java index d75d4a5e0..c267cb334 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java @@ -58,7 +58,7 @@ public class QcCheckTaskWarehousing extends BaseEntity { /** 来料时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "来料时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date incomeTime; /** 检测地点 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 71fb885f8..f5b04059f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -8,6 +8,7 @@ import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcSupplier; import com.op.system.api.domain.SysUser; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 来料检验Mapper接口 @@ -74,4 +75,8 @@ public interface QcCheckTaskIncomeMapper { int getTodayMaxNum(QcCheckTaskIncome qcCheckTaskIncome); List getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail); + + int updateQcCheckTask(QcCheckTaskIncome qcCheckTask); + + int updateQcCheckTaskDetails(@Param("list") List details); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java index a64b5c60e..f68842a66 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java @@ -2,6 +2,7 @@ package com.op.quality.mapper; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcProCheck; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -34,4 +35,6 @@ public interface QcProCheckMapper { List getEquipmentList(QcProCheck qcProCheck); List getDictList(QcProCheck qcProCheck); + + List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index 72cb2094f..a6a508865 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -76,5 +76,8 @@ public interface IQcCheckTaskIncomeService { int commitCheckResult(QcCheckTaskIncome qcCheckTaskIncome); + int commitCheckResults(List details); + List getDefectList(QcDefectType qcDefectType); + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java index a2588c9e3..84478087f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java @@ -1,6 +1,8 @@ package com.op.quality.service; import java.util.List; + +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckType; /** @@ -61,4 +63,6 @@ public interface IQcCheckTypeService { List getCheckType(QcCheckType qcCheckType); List getTopTaskInfo(QcCheckType qcCheckType); + + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index ca4bf2491..46bb5cc0f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -3,6 +3,7 @@ package com.op.quality.service; import com.op.common.core.domain.R; //import com.op.quality.domain.BaseFile; import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcProCheck; @@ -30,4 +31,7 @@ public interface QcProCheckService { List getDictList(QcProCheck qcProCheck); + List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); + + List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index e0cd35b58..584aa143f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -6,6 +6,7 @@ import java.util.List; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; @@ -13,6 +14,8 @@ import com.op.quality.domain.*; import com.op.quality.mapper.*; import com.op.quality.service.IQcCheckTaskProduceService; import com.op.system.api.domain.SysUser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.service.IQcCheckTaskIncomeService; @@ -31,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; */ @Service public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; @@ -190,8 +194,8 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return qcCheckTaskIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 @Override + @DS("master") public List getQcListUser(SysUser sysUser) { return qcCheckTaskIncomeMapper.getQcListUser(sysUser); } @@ -285,4 +289,54 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return qcCheckUnqualifiedMapper.getDefectList(qcDefectType); } + @Override + public int commitCheckResults(List details) { + DynamicDataSourceContextHolder.push("ds_"+details.get(0).getFactoryCode()); + Date nowTime = DateUtils.getNowDate(); + String factoryCode = details.get(0).getFactoryCode(); + String updateBy = details.get(0).getUpdateBy(); + String belongId = details.get(0).getBelongTo(); + + //默认合格 + String result = "Y"; + for(QcCheckTaskDetail detail:details){ + if("N".equals(detail.getStatus())){ + result = "N";//不合格 + break; + } + } + + int n = 0; + QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome(); + qcCheckTask.setUpdateBy(updateBy); + qcCheckTask.setRecordId(belongId); + qcCheckTask.setCheckResult("2");//检测状态0待检测1检测中2检测完成 + qcCheckTask.setUpdateTime(nowTime); + qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 + /**qc_check_task**/ + n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask); + logger.info("qc_check_task:"+n); + /**更新qc_check_task_detail**/ + for(QcCheckTaskDetail detail:details){ + + } + + n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details);; + logger.info("更新qc_check_task_detail:"+n); + //不合格处理 + if("N".equals(result)){ +// QcCheckUnqualified unqualified = new QcCheckUnqualified(); +// unqualified.setId(IdUtils.fastSimpleUUID()); +// unqualified.setTaskId(qcCheckTaskIncome.getRecordId()); +// unqualified.setCreateTime(DateUtils.getNowDate()); +// unqualified.setCreateBy(qcCheckTaskIncome.getUpdateBy()); +// unqualified.setFactoryCode(factoryCode); +// unqualified.setType(qcCheckTaskIncome.getCheckType()); +// /**qc_check_unqualified**/ +// qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); + } + + return n ; + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java index aa75c98fc..aeb97d41c 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java @@ -2,6 +2,7 @@ package com.op.quality.service.serviceImpl; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; @@ -176,8 +177,8 @@ public class QcCheckReportIncomeServiceImpl implements IQcCheckReportIncomeServi return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 @Override + @DS("master") public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java index 45ea3f41c..1feb39527 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java @@ -178,7 +178,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 + @DS("master") @Override public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java index f415b74c7..8c34e2c29 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java @@ -178,7 +178,7 @@ public class QcCheckReportProductServiceImpl implements IQcCheckReportProductSer return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 + @DS("master") @Override public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java index 037557f32..005a118de 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java @@ -8,6 +8,7 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcProCheck; import com.op.quality.mapper.QcCheckTaskIncomeMapper; @@ -114,4 +115,16 @@ public class QcProCheckServiceImpl implements QcProCheckService { return qcProCheckMapper.getDictList(qcProCheck); } + @Override + public List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskIncome.getFactoryCode()); + return qcProCheckMapper.getCheckTaskList(qcCheckTaskIncome); + } + + @Override + public List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskDetail.getFactoryCode()); + return qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + } + } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 2ec646ded..37ede2cac 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -131,12 +131,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" td.create_time createTime, td.update_by updateBy, td.update_time updateTime, + td.update_time updateTime, + td.belong_to belongTo, qctp.upper_diff upperDiff, qctp.down_diff downDiff, qctp.sample from qc_check_task_detail td left join qc_check_type_project qctp on td.type_project_id = qctp.id - where td.belong_to = #{belongTo} + where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' @@ -242,6 +244,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where record_id = #{recordId} + + update qc_check_task + set + check_status = #{checkStatus}, + check_time = #{checkTime}, + check_result = #{checkResult}, + update_by = #{updateBy}, + update_time = #{updateTime} + where record_id = #{recordId} + + + + update qc_check_task_detail + set + zh_desc = #{item.name1}, + contact_phone = #{item.telf1}, + address = #{item.stras}, + factory_code = #{item.bukrs}, + create_time= #{item.erdat}, + update_time = #{item.erdat} + where + supplier_code = #{item.lifnr} + + delete from qc_check_task where record_id = #{recordId} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index a41e49872..9e36c0ea6 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -35,7 +35,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id,rfid,factory_id,factory_code,order_id,machine_id,bad_meg,product_id,isqua,file_id,attr1,attr2, attr3,attr4,create_by,create_time,update_by,update_time,order_code,machine_code, @@ -212,4 +243,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dict_data where dict_type = #{equipmentTypeCode} + From 988ee5d7f41b1fd0b57b2d9ef131df6c0c72bd90 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 28 Nov 2023 17:42:01 +0800 Subject: [PATCH 10/14] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9-=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E5=B1=9E=E6=80=A7=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/op/device/domain/EquCheckItem.java | 11 +++++++++++ .../java/com/op/device/domain/EquOrderDetail.java | 10 ++++++++++ .../main/java/com/op/device/domain/EquPlanDetail.java | 10 ++++++++++ .../com/op/device/domain/dto/EquCheckItemDTO.java | 11 +++++++++++ .../java/com/op/device/domain/vo/EquCheckItemVO.java | 11 +++++++++++ .../service/impl/DeviceInterfaceServiceImpl.java | 11 ++++++----- .../resources/mapper/device/EquCheckItemMapper.xml | 7 ++++++- .../resources/mapper/device/EquOrderDetailMapper.xml | 6 +++++- .../resources/mapper/device/EquPlanDetailMapper.xml | 7 ++++++- 9 files changed, 76 insertions(+), 8 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java index 67a5bbf74..45abf7d61 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java @@ -95,6 +95,17 @@ public class EquCheckItem extends BaseEntity { // 更新日期结束 private String updateTimeEnd; + // 检查项工具 + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + private List equCheckItemDetailList; public List getEquCheckItemDetailList() { diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java index 4fb380770..b5358bd8b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java @@ -72,6 +72,16 @@ public class EquOrderDetail extends BaseEntity { private List standardList; + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getStandardList() { return standardList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java index 49b55557f..3dc3daf11 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java @@ -80,6 +80,16 @@ public class EquPlanDetail extends BaseEntity { // 主计划code private String planCode; + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getPlanCode() { return planCode; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java index 8e74f792c..810a3cd11 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java @@ -62,6 +62,17 @@ public class EquCheckItemDTO { // 设备编码list private List equipmentCodeList; + // 检查工具 + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getEquipmentCodeList() { return equipmentCodeList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java index 3f10a6d66..a8f4c44f9 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java @@ -46,6 +46,17 @@ public class EquCheckItemVO { // 设备编码 private String equipmentCode; + // 检查工具 + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getEquipmentName() { return equipmentName; } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 0a7cb9ebc..057b6d5f5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -87,11 +87,11 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); // 开机运行时间运行总时间累加 if (operationRecord.getType().equals("on")) { - totalTime+=diffTime; + totalTime += diffTime; } // 维修停机时间累加(故障) if (operationRecord.getMaintenanceType().equals("repair")) { - downTime+=diffTime; + downTime += diffTime; } } @@ -99,7 +99,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { if (downTime == 0L) { // 如果未查到该设备停机故障时间 equipmentVO.setFailureRate(0D); - }else { + } else { // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) double failureRate = downTime / totalTime; equipmentVO.setFailureRate(failureRate); @@ -118,7 +118,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { BigDecimal utilizationRatio = actualQuantity.divide(theoryQuantity, 2, BigDecimal.ROUND_HALF_UP); equipmentVO.setUtilizationRatio(utilizationRatio.doubleValue()); - }else { + } else { // 如果未查到该信息,则默认设置为0 equipmentVO.setUtilizationRatio(0D); } @@ -130,6 +130,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 获取设备维修质量TOP10 * 设备维修质量:故障时间/故障次数 + * * @return */ @Override @@ -153,7 +154,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { // 计算维修质量(故障时间(小时)/故障次数) long rapairQuantity = runTime / 3600000 / workOrderList.size(); equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); - }else { + } else { // 没有该记录则默认为0 equipmentVO.setRapairQuantity(0D); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml index 281ab3f95..4869ab8c6 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml @@ -21,10 +21,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by from equ_check_item + select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by ,item_tools from equ_check_item @@ -87,6 +89,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -107,6 +110,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml index 0caa0b000..0e55988c4 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml @@ -25,12 +25,13 @@ + select id, code, plan_id,plan_code, parent_code, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, - create_by, create_time, update_by, update_time + create_by, create_time, update_by, update_time,item_tools from equ_plan_detail @@ -51,6 +52,7 @@ and attr1 = #{attr1} and attr2 = #{attr2} and attr3 = #{attr3} + and item_tools = #{itemTools} and del_flag = '0' ORDER BY item_name @@ -94,6 +96,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -116,6 +119,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, @@ -141,6 +145,7 @@ create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + item_tools = #{itemTools}, where id = #{id} and del_flag = '0' From 134c9d271d4151f514d763b4d887efeae71ac020 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Tue, 28 Nov 2023 17:56:59 +0800 Subject: [PATCH 11/14] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9C=8B=E6=9D=BF=20?= =?UTF-8?q?=E4=B8=A4=E4=B8=AA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DeviceInterfaceController.java | 22 +++++ .../op/device/domain/EquOperationRecord.java | 84 +++++++++++++++++++ .../op/device/mapper/EquEquipmentMapper.java | 1 - .../mapper/EquOperationRecordMapper.java | 6 ++ .../service/IDeviceInterfaceService.java | 15 ++++ .../impl/DeviceInterfaceServiceImpl.java | 32 +++++++ .../device/EquOperationRecordMapper.xml | 30 +++++++ 7 files changed, 189 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java index 1e4a53c3b..ee308a848 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/DeviceInterfaceController.java @@ -1,6 +1,7 @@ package com.op.device.controller; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; import com.op.device.service.IDeviceInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -49,4 +50,25 @@ public class DeviceInterfaceController { return deviceInterfaceService.getRepairQuantity(); } + /** + * 设备稳定性-MTBF top10 + * 公式:实际运转时间/停机次数 + * @param equOperationRecord + * @return + */ + @GetMapping("/equipmentStability") + public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) { + return deviceInterfaceService.getEquipmentStabilityList(equOperationRecord); + } + + /** + * 完好设备占比 + * 公式:维修/故障设备 + * @param equOperationRecord + * @return + */ + @GetMapping("/equipmentIntactRate") + public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { + return deviceInterfaceService.getEquipmentIntactRate(equOperationRecord); + } } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java index 6c435598f..c8702aa2b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java @@ -64,6 +64,26 @@ public class EquOperationRecord extends BaseEntity { /** 删除标识 */ private String delFlag; + //MTBF接口字段 + //序号 + private String serialNumber; + //开机时间 + private String onTime; + //故障次数 + private String shutDownNumber; + //mtbf + private String mtbf; + + //IntactRate 完好设备占比字段 + //运行设备 + private String operationEquipment; + //故障设备 + private String faultEquipment; + //总设备 + private String totalEquipment; + //百分比 + private String intactRate; + public void setId(String id) { this.id = id; } @@ -149,6 +169,70 @@ public class EquOperationRecord extends BaseEntity { return delFlag; } + //虚拟字段 序号 + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + public String getSerialNumber() { + return serialNumber; + } + + //开机时间 + public void setOnTime(String onTime) { + this.onTime = onTime; + } + public String getOnTime() { + return onTime; + } + + //故障次数 + public void setShutDownNumber(String shutDownNumber) { + this.shutDownNumber = shutDownNumber; + } + public String getShutDownNumber() { + return shutDownNumber; + } + + //mtbf + public void setMtbf(String mtbf) { + this.mtbf = mtbf; + } + public String getMtbf() { + return mtbf; + } + + //运行设备 + public void setOperationEquipment(String operationEquipment) { + this.operationEquipment = operationEquipment; + } + public String getOperationEquipment() { + return operationEquipment; + } + + //故障设备 + public void setFaultEquipment(String faultEquipment) { + this.faultEquipment = faultEquipment; + } + public String getFaultEquipment() { + return faultEquipment; + } + + //总设备 + public void setTotalEquipment(String totalEquipment) { + this.totalEquipment = totalEquipment; + } + public String getTotalEquipment() { + return totalEquipment; + } + + //完好率 + public void setIntactRate(String intactRate) { + this.intactRate = intactRate; + } + public String getIntactRate() { + return intactRate; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java index 9165576eb..d293d8dbe 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java @@ -62,5 +62,4 @@ public interface EquEquipmentMapper { //查询设备类型 List getEquipmentTypeList(EquEquipment equEquipment); - } \ No newline at end of file diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java index c26347bf8..3a356f441 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -65,4 +65,10 @@ public interface EquOperationRecordMapper { * @return */ List selectEquOperationRecordByEquipmentCode(String equipmentCode); + + //设备稳定性 MTBF设备平均故障间隔 + List getMTBFList(EquOperationRecord equOperationRecord); + + //设备完好率 + EquOperationRecord getEquipmentIntactRate(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index da05dd4fb..466671e22 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -1,6 +1,7 @@ package com.op.device.service; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; /** * 设备看板接口 @@ -24,4 +25,18 @@ public interface IDeviceInterfaceService { * @return */ AjaxResult getRepairQuantity(); + + /** + * 设备稳定性MTBF 实际运转时间/停止次数 + * @return + */ + AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord); + + /** + * 完好设备占比 + * 公式:维修/故障设备 + * @param equOperationRecord + * @return + */ + AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 057b6d5f5..1aea47573 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -5,6 +5,7 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.EquOperationRecord; import com.op.device.domain.EquRepairWorkOrder; import com.op.device.domain.MesReportWork; +import com.op.device.mapper.EquEquipmentMapper; import com.op.device.domain.vo.IEquipmentVO; import com.op.device.domain.vo.IRepairWorkOrderVO; import com.op.device.mapper.DeviceInterfaceMapper; @@ -36,6 +37,12 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Autowired private EquOperationRecordMapper equOperationRecordMapper; + @Autowired + private EquEquipmentMapper equEquipmentMapper; + + @Autowired + private EquOperationRecordMapper equOperationRecordMapper; + /** * 获取待维修的维修工单 * @@ -180,4 +187,29 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { return success(top10); } + + /** + * 设备稳定性-MTBF top10 + * 公式:实际运转时间/停机次数 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + List equipmentList = equOperationRecordMapper.getMTBFList(equOperationRecord); + return success(equipmentList); + } + + + /** + * 完好设备占比 + * 公式:维修/故障设备 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord); + return success(equipmentIntactRate); + } } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml index 8f958d4d6..ebd25fc16 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationRecordMapper.xml @@ -149,4 +149,34 @@ #{id} + + + + + + + \ No newline at end of file From fe60faa025307bdb9cc96674e4df415f7d8a49b4 Mon Sep 17 00:00:00 2001 From: A0010407 Date: Tue, 28 Nov 2023 18:03:34 +0800 Subject: [PATCH 12/14] =?UTF-8?q?mapper=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/device/service/impl/DeviceInterfaceServiceImpl.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 1aea47573..a58cb1377 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -37,12 +37,6 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Autowired private EquOperationRecordMapper equOperationRecordMapper; - @Autowired - private EquEquipmentMapper equEquipmentMapper; - - @Autowired - private EquOperationRecordMapper equOperationRecordMapper; - /** * 获取待维修的维修工单 * From fbf3b3a30f16405ea9e49a6d776dbbd1fd282710 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 29 Nov 2023 10:17:34 +0800 Subject: [PATCH 13/14] 1 --- .../com/op/device/domain/EquPlanStandard.java | 20 +++++++++++++++++++ .../mapper/device/EquOrderDetailMapper.xml | 5 +++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java index 08ccb5339..37d7bbc06 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java @@ -78,6 +78,26 @@ public class EquPlanStandard extends BaseEntity { private Boolean showFlag; + private String itemMethod; + + private String itemTools; + + public String getItemMethod() { + return itemMethod; + } + + public void setItemMethod(String itemMethod) { + this.itemMethod = itemMethod; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public Boolean getShowFlag() { return showFlag; } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml index 3a81ae976..ea050820f 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml @@ -119,7 +119,7 @@ id, order_code, item_code, item_name, item_method, item_type, item_type_name, factory_code, del_flag, - create_by, create_time + create_by, create_time,item_tools ) VALUES @@ -127,7 +127,7 @@ #{item.id},#{item.parentCode}, #{item.itemCode},#{item.itemName},#{item.itemMethod}, #{item.itemType},#{item.itemTypeName},#{item.factoryCode},#{item.delFlag}, - #{item.createBy},#{item.createTime} + #{item.createBy},#{item.createTime},#{itemTools} ) @@ -145,6 +145,7 @@ item_type = #{itemType}, item_type_name = #{itemTypeName}, factory_code = #{factoryCode}, + item_tools = #{itemTools}, attr1 = #{attr1}, attr2 = #{attr2}, attr3 = #{attr3}, From 55047b2f7175637a8fa9e39a6f7978ee5f5fb287 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Wed, 29 Nov 2023 13:48:02 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9+=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=91=A8=E6=9C=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/domain/EquCheckItem.java | 22 +++++++++++++++++++ .../op/device/domain/dto/EquCheckItemDTO.java | 22 +++++++++++++++++++ .../op/device/domain/vo/EquCheckItemVO.java | 22 +++++++++++++++++++ .../mapper/device/EquCheckItemMapper.xml | 12 +++++++++- 4 files changed, 77 insertions(+), 1 deletion(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java index 45abf7d61..7afc7db7f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java @@ -98,6 +98,28 @@ public class EquCheckItem extends BaseEntity { // 检查项工具 private String itemTools; + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + public String getItemTools() { return itemTools; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java index 810a3cd11..f5c3826ce 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java @@ -65,6 +65,28 @@ public class EquCheckItemDTO { // 检查工具 private String itemTools; + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + public String getItemTools() { return itemTools; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java index a8f4c44f9..3d92c776e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java @@ -49,6 +49,28 @@ public class EquCheckItemVO { // 检查工具 private String itemTools; + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + public String getItemTools() { return itemTools; } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml index 4869ab8c6..15da54108 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemMapper.xml @@ -22,10 +22,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + - select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by ,item_tools from equ_check_item + select item_id, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, create_time, create_by, update_time, update_by ,item_tools ,item_loop,item_loop_type from equ_check_item