diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java index 98af79956..589e7dcb6 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BoardDTO.java @@ -20,6 +20,42 @@ public class BoardDTO { private List days; private String startTime; private String endTime; + private String productName; + private String productCode; + private String workorderCodeSap; + private String unit; + + public String getWorkorderCodeSap() { + return workorderCodeSap; + } + + public void setWorkorderCodeSap(String workorderCodeSap) { + this.workorderCodeSap = workorderCodeSap; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } public String getStartTime() { return startTime; 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 1776bde24..cfd3da31e 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 @@ -42,8 +42,7 @@ public class DeviceInterfaceController { } /** - * 获取设备维修质量TOP10 - * 设备维修质量:故障时间/故障次数 + * 获取设备维修质量 * * @return */ @@ -53,9 +52,7 @@ public class DeviceInterfaceController { } /** - * 设备稳定性-MTBF top10 - * 公式:实际运转时间/停机次数 - * 分为每日/每月/每年 + * 设备稳定性-MTBF * * @param equOperation * @return @@ -67,7 +64,6 @@ public class DeviceInterfaceController { /** * 完好设备占比 - * 公式:维修/故障设备 * * @param equOperation * @return diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperation.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperation.java index 026130b0f..233abf5ce 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOperation.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperation.java @@ -1,5 +1,6 @@ package com.op.device.domain; +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; @@ -179,6 +180,16 @@ public class EquOperation extends BaseEntity { //百分比 private String intactRate; + //设备看板时间范围——开始时间、结束时间 + @JsonFormat(pattern = "yyyy-MM-dd") + private String startTime; + + @JsonFormat(pattern = "yyyy-MM-dd") + private String endTime; + + //设备看板维修质量 mttr + private String mttr; + public String getCreateTimeStart() { return createTimeStart; } @@ -462,6 +473,30 @@ public class EquOperation extends BaseEntity { return timeDimension; } + //开始时间、结束时间 + public String getStartTime() { + return startTime; + } + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + //mttr + public void setMttr(String mttr) { + this.mttr = mttr; + } + + public String getMttr() { + return mttr; + } + @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/domain/EquRepairWorkOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java index 698838277..f5f077037 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairWorkOrder.java @@ -14,323 +14,166 @@ import com.op.common.core.web.domain.BaseEntity; /** * 维修工单对象 equ_repair_work_order * - * @author Open Platform + * @author * @date 2023-10-19 */ public class EquRepairWorkOrder extends BaseEntity { private static final long serialVersionUID = 1L; - /** - * 主键 - */ - private String workId; + @Excel(name = "维修主键") + private String workId;//主键 - /** - * 报修主键 - */ @Excel(name = "报修主键") - private String orderId; + private String orderId;//报修主键 - /** - * 维修单号 - */ @Excel(name = "维修单号") - private String workCode; + private String workCode;//维修单号 - /** - * 报修单号 - */ @Excel(name = "报修单号") - private String orderCode; + private String orderCode;//报修单号 - /** - * 是否立即处理 - */ @Excel(name = "是否立即处理") - private String workHandle; + private String workHandle;//是否立即处理 - /** - * 计划维修时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "计划维修时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date workPlanTime; + private Date workPlanTime;//计划维修时间 - /** - * 计划停机时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "计划停机时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date workPlanDownTime; + private Date workPlanDownTime;//计划停机时间 - /** - * 关联计划 - */ @Excel(name = "关联计划") - private String orderRelevance; + private String orderRelevance;//关联计划 - /** - * 维修人员 - */ @Excel(name = "维修人员") - private String workPerson; + private String workPerson;//维修人员 - /** - * 维修组 - */ @Excel(name = "维修组") - private String workTeam; + private String workTeam;//维修组 - /** - * 是否委外 - */ @Excel(name = "是否委外") - private String workOutsource; + private String workOutsource;//是否委外 - /** - * 是否停机维修 - */ @Excel(name = "是否停机维修") - private String workDownMachine; + private String workDownMachine;//是否停机维修 - /** - * 设备编码 - */ @Excel(name = "设备编码") - private String equipmentCode; + private String equipmentCode;//设备编码 - /** - * 原因分析 - */ @Excel(name = "原因分析") - private String workReason; + private String workReason;//原因分析 - /** - * 故障描述 - */ @Excel(name = "故障描述") - private String workFaultDesc; + private String workFaultDesc;//故障描述 - /** - * 维修用时 - */ @Excel(name = "维修用时") - private String workCostTime; + private String workCostTime;//维修用时 - /** - * 维修费用 - */ @Excel(name = "维修费用") - private String workCost; + private String workCost;//维修费用 - /** - * 委外工单id - */ @Excel(name = "委外工单id") - private String outWorkId; + private String outWorkId;//委外工单id - /** - * 委外工单编码 - */ @Excel(name = "委外工单编码") - private String outWorkCode; + private String outWorkCode;//委外工单编码 - /** - * 备用字段1 - */ @Excel(name = "备用字段1") - private String attr1; + private String attr1;//备用字段1 - /** - * 备用字段2 - */ @Excel(name = "备用字段2") - private String attr2; + private String attr2;//备用字段2 - /** - * 备用字段3 - */ @Excel(name = "备用字段3") - private String attr3; + private String attr3;//备用字段3 - /** - * 删除标志 - */ - private String delFlag; + @Excel(name = "删除标志") + private String delFlag;//删除标志 - /** - * 工厂编码 - */ @Excel(name = "工厂编码") - private String factoryCode; + private String factoryCode;//工厂编码 - /** - * 维修状态 - */ @Excel(name = "维修状态") - private String workStatus; + private String workStatus;//维修状态 - /** - * 维修开始时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "维修开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date workStartTime; + private Date workStartTime;//维修开始时间 - /** - * 维修结束时间 - */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "维修结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date workEndTime; + private Date workEndTime;//维修结束时间 - //维修停机真正开始时间 - private Date actualDownStartTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "维修实际开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date actualDownStartTime;//维修停机真正开始时间 - //维修停机真正结束时间 - private Date actualDownEndTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "维修实际结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date actualDownEndTime;//维修停机真正开始时间 - /** - * 联系方式 - */ - private String workConnection; + @Excel(name = "联系方式") + private String workConnection;//联系方式 - /** - * 设备状态描述 - */ - private String equipmentStatusDescription; + @Excel(name = "故障类型") + private String faultType;//故障类型 - /** - * 设备维修措施 - */ - private String repairMeasures; + @Excel(name = "设备状态描述") + private String equipmentStatusDescription;//设备状态描述 - // 设备 - /** - * 设备名称 - */ + @Excel(name = "维修措施") + private String repairMeasures;//设备维修措施 + + @Excel(name = "故障停机时间") + private String faultDownTime;//故障停机时间 + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "故障开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date faultStartTime;//故障开始时间 + + /////////////////////////////////////////////////////////设备表字段 @Excel(name = "设备名称") - private String equipmentName; + private String equipmentName;//设备名称 + private String equipmentSpec;//规格型号 + private String equipmentTypeName;//设备类型名称 + private String equipmentLocation;//设备位置 + private String department;//部门 + private String workshopCode;//所属工作中心编码 + private String workshopName;//所属工作中心名称 - /** - * 规格型号 - */ - @Excel(name = "规格型号") - private String equipmentSpec; - - /** - * 设备类型名称 - */ - @Excel(name = "设备类型名称") - private String equipmentTypeName; - - /** - * 设备位置 - */ - @Excel(name = "设备位置") - private String equipmentLocation; - - /** - * 部门 - */ - @Excel(name = "部门") - private String department; - - /** - * 所属工作中心编码 - */ - @Excel(name = "所属工作中心编码") - private String workshopCode; - - /** - * 所属工作中心名称 - */ - @Excel(name = "所属工作中心名称") - private String workshopName; - - //报修 - /** - * 故障描述 - */ - @Excel(name = "故障描述") - private String orderDesc; - - /** - * 故障时间 - */ + /////////////////////////////////////////////////////////////报修表 + private String orderDesc;//故障描述 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "故障时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date orderBreakdownTime; - - /** - * 报修来源 - */ - @Excel(name = "报修来源") - private String orderSource; - - /** - * 报修时间 - */ + private Date orderBreakdownTime;//故障时间 + private String orderSource;//报修来源 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "报修时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private Date orderTime; + private Date orderTime;//报修时间 + private String orderRepairmanCode;//报修人 + private String orderConnection;//报修人联系方式 - /** - * 报修人 - */ - private String orderRepairmanCode; + //////////////////////////////////////////////////////////////班组表 + @Excel(name = "班组名称") + private String teamName;//班组名称 + @Excel(name = "班组人员") + private String teamPerson;//班组人员 - /** - * 报修人联系方式 - */ - private String orderConnection; - - //班组 - /** - * 班组名称 - */ - private String teamName; - - /** - * 班组人员 - */ - private String teamPerson; - - //时间列表 虚拟字段 + /////////////////////////////////////////////////////////////时间列表 虚拟字段 private List workPlanTimeArray; private List workPlanDownTimeArray; - //计划开始时间、结束时间 - private String workPlanTimeStart; + private String workPlanTimeStart;//计划开始时间、结束时间 private String workPlanTimeEnd; - //计划停机开始时间、结束时间 - private String workPlanDownTimeStart; + private String workPlanDownTimeStart; //计划停机开始时间、结束时间 private String workPlanDownTimeEnd; - //委外虚拟字段 - /** - * 委外维修人员 - */ - private String outSourcePerson; - /** - * 委外维修原因 - */ - private String outSourceReason; - /** - * 委外单位 - */ - private String workOutsourcingUnit; - /** - * 联系方式 - */ - private String outSourceConnection; - /** - * 故障类型 - */ - private String faultType; + ///////////////////////////////////////////////////////////委外 + private String outSourcePerson;//委外人员 + private String outSourceReason;//委外维修原因 + private String workOutsourcingUnit;//委外单位 + private String outSourceConnection;//联系方式 //手持 - //用户id - private String userId; + private String userId;//用户id //检查项列表 private List detailList; @@ -349,11 +192,14 @@ public class EquRepairWorkOrder extends BaseEntity { //检查项列表 private List standardList; + //图片文件 + private String fileList; + private List files; + //维修前 维修后 public String getAfterRepairFile() { return afterRepairFile; } - public void setAfterRepairFile(String afterRepairFile) { this.afterRepairFile = afterRepairFile; } @@ -361,7 +207,6 @@ public class EquRepairWorkOrder extends BaseEntity { public List getAfterRepairFiles() { return afterRepairFiles; } - public void setAfterRepairFiles(List afterRepairFiles) { this.afterRepairFiles = afterRepairFiles; } @@ -369,7 +214,6 @@ public class EquRepairWorkOrder extends BaseEntity { public String getBeforeRepairFile() { return beforeRepairFile; } - public void setBeforeRepairFile(String beforeRepairFile) { this.beforeRepairFile = beforeRepairFile; } @@ -377,16 +221,12 @@ public class EquRepairWorkOrder extends BaseEntity { public List getBeforeRepairFiles() { return beforeRepairFiles; } - - public void setBeforeRepairFiles(List beforeRepairFiles) { - this.beforeRepairFiles = beforeRepairFiles; - } + public void setBeforeRepairFiles(List beforeRepairFiles) { this.beforeRepairFiles = beforeRepairFiles; } //detailList 检查项详情 public List getDetailList() { return detailList; } - public void setDetailList(List detailList) { this.detailList = detailList; } @@ -395,7 +235,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderDesc(String orderDesc) { this.orderDesc = orderDesc; } - public String getOrderDesc() { return orderDesc; } @@ -403,7 +242,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderBreakdownTime(Date orderBreakdownTime) { this.orderBreakdownTime = orderBreakdownTime; } - public Date getOrderBreakdownTime() { return orderBreakdownTime; } @@ -411,7 +249,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderSource(String orderSource) { this.orderSource = orderSource; } - public String getOrderSource() { return orderSource; } @@ -419,7 +256,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderTime(Date orderTime) { this.orderTime = orderTime; } - public Date getOrderTime() { return orderTime; } @@ -427,7 +263,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderRepairmanCode(String orderRepairmanCode) { this.orderRepairmanCode = orderRepairmanCode; } - public String getOrderRepairmanCode() { return orderRepairmanCode; } @@ -435,7 +270,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderConnection(String orderConnection) { this.orderConnection = orderConnection; } - public String getOrderConnection() { return orderConnection; } @@ -444,7 +278,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setEquipmentName(String equipmentName) { this.equipmentName = equipmentName; } - public String getEquipmentName() { return equipmentName; } @@ -452,7 +285,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setEquipmentSpec(String equipmentSpec) { this.equipmentSpec = equipmentSpec; } - public String getEquipmentSpec() { return equipmentSpec; } @@ -460,7 +292,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setEquipmentTypeName(String equipmentTypeName) { this.equipmentTypeName = equipmentTypeName; } - public String getEquipmentTypeName() { return equipmentTypeName; } @@ -468,7 +299,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setEquipmentLocation(String equipmentLocation) { this.equipmentLocation = equipmentLocation; } - public String getEquipmentLocation() { return equipmentLocation; } @@ -476,7 +306,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setDepartment(String department) { this.department = department; } - public String getDepartment() { return department; } @@ -484,7 +313,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkshopCode(String workshopCode) { this.workshopCode = workshopCode; } - public String getWorkshopCode() { return workshopCode; } @@ -492,24 +320,22 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkshopName(String workshopName) { this.workshopName = workshopName; } - public String getWorkshopName() { return workshopName; } + + //维修工单 public void setWorkId(String workId) { this.workId = workId; } - public String getWorkId() { return workId; } - public void setOrderId(String orderId) { this.orderId = orderId; } - public String getOrderId() { return orderId; } @@ -517,7 +343,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkCode(String workCode) { this.workCode = workCode; } - public String getWorkCode() { return workCode; } @@ -525,7 +350,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderCode(String orderCode) { this.orderCode = orderCode; } - public String getOrderCode() { return orderCode; } @@ -533,7 +357,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkHandle(String workHandle) { this.workHandle = workHandle; } - public String getWorkHandle() { return workHandle; } @@ -541,7 +364,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkPlanTime(Date workPlanTime) { this.workPlanTime = workPlanTime; } - public Date getWorkPlanTime() { return workPlanTime; } @@ -549,7 +371,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkPlanDownTime(Date workPlanDownTime) { this.workPlanDownTime = workPlanDownTime; } - public Date getWorkPlanDownTime() { return workPlanDownTime; } @@ -557,7 +378,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOrderRelevance(String orderRelevance) { this.orderRelevance = orderRelevance; } - public String getOrderRelevance() { return orderRelevance; } @@ -565,7 +385,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkPerson(String workPerson) { this.workPerson = workPerson; } - public String getWorkPerson() { return workPerson; } @@ -573,7 +392,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkTeam(String workTeam) { this.workTeam = workTeam; } - public String getWorkTeam() { return workTeam; } @@ -581,7 +399,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkOutsource(String workOutsource) { this.workOutsource = workOutsource; } - public String getWorkOutsource() { return workOutsource; } @@ -589,7 +406,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkDownMachine(String workDownMachine) { this.workDownMachine = workDownMachine; } - public String getWorkDownMachine() { return workDownMachine; } @@ -597,7 +413,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setEquipmentCode(String equipmentCode) { this.equipmentCode = equipmentCode; } - public String getEquipmentCode() { return equipmentCode; } @@ -605,7 +420,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkReason(String workReason) { this.workReason = workReason; } - public String getWorkReason() { return workReason; } @@ -613,7 +427,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkFaultDesc(String workFaultDesc) { this.workFaultDesc = workFaultDesc; } - public String getWorkFaultDesc() { return workFaultDesc; } @@ -621,7 +434,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkCostTime(String workCostTime) { this.workCostTime = workCostTime; } - public String getWorkCostTime() { return workCostTime; } @@ -629,7 +441,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkCost(String workCost) { this.workCost = workCost; } - public String getWorkCost() { return workCost; } @@ -637,7 +448,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOutWorkId(String outWorkId) { this.outWorkId = outWorkId; } - public String getOutWorkId() { return outWorkId; } @@ -645,7 +455,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOutWorkCode(String outWorkCode) { this.outWorkCode = outWorkCode; } - public String getOutWorkCode() { return outWorkCode; } @@ -653,7 +462,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setAttr1(String attr1) { this.attr1 = attr1; } - public String getAttr1() { return attr1; } @@ -661,7 +469,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setAttr2(String attr2) { this.attr2 = attr2; } - public String getAttr2() { return attr2; } @@ -669,7 +476,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setAttr3(String attr3) { this.attr3 = attr3; } - public String getAttr3() { return attr3; } @@ -677,7 +483,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setDelFlag(String delFlag) { this.delFlag = delFlag; } - public String getDelFlag() { return delFlag; } @@ -685,25 +490,20 @@ public class EquRepairWorkOrder extends BaseEntity { public void setFactoryCode(String factoryCode) { this.factoryCode = factoryCode; } - public String getFactoryCode() { return factoryCode; } - //维修工单 新增字段 维修状态 public void setWorkStatus(String workStatus) { this.workStatus = workStatus; } - public String getWorkStatus() { return workStatus; } - //维修工单 新增字段 维修开始结束时间 public void setWorkStartTime(Date workStartTime) { this.workStartTime = workStartTime; } - public Date getWorkStartTime() { return workStartTime; } @@ -711,7 +511,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkEndTime(Date workEndTime) { this.workEndTime = workEndTime; } - public Date getWorkEndTime() { return workEndTime; } @@ -719,7 +518,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkConnection(String workConnection) { this.workConnection = workConnection; } - public String getWorkConnection() { return workConnection; } @@ -728,7 +526,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setTeamName(String teamName) { this.teamName = teamName; } - public String getTeamName() { return teamName; } @@ -736,7 +533,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setTeamPerson(String teamPerson) { this.teamPerson = teamPerson; } - public String getTeamPerson() { return teamPerson; } @@ -745,7 +541,6 @@ public class EquRepairWorkOrder extends BaseEntity { public List getWorkPlanTimeArray() { return workPlanTimeArray; } - public void setWorkPlanTimeArray(List workPlanTimeArray) { this.workPlanTimeArray = workPlanTimeArray; } @@ -753,33 +548,25 @@ public class EquRepairWorkOrder extends BaseEntity { public List getWorkPlanDownTimeArray() { return workPlanDownTimeArray; } - - public void setWorkPlanDownTimeArray(List workPlanDownTimeArray) { - this.workPlanDownTimeArray = workPlanDownTimeArray; - } + public void setWorkPlanDownTimeArray(List workPlanDownTimeArray) { this.workPlanDownTimeArray = workPlanDownTimeArray; } //计划开始时间、结束时间 public String getWorkPlanDownTimeStart() { return workPlanDownTimeStart; } - - public void setWorkPlanDownTimeStart(String workPlanDownTimeStart) { - this.workPlanDownTimeStart = workPlanDownTimeStart; - } + public void setWorkPlanDownTimeStart(String workPlanDownTimeStart) { this.workPlanDownTimeStart = workPlanDownTimeStart; } public String getWorkPlanDownTimeEnd() { return workPlanDownTimeEnd; } - public void setWorkPlanDownTimeEnd(String workPlanDownTimeEnd) { this.workPlanDownTimeEnd = workPlanDownTimeEnd; } - //计划停机开始时间、结束时间 + //实际停机开始时间、结束时间 public Date getActualDownStartTime() { return actualDownStartTime; } - public void setActualDownStartTime(Date actualDownStartTime) { this.actualDownStartTime = actualDownStartTime; } @@ -787,16 +574,36 @@ public class EquRepairWorkOrder extends BaseEntity { public Date getActualDownEndTime() { return actualDownEndTime; } - public void setActualDownEndTime(Date actualDownEndTime) { this.actualDownEndTime = actualDownEndTime; } - //委外维修人员/委外维修原因 虚拟字段 + //停机开始时间、结束时间 + public String getWorkPlanTimeStart() { return workPlanTimeStart; } + public void setWorkPlanTimeStart(String workPlanTimeStart) { this.workPlanTimeStart = workPlanTimeStart; } + + public String getWorkPlanTimeEnd() { return workPlanTimeEnd; } + public void setWorkPlanTimeEnd(String workPlanTimeEnd) { this.workPlanTimeEnd = workPlanTimeEnd; } + + public String getFaultType() { return faultType; } + public void setFaultType(String faultType) { this.faultType = faultType; } + + public String getEquipmentStatusDescription() { return equipmentStatusDescription; } + public void setEquipmentStatusDescription(String equipmentStatusDescription) { this.equipmentStatusDescription = equipmentStatusDescription; } + + public String getRepairMeasures() { return repairMeasures; } + public void setRepairMeasures(String repairMeasures) { this.repairMeasures = repairMeasures; } + + public String getFaultDownTime() { return faultDownTime; } + public void setFaultDownTime(String faultDownTime) { this.faultDownTime = faultDownTime; } + + public Date getFaultStartTime() { return faultStartTime; } + public void setFaultStartTime(Date faultStartTime) { this.faultStartTime = faultStartTime; } + + //委外 public void setOutSourceReason(String outSourceReason) { this.outSourceReason = outSourceReason; } - public String getOutSourceReason() { return outSourceReason; } @@ -804,7 +611,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOutSourcePerson(String outSourcePerson) { this.outSourcePerson = outSourcePerson; } - public String getOutSourcePerson() { return outSourcePerson; } @@ -812,7 +618,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setWorkOutsourcingUnit(String workOutsourcingUnit) { this.workOutsourcingUnit = workOutsourcingUnit; } - public String getWorkOutsourcingUnit() { return workOutsourcingUnit; } @@ -820,7 +625,6 @@ public class EquRepairWorkOrder extends BaseEntity { public void setOutSourceConnection(String outSourceConnection) { this.outSourceConnection = outSourceConnection; } - public String getOutSourceConnection() { return outSourceConnection; } @@ -829,92 +633,26 @@ public class EquRepairWorkOrder extends BaseEntity { public void setUserId(String userId) { this.userId = userId; } - public String getUserId() { return userId; } + //申领单 public List getApplyList() { return applyList; } - - public void setApplyList(List applyList) { - this.applyList = applyList; - } - - //实际停机开始时间、结束时间 - public String getWorkPlanTimeStart() { - return workPlanTimeStart; - } - - public void setWorkPlanTimeStart(String workPlanTimeStart) { - this.workPlanTimeStart = workPlanTimeStart; - } - - public String getWorkPlanTimeEnd() { - return workPlanTimeEnd; - } - - public void setWorkPlanTimeEnd(String workPlanTimeEnd) { - this.workPlanTimeEnd = workPlanTimeEnd; - } + public void setApplyList(List applyList) { this.applyList = applyList; } //图片文件 - private String fileList; - private List files; + public String getFileList() { return fileList; } + public void setFileList(String fileList) { this.fileList = fileList; } - //图片文件 - public String getFileList() { - return fileList; - } - - public void setFileList(String fileList) { - this.fileList = fileList; - } - - public List getFiles() { - return files; - } - - public void setFiles(List files) { - this.files = files; - } + public List getFiles() { return files; } + public void setFiles(List files) { this.files = files; } //标准列表 - public List getStandardList() { - return standardList; - } - - public void setStandardList(List standardList) { - this.standardList = standardList; - } - - //故障类型 - public String getFaultType() { - return faultType; - } - - public void setFaultType(String faultType) { - this.faultType = faultType; - } - - //设备状态描述 - public String getEquipmentStatusDescription() { - return equipmentStatusDescription; - } - - public void setEquipmentStatusDescription(String equipmentStatusDescription) { - this.equipmentStatusDescription = equipmentStatusDescription; - } - - //维修措施 - public String getRepairMeasures() { - return repairMeasures; - } - - public void setRepairMeasures(String repairMeasures) { - this.repairMeasures = repairMeasures; - } + public List getStandardList() { return standardList; } + public void setStandardList(List standardList) { this.standardList = standardList; } @Override public String 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 68ef5667d..e0e1205ed 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 @@ -54,9 +54,11 @@ public interface DeviceInterfaceMapper { //设备稳定性 MTBF设备平均故障间隔 List getMTBFList(EquOperation equOperation); + //设备维修质量 MTTR + List getMTTRList(EquOperation equOperation); //设备完好率 - EquOperation getEquipmentIntactRate(EquOperation equOperation); + List getEquipmentIntactRate(EquOperation equOperation); String getDeviceRefreshTime(EquOperationRecord equOperationRecord); @@ -77,4 +79,7 @@ public interface DeviceInterfaceMapper { // 通过设备编码获取设备运行记录 Map selectSumEquipmentOperation(String equipmentCode); + + //设备总数 + String getTotalEquipment(); } 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 90224224e..2911d4760 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 @@ -28,7 +28,8 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { private DeviceInterfaceMapper deviceInterfaceMapper; /** - * 获取待维修的维修工单 + * 设备看板中间部分:维修工单模块 + * 获取【待维修】的维修工单 * * @return */ @@ -51,80 +52,62 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { } /** - * 获取设备信息 - * 故障停机率:(设备停机时间总和/一定时间内运行总时间(今年运行的时间)) - * 设备有效利用率:(实际产量/理论产量)改为:一定天数内该设备的总开机时间/(天数*24小时) - * + * 设备看板左上方:获取设备信息 + * 设备故障率:设备故障【停机】时间总和/一定时间内运行总时间 + * 设备有效利用率:一定天数内该设备的总开机时间/(天数*24小时) + * 默认时间为:当年1月1日到当前天 + * 改为:一开始展示默认时间,也可以自行选择时间 + * 这个设备故障停机时间从报修时提交的故障时间/快速工单提交的故障开始时间,开始计算,而不是从维修开始时间到维修完成时间 * @return */ @Override @DS("#header.poolName") public AjaxResult getEquipmentInfo(EquOperation equOperation) { - if (equOperation.getTimeDimension() == null) { - equOperation.setTimeDimension("yyyy"); + if((equOperation.getStartTime() == null) && (equOperation.getEndTime() == null)){ + //默认时间 + if (equOperation.getTimeDimension() == null) { + equOperation.setTimeDimension("yyyy"); + } } - // 获取所有设备信息 List equipmentVOList = deviceInterfaceMapper.selectEquipmentVOList(equOperation); return success(equipmentVOList); } /** - * 获取设备维修质量TOP10 - * 设备维修质量:故障时间/故障次数 - * + * 设备看板最右下角:设备维修质量模块 + * MTTR:故障时间/故障次数 + * 时间默认:当日 + * 改为:默认当日,可自行选择时间 * @return */ @Override @DS("#header.poolName") public AjaxResult getRepairQuantity(EquOperation equOperation) { - - equOperation.setTimeDimension("yyyy"); - - // 获取维修工单中的设备列表 - List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(equOperation); - - for (IEquipmentVO equipmentVO : equipmentVOList) { - // 通过该设备code获取设备维修记录(只获取开始时间、结束时间) - List workOrderList = deviceInterfaceMapper.selectRepairRecordByEquipmentCode(equipmentVO.getEquipmentCode()); - if (workOrderList.size() != 0) { - double runTime = 0; - for (EquRepairWorkOrder workOrder : workOrderList) { - // 维修时间差值 - long diffTime = workOrder.getWorkEndTime().getTime() - workOrder.getWorkStartTime().getTime(); - // 累加时间 - runTime += diffTime; - } - // 计算维修质量(故障时间(小时)/故障次数) - Double rapairQuantity = runTime / 3600000 / workOrderList.size(); - String douStr = String.format("%.2f", rapairQuantity); - equipmentVO.setRapairQuantity(douStr); - } else { - // 没有该记录则默认为0 - equipmentVO.setRapairQuantity("0.00"); + equOperation.setCreateTime(DateUtils.getNowDate()); + if((equOperation.getStartTime() == null) && (equOperation.getEndTime() == null)){ + if (equOperation.getTimeDimension() == null) { + equOperation.setTimeDimension("dd"); } } - - // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 - List top10 = equipmentVOList.stream() - .sorted(Comparator.comparing(IEquipmentVO::getRapairQuantity).reversed())// 由正序改为 反转排序 倒序 - .limit(10) // 限制结果数量为10 改为不限制结果数量 - .collect(Collectors.toList()); //将结果收集到List中 - return success(top10); + List equipmentList = deviceInterfaceMapper.getMTTRList(equOperation); + return success(equipmentList); } /** - * 设备稳定性-MTBF - * 公式:实际运转时间/停机次数 + * 设备左上角看板:设备稳定性模块 + * MTBF公式:实际运转时间/停机次数 + * 默认是当日的 + * 改为:一开始展示默认,可以选择时间 */ @Override @DS("#header.poolName") public AjaxResult getEquipmentStabilityList(EquOperation equOperation) { - //查询所有设备(设备停用的除外) - //判断查询年/月/日 equOperation.setCreateTime(DateUtils.getNowDate()); - if (equOperation.getTimeDimension() == null) { - equOperation.setTimeDimension("dd"); + if((equOperation.getStartTime() == null) && (equOperation.getEndTime() == null)){ + if (equOperation.getTimeDimension() == null) { + equOperation.setTimeDimension("dd"); + } } List equipmentList = deviceInterfaceMapper.getMTBFList(equOperation); return success(equipmentList); @@ -133,17 +116,32 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { /** * 完好设备占比 * 公式:(所有设备-故障设备)/所有设备 + * 默认为当日的 */ @Override @DS("#header.poolName") public AjaxResult getEquipmentIntactRate(EquOperation equOperation) { //查询所有设备(设备停用的除外) - EquOperation equipmentIntactRate = deviceInterfaceMapper.getEquipmentIntactRate(equOperation); + equOperation.setCreateTime(DateUtils.getNowDate()); + if((equOperation.getStartTime() == null) && (equOperation.getEndTime() == null)){ + if (equOperation.getTimeDimension() == null) { + equOperation.setTimeDimension("dd"); + } + } + List example = deviceInterfaceMapper.getEquipmentIntactRate(equOperation); + Integer fault = 0; + for(EquOperation equOperation1 :example){ + fault = fault + Integer.valueOf(equOperation1.getFaultEquipment()); + } + EquOperation equipmentIntactRate = new EquOperation(); + equipmentIntactRate.setTotalEquipment(deviceInterfaceMapper.getTotalEquipment()); Double totalEquipment = new Double(equipmentIntactRate.getTotalEquipment()); - Double operationEquipment = new Double(equipmentIntactRate.getOperationEquipment()); + Double operationEquipment = new Double(Integer.valueOf(equipmentIntactRate.getTotalEquipment()) - fault); Double intactRate = operationEquipment*100/totalEquipment; String douStr = String.format("%.2f", intactRate); equipmentIntactRate.setIntactRate(douStr); + equipmentIntactRate.setOperationEquipment(String.valueOf(operationEquipment)); + equipmentIntactRate.setFaultEquipment(String.valueOf(fault)); return success(equipmentIntactRate); } 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 3b2921253..81c0d674a 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 @@ -751,7 +751,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { try { - //1.判断是否停机 + ////1.判断是否停机 EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); if (list.getWorkDownMachine().equals("1")) { //维修真正停机时间 @@ -760,48 +760,58 @@ public class DevicePDAServiceImpl implements IDevicePDAService { //维修工单结束时间 equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); - //2.计算维修工单用时 + ////2.计算维修工单用时 + 故障停机时间 if (list.getWorkStartTime() != null && equRepairWorkOrder.getWorkEndTime() != null) { - - //2.1计算日期差值 + ////2.1计算维修日期差值 ZoneId zoneId = ZoneId.systemDefault(); - LocalDateTime start = LocalDateTime.ofInstant(list.getWorkStartTime().toInstant(), zoneId); - LocalDateTime end = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); - LocalDateTime tempDateTime = LocalDateTime.from(start); + LocalDateTime workStart = LocalDateTime.ofInstant(list.getWorkStartTime().toInstant(), zoneId); + LocalDateTime workEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); + LocalDateTime workDateTime = LocalDateTime.from(workStart); -// long years = tempDateTime.until(end, ChronoUnit.YEARS); -// tempDateTime = tempDateTime.plusYears(years); -// long months = tempDateTime.until(end, ChronoUnit.MONTHS); -// tempDateTime = tempDateTime.plusMonths(months); -// long days = tempDateTime.until(end, ChronoUnit.DAYS); -// tempDateTime = tempDateTime.plusDays(days); + double workHours = workDateTime.until(workEnd, ChronoUnit.HOURS); + double workMinutes = ((workDateTime.until(workEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60; + double workSeconds = ((workDateTime.until(workEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; + double workHour = BigDecimal.valueOf(workHours + workMinutes + workSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + //塞入维修用时 + equRepairWorkOrder.setWorkCostTime(String.valueOf(workHour)+"小时"); - double hours = tempDateTime.until(end, ChronoUnit.HOURS); -// tempDateTime = tempDateTime.plusHours(hours); - double minutes = ((tempDateTime.until(end, ChronoUnit.MINUTES) * 1.0) % 60) / 60; -// tempDateTime = tempDateTime.plusMinutes(minutes); - double seconds = ((tempDateTime.until(end, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; - double hour = BigDecimal.valueOf(hours + minutes + seconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + ////2.2 计算故障停机时间差值 + //报修的故障时间 和 快速工单的故障开始时间 + Date downStartTime = new Date(); + if(list.getOrderBreakdownTime() != null){ + downStartTime = list.getOrderBreakdownTime(); + }else if(list.getFaultStartTime() != null){ + downStartTime = list.getFaultStartTime(); + } + LocalDateTime downStart = LocalDateTime.ofInstant(downStartTime.toInstant(), zoneId); + LocalDateTime downEnd = LocalDateTime.ofInstant(equRepairWorkOrder.getWorkEndTime().toInstant(), zoneId); + LocalDateTime downDateTime = LocalDateTime.from(downStart); - //2.2查询完好率报表 + double downHours = downDateTime.until(downEnd, ChronoUnit.HOURS); + double downMinutes = ((downDateTime.until(downEnd, ChronoUnit.MINUTES) * 1.0) % 60) / 60; + double downSeconds = ((downDateTime.until(downEnd, ChronoUnit.SECONDS) * 1.0) % 3600) / 3600; + double downHour = BigDecimal.valueOf(downHours + downMinutes + downSeconds).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + equRepairWorkOrder.setFaultDownTime(String.valueOf(downHour)+"小时"); + + ////2.2查询当日完好率报表 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode()); - //2.3修改完好率报表 + ////2.3修改完好率报表 if (equOperation != null) { if (list.getWorkDownMachine().equals("1")) { DecimalFormat df = new DecimalFormat("#.##"); - //实际运行时间 = 实际运行时间 - 故障时间 - double result = Double.parseDouble(equOperation.getActualOperationTime()) - hour; - //故障时间 = 原来的故障时间 + 这次的故障时间 - double faultTime = Double.parseDouble(equOperation.getFaultTime()) + hour; - BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障时间 + //实际运行时间 = 实际运行时间 - 故障停机时间 + double result = Double.parseDouble(equOperation.getActualOperationTime()) - downHour; + //故障时间 = 原来的故障停机时间 + 这次的故障停机时间 + double faultTime = Double.parseDouble(equOperation.getFaultTime()) + downHour; + BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障停机时间 BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 - equOperation.setFaultTime(String.valueOf(faultTime));//故障时间 + equOperation.setFaultTime(String.valueOf(faultTime));//故障停机时间 equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%"); - equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//停机次数加1 + equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//故障停机次数加1 } equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1 equOperation.setUpdateBy(SecurityUtils.getUsername()); @@ -811,7 +821,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } ////3.更新每一项点检/巡检检查项信息 - //判空 if (StringUtils.isNotEmpty(equRepairWorkOrder.getDetailList())) { List checkLists = equRepairWorkOrder.getDetailList(); for (EquOrder checkList : checkLists) { @@ -852,7 +861,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } ////4.新建申领单 - //判空 if (StringUtils.isNotEmpty(equRepairWorkOrder.getApplyList())) { List equSpareApplies = equRepairWorkOrder.getApplyList(); for (EquSpareApply equSpareApply : equSpareApplies) { @@ -936,12 +944,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { // BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); // equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); - //7.修改设备状态 由维修中改为正常运行 + ////7.修改设备状态 由维修中改为正常运行 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(example.getEquipmentCode()); equEquipment.setEquipmentStatus("1"); equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); - return success("提交成功,维修完成!"); } catch (Exception e) { return error("提交失败!"); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index ef618dfaf..f9bdb462e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -460,10 +460,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { for (EquOperation operation : operationList) { operation.setId(IdUtils.fastSimpleUUID());// id operation.setFactoryCode(poolName.replace("ds_", ""));// 工厂 - operation.setOperationTime(DateUtils.getTime());// 日期 operation.setOperationTime(operationTime);// 运行时间(默认运行时间) operation.setActualOperationTime(operationTime);// 实际运行时间(默认运行时间) - operation.setCreateBy("jod"); + operation.setCreateBy("job"); operation.setCreateTime(DateUtils.getNowDate()); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java index 30a965369..96df2cc7e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquPlanServiceImpl.java @@ -506,6 +506,7 @@ public class EquPlanServiceImpl implements IEquPlanService { * @return */ private AjaxResult formatEquItemCommon(List equPlanEquList, String planType, String message) { + String equipmentList = ""; for (EquPlanEqu data : equPlanEquList) { // 检查项名称临时对象 @@ -552,10 +553,16 @@ public class EquPlanServiceImpl implements IEquPlanService { data.setItemTempName(itemTempName.toString());//处理好的检查项名称置入检查项名称(用于前端信息回显) } else { // 未查询到对应检查项信息 - return error(500, message); + equipmentList = equipmentList + '[' + data.getEquipmentCode() + "]"; } } - return success(equPlanEquList); + if(!equipmentList.equals("")){ + equipmentList = equipmentList + "设备未查询到对应检查项信息!"; + message = equipmentList; + return error(500, message); + }else{ + return success(equPlanEquList); + } } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index 3698d7ec3..a5ff390cf 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -169,12 +169,15 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService @Override @DS("#header.poolName") public int updateEquRepairWorkOrder(EquRepairWorkOrder equRepairWorkOrder) { + Date date = DateUtils.getNowDate(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String formattedDate = dateFormat.format(date); //1.是否停机 if (equRepairWorkOrder.getWorkDownMachine().equals("0")) { equRepairWorkOrder.setWorkPlanDownTime(null); } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + equRepairWorkOrder.setUpdateTime(date); //2.先删除每个维修工单对应图片,再新增照片 equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); @@ -236,7 +239,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); //5.2维修完成后 相应的设备完好率重新计算 小时计算 保留一位小数 实际故障时间 换算成小时 - String hours = equRepairWorkOrder.getWorkCostTime().substring(0, equRepairWorkOrder.getWorkCostTime().length() - 2); //截掉后两位 + String hours = equRepairWorkOrder.getFaultDownTime().substring(0, equRepairWorkOrder.getFaultDownTime().length() - 2); //截掉后两位 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String time = sdf.format(equRepairWorkOrder.getWorkEndTime()); EquOperation equOperation = equOperationMapper.selectEquipmentIntegrityRate(time, equRepairWorkOrder.getEquipmentCode()); @@ -249,17 +252,40 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService //故障时间 = 原来的故障时间 + 这次的故障时间 double faultTime = Double.parseDouble(equOperation.getFaultTime()) + Double.parseDouble(hours); BigDecimal faultTimeBD = new BigDecimal(faultTime);// 故障时间 - BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());// 运行时间 + BigDecimal operationTimeBD = new BigDecimal(equOperation.getOperationTime());//运行时间 equOperation.setFaultTime(String.valueOf(faultTime));//故障时间 equOperation.setActualOperationTime(String.valueOf(df.format(result)));//实际运行时间 - // 故障率计算(故障时间/运行时间) + //故障率计算(故障时间/运行时间) equOperation.setFailureRate(faultTimeBD.multiply(new BigDecimal(100)).divide(operationTimeBD, 2, RoundingMode.HALF_UP).toString() + "%"); equOperation.setShutdownTimes(equOperation.getShutdownTimes() + 1);//停机次数加1 } - equOperation.setUpdateBy(SecurityUtils.getUsername()); - equOperation.setUpdateTime(DateUtils.getNowDate()); + + //5.3更新 + equOperation.setUpdateBy(SecurityUtils.getUsername());//更新人 + equOperation.setUpdateTime(DateUtils.getNowDate());//更新时间 //故障次数增加,但是停机次数可能不增加 equOperation.setFailureTimes(equOperation.getFailureTimes() + 1);//故障次数加1 + //取当天的 + String GZMS = equOperation.getFailureDescription(); + String GZYY = equOperation.getReasonAnalyze(); + String GZCS = equOperation.getHandlingMethod(); + if(GZMS != null){ + equOperation.setFailureDescription(GZMS + formattedDate + ":"+ equRepairWorkOrder.getWorkFaultDesc() + ";");//故障描述 + }else{ + equOperation.setFailureDescription(formattedDate + ":"+ equRepairWorkOrder.getWorkFaultDesc() + ";");//故障描述 + } + + if(GZYY != null){ + equOperation.setReasonAnalyze(GZYY + formattedDate + ":"+ equRepairWorkOrder.getWorkReason() + ";");//故障原因 + }else{ + equOperation.setReasonAnalyze(formattedDate + ":"+ equRepairWorkOrder.getWorkReason() + ";");//故障原因 + } + + if(GZCS != null){ + equOperation.setHandlingMethod(GZCS + formattedDate + ":"+ equRepairWorkOrder.getRepairMeasures() + ";");//维修措施 + }else{ + equOperation.setHandlingMethod(formattedDate + ":"+ equRepairWorkOrder.getRepairMeasures() + ";");//维修措施 + } equOperationMapper.updateEquOperation(equOperation); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java index a8a8661d6..5917c45e5 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpotCheckServiceImpl.java @@ -177,8 +177,9 @@ public class EquSpotCheckServiceImpl implements IEquSpotCheckService { equipmentList = equipmentList + "设备未查询到对应检查项信息!"; message = equipmentList; return error(500, message); + }else{ + return success(equPlanEquList); } - return success(equPlanEquList); } } 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 e1cd6ab82..8f2bc8f8a 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 @@ -56,6 +56,7 @@ and convert(char(10),eo.create_time,120) = convert(char(10),getdate(),120) and month(eo.create_time) = month(getdate()) and year(eo.create_time) = year(getdate()) + and eo.create_time between #{startTime} and #{endTime} AND eo.del_flag = '0' AND be.del_flag = '0' AND be.equipment_category = '0' @@ -101,38 +102,74 @@ + + + + + + @@ -130,6 +132,8 @@ erwo.fault_type, erwo.equipment_status_description, erwo.repair_measures, + erwo.fault_down_time, + erwo.fault_start_time, be.equipment_name, et.team_name, et.team_person @@ -185,7 +189,7 @@ ORDER BY erwo.create_time DESC - + - - where work_code = #{workCode} and del_flag = '0' + where work_code = #{workCode} + and del_flag = '0' diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java index 513119735..8c1f9f8c8 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesBoardController.java @@ -34,8 +34,9 @@ public class MesBoardController extends BaseController { return iMesBoradService.getLineList(mesBoard); } + /**计划产量、当前产量、15天的产量趋势图**/ @PostMapping("/getProduction15Days") - public AjaxResult getProduction15Days(BoardDTO mesBoard) { + public AjaxResult getProduction15Days(@RequestBody BoardDTO mesBoard) { if (StringUtils.isBlank(mesBoard.getFactoryCode())) { return error("[facotryCode] 不能为空"); } @@ -44,4 +45,16 @@ public class MesBoardController extends BaseController { } return success(iMesBoradService.getProduction15Days(mesBoard)); } + + /**产线信息**/ + @PostMapping("/getProductionLineInfo") + public AjaxResult getProductionLineInfo(@RequestBody BoardDTO mesBoard) { + if (StringUtils.isBlank(mesBoard.getFactoryCode())) { + return error("[factoryCode] 不能为空"); + } + if (StringUtils.isBlank(mesBoard.getEquCode())) { + return error("[equCode] 不能为空"); + } + return success(iMesBoradService.getProductionLineInfo(mesBoard)); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java index 4d2c1129a..0c06acca4 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesReportWork.java @@ -202,6 +202,8 @@ public class MesReportWork extends BaseEntity { private Long workTimes; private String workCenter; private String shiftId; + @Excel(name = "班次") + private String shiftName; private String keywords; private String workshopName; //凭证 @@ -211,6 +213,24 @@ public class MesReportWork extends BaseEntity { private String sapCode; private String remark; + public String getShiftName() { + return shiftName; + } + + public void setShiftName(String shiftName) { + this.shiftName = shiftName; + } + + @Override + public String getRemark() { + return remark; + } + + @Override + public void setRemark(String remark) { + this.remark = remark; + } + public String getSapCode() { return sapCode; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java index 3377fceb9..063a71a68 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java @@ -77,6 +77,8 @@ public interface MesMapper { List getLineList(BoardDTO boardDTO); - @MapKey("dayStr") + @MapKey("productDate") Map getProduction15Days(BoardDTO boardDTO); + + BoardDTO getWorkOrder(BoardDTO boardDTO); } 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 8a406f0fe..a17fb24a3 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 @@ -127,8 +127,6 @@ public interface MesReportWorkMapper { public MesReportWork getReportWorkHz(MesReportWork mesReportWork); - MesReportWork getEndReport(MesReportWork pWork); - List selectMesReportWorkList_S(MesReportWork mesReportWork); int reportSapCancel(MesReportWork mesReportWork); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java index 175b7cc2e..686841f86 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesBoradService.java @@ -4,6 +4,7 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.system.api.domain.dto.BoardDTO; import java.util.List; +import java.util.Map; public interface IMesBoradService { public AjaxResult finishProductBoard(BoardDTO boardDTO); @@ -11,4 +12,5 @@ public interface IMesBoradService { public List getLineList(BoardDTO boardDTO); public BoardDTO getProduction15Days(BoardDTO mesBoard); + public Map getProductionLineInfo(BoardDTO mesBoard); } 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 6ebf93769..d8813b383 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 @@ -424,8 +424,6 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { } catch (Exception e) { e.printStackTrace(); } - //最终报工标识且sap报工成功:关闭子母工单 - //MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork); }else{ //报工不成功跳出循环 break; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java index e09a7e99e..97eb6c7b1 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesBoradServiceImpl.java @@ -9,6 +9,7 @@ import com.op.mes.domain.MesReportWork; import com.op.mes.mapper.MesMapper; import com.op.mes.service.IMesBoradService; import com.op.system.api.domain.dto.BoardDTO; +import com.op.system.api.domain.mes.ProOrderWorkorderDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -85,6 +86,19 @@ public class MesBoradServiceImpl implements IMesBoradService { return dto; } + @Override + public Map getProductionLineInfo(BoardDTO boardDTO) { + DynamicDataSourceContextHolder.push(boardDTO.getFactoryCode()); + Map dtoMap = new HashMap<>(); + //当前工单信息 + BoardDTO workOrder = mesMapper.getWorkOrder(boardDTO); + dtoMap.put("workOrder",workOrder); + + + + return dtoMap; + } + //获取当前日期前几天 private List getDays(int dayNum){ List days = new ArrayList<>(); @@ -102,6 +116,8 @@ public class MesBoradServiceImpl implements IMesBoradService { return days; } + + public static void main(String[] args){ List days = new ArrayList<>(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java index e5bb05f58..8d49d1a7a 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkConsumeServiceImpl.java @@ -218,7 +218,7 @@ public class MesReportWorkConsumeServiceImpl implements IMesReportWorkConsumeSer /**修改sap物料损耗组成**/ R updateBomsSap = this.updateAttr1BomsSap(workOrders); if(updateBomsSap.getCode()== 500){ - throw new IllegalArgumentException("修改组件异常"); + throw new IllegalArgumentException("SAP修改组件异常:"+updateBomsSap.getMsg()); } return 1; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index c5f546fc4..b2fc94618 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -143,15 +143,6 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { @DS("#header.poolName") public List getReportWorkHzList(MesReportWork mesReportWork) { List dtos = mesReportWorkMapper.getReportWorkHzList(mesReportWork); -// for(MesReportWork dto:dtos){ -// if("1".equals(dto.getUploadStatus())){ -// dto.setUploadStatus("sap报工成功"); -// }else if("2".equals(dto.getUploadStatus())){ -// dto.setUploadStatus("sap报工失败"); -// }else if("0".equals(dto.getUploadStatus())){ -// dto.setUploadStatus("待报工sap"); -// } -// } return dtos; } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index 56844260f..7e4543477 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -305,4 +305,19 @@ and CONVERT(DATE, pow.product_date) BETWEEN DATEADD(DAY, -15, CONVERT(DATE, GETDATE())) AND CONVERT(DATE, GETDATE()) group by pow.product_date,pow.quantity_split + 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 a4d36bcfd..df392f411 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 @@ -486,7 +486,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" pow.workorder_code_sap workorderCodeSap, pow.product_date productDate, mrw.uploadTime, - mrw.uploadMsg + mrw.uploadMsg, + pow.shift_id shiftId, + bst.Shift_Desc shiftName from ( select workorder_code workorderCode, product_code productCode, @@ -514,6 +516,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ,upload_time,upload_msg ) mrw left join pro_order_workorder pow on mrw.workorderCode = pow.workorder_code + left join base_shifts_t bst on bst.Shift_Id =pow.shift_id pow.del_flag = '0' @@ -549,7 +552,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mrw.parent_order = #{workorderCode} - order by mrw.end_report + order by mrw.batch - + insert into mes_prepare_detail diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckProjectController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckProjectController.java index c9ce7ac86..b6b352f1e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckProjectController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckProjectController.java @@ -77,8 +77,7 @@ public class QcCheckProjectController extends BaseController { ExcelUtil util = new ExcelUtil(QcCheckProject.class); List projectList = util.importExcel(file.getInputStream()); String operName = SecurityUtils.getUsername(); - String message = qcCheckProjectService.importCheckProject(projectList, updateSupport, operName); - return success(message); + return qcCheckProjectService.importCheckProject(projectList, updateSupport, operName); } /** diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskDefectController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskDefectController.java new file mode 100644 index 000000000..85d03fb83 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskDefectController.java @@ -0,0 +1,137 @@ +package com.op.quality.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.quality.domain.QcCheckTaskDefect; +import com.op.quality.service.IQcCheckTaskDefectService; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.page.TableDataInfo; + +/** + * 来料检验任务--不良数量Controller + * + * @author Open Platform + * @date 2024-03-28 + */ +@RestController +@RequestMapping("/qcCheckTaskDefect") +public class QcCheckTaskDefectController extends BaseController { + @Autowired + private IQcCheckTaskDefectService qcCheckTaskDefectService; + + /** + * 查询来料检验任务--不良数量列表 + */ + @RequiresPermissions("quality:qcCheckTaskDefect:list") + @GetMapping("/list") + public TableDataInfo list(QcCheckTaskDefect qcCheckTaskDefect) { + startPage(); + List list = qcCheckTaskDefectService.selectQcCheckTaskDefectList(qcCheckTaskDefect); + return getDataTable(list); + } + + /** + * 导出来料检验任务--不良数量列表 + */ + @RequiresPermissions("quality:qcCheckTaskDefect:export") + @Log(title = "来料检验任务--不良数量", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcCheckTaskDefect qcCheckTaskDefect) { + List list = qcCheckTaskDefectService.selectQcCheckTaskDefectList(qcCheckTaskDefect); + ExcelUtil util = new ExcelUtil(QcCheckTaskDefect. class); + util.exportExcel(response, list, "来料检验任务--不良数量数据"); + } + + /** + * 获取来料检验任务--不良数量详细信息 + */ + @RequiresPermissions("quality:qcCheckTaskDefect:query") + @GetMapping(value = "/{recordId}") + public AjaxResult getInfo(@PathVariable("recordId") String recordId) { + return success(qcCheckTaskDefectService.selectQcCheckTaskDefectByRecordId(recordId)); + } + + /** + * 新增来料检验任务--不良数量 + */ + @RequiresPermissions("quality:qcCheckTaskDefect:add") + @Log(title = "来料检验任务--不良数量", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcCheckTaskDefect qcCheckTaskDefect) { + return toAjax(qcCheckTaskDefectService.insertQcCheckTaskDefect(qcCheckTaskDefect)); + } + + /** + * 修改来料检验任务--不良数量 + */ + @RequiresPermissions("quality:qcCheckTaskDefect:edit") + @Log(title = "来料检验任务--不良数量", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcCheckTaskDefect qcCheckTaskDefect) { + return toAjax(qcCheckTaskDefectService.updateQcCheckTaskDefect(qcCheckTaskDefect)); + } + + /** + * 删除来料检验任务--不良数量 + */ + @RequiresPermissions("quality:qcCheckTaskDefect:remove") + @Log(title = "来料检验任务--不良数量", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable String[] recordIds) { + return toAjax(qcCheckTaskDefectService.deleteQcCheckTaskDefectByRecordIds(recordIds)); + } + + /** + * PC不良数据获取 + */ + @GetMapping("/getDefectValue/{belongToDetail}") + public TableDataInfo getDefectValue(@PathVariable String belongToDetail) { + List list = qcCheckTaskDefectService.getDefectListByBelongToDetail(belongToDetail); + return getDataTable(list); + } + + /** + * PC不良数据提交 + */ + @PostMapping("/commitDefectValue") + public AjaxResult commitDefectValue(@RequestBody List checkTaskDefects) { + if (CollectionUtils.isEmpty(checkTaskDefects)) { + return error("操作失败,不良数据为空"); + }else { + return toAjax(qcCheckTaskDefectService.commitDefectValue(checkTaskDefects)); + } + } + + + /** + * PC不良数据提交 + */ + @PutMapping("/updateDefectValue") + public AjaxResult updateDefectValue(@RequestBody List checkTaskDefects) { + if (CollectionUtils.isEmpty(checkTaskDefects)) { + return error("操作失败,不良数据为空"); + }else { + return toAjax(qcCheckTaskDefectService.updateDefectValue(checkTaskDefects)); + } + } + + + +} + diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java index c0d601a99..c952d9006 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java @@ -195,14 +195,14 @@ public class QcCheckTaskIncomeController extends BaseController { } logger.info("来料信息查询结果:" + JSONObject.toJSONString(incomeR)); List incomeAll = JSONArray.parseArray(JSONObject.toJSONString(incomeR.getData()),QcCheckTaskIncomeDTO.class); - //已经生成过检验任务的采购订单 + //已经生成过检验任务的采购订单-物料凭证编号 List todayIncomeLists = qcCheckTaskIncomeService.getTodayIncomeLists(); List newIncomes= null; if(CollectionUtils.isEmpty(todayIncomeLists)){ newIncomes = incomeAll; }else{ newIncomes = incomeAll.stream() - .filter(item -> !todayIncomeLists.contains(item.getOrderNo())) + .filter(item -> !todayIncomeLists.contains(item.getAttr1())) .collect(Collectors.toList()); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java index 42f418bc2..1506d9259 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcMaterialGroupController.java @@ -44,6 +44,12 @@ public class QcMaterialGroupController extends BaseController { List list = qcMaterialGroupService.selectQcMaterialGroupList(qcMaterialGroup); return getDataTable(list); } + @GetMapping("/getOriginalGroupList") + public TableDataInfo getOriginalGroupList(QcMaterialGroup qcMaterialGroup) { + List list = qcMaterialGroupService.getOriginalGroupList(qcMaterialGroup); + return getDataTable(list); + } + /** * 获取物料组树列表 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java index ffa98107d..196cb84ff 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckProject.java @@ -34,7 +34,7 @@ public class QcCheckProject extends BaseEntity { /** * 检验规则属性 */ - @Excel(name = "检验规则属性") + @Excel(name = "检验规则属性", readConverterExp = "0=定性,1=定量") private String propertyCode; /** @@ -80,6 +80,8 @@ public class QcCheckProject extends BaseEntity { private String defectLevel; @Excel(name = "检验方案类型") private String projectType; + @Excel(name = "排序") + private Integer sort; private String materialCode; private String typeCode; private String groupId; @@ -243,6 +245,14 @@ public class QcCheckProject extends BaseEntity { this.serialNumber = serialNumber; } + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java index 5afc755e4..130ecf4f4 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckReportIncome.java @@ -185,6 +185,15 @@ public class QcCheckReportIncome extends BaseEntity { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date confirmTime; private Boolean myself; + private String shiftId; + + public String getShiftId() { + return shiftId; + } + + public void setShiftId(String shiftId) { + this.shiftId = shiftId; + } public Boolean getMyself() { return myself; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java index 2899c7f1d..0bb070308 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java @@ -88,6 +88,8 @@ public class QcCheckTaskDefect extends BaseEntity { @Excel(name = "不合格数量") private BigDecimal noOkQuality; + private String belongTodetail; + private String defectCodes; private String defectNames; private String defectQualitys; @@ -220,6 +222,14 @@ public class QcCheckTaskDefect extends BaseEntity { this.noOkQuality = noOkQuality; } + public String getBelongTodetail() { + return belongTodetail; + } + + public void setBelongTodetail(String belongTodetail) { + this.belongTodetail = belongTodetail; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java index df8df2f14..acbc55e55 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java @@ -205,6 +205,15 @@ public class QcCheckTaskProduce extends BaseEntity { private String confirm; private String confirmRemark; private String confirmTime; + private String shiftId; + + public String getShiftId() { + return shiftId; + } + + public void setShiftId(String shiftId) { + this.shiftId = shiftId; + } public String getConfirm() { return confirm; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroup.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroup.java index e89cd79ab..c175c36d1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroup.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroup.java @@ -28,6 +28,11 @@ public class QcMaterialGroup extends BaseEntity { */ @Excel(name = "物料组名称") private String groupName; + /** + * 物料组编码 + */ + @Excel(name = "物料组名称") + private String groupCode; /** * 预留字段1 @@ -116,6 +121,14 @@ public class QcMaterialGroup extends BaseEntity { this.children = children; } + public String getGroupCode() { + return groupCode; + } + + public void setGroupCode(String groupCode) { + this.groupCode = groupCode; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroupDetail.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroupDetail.java index 130c7ff36..dbdce17dd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroupDetail.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcMaterialGroupDetail.java @@ -24,7 +24,8 @@ public class QcMaterialGroupDetail extends BaseEntity { */ @Excel(name = "物料组id") private String groupId; - + //物料组编码 + private String groupCode; /** * 物料号 */ @@ -54,6 +55,14 @@ public class QcMaterialGroupDetail extends BaseEntity { */ private String delFlag; + public String getGroupCode() { + return groupCode; + } + + public void setGroupCode(String groupCode) { + this.groupCode = groupCode; + } + public void setId(String id) { this.id = id; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java index 4a039b87e..2f4ccba7f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProjectType.java @@ -18,7 +18,7 @@ public class QcProjectType extends BaseEntity { * id */ private String id; - + private String groupId; /** * 检测项方案编号 */ @@ -54,6 +54,33 @@ public class QcProjectType extends BaseEntity { @Excel(name = "版本") private String version; + private String productGroupName; + private String productGroup; + + public String getProductGroupName() { + return productGroupName; + } + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public void setProductGroupName(String productGroupName) { + this.productGroupName = productGroupName; + } + + public String getProductGroup() { + return productGroup; + } + + public void setProductGroup(String productGroup) { + this.productGroup = productGroup; + } + public void setId(String id) { this.id = id; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java index a3e864209..9a69cc942 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcStaticTable.java @@ -41,7 +41,7 @@ public class QcStaticTable extends BaseEntity { private String typeCode; private String checkResult; private String noOkBatchRate; - + private String shiftId; private String ymArrayStart; private String ymArrayEnd; private List legendData; @@ -106,6 +106,14 @@ public class QcStaticTable extends BaseEntity { private List details; private String[] projectNoArray; + public String getShiftId() { + return shiftId; + } + + public void setShiftId(String shiftId) { + this.shiftId = shiftId; + } + public String[] getProjectNoArray() { return projectNoArray; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskDefectMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskDefectMapper.java index 53f4929ec..2ba307c9a 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskDefectMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskDefectMapper.java @@ -69,4 +69,7 @@ public interface QcCheckTaskDefectMapper { public List selectDefectByBelongTo(String belongTo); @MapKey("belongToDetail") public Map getDefectMap(QcCheckTaskDetail qcCheckTaskDetail); + + public List getDefectListByBelongToDetail(String belongToDetail); + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java index 98249adf8..a858713cc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeProjectMapper.java @@ -82,4 +82,6 @@ public interface QcCheckTypeProjectMapper { int insertQcCheckTypeProjects(@Param("list") List typeProjects); List getProjectOptions(QcCheckProject qcCheckProject); + + QcProjectType getProductGroup(String materialCode); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java index 5a5206f78..60419adf6 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcMaterialGroupMapper.java @@ -29,6 +29,8 @@ public interface QcMaterialGroupMapper { */ public List selectQcMaterialGroupList(QcMaterialGroup qcMaterialGroup); + public List getOriginalGroupList(QcMaterialGroup qcMaterialGroup); + /** * 新增物料组 * diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java index b2732f2e7..36b641509 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java @@ -51,6 +51,8 @@ public interface QcStaticTableMapper { @MapKey("ymdms") Map getProjectDetail(QcStaticTable qcStaticTable); + @MapKey("ymdms") + Map getProjectDetailNight(QcStaticTable qcStaticTable); List getBatchnos(String orderNo); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckProjectService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckProjectService.java index 82d2722be..b8190ee15 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckProjectService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckProjectService.java @@ -2,6 +2,7 @@ package com.op.quality.service; import java.util.List; +import com.op.common.core.web.domain.AjaxResult; import com.op.quality.domain.QcCheckProject; /** @@ -64,5 +65,5 @@ public interface IQcCheckProjectService { * * @return 结果 */ - public String importCheckProject(List projectList, Boolean isUpdateSupport, String operName); + public AjaxResult importCheckProject(List projectList, Boolean isUpdateSupport, String operName); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskDefectService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskDefectService.java index c390ff026..2b612f0ea 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskDefectService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskDefectService.java @@ -62,4 +62,10 @@ public interface IQcCheckTaskDefectService { public int deleteQcCheckTaskDefectByBelongTo(String belongTo); public List selectDefectByBelongTo(String belongTo); + + public int commitDefectValue(List qcCheckTaskDefect); + + public int updateDefectValue(List qcCheckTaskDefects); + + public List getDefectListByBelongToDetail(String belongToDetail); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java index ead067b3d..bacb239ea 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcMaterialGroupService.java @@ -22,6 +22,13 @@ public interface IQcMaterialGroupService { */ public QcMaterialGroup selectQcMaterialGroupById(String id); + /** + * 获得原始物料分组 + * @param qcMaterialGroup + * @return + */ + public List getOriginalGroupList(QcMaterialGroup qcMaterialGroup); + /** * 查询物料组列表 * diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java index 0d6187fd5..b1e5c5903 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java @@ -1,6 +1,7 @@ package com.op.quality.service.impl; import java.util.List; +import java.util.Optional; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.exception.ServiceException; @@ -8,7 +9,10 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.bean.BeanValidators; import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcProjectType; +import com.op.quality.mapper.QcProjectTypeMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -24,6 +28,9 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import javax.validation.Validator; +import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; + /** * 检验项目维护Service业务层处理 * @@ -40,6 +47,9 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { @Autowired protected Validator validator; + @Autowired + private QcProjectTypeMapper qcProjectTypeMapper; + /** * 查询检验项目维护 * @@ -127,7 +137,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { @Override @DS("#header.poolName") - public String importCheckProject(List projectList, Boolean isUpdateSupport, String operName) { + public AjaxResult importCheckProject(List projectList, Boolean isUpdateSupport, String operName) { if (CollectionUtils.isEmpty(projectList)) { throw new ServiceException("导入的检测项目数据为空!"); } @@ -139,44 +149,49 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); - for (QcCheckProject project : projectList) { - try { - QcCheckProject pro = qcCheckProjectMapper.selectCheckProjectByRuleName(project.getRuleName(), project.getProjectType()); - if (ObjectUtils.isEmpty(pro)) { - BeanValidators.validateWithException(validator, project); - project.setId(IdUtils.fastSimpleUUID()); - project.setCreateTime(DateUtils.getNowDate()); - project.setCreateBy(operName); - project.setFactoryCode(factoryCode); - qcCheckProjectMapper.insertQcCheckProject(project); - successNum++; - successMsg.append("
" + successNum + "。检测项目" + project.getRuleName() + "导入成功"); - } else if (isUpdateSupport) { - BeanValidators.validateWithException(validator, project); - project.setId(pro.getId()); - project.setUpdateTime(DateUtils.getNowDate()); - project.setUpdateBy(operName); - qcCheckProjectMapper.updateQcCheckProject(project); - successNum++; - successMsg.append("
" + successNum + "。检测项目[" + project.getRuleName() + "]更新成功"); - } else { + //校验数据 + AjaxResult checkResult = checkImportProject(projectList); + if (checkResult.isSuccess()) { + for (QcCheckProject project : projectList) { + try { + QcCheckProject pro = qcCheckProjectMapper.selectCheckProjectByRuleName(project.getRuleName(), project.getProjectType()); + if (ObjectUtils.isEmpty(pro)) { + BeanValidators.validateWithException(validator, project); + project.setId(IdUtils.fastSimpleUUID()); + project.setCreateTime(DateUtils.getNowDate()); + project.setCreateBy(operName); + project.setFactoryCode(factoryCode); + qcCheckProjectMapper.insertQcCheckProject(project); + successNum++; + successMsg.append("
" + successNum + "。检测项目" + project.getRuleName() + "导入成功"); + } else if (isUpdateSupport) { + BeanValidators.validateWithException(validator, project); + project.setId(pro.getId()); + project.setUpdateTime(DateUtils.getNowDate()); + project.setUpdateBy(operName); + qcCheckProjectMapper.updateQcCheckProject(project); + successNum++; + successMsg.append("
" + successNum + "。检测项目[" + project.getRuleName() + "]更新成功"); + } else { + failproNum++; + failproMsg.append("
" + failproNum + "。检测项目[" + project.getRuleName() + "]已存在"); + } + } catch (Exception e) { failproNum++; - failproMsg.append("
" + failproNum + "。检测项目[" + project.getRuleName() + "]已存在"); + String msg = "
" + failproNum + "、检测项目[" + project.getRuleName() + "]导入失败"; + failproMsg.append(msg + e.getMessage()); + log.error(msg, e); } - } catch (Exception e) { - failproNum++; - String msg = "
" + failproNum + "、检测项目[" + project.getRuleName() + "]导入失败"; - failproMsg.append(msg + e.getMessage()); - log.error(msg, e); } + if (failproNum > 0) { + failproMsg.insert(0, "很抱歉,导入失败!共" + failproNum + " 条数据格式不正确,错误如下:"); + throw new ServiceException(failproMsg.toString()); + } else { + successMsg.insert(0, "恭喜您,数据已全部导入成功! 共" + successNum + " 条,数据如下:"); + } + return success(successMsg.toString()); } - if (failproNum > 0) { - failproMsg.insert(0, "很抱歉,导入失败!共" + failproNum + " 条数据格式不正确,错误如下:"); - throw new ServiceException(failproMsg.toString()); - } else { - successMsg.insert(0, "恭喜您,数据已全部导入成功! 共" + successNum + " 条,数据如下:"); - } - return successMsg.toString(); + return checkResult; } private String getOrderNum() { @@ -187,4 +202,53 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { orderNum = now + "0" + checkProject.getSerialNumber(); return orderNum; } + + public AjaxResult checkImportProject(List qcCheckProjectList) { + if (CollectionUtils.isEmpty(qcCheckProjectList)) { + return error(500,"导入的订单信息不能为空!信息导入失败"); + } + for (QcCheckProject project : qcCheckProjectList) { + if (StringUtils.isEmpty(project.getOrderNum())) { + return error(500,"检验规则编号不能为空,信息导入失败,请检查是否存在空数据项"); + } + if (StringUtils.isEmpty(project.getRuleName())) { + return error(500,"检验规则名称不能为空,信息导入失败"); + } + if (StringUtils.isEmpty(project.getPropertyCode())) { + return error(500,"检验规则属性不能为空,信息导入失败"); + } + if (StringUtils.isEmpty(project.getProjectType())) { + return error(500,"检验方案类型不能为空,信息导入失败"); + }else { + boolean flag = typeConverter(project); + if (!flag) { + String ruleName = project.getRuleName(); + return error(500,"检验规则名称:"+ ruleName +"检验方案类型不规范,信息导入失败"); + } + } + if (project.getSort() == null) { + return error(500,"排序不能为空,信息导入失败"); + } + } + return success(); + } + + /** + * 方案类型转换 + */ + public boolean typeConverter(QcCheckProject project) { + String projectType = project.getProjectType(); + List projectTypes = qcProjectTypeMapper.selectQcProjectTypeList(new QcProjectType()); + //筛选出检验方案类型名称相同的项目 + Optional matchedType = projectTypes.stream() + .filter(item -> projectType.equals(item.getProjectTypeName())) + .findFirst(); + //使用code替换名称 + if (matchedType.isPresent()) { + project.setProjectType(matchedType.get().getProjectTypeCode()); + return true; + }else { + return false; + } + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java index 7bceff9d0..0b70e8246 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java @@ -218,6 +218,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer QcStaticTable qcStaticTable = new QcStaticTable(); qcStaticTable.setOrderNo(qcCheckTaskProduce.getOrderNo()); + qcStaticTable.setShiftId(qcCheckTaskProduce.getShiftId()); List checkInfos = qcStaticTableService.getXJCheckTableDetail(qcStaticTable); produce.setCheckInfos(checkInfos); QcCheckTaskProduce lastProduce = qcCheckReportIncomeMapper.getLastProductTypeInfo(qcCheckTaskProduce); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDefectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDefectServiceImpl.java index 1e04e6106..d9fe4fd16 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDefectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskDefectServiceImpl.java @@ -1,5 +1,6 @@ package com.op.quality.service.impl; +import java.util.Date; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; @@ -116,4 +117,56 @@ public class QcCheckTaskDefectServiceImpl implements IQcCheckTaskDefectService { public List selectDefectByBelongTo(String belongTo) { return qcCheckTaskDefectMapper.selectDefectByBelongTo(belongTo); } + + /** + * 不良类型提交 + * @param qcCheckTaskDefects + * @return + */ + @Override + @DS("#header.poolName") + public int commitDefectValue(List qcCheckTaskDefects) { + /**qc_check_task_defect**/ + String userName = SecurityUtils.getUsername(); + Date now = DateUtils.getNowDate(); + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String factoryCode = request.getHeader(key.substring(8)).replace("ds_",""); + int count = 0; + for (QcCheckTaskDefect defect : qcCheckTaskDefects) { + defect.setRecordId(IdUtils.fastSimpleUUID()); + defect.setCreateBy(userName); + defect.setCreateTime(now); + defect.setFactoryCode(factoryCode); + count += qcCheckTaskDefectMapper.insertQcCheckTaskDefect(defect); + } + return count; + } + + /** + * 更新不良类型 + * @param qcCheckTaskDefects + * @return + */ + @Override + @DS("#header.poolName") + public int updateDefectValue(List qcCheckTaskDefects) { + String userName = SecurityUtils.getUsername(); + Date now = DateUtils.getNowDate(); + int count = 0; + for (QcCheckTaskDefect defect : qcCheckTaskDefects) { + defect.setUpdateBy(userName); + defect.setUpdateTime(now); + count += qcCheckTaskDefectMapper.updateQcCheckTaskDefect(defect); + } + return count; + } + + @Override + @DS("#header.poolName") + public List getDefectListByBelongToDetail(String belongToDetail) { + List defectList = qcCheckTaskDefectMapper.getDefectListByBelongToDetail(belongToDetail); + return defectList; + } } 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 e9e93f60c..6487e0286 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 @@ -41,7 +41,7 @@ import javax.servlet.http.HttpServletRequest; * @date 2023-10-19 */ @Service -public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { +public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; @@ -85,6 +85,9 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { @Autowired private QcCheckTaskDefectMapper qcCheckTaskDefectMapper; +// @Autowired +// private QcCheckUnqualifiedService qcCheckUnqualifiedService; + /** * 查询来料检验 * @@ -145,7 +148,6 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTaskIncome.setCheckNo(bpDD+liushuiStr); - /**取检测项**/ QcCheckTypeProject qctp= new QcCheckTypeProject(); qctp.setTypeId(qcCheckTaskIncome.getCheckType());//生产过程检验 @@ -157,10 +159,19 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { //共性 if(group == null){//默认 group = new QcMaterialGroupDetail(); - group.setGroupId("729971295b734782b544f9d6d06fb8b9"); + QcProjectType initGroup = qcCheckTypeProjectMapper.getProductGroup(qcCheckTaskIncome.getMaterialCode()); + if(initGroup != null){ + group.setGroupId(initGroup.getGroupId()); + }else{ + return 0;//没有找到检测项目 + } } - qctp.setGroupId(group.getGroupId()); - List itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + List itemsGG = new ArrayList<>(); + if(StringUtils.isNotBlank(group.getGroupId())){ + qctp.setGroupId(group.getGroupId()); + itemsGG = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); + } + items.addAll(itemsGG); /**qc_check_task_detail**/ @@ -721,6 +732,8 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { unqualified.setType(checkType); n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); logger.info("qc_check_unqualified:" + n); + + //qcCheckUnqualifiedService.updateQcCheckUnqualified(qcCheckUnqualified); } return 1 ; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index 4b71a0dc2..4e5b2ba8a 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -1,6 +1,7 @@ package com.op.quality.service.impl; import java.math.BigDecimal; +import java.time.LocalTime; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -388,10 +389,21 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService Date nowTime = DateUtils.getNowDate(); Date startTime = productTask.getCreateTime(); - long mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); - if(mins>=60){ - int m = insertQcCheckTaskProduce(productTask); - logger.info("++++++++++++过程检验巡检任务生成" + m + "++++++++++++++"); + + LocalTime startTime0 = LocalTime.parse("11:30"); + LocalTime endTime0 = LocalTime.parse("12:30"); + LocalTime currentTime = LocalTime.now(); + + if (!currentTime.isAfter(startTime0.minusSeconds(1)) && !currentTime.isBefore(endTime0.plusSeconds(1))) { + // 当前时间在11:30到12:30之间,不执行任务 + logger.info("++++++++++++过程检验巡检任务生成午间休息++++++++++++++"); + } else { + long mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); + + if(mins>=60){ + int m = insertQcCheckTaskProduce(productTask); + logger.info("++++++++++++过程检验巡检任务生成" + m + "++++++++++++++"); + } } } logger.info("++++++++++++" + poolName + "++++过程检验巡检结束++++++++++"); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java index 036b40b89..b4ac41c6d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java @@ -48,10 +48,22 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { * @return 物料组 */ @Override + @DS("#header.poolName") public QcMaterialGroup selectQcMaterialGroupById(String id) { return qcMaterialGroupMapper.selectQcMaterialGroupById(id); } + /** + * 获取原始物料分组 + * @param qcMaterialGroup + * @return + */ + @Override + @DS("#header.poolName") + public List getOriginalGroupList(QcMaterialGroup qcMaterialGroup) { + return qcMaterialGroupMapper.getOriginalGroupList(qcMaterialGroup); + } + @Override //@DataScope(deptAlias = "d") @DS("#header.poolName") diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java index 0b74694ef..ae7e83ed7 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcStaticTableServiceImpl.java @@ -171,7 +171,13 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { @DS("#header.poolName") public List getXJCheckTableDetail(QcStaticTable qcStaticTable) { List projects = qcStaticTableMapper.getXJProjects(qcStaticTable); - Map detailMap = qcStaticTableMapper.getProjectDetail(qcStaticTable); + Map detailMap = null; + if(qcStaticTable.getShiftId().equals("5")){ + detailMap = qcStaticTableMapper.getProjectDetail(qcStaticTable); + }else if(qcStaticTable.getShiftId().equals("2")){ + detailMap = qcStaticTableMapper.getProjectDetailNight(qcStaticTable); + } + Map picsMap = qcStaticTableMapper.picsMap(qcStaticTable); for (QcStaticTable project : projects) { this.getDataFromMap(detailMap, project, picsMap); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml index f0077f5bd..de55ae006 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckProjectMapper.xml @@ -24,13 +24,13 @@ - + select id, order_num, rule_name, property_code, check_mode, check_tool, unit_code, check_standard, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag,sample_plan, - judge,defect_level,project_type + judge,defect_level,project_type,sort from qc_check_project @@ -48,6 +48,7 @@ and factory_code = #{factoryCode} and judge = #{judge} project_type = #{projectType} + and del_flag = '0'
order by create_time @@ -79,7 +80,7 @@ judge, defect_level, project_type, - + sort, #{id}, @@ -101,6 +102,7 @@ #{judge}, #{defectLevel}, #{projectType}, + #{sort},
@@ -125,16 +127,17 @@ judge = #{judge}, defect_level = #{defectLevel}, project_type = #{projectType}, + sort = #{sort}, where id = #{id} - delete from qc_check_project where id = #{id} + update qc_check_project set del_flag = '1' where id = #{id} - delete from qc_check_project where id in + update qc_check_project set del_flag = '1' where id in #{id} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDefectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDefectMapper.xml index 87176d37b..251b177eb 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDefectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDefectMapper.xml @@ -21,10 +21,11 @@ + - select record_id, defect_code, defect_subclass, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag, belong_to, ok_quality, noOk_quality from qc_check_task_defect + select record_id, defect_code, defect_subclass, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag, belong_to, ok_quality, noOk_quality, belong_to_detail from qc_check_task_defect @@ -67,6 +69,7 @@ belong_to, ok_quality, noOk_quality, + belong_to_detail, #{recordId}, @@ -85,6 +88,7 @@ #{belongTo}, #{okQuality}, #{noOkQuality}, + #{belongToDetail}, @@ -111,11 +115,11 @@ - delete from qc_check_task_defect where record_id = #{recordId} + update qc_check_task_defect set del_flag = '1' where record_id = #{recordId} - delete from qc_check_task_defect where record_id in + update qc_check_task_defect set del_flag = '1' where record_id in #{recordId} @@ -160,4 +164,11 @@ GROUP by qctd.belong_to,qctd.belong_to_detail + + 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 8be1b55db..dff8c47cf 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 @@ -450,7 +450,7 @@ where equipment_type_code='equ_type_bzx' and status = '1' + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml index dd45014f3..e1cf57e65 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalDistributeMapper.xml @@ -5,178 +5,193 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - select id, belong_goal_id, supplier_code, supplier_name, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_goal_distribute - + select id, + belong_goal_id, + supplier_code, + supplier_name, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag + from qc_goal_distribute + insert into qc_goal_distribute - id, - - belong_goal_id, - - supplier_code, - - supplier_name, - - attr1, - - attr2, - - attr3, - - attr4, - - create_by, - - create_time, - - update_by, - - update_time, - - factory_code, - - del_flag, - + id, + + belong_goal_id, + + supplier_code, + + supplier_name, + + attr1, + + attr2, + + attr3, + + attr4, + + create_by, + + create_time, + + update_by, + + update_time, + + factory_code, + + del_flag, + - #{id}, - - #{belongGoalId}, - - #{supplierCode}, - - #{supplierName}, - - #{attr1}, - - #{attr2}, - - #{attr3}, - - #{attr4}, - - #{createBy}, - - #{createTime}, - - #{updateBy}, - - #{updateTime}, - - #{factoryCode}, - - #{delFlag}, - + #{id}, + + #{belongGoalId}, + + #{supplierCode}, + + #{supplierName}, + + #{attr1}, + + #{attr2}, + + #{attr3}, + + #{attr4}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + #{factoryCode}, + + #{delFlag}, + update qc_goal_distribute - belong_goal_id = - #{belongGoalId}, - - supplier_code = - #{supplierCode}, - - supplier_name = - #{supplierName}, - - attr1 = - #{attr1}, - - attr2 = - #{attr2}, - - attr3 = - #{attr3}, - - attr4 = - #{attr4}, - - create_by = - #{createBy}, - - create_time = - #{createTime}, - - update_by = - #{updateBy}, - - update_time = - #{updateTime}, - - factory_code = - #{factoryCode}, - - del_flag = - #{delFlag}, - + belong_goal_id = + #{belongGoalId}, + + supplier_code = + #{supplierCode}, + + supplier_name = + #{supplierName}, + + attr1 = + #{attr1}, + + attr2 = + #{attr2}, + + attr3 = + #{attr3}, + + attr4 = + #{attr4}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + factory_code = + #{factoryCode}, + + del_flag = + #{delFlag}, + where id = #{id} - delete from qc_goal_distribute where id = #{id} - + update qc_goal_distribute set del_flag = '1' where id = #{id} + - delete from qc_goal_distribute where id in + update qc_goal_distribute set del_flag = '1' where id in #{id} @@ -193,9 +208,9 @@ from base_supplier bs where bs.active_flag = '1' and bs.del_flag = '0' and bs.supplier_code not in ( - select gd.supplier_code - from qc_goal_distribute gd - where gd.belong_goal_id =#{belongGoalId} + select gd.supplier_code + from qc_goal_distribute gd + where gd.belong_goal_id =#{belongGoalId} ) and bs.zh_desc like concat('%', #{supplierName}, '%') @@ -204,8 +219,8 @@ diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml index 939b91618..3902571ae 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcGoalMapper.xml @@ -60,6 +60,7 @@ and parent_goal = #{parentGoal} + and del_flag = '0' order by id desc @@ -94,6 +95,7 @@ and parent_goal = #{parentGoal} + and del_flag = '0' order by id asc @@ -101,7 +103,7 @@ @@ -249,11 +251,11 @@ - delete from qc_goal where id = #{id} + update qc_goal set del_flag = '1' where id = #{id} - delete from qc_goal where id in + update qc_goal set del_flag = '1' where id in #{id} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupDetailMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupDetailMapper.xml index f73b2f2b5..cd6e35e0a 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupDetailMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupDetailMapper.xml @@ -33,6 +33,7 @@ and attr1 = #{attr1} and factory_code = #{factoryCode} + and del_flag = '0' @@ -96,11 +97,11 @@ - delete from qc_material_group_detail where id = #{id} + update qc_material_group_detail set del_flag = '1' where id = #{id} - delete from qc_material_group_detail where id in + update qc_material_group_detail set del_flag = '1' where id in #{id} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml index ba1d564f3..a14c64d63 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcMaterialGroupMapper.xml @@ -26,6 +26,7 @@ and group_name like concat('%', #{groupName}, '%') and attr1 = #{attr1} and factory_code = #{factoryCode} + and del_flag = '0' /*select mg.id, @@ -37,6 +38,14 @@ WHERE mg.del_flag = '0'*/ + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcSampleRuleMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcSampleRuleMapper.xml index f534490de..db11dd670 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcSampleRuleMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcSampleRuleMapper.xml @@ -34,6 +34,7 @@ and sample_quality = #{sampleQuality} and check_type = #{checkType} and type_code = #{typeCode} + and del_flag = '0' @@ -102,11 +103,11 @@ - delete from qc_sample_rule where id = #{id} + update qc_sample_rule set del_flag = '1' where id = #{id} - delete from qc_sample_rule where id in + update qc_sample_rule set del_flag = '1' where id in #{id} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml index 045f3c53b..0e81d572b 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcStaticTableMapper.xml @@ -179,6 +179,34 @@ + + @@ -69,7 +71,7 @@ phonenumber, create_time FROM sys_user - WHERE user_name = #{userCode} + WHERE del_flag = '0' and user_name = #{userCode} select qum.user_code, qum.user_name from qc_user_material qum - where qum.material_code = #{materialCode} + where qum.del_flag = '0' and qum.material_code = #{materialCode} insert into qc_user_material @@ -176,11 +178,11 @@ - delete from qc_user_material where user_code = #{userCode} + update qc_user_material set del_flag = '1' where user_code = #{userCode} - delete from qc_user_material where user_code in + update qc_user_material set del_flag = '1' where user_code in #{userCode} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index 05d50143e..6306ecabb 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -24,6 +24,10 @@ import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; @RestController @RequestMapping("/sap") @@ -66,8 +70,37 @@ public class SapController extends BaseController { @PostMapping("/itemSync") @Log(title = "同步SAP物料清单", businessType = BusinessType.SAP) public R itemSync(@RequestBody SapItemQuery qo) { + // 加载sf-cloud库的sys_datasource - return sapItemSyncService.itemSync(qo); + SysUser sysUser = new SysUser(); + sysUser.setUserId(1L); + R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + ExecutorService executorService = new ThreadPoolExecutor( + dateSources.size(), + dateSources.size(), + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + try { + + dateSources.forEach(dateSource -> { + if(!"ds_999".equals(dateSource.get("poolName"))){ + SapItemQuery sapItemQuery = new SapItemQuery(); + sapItemQuery.setWerks(dateSource.get("poolName").replace("ds_","")); + Runnable run = () -> sapItemSyncService.itemSync(sapItemQuery); + executorService.execute(run); + } + + }); + + } catch (Exception e) { + logger.error("controller == createIncomeBatchTask == exception", e); + return R.fail("controller == createIncomeBatchTask == exception"); + } finally { + executorService.shutdown(); + } + return R.ok(); + } /** diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java index 040a4d2ee..e630f7efd 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapItemSyncImpl.java @@ -53,6 +53,12 @@ public class SapItemSyncImpl implements SapItemSyncService { @Override public R itemSync(SapItemQuery sapItemQuery) { try { + + DynamicDataSourceContextHolder.push("ds_"+sapItemQuery.getWerks()); + //TODO; + //sapItemQuery.setLaeda(); + //sapItemQuery.setErsda(); + // 获取调用 RFC 函数对象 //获取连接 log.info("物料基础数据同步输入参数---------" + JSONObject.toJSONString(sapItemQuery)); @@ -422,7 +428,7 @@ public class SapItemSyncImpl implements SapItemSyncService { Date date = inputFormat.parse(inputDateTime); qcCheckTaskIncomeDTO.setIncomeTime(date); qcCheckTaskIncomeDTO.setFactoryCode(maraTable.getString("WERKS")); - qcCheckTaskIncomeDTO.setAttr1(maraTable.getString("USNAM"));//收货人 + qcCheckTaskIncomeDTO.setAttr3(maraTable.getString("USNAM"));//收货人 qcCheckTaskIncomeDTO.setCreateTime(nowTime); qcCheckTaskIncomeDTO.setCreateBy(createBy); qcCheckTaskIncomeDTOList.add(qcCheckTaskIncomeDTO); diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index fff8eab10..3df730b7a 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -339,8 +339,31 @@ public class WmsToWCSmissionController { } + /** + * 成品调拨出库--确认接口 + * + */ + @PostMapping("/confirmFinishedProductTransferAndOutbound") + public AjaxResult confirmFinishedProductTransferAndOutbound(@RequestBody WmsAllocationOutEmbryo wmsRuturnPutEmbryo) { + return AjaxResult.success(wmsProductPutService.confirmFinishedProductTransferAndOutbound(wmsRuturnPutEmbryo)); + } + /** + * 成品库内转储--托盘扫码 + * + */ + @PostMapping("/palletScanning") + public AjaxResult palletScanning(@RequestBody WmsFpStorageNewsSn wmsFpStorageNewsSn) { + return AjaxResult.success(wmsProductPutService.palletScanning(wmsFpStorageNewsSn)); + } - + /** + * 成品库内转储--托盘移库确认 + * + */ + @PostMapping("/palletTransferConfirmation") + public AjaxResult palletTransferConfirmation(@RequestBody WmsFpStorageNewsSn wmsFpStorageNewsSn) { + return AjaxResult.success(wmsProductPutService.palletTransferConfirmation(wmsFpStorageNewsSn)); + } /** * 手持白胚入库查询 */ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsAllocationOutEmbryo.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsAllocationOutEmbryo.java index 702ce7610..1e28ea417 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsAllocationOutEmbryo.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsAllocationOutEmbryo.java @@ -1,6 +1,14 @@ package com.op.wms.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; +import java.util.List; /** * 成品调拨单 @@ -12,4 +20,497 @@ public class WmsAllocationOutEmbryo extends BaseEntity { * ID */ private String id; + + /** + * 交货单号 + */ + @Excel(name = "交货单号") + private String deliveryOrder; + + /** + * 项次 + */ + @Excel(name = "项次") + private String itemNumber; + + /** + * 工厂编码 + */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** + * 仓库编码 + */ + @Excel(name = "仓库编码") + private String whCode; + + /** + * 库区编码 + */ + @Excel(name = "库区编码") + private String waCode; + + /** + * 库位编码 + */ + @Excel(name = "库位编码") + private String wlCode; + + /** + * 出库地点 + */ + @Excel(name = "出库地点") + private String deliveryPlace; + + /** + * 产品名称 + */ + @Excel(name = "产品名称") + private String productName; + + /** + * 产品编码 + */ + @Excel(name = "产品编码") + private String productCode; + + /** + * 产品分类 + */ + @Excel(name = "产品分类") + private String productSort; + + /** + * 规格型号 + */ + @Excel(name = "规格型号") + private String specification; + + /** + * 单位 + */ + @Excel(name = "单位") + private String unitOfMeasure; + + /** + * 批号 + */ + @Excel(name = "批次号") + private String lotNumber; + + /** + * 计划出库数量 + */ + @Excel(name = "计划出库数量") + private BigDecimal planQuantity; + + /** + * 出库数量 + */ + @Excel(name = "出库数量") + private BigDecimal outQuantity; + + /** + * 出库状态--0进行,1完成 + */ + @Excel(name = "出库状态") + private String status; + + /** + * 过账SAP状态 + */ + @Excel(name = "过账SAP状态") + private String sapStatus; + + /** + * 过账SAP凭证 + */ + @Excel(name = "过账SAP凭证") + private String sapProof; + + /** + * 过账SAP返回信息 + */ + @Excel(name = "过账SAP返回信息") + private String sapMessage; + + /** + * 出库时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date outDate; + + /** + * 预留字段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; + + /** + * 预留字段5 + */ + @Excel(name = "预留字段5") + private String attr5; + + /** + * 预留字段6 + */ + @Excel(name = "预留字段6") + private String attr6; + + /** + * 预留字段7 + */ + @Excel(name = "预留字段7") + private String attr7; + + /** + * 预留字段8 + */ + @Excel(name = "预留字段8") + private String attr8; + + /** + * 预留字段9 + */ + @Excel(name = "预留字段9") + private String attr9; + + /** + * 预留字段10 + */ + @Excel(name = "预留字段10") + private String attr10; + /** + * 有效标记 + */ + @Excel(name = "有效标记") + private String activeFlag; + private List wmsProductPutTrayCodeList; + + public List getWmsProductPutTrayCodeList() { + return wmsProductPutTrayCodeList; + } + + public void setWmsProductPutTrayCodeList(List wmsProductPutTrayCodeList) { + this.wmsProductPutTrayCodeList = wmsProductPutTrayCodeList; + } + + public String getActiveFlag() { + return activeFlag; + } + + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setDeliveryOrder(String deliveryOrder) { + this.deliveryOrder = deliveryOrder; + } + + public String getDeliveryOrder() { + return deliveryOrder; + } + + public void setItemNumber(String itemNumber) { + this.itemNumber = itemNumber; + } + + public String getItemNumber() { + return itemNumber; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setWhCode(String whCode) { + this.whCode = whCode; + } + + public String getWhCode() { + return whCode; + } + + public void setWaCode(String waCode) { + this.waCode = waCode; + } + + public String getWaCode() { + return waCode; + } + + public void setWlCode(String wlCode) { + this.wlCode = wlCode; + } + + public String getWlCode() { + return wlCode; + } + + public void setDeliveryPlace(String deliveryPlace) { + this.deliveryPlace = deliveryPlace; + } + + public String getDeliveryPlace() { + return deliveryPlace; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductName() { + return productName; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductCode() { + return productCode; + } + + public void setProductSort(String productSort) { + this.productSort = productSort; + } + + public String getProductSort() { + return productSort; + } + + public void setSpecification(String specification) { + this.specification = specification; + } + + public String getSpecification() { + return specification; + } + + public void setUnitOfMeasure(String unitOfMeasure) { + this.unitOfMeasure = unitOfMeasure; + } + + public String getUnitOfMeasure() { + return unitOfMeasure; + } + + public void setLotNumber(String lotNumber) { + this.lotNumber = lotNumber; + } + + public String getLotNumber() { + return lotNumber; + } + + public void setPlanQuantity(BigDecimal planQuantity) { + this.planQuantity = planQuantity; + } + + public BigDecimal getPlanQuantity() { + return planQuantity; + } + + public void setOutQuantity(BigDecimal outQuantity) { + this.outQuantity = outQuantity; + } + + public BigDecimal getOutQuantity() { + return outQuantity; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + + public void setSapStatus(String sapStatus) { + this.sapStatus = sapStatus; + } + + public String getSapStatus() { + return sapStatus; + } + + public void setSapProof(String sapProof) { + this.sapProof = sapProof; + } + + public String getSapProof() { + return sapProof; + } + + public void setSapMessage(String sapMessage) { + this.sapMessage = sapMessage; + } + + public String getSapMessage() { + return sapMessage; + } + + public void setOutDate(Date outDate) { + this.outDate = outDate; + } + + public Date getOutDate() { + return outDate; + } + + 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 void setAttr5(String attr5) { + this.attr5 = attr5; + } + + public String getAttr5() { + return attr5; + } + + public void setAttr6(String attr6) { + this.attr6 = attr6; + } + + public String getAttr6() { + return attr6; + } + + public void setAttr7(String attr7) { + this.attr7 = attr7; + } + + public String getAttr7() { + return attr7; + } + + public void setAttr8(String attr8) { + this.attr8 = attr8; + } + + public String getAttr8() { + return attr8; + } + + public void setAttr9(String attr9) { + this.attr9 = attr9; + } + + public String getAttr9() { + return attr9; + } + + public void setAttr10(String attr10) { + this.attr10 = attr10; + } + + public String getAttr10() { + return attr10; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("deliveryOrder", getDeliveryOrder()) + .append("itemNumber", getItemNumber()) + .append("factoryCode", getFactoryCode()) + .append("whCode", getWhCode()) + .append("waCode", getWaCode()) + .append("wlCode", getWlCode()) + .append("deliveryPlace", getDeliveryPlace()) + .append("productName", getProductName()) + .append("productCode", getProductCode()) + .append("productSort", getProductSort()) + .append("specification", getSpecification()) + .append("unitOfMeasure", getUnitOfMeasure()) + .append("lotNumber", getLotNumber()) + .append("planQuantity", getPlanQuantity()) + .append("outQuantity", getOutQuantity()) + .append("status", getStatus()) + .append("sapStatus", getSapStatus()) + .append("sapProof", getSapProof()) + .append("sapMessage", getSapMessage()) + .append("outDate", getOutDate()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("attr5", getAttr5()) + .append("attr6", getAttr6()) + .append("attr7", getAttr7()) + .append("attr8", getAttr8()) + .append("attr9", getAttr9()) + .append("attr10", getAttr10()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsFpStorageNewsSn.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsFpStorageNewsSn.java index 58a5cf996..0a1684821 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsFpStorageNewsSn.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsFpStorageNewsSn.java @@ -41,6 +41,21 @@ public class WmsFpStorageNewsSn extends BaseEntity { @Excel(name = "库位编码") private String wlCode; + + /** + * 库位编码 + */ + @Excel(name = "目标库位编码") + private String towlCode; + + public String getTowlCode() { + return towlCode; + } + + public void setTowlCode(String towlCode) { + this.towlCode = towlCode; + } + /** * 入库单号 */ diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsSellOutEmbryoMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsSellOutEmbryoMapper.java index 0fdceb59f..e65557d93 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsSellOutEmbryoMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/WmsSellOutEmbryoMapper.java @@ -2,6 +2,7 @@ package com.op.wms.mapper; import java.util.List; +import com.op.wms.domain.WmsAllocationOutEmbryo; import com.op.wms.domain.WmsSellOutEmbryo; import org.apache.ibatis.annotations.Param; @@ -76,4 +77,10 @@ public interface WmsSellOutEmbryoMapper { * @return */ public WmsSellOutEmbryo selectWmsSellOutEmbryoByOrderCodeAndProductCode(@Param("deliveryOrder") String deliveryOrder, @Param("productCode") String productCode); + + List selectWmsAllocationOutEmbryoList(WmsAllocationOutEmbryo wmsAllocationOutEmbryo); + + WmsAllocationOutEmbryo selectWmsAllocationOutEmbryoById(String id); + + void updateWmsAllocationOutEmbryo(WmsAllocationOutEmbryo wmsAllocationOutEmbryo); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java index dea2995d6..a55262ab0 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsProductPutService.java @@ -120,4 +120,10 @@ public interface IWmsProductPutService { List selectFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsRuturnPutEmbryo); + + String confirmFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsRuturnPutEmbryo); + + WmsFpStorageNewsSn palletScanning(WmsFpStorageNewsSn wmsFpStorageNewsSn); + + String palletTransferConfirmation(WmsFpStorageNewsSn wmsFpStorageNewsSn); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java index 4bcef6a8f..a294539a6 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsProductPutServiceImpl.java @@ -231,7 +231,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); - wmsFpStorageNewsSn.setUserDefined2(formattedDate); + //wmsFpStorageNewsSn.setUserDefined2(formattedDate); wmsFpStorageNewsSn.setCreateBy(wmsProductPut.getCreateBy()); wmsFpStorageNewsSn.setCreateTime(new Date()); wmsFpStorageNewsSn.setActiveFlag("1"); @@ -830,7 +830,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsProductPutRecords.setProductName(wmsRuturnPutEmbryo.getProductName()); wmsProductPutRecords.setProductCode(wmsRuturnPutEmbryo.getProductCode()); wmsProductPutRecords.setWhCode(wmsRuturnPutEmbryo.getWhCode());//仓库编码 - + wmsProductPutRecords.setFactoryCode(wmsRuturnPutEmbryo.getFactoryCode()); wmsProductPutRecords.setWlCode(wmsProductPut1.getWlCode());//库位编码 wmsProductPutRecords.setAttr1(wmsProductPut1.getSn());////托盘号编码 wmsProductPutRecords.setAttr2(wmsProductPut1.getNumber());//箱数 @@ -850,7 +850,7 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { wmsFpStorageNewsSn.setSn(wmsProductPut1.getSn()); wmsFpStorageNewsSn.setAmount(new BigDecimal(wmsProductPut1.getNumber())); //wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); - wmsFpStorageNewsSn.setUserDefined2(formattedDate); + // wmsFpStorageNewsSn.setUserDefined2(formattedDate); wmsFpStorageNewsSn.setCreateBy(wmsRuturnPutEmbryo.getCreateBy()); wmsFpStorageNewsSn.setCreateTime(new Date()); wmsFpStorageNewsSn.setActiveFlag("1"); @@ -885,9 +885,134 @@ public class WmsProductPutServiceImpl implements IWmsProductPutService { } @Override - public List selectFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsRuturnPutEmbryo) { + public List selectFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsAllocationOutEmbryo) { + DynamicDataSourceContextHolder.push("ds_" + wmsAllocationOutEmbryo.getFactoryCode()); + List wmsAllocationOutEmbryoList= wmsSellOutEmbryoMapper.selectWmsAllocationOutEmbryoList(wmsAllocationOutEmbryo); + return wmsAllocationOutEmbryoList; + } + @Override + public String confirmFinishedProductTransferAndOutbound(WmsAllocationOutEmbryo wmsRuturnPutEmbryo) { + String result1="出库成功"; + DynamicDataSourceContextHolder.push("ds_" + wmsRuturnPutEmbryo.getFactoryCode()); + List wmsProductPutTrayCodeList= wmsRuturnPutEmbryo.getWmsProductPutTrayCodeList(); + //成品销售出库--确认接口---修改出库单,--出库库存 + WmsAllocationOutEmbryo wmsSellOutEmbryo1 = wmsSellOutEmbryoMapper.selectWmsAllocationOutEmbryoById(wmsRuturnPutEmbryo.getId()); + Integer tem= wmsProductPutTrayCodeList.size(); + BigDecimal OutQuantity= wmsSellOutEmbryo1.getOutQuantity().add(new BigDecimal(tem));//2 + int result = wmsSellOutEmbryo1.getPlanQuantity().compareTo(OutQuantity); + WmsAllocationOutEmbryo wmsAllocationOutEmbryo=new WmsAllocationOutEmbryo(); + if (result == 0){//出库完 + wmsAllocationOutEmbryo.setStatus("1"); + }else { + wmsAllocationOutEmbryo.setStatus("0"); + } + wmsAllocationOutEmbryo.setId(wmsRuturnPutEmbryo.getId()); + wmsAllocationOutEmbryo.setOutQuantity(OutQuantity); + wmsSellOutEmbryoMapper.updateWmsAllocationOutEmbryo(wmsAllocationOutEmbryo); + //订单修改完成 + for(WmsProductPutTrayCode wmsProductPutTrayCode: wmsProductPutTrayCodeList){ + //库存修改 + //解除绑定 + wmsProductPutTrayCode.setRelatStatus("0"); + wmsProductPutTrayCodeMapper.updateWmsProductPutTrayCode(wmsProductPutTrayCode); + //改明细 + WmsFpStorageNewsSn wmsFpStorageNewsSn=new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn.setSn(wmsProductPutTrayCode.getSn()); + wmsFpStorageNewsSn.setWlCode(wmsProductPutTrayCode.getWlCode()); + wmsFpStorageNewsSn.setActiveFlag("1"); + wmsFpStorageNewsSn.setProductCode(wmsSellOutEmbryo1.getProductCode()); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSnOut(wmsFpStorageNewsSn); + //判断如果托盘数据被出完,就关闭这个明细 + List wmsFpStorageNewsSns= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); + if (wmsFpStorageNewsSns.size()>0){ + WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSns.get(0); + BigDecimal ken= new BigDecimal(wmsFpStorageNewsSn1.getUserDefined2()); + int comparisonResult = ken.compareTo(wmsFpStorageNewsSn1.getAmount()); + if (comparisonResult == 0) { + // ken和amount相等 + wmsFpStorageNewsSn1.setActiveFlag("0"); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn1); + } + } + //改主表 + WmsFpStorageNews wmsFpStorageNews=new WmsFpStorageNews(); + wmsFpStorageNews.setActiveFlag("1"); + wmsFpStorageNews.setWlCode(wmsProductPutTrayCode.getWlCode()); + wmsFpStorageNews.setProductCode(wmsSellOutEmbryo1.getProductCode()); + wmsFpStorageNewsMapper.updateWmsFpStorageNewsOut(wmsFpStorageNews); + } + return result1; + } + + @Override + public WmsFpStorageNewsSn palletScanning(WmsFpStorageNewsSn wmsFpStorageNewsSn) { + DynamicDataSourceContextHolder.push("ds_" + wmsFpStorageNewsSn.getFactoryCode()); + wmsFpStorageNewsSn.setActiveFlag("1"); + List wmsFpStorageNewsSnList= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnList(wmsFpStorageNewsSn); + if (wmsFpStorageNewsSnList.size()>0){ + return wmsFpStorageNewsSnList.get(0); + } return null; } + + @Override + public String palletTransferConfirmation(WmsFpStorageNewsSn wmsFpStorageNewsSn) { + String result1="移库成功"; + DynamicDataSourceContextHolder.push("ds_" + wmsFpStorageNewsSn.getFactoryCode()); + String toWlCode=wmsFpStorageNewsSn.getTowlCode(); + WmsFpStorageNewsSn wmsFpStorageNewsSn1= wmsFpStorageNewsSnMapper.selectWmsFpStorageNewsSnByStorageId(wmsFpStorageNewsSn.getStorageId()); + //减库存明细 + wmsFpStorageNewsSn1.setActiveFlag("0"); + wmsFpStorageNewsSnMapper.updateWmsFpStorageNewsSn(wmsFpStorageNewsSn1); + //减库存 + WmsFpStorageNews wmsFpStorageNews= wmsFpStorageNewsMapper.selectWmsFpStorageNewsByProductCodeAndWlCode(wmsFpStorageNewsSn.getProductCode(),wmsFpStorageNewsSn.getWlCode()); + BigDecimal amount = wmsFpStorageNews.getAmount(); + BigDecimal amountsub = amount.subtract(wmsFpStorageNewsSn1.getAmount()); + wmsFpStorageNews.setAmount(amountsub); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews); + //添加库存明细 + WmsFpStorageNewsSn wmsFpStorageNewsSn2 = new WmsFpStorageNewsSn(); + wmsFpStorageNewsSn2.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNewsSn2.setFactoryCode(wmsFpStorageNewsSn.getFactoryCode()); + wmsFpStorageNewsSn2.setWhCode(wmsFpStorageNewsSn.getWhCode());//仓库编码 + wmsFpStorageNewsSn2.setWlCode(toWlCode); + wmsFpStorageNewsSn2.setProductCode(wmsFpStorageNewsSn.getProductCode()); + wmsFpStorageNewsSn2.setProductName(wmsFpStorageNewsSn.getProductName()); + wmsFpStorageNewsSn2.setSn(wmsFpStorageNewsSn.getSn()); + wmsFpStorageNewsSn2.setAmount(wmsFpStorageNewsSn.getAmount()); + //wmsFpStorageNewsSn.setBatchNumber(wmsProductPut.getBatchNumber()); + // wmsFpStorageNewsSn2.setUserDefined2(formattedDate); + wmsFpStorageNewsSn2.setCreateBy(wmsFpStorageNewsSn.getCreateBy()); + wmsFpStorageNewsSn2.setCreateTime(new Date()); + wmsFpStorageNewsSn2.setActiveFlag("1"); + wmsFpStorageNewsSnMapper.insertWmsFpStorageNewsSn(wmsFpStorageNewsSn2); + //添加库存 + WmsFpStorageNews wmsFpStorageNews1 = new WmsFpStorageNews(); + + wmsFpStorageNews1.setWhCode(wmsFpStorageNewsSn.getWhCode());//仓库编码 + wmsFpStorageNews1.setWlCode(toWlCode); + wmsFpStorageNews1.setStorageType("成品"); + wmsFpStorageNews1.setProductCode(wmsFpStorageNewsSn.getProductCode()); + wmsFpStorageNews1.setProductName(wmsFpStorageNewsSn.getProductName()); + wmsFpStorageNews1.setFactoryCode(wmsFpStorageNewsSn.getFactoryCode()); + wmsFpStorageNews1.setActiveFlag("1"); + wmsFpStorageNews1.setUserDefined1(wmsFpStorageNews.getUserDefined1()); + List wmsFpStorageNewsList = wmsFpStorageNewsMapper.selectWmsFpStorageNewsList(wmsFpStorageNews1); + wmsFpStorageNews1.setStorageId(IdUtils.fastSimpleUUID()); + wmsFpStorageNews1.setAmount(wmsFpStorageNewsSn.getAmount()); + wmsFpStorageNews1.setCreateBy(wmsFpStorageNewsSn.getCreateBy()); + wmsFpStorageNews1.setCreateTime(new Date()); + if (wmsFpStorageNewsList.size() > 0) { + WmsFpStorageNews wmsFpStorageNews2 = wmsFpStorageNewsList.get(0); + BigDecimal amount1 = wmsFpStorageNews2.getAmount(); + BigDecimal amountAdd = amount1.add(wmsFpStorageNews.getAmount()); + wmsFpStorageNews2.setAmount(amountAdd); + wmsFpStorageNewsMapper.updateWmsFpStorageNews(wmsFpStorageNews2); + } else { + wmsFpStorageNewsMapper.insertWmsFpStorageNews(wmsFpStorageNews1); + } + return result1; + } } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseAreaMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseAreaMapper.xml index acefd7465..c51f16bfd 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseAreaMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseAreaMapper.xml @@ -212,7 +212,7 @@ diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseBomMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseBomMapper.xml index c8562b4d2..63d319a7f 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseBomMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseBomMapper.xml @@ -267,7 +267,7 @@ - select count(*) + select count(1) from base_warehouse and del_flag = '0' diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml index 563a3eb6d..93c536f85 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsRuturnPutEmbryoMapper.xml @@ -160,14 +160,14 @@ product_name, product_code, product_sort, - specification, + specification, unit_of_measure, plan_quantity, put_quantity, status, - SAP_status, - SAP_proof, - SAP_message, + SAP_status, + SAP_proof, + SAP_message, put_date, attr1, attr2, @@ -195,14 +195,14 @@ #{productName}, #{productCode}, #{productSort}, - #{specification}, + #{speciFication}, #{unitOfMeasure}, #{planQuantity}, #{putQuantity}, #{status}, - #{SAPStatus}, - #{SAPProof}, - #{SAPMessage}, + #{sapStatus}, + #{sapProof}, + #{sapMessage}, #{putDate}, #{attr1}, #{attr2}, diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml index e793c2716..7bcb61931 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/WmsSellOutEmbryoMapper.xml @@ -44,6 +44,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, delivery_order, Item_number,active_flag, factory_code, wh_code, wa_code, wl_code, delivery_place, product_name, product_code, product_sort, specification, unit_of_measure, lot_number, plan_quantity, out_quantity, status, SAP_status, SAP_proof, SAP_message, out_date, attr1, attr2, attr3, attr4, attr5, attr6, attr7, attr8, attr9, attr10, create_by, create_time, update_by, update_time, remark from wms_sell_out_embryo @@ -242,4 +281,168 @@ #{id} + + + + update wms_allocation_out_embryo + + delivery_order = #{deliveryOrder}, + Item_number = #{itemNumber}, + factory_code = #{factoryCode}, + wh_code = #{whCode}, + wa_code = #{waCode}, + wl_code = #{wlCode}, + delivery_place = #{deliveryPlace}, + product_name = #{productName}, + product_code = #{productCode}, + product_sort = #{productSort}, + specification = #{specification}, + unit_of_measure = #{unitOfMeasure}, + lot_number = #{lotNumber}, + plan_quantity = #{planQuantity}, + out_quantity = #{outQuantity}, + status = #{status}, + SAP_status = #{sapStatus}, + SAP_proof = #{sapProof}, + SAP_message = #{sapMessage}, + out_date = #{outDate}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + attr5 = #{attr5}, + attr6 = #{attr6}, + attr7 = #{attr7}, + attr8 = #{attr8}, + attr9 = #{attr9}, + attr10 = #{attr10}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + +