diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 7f05ea66e..7c1c73cff 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; + /** * sap服务 * @@ -22,6 +24,10 @@ public interface RemoteSapService { @PostMapping("/sap/shopOrderSync") public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder); + /**传递母订单号和母订单数量**/ + @PostMapping("/sap/shopUpdateSync") + public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder); + @PostMapping("/sap/sapRouterSync") public R sapRouterSync(@RequestBody SapRouterQuery sapRouterQuery); @@ -30,11 +36,11 @@ public interface RemoteSapService { /**回传sap母工单**/ @PostMapping("/sap/sapCreateOrder") - public R> SapCreateOrder(@RequestBody List sapCreateOrderList); + public R>> SapCreateOrder(@RequestBody List sapCreateOrderList); /**关闭订单**/ @PostMapping("/sap/sapCloseOrder") - public R sapCloseOrder(@RequestParam("shopOrder") String shopOrder); + public R sapCloseOrder(@RequestBody SapCloseOrderQuery sapCloseOrderQuery); /**报工**/ @PostMapping("/sap/sapRFWOrder") diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDTO.java index 7dfdce5b4..51d30ba96 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDTO.java @@ -1,15 +1,14 @@ package com.op.system.api.domain.dto; +import java.util.Date; 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.util.Date; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; /** - * 备料单对象 mes_prepare + * 备料单对象 mes_prepareDTO * * @author Open Platform * @date 2023-08-03 @@ -23,6 +22,7 @@ public class MesPrepareDTO extends BaseEntity { /** 工单编码 */ @Excel(name = "工单编码") private String workorderCode; + private String workorderCodeSap; /** 工单名称 */ @Excel(name = "工单名称") @@ -120,6 +120,25 @@ public class MesPrepareDTO extends BaseEntity { /** 工厂编码 */ @Excel(name = "工厂编码") private String factoryCode; + + private String dayStr; + + public String getWorkorderCodeSap() { + return workorderCodeSap; + } + + public void setWorkorderCodeSap(String workorderCodeSap) { + this.workorderCodeSap = workorderCodeSap; + } + + public String getDayStr() { + return dayStr; + } + + public void setDayStr(String dayStr) { + this.dayStr = dayStr; + } + public String getMaterialCode() { return materialCode; } @@ -305,37 +324,37 @@ public class MesPrepareDTO extends BaseEntity { @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("prepareId", getPrepareId()) - .append("workorderCode", getWorkorderCode()) - .append("workorderName", getWorkorderName()) - .append("parentOrder", getParentOrder()) - .append("orderId", getOrderId()) - .append("orderCode", getOrderCode()) - .append("productId", getProductId()) - .append("productCode", getProductCode()) - .append("prodType", getProdType()) - .append("productName", getProductName()) - .append("productSpc", getProductSpc()) - .append("wetDetailPlanId", getWetDetailPlanId()) - .append("productDate", getProductDate()) - .append("shiftId", getShiftId()) - .append("ancestors", getAncestors()) - .append("status", getStatus()) - .append("remark", getRemark()) - .append("attr1", getAttr1()) - .append("attr2", getAttr2()) - .append("attr3", getAttr3()) - .append("attr4", getAttr4()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("factoryCode", getFactoryCode()) - .append("materialCode", getMaterialCode()) - .append("materialName", getMaterialName()) - .append("materialSpc", getMaterialSpc()) - .append("quantity", getQuantity()) - .append("unit", getUnit()) - .toString(); + .append("prepareId", getPrepareId()) + .append("workorderCode", getWorkorderCode()) + .append("workorderName", getWorkorderName()) + .append("parentOrder", getParentOrder()) + .append("orderId", getOrderId()) + .append("orderCode", getOrderCode()) + .append("productId", getProductId()) + .append("productCode", getProductCode()) + .append("prodType", getProdType()) + .append("productName", getProductName()) + .append("productSpc", getProductSpc()) + .append("wetDetailPlanId", getWetDetailPlanId()) + .append("productDate", getProductDate()) + .append("shiftId", getShiftId()) + .append("ancestors", getAncestors()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("materialSpc", getMaterialSpc()) + .append("quantity", getQuantity()) + .append("unit", getUnit()) + .toString(); } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java index d8c48f204..6f566e3c3 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/MesPrepareDetailDTO.java @@ -1,12 +1,11 @@ package com.op.system.api.domain.dto; +import java.util.Date; 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.util.Date; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; /** * mes备料单明细对象 mes_prepare_detail @@ -42,7 +41,9 @@ public class MesPrepareDetailDTO extends BaseEntity { /** 生产数量 */ @Excel(name = "生产数量") - private Long quantity; + private String quantity; + + private String fundQuanlity; /** 工单生产日期 */ @JsonFormat(pattern = "yyyy-MM-dd") @@ -76,11 +77,66 @@ public class MesPrepareDetailDTO extends BaseEntity { /** 产品类型 */ @Excel(name = "产品类型") private String prodType; + /** 库位 */ + private String locator; + + private String needDate; + private String recoil; + private String buyFlag; + private String parentWorkOrder; + + public String getParentWorkOrder() { + return parentWorkOrder; + } + + public void setParentWorkOrder(String parentWorkOrder) { + this.parentWorkOrder = parentWorkOrder; + } + + public String getBuyFlag() { + return buyFlag; + } + + public void setBuyFlag(String buyFlag) { + this.buyFlag = buyFlag; + } /** $column.columnComment */ @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") private String factoryCode; + public String getRecoil() { + return recoil; + } + + public void setRecoil(String recoil) { + this.recoil = recoil; + } + + public String getFundQuanlity() { + return fundQuanlity; + } + + public void setFundQuanlity(String fundQuanlity) { + this.fundQuanlity = fundQuanlity; + } + + public String getNeedDate() { + return needDate; + } + + public void setNeedDate(String needDate) { + this.needDate = needDate; + } + + public String getLocator() { + return locator; + } + + public void setLocator(String locator) { + this.locator = locator; + } + public void setRecordId(String recordId) { this.recordId = recordId; } @@ -123,11 +179,11 @@ public class MesPrepareDetailDTO extends BaseEntity { public String getUnit() { return unit; } - public void setQuantity(Long quantity) { + public void setQuantity(String quantity) { this.quantity = quantity; } - public Long getQuantity() { + public String getQuantity() { return quantity; } public void setProductDate(Date productDate) { @@ -197,27 +253,27 @@ public class MesPrepareDetailDTO extends BaseEntity { @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("recordId", getRecordId()) - .append("prepareId", getPrepareId()) - .append("materialCode", getMaterialCode()) - .append("materailName", getMaterailName()) - .append("materailSpc", getMaterailSpc()) - .append("unit", getUnit()) - .append("quantity", getQuantity()) - .append("productDate", getProductDate()) - .append("shiftId", getShiftId()) - .append("status", getStatus()) - .append("remark", getRemark()) - .append("attr1", getAttr1()) - .append("attr2", getAttr2()) - .append("attr3", getAttr3()) - .append("attr4", getAttr4()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("prodType", getProdType()) - .append("factoryCode", getFactoryCode()) - .toString(); + .append("recordId", getRecordId()) + .append("prepareId", getPrepareId()) + .append("materialCode", getMaterialCode()) + .append("materailName", getMaterailName()) + .append("materailSpc", getMaterailSpc()) + .append("unit", getUnit()) + .append("quantity", getQuantity()) + .append("productDate", getProductDate()) + .append("shiftId", getShiftId()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("prodType", getProdType()) + .append("factoryCode", getFactoryCode()) + .toString(); } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesReportWorkConsumeDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesReportWorkConsumeDTO.java new file mode 100644 index 000000000..abfbf4cf5 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesReportWorkConsumeDTO.java @@ -0,0 +1,197 @@ +package com.op.system.api.domain.mes; + +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; + +/** + * 生产报工物料消耗对象 mes_report_work_consume + * + * @author Open Platform + * @date 2023-08-24 + */ +public class MesReportWorkConsumeDTO extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** id */ + private String recordId; + + /** 工单编码 */ + @Excel(name = "工单编码") + private String workorderCode; + + /** 物料编号 */ + @Excel(name = "物料编号") + private String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 物料规格型号 */ + @Excel(name = "物料规格型号") + private String materialSpc; + + /** 数量 */ + @Excel(name = "数量") + private Long quantity; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private String attr4; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** 工厂编码 */ + @Excel(name = "报工编码") + private String reportCode; + + //虚拟字段 + private String id; + + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getRecordId() { + return recordId; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + public String getWorkorderCode() { + return workorderCode; + } + + public void setReportCode(String reportCode) { + this.reportCode = reportCode; + } + public String getReportCode() { + return reportCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialCode() { + return materialCode; + } + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getMaterialName() { + return materialName; + } + public void setMaterialSpc(String materialSpc) { + this.materialSpc = materialSpc; + } + + public String getMaterialSpc() { + return materialSpc; + } + public void setQuantity(Long quantity) { + this.quantity = quantity; + } + + public Long getQuantity() { + return quantity; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + 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 setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + + //虚拟字段 + public void setId(String factoryCode) { + this.id = id; + } + + public String getId() { + return id; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("id", getId()) + .append("reportCode", getReportCode()) + .append("workorderCode", getWorkorderCode()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("materialSpc", getMaterialSpc()) + .append("quantity", getQuantity()) + .append("unit", getUnit()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .toString(); + } +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartDTO.java new file mode 100644 index 000000000..c070aa2ee --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/ChartDTO.java @@ -0,0 +1,45 @@ +package com.op.system.api.domain.quality; + +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.List; + +/** + * + *echart 图标实体 + * @author zxl + * @date 2023-07-18 + */ +public class ChartDTO { + private String name; + private String type; + private List data; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/FactoryDto.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/FactoryDto.java new file mode 100644 index 000000000..1964ae425 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/FactoryDto.java @@ -0,0 +1,126 @@ +package com.op.system.api.domain.quality; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.TreeEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 工厂模型对象 sys_factory + * + * @author Open Platform + * @date 2023-07-03 + */ +public class FactoryDto extends TreeEntity { + private static final long serialVersionUID = 1L; + + /** 工厂id */ + private Long factoryId; + + /** 部门名称 */ + @Excel(name = "工厂名称") + private String factoryName; + + /** 负责人 */ + @Excel(name = "负责人") + private String leader; + + /** 联系电话 */ + @Excel(name = "联系电话") + private String phone; + + /** 邮箱 */ + @Excel(name = "邮箱") + private String email; + + /** 部门状态(0正常 */ + @Excel(name = "工厂状态") + private String status; + + /** 删除标志(0代表存在 */ + private String delFlag; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + public void setFactoryId(Long factoryId) { + this.factoryId = factoryId; + } + + public Long getFactoryId() { + return factoryId; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public String getFactoryName() { + return factoryName; + } + + public void setLeader(String leader) { + this.leader = leader; + } + + public String getLeader() { + return leader; + } + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPhone() { + return phone; + } + public void setEmail(String email) { + this.email = email; + } + + public String getEmail() { + return email; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("factoryId", getFactoryId()) + .append("parentId", getParentId()) + .append("ancestors", getAncestors()) + .append("factoryName", getFactoryName()) + .append("orderNum", getOrderNum()) + .append("leader", getLeader()) + .append("phone", getPhone()) + .append("email", getEmail()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .toString(); + } +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapCloseOrderQuery.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapCloseOrderQuery.java new file mode 100644 index 000000000..f051c15a8 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapCloseOrderQuery.java @@ -0,0 +1,23 @@ +package com.op.system.api.domain.sap; + + +public class SapCloseOrderQuery { + private String leadOrder; + private String order; + + public String getLeadOrder() { + return leadOrder; + } + + public void setLeadOrder(String leadOrder) { + this.leadOrder = leadOrder; + } + + public String getOrder() { + return order; + } + + public void setOrder(String order) { + this.order = order; + } +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java index e6df8f1a1..19a581c84 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java @@ -1,5 +1,7 @@ package com.op.system.api.domain.sap; +import java.util.List; + /** * 报工 */ @@ -7,14 +9,14 @@ public class SapRFW { private String aufnr; private String gamng; private lt_gs lt_gs; - private lt_hw lt_hw; + private List lt_hwList; - public SapRFW.lt_hw getLt_hw() { - return lt_hw; + public List getLt_hwList() { + return lt_hwList; } - public void setLt_hw(SapRFW.lt_hw lt_hw) { - this.lt_hw = lt_hw; + public void setLt_hwList(List lt_hwList) { + this.lt_hwList = lt_hwList; } public SapRFW.lt_gs getLt_gs() { @@ -42,7 +44,7 @@ public class SapRFW { } - public class lt_gs + public static class lt_gs { String conf_activity1; String conf_activity2; @@ -112,7 +114,7 @@ public class SapRFW { } } - public class lt_hw{ + public class lt_hw{ String material; String entry_qnt; @@ -140,13 +142,5 @@ public class SapRFW { '}'; } } - @Override - public String toString() { - return "{" + - "aufnr:"+aufnr+","+ - "gamng:"+gamng+","+ - "lt_gs:"+lt_gs.toString()+","+ - "lt_hw:"+lt_hw.toString()+","+ - "}"; - } + } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java index ac56fb1fa..25e5d2b7c 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapShopOrderQuery.java @@ -10,6 +10,16 @@ public class SapShopOrderQuery { private String matnr; private String erdat; private String werk; + private String quantity; + + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } public String getWerk() { return werk; diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index 8ecd24e5e..6f90361cd 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -7,9 +7,11 @@ import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; +import java.util.Map; public class RemoteSapFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteSapFallbackFactory.class); @@ -33,12 +35,12 @@ public class RemoteSapFallbackFactory implements FallbackFactory> SapCreateOrder(List sapCreateOrderList) { + public R>> SapCreateOrder(List sapCreateOrderList) { return R.fail("回传sap工单失败:" + throwable.getMessage()); } @Override - public R sapCloseOrder(String shopOrder) { + public R sapCloseOrder(SapCloseOrderQuery sapCloseOrderQuery) { return R.fail("关闭订单失败:" + throwable.getMessage()); } @@ -72,6 +74,11 @@ public class RemoteSapFallbackFactory implements FallbackFactory list = devicePDAService.selectEquEquipmentList(equEquipment); + return getDataTable(list); + } + /** * 获取维修详情 */ @@ -129,6 +150,7 @@ public class DevicePDAController { /** * 填写维修记录 + * * @param equRepairWorkOrder * @return */ @@ -137,8 +159,15 @@ public class DevicePDAController { return devicePDAService.updateMaintenanceRecords(equRepairWorkOrder); } + //传故障类型 +// @GetMapping(value = "/queryEquFaultTypeTree") +// public AjaxResult queryEquFaultTypeTree(EquRepairWorkOrder equRepairWorkOrder) { +// return devicePDAService.queryEquFaultTypeTree(equRepairWorkOrder); +// } + /** * 开始保养任务 + * * @param pdadto * @return */ diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java index 424ec8573..6ad25fff4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquOrderController.java @@ -93,6 +93,6 @@ public class EquOrderController extends BaseController { @Log(title = "计划工单", businessType = BusinessType.DELETE) @DeleteMapping("/{orderIds}") public AjaxResult remove(@PathVariable String[] orderIds) { - return toAjax(equOrderService.deleteEquOrderByOrderIds(orderIds)); + return equOrderService.deleteEquOrderByOrderIds(orderIds); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java index e77b96947..9d7874255 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquRepairOrderController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.op.device.domain.EquEquipment; +import com.op.device.domain.EquTeamUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -130,9 +131,9 @@ public class EquRepairOrderController extends BaseController { * 查询报修人员列表 */ @GetMapping("/getRepairPersonList") - public TableDataInfo getRepairPersonList(EquEquipment equEquipment) { + public TableDataInfo getRepairPersonList(EquTeamUser equTeamUser) { startPage(); - List list = equRepairOrderService.getRepairPersonList(equEquipment); + List list = equRepairOrderService.getRepairPersonList(equTeamUser); return getDataTable(list); } diff --git a/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java b/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java index 995dbf72b..8aa3ab8e1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java +++ b/op-modules/op-device/src/main/java/com/op/device/controller/EquSpareApplyController.java @@ -94,7 +94,7 @@ public class EquSpareApplyController extends BaseController { @Log(title = "申领记录", businessType = BusinessType.DELETE) @DeleteMapping("/{applyIds}") public AjaxResult remove(@PathVariable String[] applyIds) { - return toAjax(equSpareApplyService.deleteEquSpareApplyByApplyIds(applyIds)); + return equSpareApplyService.deleteEquSpareApplyByApplyIds(applyIds); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java index 67a5bbf74..7afc7db7f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquCheckItem.java @@ -95,6 +95,39 @@ public class EquCheckItem extends BaseEntity { // 更新日期结束 private String updateTimeEnd; + // 检查项工具 + private String itemTools; + + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + private List equCheckItemDetailList; public List getEquCheckItemDetailList() { diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java index 1aff0c837..0afa56733 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquFaultType.java @@ -74,6 +74,14 @@ public class EquFaultType extends BaseEntity { // 创建日期结束 private String createTimeEnd; + //故障大类 + // 字典名 + private String dictLabel; + + // 字典值 + private String dictValue; + + public List getCreateTimeArray() { return createTimeArray; } @@ -193,6 +201,22 @@ public class EquFaultType extends BaseEntity { return delFlag; } + public void setDictValue(String dictValue) { + this.dictValue = dictValue; + } + + public String getDictValue() { + return dictValue; + } + + public void setDictLabel(String dictLabel) { + this.dictLabel = dictLabel; + } + + public String getDictLabel() { + return dictLabel; + } + @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/EquOperationRecord.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java new file mode 100644 index 000000000..c8702aa2b --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOperationRecord.java @@ -0,0 +1,257 @@ +package com.op.device.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 设备运行记录对象 equ_operation_record + * + * @author Open Platform + * @date 2023-11-27 + */ +public class EquOperationRecord extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 主键 */ + private String id; + + /** 设备编码 */ + @Excel(name = "设备编码") + private String equipmentCode; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 类型(on:开机、off:关机) */ + @Excel(name = "类型(on:开机、off:关机)") + private String type; + + /** 维护类型(upkeep:保养、repair:维修) */ + @Excel(name = "维护类型", readConverterExp = "u=pkeep:保养、repair:维修") + private String maintenanceType; + + /** 关联记录id */ + @Excel(name = "关联记录id") + private String parentId; + + /** 工厂 */ + @Excel(name = "工厂") + private String factoryCode; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private String attr1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String attr2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String attr3; + + /** 删除标识 */ + private String delFlag; + + //MTBF接口字段 + //序号 + private String serialNumber; + //开机时间 + private String onTime; + //故障次数 + private String shutDownNumber; + //mtbf + private String mtbf; + + //IntactRate 完好设备占比字段 + //运行设备 + private String operationEquipment; + //故障设备 + private String faultEquipment; + //总设备 + private String totalEquipment; + //百分比 + private String intactRate; + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getEquipmentCode() { + return equipmentCode; + } + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getStartTime() { + return startTime; + } + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Date getEndTime() { + return endTime; + } + public void setType(String type) { + this.type = type; + } + + public String getType() { + return type; + } + public void setMaintenanceType(String maintenanceType) { + this.maintenanceType = maintenanceType; + } + + public String getMaintenanceType() { + return maintenanceType; + } + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getParentId() { + return parentId; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + //虚拟字段 序号 + public void setSerialNumber(String serialNumber) { + this.serialNumber = serialNumber; + } + public String getSerialNumber() { + return serialNumber; + } + + //开机时间 + public void setOnTime(String onTime) { + this.onTime = onTime; + } + public String getOnTime() { + return onTime; + } + + //故障次数 + public void setShutDownNumber(String shutDownNumber) { + this.shutDownNumber = shutDownNumber; + } + public String getShutDownNumber() { + return shutDownNumber; + } + + //mtbf + public void setMtbf(String mtbf) { + this.mtbf = mtbf; + } + public String getMtbf() { + return mtbf; + } + + //运行设备 + public void setOperationEquipment(String operationEquipment) { + this.operationEquipment = operationEquipment; + } + public String getOperationEquipment() { + return operationEquipment; + } + + //故障设备 + public void setFaultEquipment(String faultEquipment) { + this.faultEquipment = faultEquipment; + } + public String getFaultEquipment() { + return faultEquipment; + } + + //总设备 + public void setTotalEquipment(String totalEquipment) { + this.totalEquipment = totalEquipment; + } + public String getTotalEquipment() { + return totalEquipment; + } + + //完好率 + public void setIntactRate(String intactRate) { + this.intactRate = intactRate; + } + public String getIntactRate() { + return intactRate; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("equipmentCode", getEquipmentCode()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("type", getType()) + .append("maintenanceType", getMaintenanceType()) + .append("parentId", getParentId()) + .append("factoryCode", getFactoryCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} \ No newline at end of file diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java index 64dc108ae..3a9e700db 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrder.java @@ -165,6 +165,15 @@ public class EquOrder extends BaseEntity { /** 维护类型名称 */ private String itemTypeName; + /** 主键 */ + private String id; + public void setId(String id) { + this.id = id; + } + public String getId() { + return id; + } + //标准列表 public List getStandardList() { return standardList; @@ -194,6 +203,26 @@ public class EquOrder extends BaseEntity { private Date orderEndArrayStart; private Date orderEndArrayEnd; + private List upkeepPictures; + + private String picturePath; + + public String getPicturePath() { + return picturePath; + } + + public void setPicturePath(String picturePath) { + this.picturePath = picturePath; + } + + public List getUpkeepPictures() { + return upkeepPictures; + } + + public void setUpkeepPictures(List upkeepPictures) { + this.upkeepPictures = upkeepPictures; + } + public List getOrderStartArray() { return orderStartArray; } @@ -300,13 +329,13 @@ public class EquOrder extends BaseEntity { private List detailList; - private List spareList; + private List spareList; - public List getSpareList() { + public List getSpareList() { return spareList; } - public void setSpareList(List spareList) { + public void setSpareList(List spareList) { this.spareList = spareList; } @@ -605,6 +634,35 @@ public class EquOrder extends BaseEntity { return delFlag; } + //检查项详情 + public void setItemName(String itemName) { + this.itemName = itemName; + } + public String getItemName() { + return itemName; + } + + public void setItemMethod(String itemMethod) { + this.itemMethod = itemMethod; + } + public String getItemMethod() { + return itemMethod; + } + + public void setItemType(String itemType) { + this.itemType = itemType; + } + public String getItemType() { + return itemType; + } + + public void setItemTypeName(String itemTypeName) { + this.itemTypeName = itemTypeName; + } + public String getItemTypeName() { + return itemTypeName; + } + @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/EquOrderDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java index 4fb380770..b5358bd8b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderDetail.java @@ -72,6 +72,16 @@ public class EquOrderDetail extends BaseEntity { private List standardList; + private String itemTools; + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getStandardList() { return standardList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java index e6821ea20..4118bfdcc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOrderStandard.java @@ -100,6 +100,26 @@ public class EquOrderStandard extends BaseEntity { private String repairPicture; + private String itemName; + + public String getItemName() { + return itemName; + } + + public void setItemName(String itemName) { + this.itemName = itemName; + } + + private List checkPictrueList; + + public List getCheckPictrueList() { + return checkPictrueList; + } + + public void setCheckPictrueList(List checkPictrueList) { + this.checkPictrueList = checkPictrueList; + } + public List getPicturePaths() { return picturePaths; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java index a4903fcb6..6db1d97ad 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquOutsourceWork.java @@ -61,6 +61,10 @@ public class EquOutsourceWork extends BaseEntity { @Excel(name = "委外用时") private String workCostTime; + /** 委外状态 */ + @Excel(name = "委外状态") + private String workStatus; + /** 备用字段1 */ @Excel(name = "备用字段1") private String attr1; @@ -185,6 +189,13 @@ public class EquOutsourceWork extends BaseEntity { return workCostTime; } + public void setWorkStatus(String workStatus) { + this.workStatus = workStatus; + } + public String getWorkStatus() { + return workStatus; + } + public void setAttr1(String attr1) { this.attr1 = attr1; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java index 49b55557f..17ad616f6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanDetail.java @@ -80,6 +80,36 @@ public class EquPlanDetail extends BaseEntity { // 主计划code private String planCode; + private String itemTools; + + private String itemLoopType; + + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getPlanCode() { return planCode; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java index dbc4c85be..99ac57ef2 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanEqu.java @@ -66,6 +66,26 @@ public class EquPlanEqu extends BaseEntity { private String spareOnList; + private int itemLoop; + + private String itemLoopType; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + public String getSpareOnList() { return spareOnList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java index 08ccb5339..93be774d8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquPlanStandard.java @@ -78,6 +78,46 @@ public class EquPlanStandard extends BaseEntity { private Boolean showFlag; + private String itemMethod; + + private String itemTools; + + private int itemLoop; + + private String itemLoopType; + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public String getItemMethod() { + return itemMethod; + } + + public void setItemMethod(String itemMethod) { + this.itemMethod = itemMethod; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public Boolean getShowFlag() { return showFlag; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java index cfed63506..60c6e759a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquRepairOrder.java @@ -178,6 +178,16 @@ public class EquRepairOrder extends BaseEntity { //检查项列表 private List checkList; + //时间列表 虚拟字段 + private List orderBreakdownTimeArray; + private List orderTimeArray; + //故障开始时间、故障结束时间 + private String orderBreakdownTimeStart; + private String orderBreakdownTimeEnd; + //报修开始时间、结束时间 + private String orderTimeStart; + private String orderTimeEnd; + //图片文件 public String getFileList() { return fileList; @@ -463,6 +473,49 @@ public class EquRepairOrder extends BaseEntity { this.checkList = checkList; } + //时间列表 + public List getOrderBreakdownTimeArray() { + return orderBreakdownTimeArray; + } + public void setOrderBreakdownTimeArray(List orderBreakdownTimeArray) { + this.orderBreakdownTimeArray = orderBreakdownTimeArray; + } + + public List getOrderTimeArray() { + return orderTimeArray; + } + public void setOrderTimeArray(List orderTimeArray) { + this.orderTimeArray = orderTimeArray; + } + + //故障开始时间、结束时间 + public String getOrderBreakdownTimeStart() { + return orderBreakdownTimeStart; + } + public void setOrderBreakdownTimeStart(String orderBreakdownTimeStart) { + this.orderBreakdownTimeStart = orderBreakdownTimeStart; + } + public String getOrderBreakdownTimeEnd() { + return orderBreakdownTimeEnd; + } + public void setOrderBreakdownTimeEnd(String orderBreakdownTimeEnd) { + this.orderBreakdownTimeEnd = orderBreakdownTimeEnd; + } + + //报修开始时间、结束时间 + public String getOrderTimeStart() { + return orderTimeStart; + } + public void setOrderTimeStart(String orderTimeStart) { + this.orderTimeStart = orderTimeStart; + } + public String getOrdeTimeEnd() { + return orderTimeEnd; + } + public void setOrderTimeEnd(String orderTimeEnd) { + this.orderTimeEnd = orderTimeEnd; + } + @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 17e53d243..e55546bf5 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 @@ -1,5 +1,6 @@ package com.op.device.domain; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -122,18 +123,21 @@ public class EquRepairWorkOrder extends BaseEntity { /** 维修开始时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "维修开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private String workStartTime; + private Date workStartTime; /** 维修结束时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "维修结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") - private String workEndTime; + private Date workEndTime; //维修停机真正开始时间 - private String actualDownStartTime; + private Date actualDownStartTime; //维修停机真正结束时间 - private String actualDownEndTime; + private Date actualDownEndTime; + + /** 联系方式 */ + private String workConnection; // 设备 /** 设备名称 */ @@ -186,7 +190,7 @@ public class EquRepairWorkOrder extends BaseEntity { /** 报修人 */ private String orderRepairmanCode; - /** 联系方式 */ + /** 报修人联系方式 */ private String orderConnection; //班组 @@ -214,7 +218,7 @@ public class EquRepairWorkOrder extends BaseEntity { /** 委外单位 */ private String workOutsourcingUnit; /** 联系方式 */ - private String workConnection; + private String outSourceConnection; //手持 //用户id @@ -234,6 +238,9 @@ public class EquRepairWorkOrder extends BaseEntity { //申领单列表 private List applyList; + //检查项列表 + private List standardList; + //维修前 维修后 public String getAfterRepairFile() { return afterRepairFile; @@ -542,20 +549,27 @@ public class EquRepairWorkOrder extends BaseEntity { } //维修工单 新增字段 维修开始结束时间 - public void setWorkStartTime(String workStartTime) { + public void setWorkStartTime(Date workStartTime) { this.workStartTime = workStartTime; } - public String getWorkStartTime() { + public Date getWorkStartTime() { return workStartTime; } - public void setWorkEndTime(String workEndTime) { + public void setWorkEndTime(Date workEndTime) { this.workEndTime = workEndTime; } - public String getWorkEndTime() { + public Date getWorkEndTime() { return workEndTime; } + public void setWorkConnection(String workConnection) { + this.workConnection = workConnection; + } + public String getWorkConnection() { + return workConnection; + } + //班组 public void setTeamName(String teamName) { this.teamName = teamName; @@ -601,16 +615,16 @@ public class EquRepairWorkOrder extends BaseEntity { } //计划停机开始时间、结束时间 - public String getActualDownStartTime() { + public Date getActualDownStartTime() { return actualDownStartTime; } - public void setActualDownStartTime(String actualDownStartTime) { + public void setActualDownStartTime(Date actualDownStartTime) { this.actualDownStartTime = actualDownStartTime; } - public String getActualDownEndTime() { + public Date getActualDownEndTime() { return actualDownEndTime; } - public void setActualDownEndTime(String actualDownEndTime) { + public void setActualDownEndTime(Date actualDownEndTime) { this.actualDownEndTime = actualDownEndTime; } @@ -636,11 +650,11 @@ public class EquRepairWorkOrder extends BaseEntity { return workOutsourcingUnit; } - public void setWorkConnection(String workConnection) { - this.workConnection = workConnection; + public void setOutSourceConnection(String outSourceConnection) { + this.outSourceConnection = outSourceConnection; } - public String getWorkConnection() { - return workConnection; + public String getOutSourceConnection() { + return outSourceConnection; } //手持 用户userId @@ -690,6 +704,14 @@ public class EquRepairWorkOrder extends BaseEntity { this.files = files; } + //标准列表 + public List getStandardList() { + return standardList; + } + public void setStandardList(List standardList) { + this.standardList = standardList; + } + @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/EquSpareApply.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java index 3c89a262b..30e6caed4 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquSpareApply.java @@ -23,7 +23,7 @@ public class EquSpareApply extends BaseEntity { private String applyId; /** 出库单号 */ - @Excel(name = "出库单号") + @Excel(name = "单号") private String applyCode; /** 备品备件编码 */ @@ -40,7 +40,7 @@ public class EquSpareApply extends BaseEntity { /** 数量 */ @Excel(name = "数量") - private Long spareQuantity; + private BigDecimal spareQuantity; /** 使用组线 */ @Excel(name = "使用组线") @@ -106,6 +106,28 @@ public class EquSpareApply extends BaseEntity { /** 总数量 */ private BigDecimal amount; + /** 物料号 */ + @Excel(name = "物料号") + private String materialCode; + + /** 物料描述 */ + @Excel(name = "物料描述") + private String materialDesc; + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialDesc(String materialDesc) { + this.materialDesc = materialDesc; + } + public String getMaterialDesc() { + return materialDesc; + } + public List getApplyTimeArray() { return applyTimeArray; } @@ -137,13 +159,14 @@ public class EquSpareApply extends BaseEntity { public String getApplyId() { return applyId; } + public void setApplyCode(String applyCode) { this.applyCode = applyCode; } - public String getApplyCode() { return applyCode; } + public void setSpareCode(String spareCode) { this.spareCode = spareCode; } @@ -165,11 +188,11 @@ public class EquSpareApply extends BaseEntity { public String getSpareModel() { return spareModel; } - public void setSpareQuantity(Long spareQuantity) { + public void setSpareQuantity(BigDecimal spareQuantity) { this.spareQuantity = spareQuantity; } - public Long getSpareQuantity() { + public BigDecimal getSpareQuantity() { return spareQuantity; } public void setSpareGroupLine(String spareGroupLine) { diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/EquTeamUser.java b/op-modules/op-device/src/main/java/com/op/device/domain/EquTeamUser.java index dd1c8e929..389d814d3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/EquTeamUser.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/EquTeamUser.java @@ -41,6 +41,10 @@ public class EquTeamUser extends BaseEntity { @Excel(name = "人员拼接名字") private String teamUserName; + /** 手机号 */ + @Excel(name = "手机号") + private String phonenumber; + public void setId(String id) { this.id = id; } @@ -90,6 +94,14 @@ public class EquTeamUser extends BaseEntity { this.teamUserName = teamUserName; } + public void setPhonenumber(String phonenumber) { + this.phonenumber = phonenumber; + } + + public String getPhonenumber() { + return phonenumber; + } + @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/MesReportWork.java b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java new file mode 100644 index 000000000..fabd9e6b3 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/MesReportWork.java @@ -0,0 +1,647 @@ +package com.op.device.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 报工报表对象 mes_report_work + * + * @author Open Platform + * @date 2023-08-24 + */ +public class MesReportWork extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 记录id */ + private String id; + + /** 报工单编号 */ + @Excel(name = "报工单编号") + private String reportCode; + + /** 报工类型,报工类型:SELF自行报工、UNI统一报工 */ + @Excel(name = "报工类型,报工类型:SELF上位机报工、UNI系统报工") + private String reportType; + + /** 生产工单编码 */ + @Excel(name = "生产工单编码") + private String workorderCode; + + /** 产品编码 */ + @Excel(name = "产品编码") + private String productCode; + + /** 产品名称 */ + @Excel(name = "产品名称") + private String productName; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String spec; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 排产数量 */ + @Excel(name = "排产数量") + private BigDecimal quantity; + private BigDecimal quantitySplit; + /** 本次报工数量 */ + @Excel(name = "本次报工数量") + private BigDecimal quantityFeedback; + + /** 合格数量 */ + //@Excel(name = "合格数量") + private BigDecimal quantityQualified; + + /** 不合格数量 */ + //@Excel(name = "不合格数量") + private BigDecimal quantityUnqualified; + + /** 报工人员 */ + @Excel(name = "报工人员") + private String userName; + + /** 人员名称 */ + @Excel(name = "人员名称") + private String nickName; + + /** 报工途径:PAD、MOBILE、PC */ + //@Excel(name = "报工途径:PAD、MOBILE、PC") + private String feedbackChannel; + + /** 报工时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "报工时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date feedbackTime; + + /** 录入人员 */ + @Excel(name = "录入人员") + private String recordUser; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + /** 工时 */ + @Excel(name = "工时") + private Long workTime; + + @Excel(name = "用人") + private Long useMan; + + /** 线体编码 */ + @Excel(name = "线体编码") + private String machineCode; + + /** 线体名称 */ + @Excel(name = "线体名称") + private String machineName; + + /** 班组编码 */ + @Excel(name = "班组编码") + private String teamCode; + + /** 班次编码 */ + @Excel(name = "班次编码") + private String shiftCode; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "SAP报工时间") + private Date uploadTime; + @Excel(name = "SAP报工状态0待报工1成功2失败") + private String uploadStatus; + @Excel(name = "SAP报工信息") + private String uploadMsg; + /** 预留字段1 */ + //@Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + //@Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + //@Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + //@Excel(name = "预留字段4") + private String attr4; + @Excel(name = "计划生产日期") + private String productDate; + private String productDateStart; + private String productDateEnd; + @Excel(name = "订单编号") + private String orderCode; + @Excel(name = "规格型号") + private String productSpc; + @Excel(name = "工序名称") + private String processName; + @Excel(name = "工序编码") + private String processCode; + private String factoryCode; + private String factoryName; + private String carCode; + private String carName; + private String workorderCodeSap; + private String routeCode; + private String sac1; + private String sac2; + private String sac3; + private String sac4; + private String sac5; + private String sac6; + private String prodType; + private String createTimeStart; + private String createTimeEnd; + private String feedbackTimeStart; + private String feedbackTimeEnd; + private String batch; + private String endReport; + + public String getEndReport() { + return endReport; + } + + public void setEndReport(String endReport) { + this.endReport = endReport; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public Long getUseMan() { + return useMan; + } + + public void setUseMan(Long useMan) { + this.useMan = useMan; + } + + public BigDecimal getQuantitySplit() { + return quantitySplit; + } + + public void setQuantitySplit(BigDecimal quantitySplit) { + this.quantitySplit = quantitySplit; + } + + public String getFeedbackTimeStart() { + return feedbackTimeStart; + } + + public void setFeedbackTimeStart(String feedbackTimeStart) { + this.feedbackTimeStart = feedbackTimeStart; + } + + public String getFeedbackTimeEnd() { + return feedbackTimeEnd; + } + + public void setFeedbackTimeEnd(String feedbackTimeEnd) { + this.feedbackTimeEnd = feedbackTimeEnd; + } + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public String getProdType() { + return prodType; + } + + public void setProdType(String prodType) { + this.prodType = prodType; + } + + public String getWorkorderCodeSap() { + return workorderCodeSap; + } + + public void setWorkorderCodeSap(String workorderCodeSap) { + this.workorderCodeSap = workorderCodeSap; + } + + public String getRouteCode() { + return routeCode; + } + + public void setRouteCode(String routeCode) { + this.routeCode = routeCode; + } + + public String getSac1() { + return sac1; + } + + public void setSac1(String sac1) { + this.sac1 = sac1; + } + + public String getSac2() { + return sac2; + } + + public void setSac2(String sac2) { + this.sac2 = sac2; + } + + public String getSac3() { + return sac3; + } + + public void setSac3(String sac3) { + this.sac3 = sac3; + } + + public String getSac4() { + return sac4; + } + + public void setSac4(String sac4) { + this.sac4 = sac4; + } + + public String getSac5() { + return sac5; + } + + public void setSac5(String sac5) { + this.sac5 = sac5; + } + + public String getSac6() { + return sac6; + } + + public void setSac6(String sac6) { + this.sac6 = sac6; + } + + public Date getUploadTime() { + return uploadTime; + } + + public void setUploadTime(Date uploadTime) { + this.uploadTime = uploadTime; + } + + public String getUploadStatus() { + return uploadStatus; + } + + public void setUploadStatus(String uploadStatus) { + this.uploadStatus = uploadStatus; + } + + public String getUploadMsg() { + return uploadMsg; + } + + public void setUploadMsg(String uploadMsg) { + this.uploadMsg = uploadMsg; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryName() { + return factoryName; + } + + public void setFactoryName(String factoryName) { + this.factoryName = factoryName; + } + + public String getCarCode() { + return carCode; + } + + public void setCarCode(String carCode) { + this.carCode = carCode; + } + + public String getCarName() { + return carName; + } + + public void setCarName(String carName) { + this.carName = carName; + } + + public String getProcessCode() { + return processCode; + } + + public void setProcessCode(String processCode) { + this.processCode = processCode; + } + + public String getProductDateStart() { + return productDateStart; + } + + public void setProductDateStart(String productDateStart) { + this.productDateStart = productDateStart; + } + + public String getProductDateEnd() { + return productDateEnd; + } + + public void setProductDateEnd(String productDateEnd) { + this.productDateEnd = productDateEnd; + } + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setReportType(String reportType) { + this.reportType = reportType; + } + public String getReportType() { + return reportType; + } + + public void setReportCode(String reportCode) { + this.reportCode = reportCode; + } + public String getReportCode() { + return reportCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() { + return workorderCode; + } + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductCode() { + return productCode; + } + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductName() { + return productName; + } + public void setSpec(String spec) { + this.spec = spec; + } + + public String getSpec() { + return spec; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + public void setQuantity(BigDecimal quantity) { + this.quantity = quantity; + } + + public BigDecimal getQuantity() { + return quantity; + } + public void setQuantityFeedback(BigDecimal quantityFeedback) { + this.quantityFeedback = quantityFeedback; + } + + public BigDecimal getQuantityFeedback() { + return quantityFeedback; + } + public void setQuantityQualified(BigDecimal quantityQualified) { + this.quantityQualified = quantityQualified; + } + + public BigDecimal getQuantityQualified() { + return quantityQualified; + } + public void setQuantityUnqualified(BigDecimal quantityUnqualified) { + this.quantityUnqualified = quantityUnqualified; + } + + public BigDecimal getQuantityUnqualified() { + return quantityUnqualified; + } + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserName() { + return userName; + } + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getNickName() { + return nickName; + } + public void setFeedbackChannel(String feedbackChannel) { + this.feedbackChannel = feedbackChannel; + } + + public String getFeedbackChannel() { + return feedbackChannel; + } + public void setFeedbackTime(Date feedbackTime) { + this.feedbackTime = feedbackTime; + } + + public Date getFeedbackTime() { + return feedbackTime; + } + public void setRecordUser(String recordUser) { + this.recordUser = recordUser; + } + + public String getRecordUser() { + return recordUser; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setWorkTime(Long workTime) { + this.workTime = workTime; + } + + public Long getWorkTime() { + return workTime; + } + public void setMachineCode(String machineCode) { + this.machineCode = machineCode; + } + + public String getMachineCode() { + return machineCode; + } + public void setMachineName(String machineName) { + this.machineName = machineName; + } + + public String getMachineName() { + return machineName; + } + public void setTeamCode(String teamCode) { + this.teamCode = teamCode; + } + + public String getTeamCode() { + return teamCode; + } + public void setShiftCode(String shiftCode) { + this.shiftCode = shiftCode; + } + + public String getShiftCode() { + return shiftCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + + public String getProductDate() { + return productDate; + } + + public void setProductDate(String productDate) { + this.productDate = productDate; + } + + public String getOrderCode() { + return orderCode; + } + + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getProductSpc() { + return productSpc; + } + + public void setProductSpc(String productSpc) { + this.productSpc = productSpc; + } + + public String getProcessName() { + return processName; + } + + public void setProcessName(String processName) { + this.processName = processName; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("reportType", getReportType()) + .append("reportCode", getReportCode()) + .append("workorderCode", getWorkorderCode()) + .append("productCode", getProductCode()) + .append("productName", getProductName()) + .append("spec", getSpec()) + .append("unit", getUnit()) + .append("quantity", getQuantity()) + .append("quantityFeedback", getQuantityFeedback()) + .append("quantityQualified", getQuantityQualified()) + .append("quantityUnqualified", getQuantityUnqualified()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("feedbackChannel", getFeedbackChannel()) + .append("feedbackTime", getFeedbackTime()) + .append("recordUser", getRecordUser()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("workTime", getWorkTime()) + .append("machineCode", getMachineCode()) + .append("machineName", getMachineName()) + .append("teamCode", getTeamCode()) + .append("shiftCode", getShiftCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateTime", getUpdateTime()) + .append("updateBy", getUpdateBy()) + .toString(); + } +} + diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java index 8e74f792c..f5c3826ce 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/EquCheckItemDTO.java @@ -62,6 +62,39 @@ public class EquCheckItemDTO { // 设备编码list private List equipmentCodeList; + // 检查工具 + private String itemTools; + + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public List getEquipmentCodeList() { return equipmentCodeList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/dto/InterfaceDTO.java b/op-modules/op-device/src/main/java/com/op/device/domain/dto/InterfaceDTO.java new file mode 100644 index 000000000..c04ad3ffa --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/dto/InterfaceDTO.java @@ -0,0 +1,5 @@ +package com.op.device.domain.dto; + +// 看板传参实体 +public class InterfaceDTO { +} diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java index 3f10a6d66..3d92c776e 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/EquCheckItemVO.java @@ -46,6 +46,39 @@ public class EquCheckItemVO { // 设备编码 private String equipmentCode; + // 检查工具 + private String itemTools; + + // 循环周期类型 + private String itemLoopType; + + // 循环周期 + private int itemLoop; + + public String getItemLoopType() { + return itemLoopType; + } + + public void setItemLoopType(String itemLoopType) { + this.itemLoopType = itemLoopType; + } + + public int getItemLoop() { + return itemLoop; + } + + public void setItemLoop(int itemLoop) { + this.itemLoop = itemLoop; + } + + public String getItemTools() { + return itemTools; + } + + public void setItemTools(String itemTools) { + this.itemTools = itemTools; + } + public String getEquipmentName() { return equipmentName; } diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java new file mode 100644 index 000000000..a079d7ac3 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IEquipmentVO.java @@ -0,0 +1,75 @@ +package com.op.device.domain.vo; + +// 设备信息VO、设备维修质量VO +public class IEquipmentVO { + // 设备名称 + private String equipmentName; + // 设备编码 + private String equipmentCode; + // 所在部门 + private String department; + // 设备故障率 + private Double failureRate; + // 设备有效利用率 + private Double utilizationRatio; + // 设备维修质量 + private Double rapairQuantity; + // 设备状态 + private String equipmentStatus; + + public String getEquipmentStatus() { + return equipmentStatus; + } + + public void setEquipmentStatus(String equipmentStatus) { + this.equipmentStatus = equipmentStatus; + } + + public Double getRapairQuantity() { + return rapairQuantity; + } + + public void setRapairQuantity(Double rapairQuantity) { + this.rapairQuantity = rapairQuantity; + } + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentCode() { + return equipmentCode; + } + + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getDepartment() { + return department; + } + + public void setDepartment(String department) { + this.department = department; + } + + public Double getFailureRate() { + return failureRate; + } + + public void setFailureRate(Double failureRate) { + this.failureRate = failureRate; + } + + public Double getUtilizationRatio() { + return utilizationRatio; + } + + public void setUtilizationRatio(Double utilizationRatio) { + this.utilizationRatio = utilizationRatio; + } +} diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java new file mode 100644 index 000000000..b8416871a --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/IRepairWorkOrderVO.java @@ -0,0 +1,77 @@ +package com.op.device.domain.vo; + +import java.util.Date; + +// 看板维修工单返回VO +public class IRepairWorkOrderVO { + // 设备名称 + private String equipmentName; + // 设备编码 + private String equipmentCode; + // 故障描述 + private String workFaultDesc; + // 维修班组 + private String teamName; + // 是否立即维修 + private String workHandle; + // 计划维修时间 + private Date workPlanTime; + // 设备位置 + private String equipmentLocation; + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentCode() { + return equipmentCode; + } + + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getWorkFaultDesc() { + return workFaultDesc; + } + + public void setWorkFaultDesc(String workFaultDesc) { + this.workFaultDesc = workFaultDesc; + } + + public String getTeamName() { + return teamName; + } + + public void setTeamName(String teamName) { + this.teamName = teamName; + } + + public String getWorkHandle() { + return workHandle; + } + + public void setWorkHandle(String workHandle) { + this.workHandle = workHandle; + } + + public Date getWorkPlanTime() { + return workPlanTime; + } + + public void setWorkPlanTime(Date workPlanTime) { + this.workPlanTime = workPlanTime; + } + + public String getEquipmentLocation() { + return equipmentLocation; + } + + public void setEquipmentLocation(String equipmentLocation) { + this.equipmentLocation = equipmentLocation; + } +} diff --git a/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java b/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java index 4189bab84..a2e126c74 100644 --- a/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java +++ b/op-modules/op-device/src/main/java/com/op/device/domain/vo/InspectionWorkVO.java @@ -1,9 +1,6 @@ package com.op.device.domain.vo; -import com.op.device.domain.EquOrder; -import com.op.device.domain.EquOrderDetail; -import com.op.device.domain.EquOrderEquSpare; -import com.op.device.domain.Equipment; +import com.op.device.domain.*; import java.util.List; @@ -12,13 +9,13 @@ public class InspectionWorkVO { private EquOrder order; private Equipment equ; private List detailList; - private List spareList; + private List spareList; - public List getSpareList() { + public List getSpareList() { return spareList; } - public void setSpareList(List spareList) { + public void setSpareList(List spareList) { this.spareList = spareList; } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java new file mode 100644 index 000000000..9f63567c1 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/DeviceInterfaceMapper.java @@ -0,0 +1,46 @@ +package com.op.device.mapper; + +import com.op.device.domain.EquOperationRecord; +import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.MesReportWork; +import com.op.device.domain.vo.IEquipmentVO; +import com.op.device.domain.vo.IRepairWorkOrderVO; + +import java.util.List; + +public interface DeviceInterfaceMapper { + + /** + * 查询待维修工单信息-看板 + * @return + */ + List selectEquRepairWorkOrderList(); + + /** + * 获取所有设备信息 + * @return + */ + List selectEquipmentList(); + + /** + * 获取维修工单中设备信息 + * @return + */ + List selectRepairEquipmentList(); + + /** + * 通过设备code查询该设备最近一个月的报工单信息 + * 其中quantity:理论产量总和 、quantityFeedback:实际产量总和 + * @param equipmentCode + * @return + */ + MesReportWork selectReportWorkByEquipmentCode(String equipmentCode); + + List selectRepairRecordByEquipmentCode(String equipmentCode); + + /** + * 设备看板刷新时间 + * 初始值:5分钟 + */ + String getDeviceRefreshTime(EquOperationRecord equOperationRecord); +} diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java index 9165576eb..d293d8dbe 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquEquipmentMapper.java @@ -62,5 +62,4 @@ public interface EquEquipmentMapper { //查询设备类型 List getEquipmentTypeList(EquEquipment equEquipment); - } \ No newline at end of file diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java index 8f33ec256..914b2e935 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquFaultTypeMapper.java @@ -3,6 +3,7 @@ package com.op.device.mapper; import java.util.List; import com.op.device.domain.EquFaultType; +import com.op.device.domain.EquRepairWorkOrder; /** * 故障类型维护Mapper接口 @@ -64,4 +65,7 @@ public interface EquFaultTypeMapper { * @return */ int selectSerialNumber(); + + //故障报修第一级 + List selectFirstLevelList(EquRepairWorkOrder equRepairWorkOrder); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquFileMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquFileMapper.java index 7b6d3fde5..ac521b1a9 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquFileMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquFileMapper.java @@ -74,4 +74,11 @@ public interface EquFileMapper { //删除照图片 public void deleteEquFileBySourceId(String orderId); + + /** + * 获取图片 + * @param selectTemp + * @return + */ + List selectUrlList(BaseFileData selectTemp); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java new file mode 100644 index 000000000..3a356f441 --- /dev/null +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOperationRecordMapper.java @@ -0,0 +1,74 @@ +package com.op.device.mapper; + +import java.util.List; + +import com.op.device.domain.EquOperationRecord; + +/** + * 设备运行记录Mapper接口 + * + * @author Open Platform + * @date 2023-11-27 + */ +public interface EquOperationRecordMapper { + /** + * 查询设备运行记录 + * + * @param id 设备运行记录主键 + * @return 设备运行记录 + */ + public EquOperationRecord selectEquOperationRecordById(String id); + + /** + * 查询设备运行记录列表 + * + * @param equOperationRecord 设备运行记录 + * @return 设备运行记录集合 + */ + public List selectEquOperationRecordList(EquOperationRecord equOperationRecord); + + /** + * 新增设备运行记录 + * + * @param equOperationRecord 设备运行记录 + * @return 结果 + */ + public int insertEquOperationRecord(EquOperationRecord equOperationRecord); + + /** + * 修改设备运行记录 + * + * @param equOperationRecord 设备运行记录 + * @return 结果 + */ + public int updateEquOperationRecord(EquOperationRecord equOperationRecord); + + /** + * 删除设备运行记录 + * + * @param id 设备运行记录主键 + * @return 结果 + */ + public int deleteEquOperationRecordById(String id); + + /** + * 批量删除设备运行记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteEquOperationRecordByIds(String[] ids); + + /** + * 通过设备编码查询设备运行记录 + * @param equipmentCode + * @return + */ + List selectEquOperationRecordByEquipmentCode(String equipmentCode); + + //设备稳定性 MTBF设备平均故障间隔 + List getMTBFList(EquOperationRecord equOperationRecord); + + //设备完好率 + EquOperationRecord getEquipmentIntactRate(EquOperationRecord equOperationRecord); +} diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java index 37e627431..6b289b43a 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderDetailMapper.java @@ -78,4 +78,10 @@ public interface EquOrderDetailMapper { List selectEquOrderDetailByOrderCode(String orderCode); int insertEquOrderDetails(@Param("list") List details); + + /** + * 通过orderIds逻辑删除检查项信息 + * @param orderIds + */ + void delEquOrderDetailByorderIds(String[] orderIds); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java index 5d29e9ffe..123d0396b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderMapper.java @@ -4,11 +4,8 @@ import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.device.domain.EquOrder; -import com.op.device.domain.EquOrderStandard; -import com.op.device.domain.EquPlan; import com.op.device.domain.dto.PDADTO; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; /** * 计划工单Mapper接口 @@ -121,17 +118,50 @@ public interface EquOrderMapper { */ List selectTodayTask(PDADTO pdadto); - /** - * PC获取点检、巡检检查项 - * @param - * @return - */ - List selectEquOrderDetailsList(EquOrder equOrder); - /** * 通过设备编码查询设备名称 * @param equipmentCode * @return */ String selectEquipmentNameByEquCode(String equipmentCode); + + /** + * 通过OrderCode查询对应所有检查项ID + * @param orderCode + * @return + */ + List getIdsByOrderCode(String orderCode); + + /** + * 只更新维修单号 + * @param equOrder + * @return + */ + void updateEquOrderRepairCode(EquOrder equOrder); + + /** + * 手持、PC获取维修点检、巡检检查项 + * @param + * @return + */ + List selectCheckListByWorkCode(EquOrder equOrder); + + /** + * 手持、PC获取报修点检、巡检检查项 + * @param + * @return + */ + List selectCheckListByRepairCode(EquOrder equOrder); + + /** + * 逻辑删除工单信息 + * @param orderIds + */ + void delEquOrderByOrderIds(String[] orderIds); + + /** + * 通过保养单Code修改保养单状态为已完成 + * @param repairCode + */ + void updateEquOrderStatusComplete(String repairCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java index 7bb544a89..fd36f55f3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderPersonMapper.java @@ -69,4 +69,10 @@ public interface EquOrderPersonMapper { List selectEquOrderPersonByOrderCode(String orderCode); int insertEquOrderPersons(@Param("list") List persons); + + /** + * 通过工单ids逻辑删除人员信息 + * @param orderIds + */ + void delEquOrderPersonByorderIds(String[] orderIds); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java index 87cf3a264..41308b975 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOrderStandardMapper.java @@ -74,7 +74,7 @@ public interface EquOrderStandardMapper { * 图片数据绑定 * @param files */ - void insertBaseFileBatch(List files); + void insertBaseFileBatch(@Param("baseFiles")List files); /** * 删除图片 @@ -91,4 +91,19 @@ public interface EquOrderStandardMapper { public List selectPdaEquOrderList(EquOrder equOrder); int insertEquOrderStandards(@Param("list") List standards); + + /** + * 更新维修后标准 + */ + void updateStandardAfterRepair(EquOrderStandard equOrderStandard); + + /** + * 通过orderIds逻辑删除标准信息 + * @param orderIds + */ + void delEquOrderStandardByorderIds(String[] orderIds); + + + //更新标准 + void updateActualValues(EquOrderStandard standardList); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java index 532c5febd..9a7581e22 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquOutsourceWorkMapper.java @@ -62,4 +62,7 @@ public interface EquOutsourceWorkMapper { //流水号 public int selectWorkCodeSerialNumber(); + + //通过repairCode删除存在的委外记录 + public void deleteEquOutsourceWorkByRepairCode(String workCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java index 13282b06f..6e5f38d54 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairOrderMapper.java @@ -7,6 +7,7 @@ import com.op.common.core.domain.BaseFileData; import com.op.device.domain.EquEquipment; import com.op.device.domain.EquFile; import com.op.device.domain.EquRepairOrder; +import com.op.device.domain.EquTeamUser; import org.apache.ibatis.annotations.Param; /** @@ -72,7 +73,7 @@ public interface EquRepairOrderMapper { //查询报修人员列表 @DS("master") - List getRepairPersonList(EquEquipment equEquipment); + List getRepairPersonList(EquTeamUser equTeamUser); /** * 通过报修code查询报修单信息 @@ -102,4 +103,7 @@ public interface EquRepairOrderMapper { */ public List getBaseFileBatch(String orderId); + //联系方式 + @DS("master") + EquTeamUser getRepairPhoneNumber(EquTeamUser equTeamUser); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java index b38575b01..3393c5aa8 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquRepairWorkOrderMapper.java @@ -94,4 +94,14 @@ public interface EquRepairWorkOrderMapper { * 批量新增报修图片 */ Boolean insertBaseFileBatch(@Param("baseFiles") List baseFiles); + + //更新维修工单状态 + void updateWorkStatus(String repairCode); + + /** + * 通过维修工单号查询维修单 + * @param workCode + * @return + */ + EquRepairWorkOrder selectEquRepairWorkOrderByWorkCode(String workCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java index 090a21ed4..c4e8580b1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java @@ -62,4 +62,35 @@ public interface EquSpareApplyMapper { //查询维修工单对应的备件申领记录 public List selectRepairSparePartsRecord(EquRepairWorkOrder equRepairWorkOrder); + + /** + * 获取流水单号 + * @return + */ + int selectSerialNumber(); + + /** + * 通过上级工单code查询申领表list + * @param orderCode + * @return + */ + List selectEquSpareApplyListByWorkCode(String orderCode); + + /** + * 通过保养工单ids逻辑删除备件申领表信息 + * @param orderIds + */ + void delEquSpareApplyByorderIds(String[] orderIds); + + /** + * 逻辑删除申领记录 + * @param applyIds + */ + void delEquSpareApplyByIds(String[] applyIds); + + /** + * 逻辑删除领用单 + * @param id + */ + void delEquSpareApplyByApplyId(String id); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java index a70eb5ee6..23f9d2229 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquTeamMapper.java @@ -73,6 +73,6 @@ public interface EquTeamMapper { public List selectTeamMembers(EquTeamUser equTeamUser); //查询特定人员 - @DS("master") + @DS("#master") public EquTeamUser selectTeamMember(EquTeamUser equTeamUser); } diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java index 1447f0994..be07d6743 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquipmentMapper.java @@ -6,7 +6,7 @@ public interface EquipmentMapper { /** * 查询设备管理 * - * @param equipmentId 设备管理主键 + * @param equipmentCode 设备管理主键 * @return 设备管理 */ public Equipment selectEquipmentByEquipmentCode(String equipmentCode); diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java index 70d7de075..e46cdd5b3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/SparePartsLedgerMapper.java @@ -3,6 +3,7 @@ package com.op.device.mapper; import java.math.BigDecimal; import java.util.List; +import com.op.device.domain.EquSpareApply; import com.op.device.domain.SparePartsLedger; /** @@ -67,4 +68,15 @@ public interface SparePartsLedgerMapper { */ BigDecimal selectRealAmountByMaterialCode(String materialCode); + /** + * 减少库存数量 + * @param apply + */ + void updateSpareNumReduce(EquSpareApply apply); + + /** + * 删除工单然后返还备件数量 + * @param apply + */ + void updateSpareNumAdd(EquSpareApply apply); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java index 5bf97ee92..db04b5393 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDeviceInterfaceService.java @@ -1,7 +1,48 @@ package com.op.device.service; +import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; + /** * 设备看板接口 */ public interface IDeviceInterfaceService { + + /** + * 获取维修工单 + * @return + */ + AjaxResult getRepairWorkOrder(); + + /** + * 获取设备信息 + * @return + */ + AjaxResult getEquipmentInfo(); + + /** + * 设备维修质量TOP10 + * @return + */ + AjaxResult getRepairQuantity(); + + /** + * 设备稳定性MTBF 实际运转时间/停止次数 + * @return + */ + AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord); + + /** + * 完好设备占比 + * 公式:维修/故障设备 + * @param equOperationRecord + * @return + */ + AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord); + + /** + * 设备看板刷新时间 + * 初始值:5分钟 + */ + public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java index e4548a253..cadf7322f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IDevicePDAService.java @@ -4,6 +4,8 @@ import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.*; import com.op.device.domain.dto.PDADTO; +import java.util.List; + /** * PDAService * @@ -14,12 +16,14 @@ public interface IDevicePDAService { /** * 获取今日巡检任务工单list + * * @return */ AjaxResult getTodayTask(PDADTO pdadto); /** * 获取巡检记录 + * * @param pdadto * @return */ @@ -27,37 +31,45 @@ public interface IDevicePDAService { /** * 获取任务详情 + * * @param equOrder * @return */ AjaxResult getInspectionOrderInfo(EquOrder equOrder); /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 + * * @param equOrder * @return */ AjaxResult updateInspectionRecord(EquOrder equOrder); //报修 + /** * 手持新增报修记录 + * * @param equRepairOrder * @return */ public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder); //维修 + /** * 手持查询维修记录 (待处理和已经维修完成) + * * @param equRepairWorkOrder * @return */ public AjaxResult getMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder); //班组 + /** * 维修班组 + * * @param equTeamUser * @return */ @@ -65,6 +77,7 @@ public interface IDevicePDAService { /** * 手持是否停机 + * * @param equRepairWorkOrder * @return */ @@ -72,6 +85,7 @@ public interface IDevicePDAService { /** * 查询设备详细信息 + * * @param equipmentId * @return */ @@ -79,6 +93,7 @@ public interface IDevicePDAService { /** * 查询维修工单 + * * @param workId * @return */ @@ -86,18 +101,26 @@ public interface IDevicePDAService { /** * 填写维修工单 + * * @param equRepairWorkOrder * @return */ public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder); + //获取设备故障类型 +// public AjaxResult queryEquFaultTypeTree(EquRepairWorkOrder equRepairWorkOrder); + //待处理 AjaxResult getMaintenancePendRecords(EquRepairWorkOrder equRepairWorkOrder); /** * 开始保养任务 + * * @param pdadto * @return */ AjaxResult startMaintenanceTask(PDADTO pdadto); + + //查询设备列表 + List selectEquEquipmentList(EquEquipment equEquipment); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java index da19e7c74..f6d051742 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquOrderService.java @@ -50,7 +50,7 @@ public interface IEquOrderService { * @param orderIds 需要删除的计划工单主键集合 * @return 结果 */ - public int deleteEquOrderByOrderIds(String[] orderIds); + public AjaxResult deleteEquOrderByOrderIds(String[] orderIds); /** * 删除计划工单信息 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java index ef98c30ed..097698abd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquRepairOrderService.java @@ -3,10 +3,8 @@ package com.op.device.service; import java.util.List; import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.*; import com.op.device.domain.EquEquipment; -import com.op.device.domain.EquEquipment; -import com.op.device.domain.EquRepairOrder; -import com.op.device.domain.EquRepairWorkOrder; /** * 故障报修Service接口 @@ -78,5 +76,5 @@ public interface IEquRepairOrderService { public int checkEquRepairOrder(EquRepairOrder equRepairOrder); //查询报修人员列表 - List getRepairPersonList(EquEquipment equEquipment); + List getRepairPersonList(EquTeamUser equTeamUser); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java b/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java index 129331686..024cdd41f 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/IEquSpareApplyService.java @@ -51,7 +51,7 @@ public interface IEquSpareApplyService { * @param applyIds 需要删除的申领记录主键集合 * @return 结果 */ - public int deleteEquSpareApplyByApplyIds(String[] applyIds); + public AjaxResult deleteEquSpareApplyByApplyIds(String[] applyIds); /** * 删除申领记录信息 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 4806da53c..da8fba1c7 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 @@ -1,11 +1,220 @@ package com.op.device.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.web.domain.AjaxResult; +import com.op.device.domain.EquOperationRecord; +import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.domain.MesReportWork; +import com.op.device.mapper.EquEquipmentMapper; +import com.op.device.domain.vo.IEquipmentVO; +import com.op.device.domain.vo.IRepairWorkOrderVO; +import com.op.device.mapper.DeviceInterfaceMapper; +import com.op.device.mapper.EquOperationRecordMapper; +import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.service.IDeviceInterfaceService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Random; +import java.util.stream.Collectors; + +import static com.op.common.core.web.domain.AjaxResult.success; + /** * 看板接口实现类 */ @Service public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { + + @Autowired + private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + @Autowired + private DeviceInterfaceMapper deviceInterfaceMapper; + @Autowired + private EquOperationRecordMapper equOperationRecordMapper; + + /** + * 获取待维修的维修工单 + * + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getRepairWorkOrder() { + List workOrderVOList = deviceInterfaceMapper.selectEquRepairWorkOrderList(); + for (IRepairWorkOrderVO orderVO : workOrderVOList) { + if (orderVO.getWorkHandle().equals("0")) { + orderVO.setWorkHandle("立即"); + } else { + orderVO.setWorkHandle("计划"); + } + } + return success(workOrderVOList); + } + + /** + * 获取设备信息 + * 故障停机率:(设备停机时间总和/一定时间内运行总时间(年)) + * 设备有效利用率:(实际产量/理论产量) + * + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentInfo() { + // 获取所有设备信息 + List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); + for (IEquipmentVO equipmentVO : equipmentVOList) { + // 设备状态 + if (equipmentVO.getEquipmentStatus().equals("1")) { + equipmentVO.setEquipmentStatus("正常"); + } else { + equipmentVO.setEquipmentStatus("停用"); + } + + + /* 停机故障率逻辑 */ + long totalTime = 0L;// 运行总时间 + long downTime = 0L;// 停机时间 + // 通过设备编码获取运行记录中的运行记录List + List operationRecordList = equOperationRecordMapper.selectEquOperationRecordByEquipmentCode(equipmentVO.getEquipmentCode()); + if (operationRecordList.size() != 0) { + for (EquOperationRecord operationRecord : operationRecordList) { + // 运行时间差值 + long diffTime = operationRecord.getEndTime().getTime() - operationRecord.getStartTime().getTime(); + // 开机运行时间运行总时间累加 + if (operationRecord.getType().equals("on")) { + totalTime += diffTime; + } + // 维修停机时间累加(故障) + if (operationRecord.getMaintenanceType().equals("repair")) { + downTime += diffTime; + } + } + + // 设置停机故障率 + if (downTime == 0L) { + // 如果未查到该设备停机故障时间 + equipmentVO.setFailureRate(0D); + } else { + // 计算故障停机率(设备停机时间总和/一定时间内运行总时间(年)) + double failureRate = downTime / totalTime; + equipmentVO.setFailureRate(failureRate); + } + + } + + /* 设备有效利用率逻辑(每月) */ + // 查询该设备下报工单信息(年月日可在该sql中修改) + MesReportWork reportWork = deviceInterfaceMapper.selectReportWorkByEquipmentCode(equipmentVO.getEquipmentCode()); + if (reportWork != null) { + BigDecimal theoryQuantity = reportWork.getQuantity();// 理论产量 + BigDecimal actualQuantity = reportWork.getQuantityFeedback();// 实际产量 + + // 计算该设备有效利用率(实际产量/理论产量) + BigDecimal utilizationRatio = actualQuantity.divide(theoryQuantity, 2, BigDecimal.ROUND_HALF_UP); + equipmentVO.setUtilizationRatio(utilizationRatio.doubleValue()); + + } else { + // 如果未查到该信息,则默认设置为0 + equipmentVO.setUtilizationRatio(0D); + } + + } + return success(equipmentVOList); + } + + /** + * 获取设备维修质量TOP10 + * 设备维修质量:故障时间/故障次数 + * + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getRepairQuantity() { + + // 获取维修工单中的设备列表 + List equipmentVOList = deviceInterfaceMapper.selectEquipmentList(); + + for (IEquipmentVO equipmentVO : equipmentVOList) { + // 通过该设备code获取设备维修记录(只获取开始时间、结束时间) + List workOrderList = deviceInterfaceMapper.selectRepairRecordByEquipmentCode(equipmentVO.getEquipmentCode()); + if (workOrderList.size() != 0) { + Long runTime = 0l; + for (EquRepairWorkOrder workOrder : workOrderList) { + // 维修时间差值 + long diffTime = workOrder.getWorkEndTime().getTime() - workOrder.getWorkStartTime().getTime(); + // 累加时间 + runTime += diffTime; + } + // 计算维修质量(故障时间(小时)/故障次数) + long rapairQuantity = runTime / 3600000 / workOrderList.size(); + equipmentVO.setRapairQuantity(Double.valueOf(rapairQuantity)); + } else { + // 没有该记录则默认为0 + equipmentVO.setRapairQuantity(0D); + } + } + + // 排序TOP10 + + // 假数据 +// Random random = new Random(); +// List test = new ArrayList<>(); +// for (int i = 0 ; i < 30 ; i++) { +// IEquipmentVO vo = new IEquipmentVO(); +// vo.setRapairQuantity(random.nextDouble()); +// test.add(vo); +// } + + // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 + List top10 = equipmentVOList.stream() + .sorted(Comparator.comparingDouble(IEquipmentVO::getRapairQuantity)) // 排序 + .limit(10) // 限制结果数量为10 + .collect(Collectors.toList()); // 将结果收集到List中 + + return success(top10); + } + + + /** + * 设备稳定性-MTBF top10 + * 公式:实际运转时间/停机次数 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentStabilityList(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + List equipmentList = equOperationRecordMapper.getMTBFList(equOperationRecord); + return success(equipmentList); + } + + + /** + * 完好设备占比 + * 公式:维修/故障设备 + */ + @Override + @DS("#header.poolName") + public AjaxResult getEquipmentIntactRate(EquOperationRecord equOperationRecord) { + //查询所有设备(设备停用的除外) + EquOperationRecord equipmentIntactRate = equOperationRecordMapper.getEquipmentIntactRate(equOperationRecord); + return success(equipmentIntactRate); + } + + /** + * 看板刷新时间 + */ + @Override + @DS("master") + public AjaxResult getDeviceRefreshTime(EquOperationRecord equOperationRecord) { + String refreshTime = deviceInterfaceMapper.getDeviceRefreshTime(equOperationRecord); + int time = Integer.parseInt(refreshTime); + return success(time); + } } 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 e6bc1f493..c744876d3 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -23,10 +23,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; import static com.op.common.core.web.domain.AjaxResult.error; import static com.op.common.core.web.domain.AjaxResult.success; @@ -59,11 +56,15 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Autowired private EquEquipmentMapper equEquipmentMapper; @Autowired - private EquSpareApplyMapper equSpareApplyMapper; + private EquSpareApplyMapper equSpareApplyMapper; @Autowired private EquFileMapper equFileMapper; + @Autowired - private EquOrderEquSpareMapper equOrderEquSpareMapper; + private EquFaultTypeMapper equFaultTypeMapper; + + @Autowired + private SparePartsLedgerMapper sparePartsLedgerMapper; /** @@ -121,6 +122,16 @@ public class DevicePDAServiceImpl implements IDevicePDAService { List detailList = equOrderDetailMapper.selectEquOrderDetailByOrderCode(order.getOrderCode()); for (EquOrderDetail detail : detailList) { List standardList = equOrderStandardMapper.selectEquOrderStandardByParentCode(detail.getId()); + for (EquOrderStandard standard : standardList) { + // 未达标图片 + BaseFileData selectTemp = new BaseFileData(); + selectTemp.setSourceId(standard.getId()); + selectTemp.setImageType("3"); + List checkPictrueList = equFileMapper.selectUrlList(selectTemp); + if (checkPictrueList != null) { + standard.setCheckPictrueList(checkPictrueList); + } + } detail.setStandardList(standardList); } order.setDetailList(detailList); @@ -135,19 +146,26 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } // 备件 - List spareList = equOrderEquSpareMapper.selectEquOrderEquSpareByOrderCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); if (spareList != null) { order.setSpareList(spareList); } order.setPersonList(personList); + // 保养图片 + BaseFileData selectTemp = new BaseFileData(); + selectTemp.setSourceId(equOrder.getId()); + List upkeepPictures = equFileMapper.selectUrlList(selectTemp); + if (upkeepPictures != null) { + order.setUpkeepPictures(upkeepPictures); + } return success(order); } /** - * 填写巡检记录工单 + * 填写巡检、点检、保养记录 * * @param equOrder * @return @@ -160,20 +178,24 @@ public class DevicePDAServiceImpl implements IDevicePDAService { if (equOrder.getRepairCode() != null) { if (!equOrder.getRepairCode().isEmpty()) { EquRepairOrder repairOrder = equRepairOrderMapper.selectEquRepairOrderByRepairCode(equOrder.getRepairCode()); - if (repairOrder==null) { - return error(500,"未查询到报修单信息!"); - }else { - if (!repairOrder.getOrderStatus().equals("待审核")){ - return error(500,"报修单已审核,不可修改记录!"); + if (repairOrder == null) { + return error(500, "未查询到报修单信息!"); + } else { + if (!repairOrder.getOrderStatus().equals("待审核")) { + return error(500, "报修单已审核,不可修改记录!"); } } } } boolean hasError = false; + boolean maintenanceFlag = false; - EquOrderEqu equ = equOrder.getEqu(); - List detailList = equ.getDetailList(); + if (equOrder.getPlanType().equals("maintenance")) { + maintenanceFlag = true; + } + + List detailList = equOrder.getDetailList(); for (EquOrderDetail detail : detailList) { List standardList = detail.getStandardList(); for (EquOrderStandard standard : standardList) { @@ -202,18 +224,15 @@ public class DevicePDAServiceImpl implements IDevicePDAService { int up = standard.getActualValue().compareTo(standard.getDetailUpLimit()); int down = standard.getActualValue().compareTo(standard.getDetailDownLimit()); standard.setDetailReach("1"); - standard.setErrorFlag("0"); if (!(up != 1 && down != -1)) { hasError = true; - standard.setErrorFlag("1"); standard.setDetailReach("0"); } - }else { - // TODO 未达标 + } else { + // 未达标 standard.setErrorFlag("0"); if (standard.getDetailReach().equals("0")) { hasError = true; - standard.setErrorFlag("1"); } } @@ -236,22 +255,22 @@ public class DevicePDAServiceImpl implements IDevicePDAService { boolean checkRepair = false; - if (equOrder.getRepairCode() == null){ + if (equOrder.getRepairCode() == null) { checkRepair = true; - }else { - if (equOrder.getRepairCode().isEmpty()){ + } else { + if (equOrder.getRepairCode().isEmpty()) { checkRepair = true; } } // 报修信息 - if (checkRepair && hasError ) { + if (checkRepair && hasError && !maintenanceFlag) { // 获取故障报修流水号 EquRepairOrder equRepairOrder = new EquRepairOrder(); String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); - String equipmentCode = equOrder.getEqu().getEquipmentCode(); + String equipmentCode = equOrder.getEquipmentCode(); //报修单号 - equRepairOrder.setOrderCode("BX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); //在主表中存入报修单号信息 equOrder.setRepairCode(equRepairOrder.getOrderCode()); @@ -259,25 +278,35 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setOrderId(IdUtils.fastSimpleUUID()); equRepairOrder.setCreateTime(DateUtils.getNowDate()); equRepairOrder.setCreateBy(SecurityUtils.getUsername()); + //报修人编码、故障时间、设备编码、报修时间、联系人联系方式-自动报修 + equRepairOrder.setOrderBreakdownTime(DateUtils.getNowDate()); + equRepairOrder.setOrderRepairmanCode(SecurityUtils.getUsername()); + equRepairOrder.setEquipmentCode(equipmentCode); + equRepairOrder.setOrderTime(DateUtils.getNowDate()); + EquTeamUser equTeamUser = new EquTeamUser(); + equTeamUser.setUserName(SecurityUtils.getUsername()); + EquTeamUser equTeamUserList = equRepairOrderMapper.getRepairPhoneNumber(equTeamUser); + equRepairOrder.setOrderConnection(equTeamUserList.getPhonenumber()); + equRepairOrder.setOrderRepairmanName(equTeamUserList.getNickName()); // 报修来源 - if (equOrder.getPlanType().equals("inspection")){ + if (equOrder.getPlanType().equals("inspection")) { equRepairOrder.setOrderSource("巡检"); } - if (equOrder.getPlanType().equals("spotInspection")){ + if (equOrder.getPlanType().equals("spotInspection")) { equRepairOrder.setOrderSource("点检"); } - if (equOrder.getPlanType().equals("maintenance")){ + if (equOrder.getPlanType().equals("maintenance")) { equRepairOrder.setOrderSource("保养"); } equRepairOrder.setOrderStatus("待审核"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); equRepairOrderMapper.insertEquRepairOrder(equRepairOrder); } if (!hasError) { - // TODO 删除报修单 + // 删除报修单 if (equOrder.getRepairCode() != null) { if (!equOrder.getRepairCode().isEmpty()) { equRepairOrderMapper.deleteEquRepairOrderByRepairCode(equOrder.getRepairCode()); @@ -287,9 +316,26 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } // 保养逻辑 - if (equOrder.getPlanType().equals("maintenance")) { + if (maintenanceFlag) { // 设置结束时间 equOrder.setOrderEnd(DateUtils.getNowDate()); + //上传附件 + if (StringUtils.isNotEmpty(equOrder.getPicturePath())) { + String[] ids = equOrder.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equOrder.getOrderId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + files.add(file); + } + equFileMapper.insertEquFileBatch(files); + } } // 更新工单信息 @@ -298,8 +344,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } //////////////////////报修 + /** - * 新增报修记录 + * 新增报修记录 * * @param equRepairOrder * @return @@ -308,13 +355,15 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult addRepairRecord(EquRepairOrder equRepairOrder) { try { +// equRepairOrder + //自动填入联系人 联系方式!!!!! String id = IdUtils.fastSimpleUUID(); equRepairOrder.setOrderId(id); - // 获取故障报修流水号 + // 新增 是需要获取故障报修流水号 String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); String equipmentCode = equRepairOrder.getEquipmentCode(); //报修单号 - equRepairOrder.setOrderCode("BX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairOrder.setOrderCode("BX" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); equRepairOrder.setCreateTime(DateUtils.getNowDate()); equRepairOrder.setCreateBy(SecurityUtils.getUsername()); equRepairOrder.setOrderRepairmanCode(SecurityUtils.getUsername()); @@ -322,9 +371,10 @@ public class DevicePDAServiceImpl implements IDevicePDAService { equRepairOrder.setOrderStatus("待审核"); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; - equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); equRepairOrderMapper.insertEquRepairOrder(equRepairOrder); + //删除照片 不需要清照片 因为是新增 //新增文件 if (StringUtils.isNotEmpty(equRepairOrder.getFileList())) { String[] ids1 = equRepairOrder.getFileList().split(","); @@ -386,10 +436,13 @@ public class DevicePDAServiceImpl implements IDevicePDAService { /** * 开始保养任务 + * TODO 修改设备状态 + * * @param pdadto * @return */ @Override + @DS("#header.poolName") public AjaxResult startMaintenanceTask(PDADTO pdadto) { EquOrder order = equOrderMapper.selectEquOrderByOrderCode(pdadto.getOrderCode()); // 改为进行中 @@ -398,6 +451,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { order.setShutDown(pdadto.getShutDown()); // 设置开始时间 order.setOrderStart(DateUtils.getNowDate()); + // 设置保养人 + order.setPlanPerson(SecurityContextHolder.getUserName()); // 更新数据表 order.setUpdateBy(SecurityContextHolder.getUserName()); order.setUpdateTime(DateUtils.getNowDate()); @@ -406,7 +461,7 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } /** - * 获取待维修记录(除了待维修) + * 获取维修记录(除了待维修) * * @param equRepairWorkOrder * @return @@ -438,8 +493,9 @@ public class DevicePDAServiceImpl implements IDevicePDAService { return error(); } } + /** - * 获取维修记录 + * 获取维修人员 * * @param equTeamUser * @return @@ -466,7 +522,11 @@ public class DevicePDAServiceImpl implements IDevicePDAService { public AjaxResult updateDowntime(EquRepairWorkOrder equRepairWorkOrder) { try { //不停机 那么实际停机开始时间和实际停机结束时间都没有 - //如果停机 那么实际停机时间就是传入的时间 停机时间必须选择校验 + //如果停机 那么实际停机时间就是传入的时间 + equRepairWorkOrder.setWorkStartTime(DateUtils.getNowDate()); + if (equRepairWorkOrder.getWorkDownMachine().equals("1")) { + equRepairWorkOrder.setActualDownStartTime(DateUtils.getNowDate()); + } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); //维修中 @@ -479,8 +539,6 @@ public class DevicePDAServiceImpl implements IDevicePDAService { } /** - * - * * @param equipmentId * @return */ @@ -488,8 +546,8 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult selectEquEquipmentByEquEquipmentId(Long equipmentId) { try { - EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentId(equipmentId); - return success(list); + EquEquipment list = equEquipmentMapper.selectEquEquipmentByEquEquipmentId(equipmentId); + return success(list); } catch (Exception e) { return error(); } @@ -505,40 +563,43 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @DS("#header.poolName") public AjaxResult selectPdaRepairWorkOrderDetails(String workId) { try { - EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); - //查询对应检查项信息 - EquOrder equOrder = new EquOrder(); - equOrder.setWorkCode(list.getWorkCode()); - //检查项 - List checkLists = equOrderMapper.selectEquOrderDetailsList(equOrder); - //每个检查项对应的检测标准 - for(EquOrder equOrder1 :checkLists){ - EquOrderStandard equOrderStandard = new EquOrderStandard(); - equOrderStandard.setOrderCode(equOrder1.getOrderCode()); - List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); - for(EquOrderStandard standardList :standardLists){ - //每个检查标准里面的照片 - List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); - if (!CollectionUtils.isEmpty(files)) { - standardList.setPicturePaths(files); + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); + //查询对应检查项信息 + EquOrder equOrder = new EquOrder(); + equOrder.setWorkCode(list.getWorkCode()); + //检查项 + List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); + //每个检查项对应的检测标准 + for (EquOrder equOrder1 : checkLists) { + EquOrderStandard equOrderStandard = new EquOrderStandard(); + equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); + List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); + for (EquOrderStandard standardList : standardLists) { + //每个检查标准里面的照片 + List files = equOrderStandardMapper.getBaseFileBatch(standardList.getId()); + if (!CollectionUtils.isEmpty(files)) { + standardList.setPicturePaths(files); + } + standardList.setDetailReach(standardList.getRepairReach()); + standardList.setActualValue(standardList.getRepairValue()); } + equOrder1.setStandardList(standardLists); } - equOrder1.setStandardList(standardLists); - } - list.setDetailList(checkLists); + list.setDetailList(checkLists); - //备件申领单 - EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); - equRepairWorkOrder.setWorkCode(list.getWorkCode()); - List applyLists = equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); - list.setApplyList(applyLists); + //备件申领单 + EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); + equRepairWorkOrder.setWorkCode(list.getWorkCode()); + List applyLists = equSpareApplyMapper.selectRepairSparePartsRecord(equRepairWorkOrder); + list.setApplyList(applyLists); - //文件 - List files = equRepairWorkOrderMapper.getBaseFileBatch(workId); - if (!CollectionUtils.isEmpty(files)) { - list.setFiles(files); - } - return success(list); + //文件 + List files = equRepairWorkOrderMapper.getBaseFileBatch(workId); + if (!CollectionUtils.isEmpty(files)) { + list.setFiles(files); + } + return success(list); } catch (Exception e) { return error(); } @@ -553,76 +614,149 @@ public class DevicePDAServiceImpl implements IDevicePDAService { @Override @DS("#header.poolName") public AjaxResult updateMaintenanceRecords(EquRepairWorkOrder equRepairWorkOrder) { - try { - //更新每一项点检/巡检检查项信息 - List checkLists = equRepairWorkOrder.getDetailList(); - for(EquOrder checkList:checkLists){ - checkList.setUpdateBy(SecurityUtils.getUsername()); - checkList.setUpdateTime(DateUtils.getNowDate()); - List standardLists = checkList.getStandardList(); - for(EquOrderStandard standardList :standardLists){ - //先删除每个检查项标准图片 - equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); - //图片 - if (StringUtils.isNotEmpty(standardList.getPicturePath())) { - String[] ids = standardList.getPicturePath().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(standardList.getId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); - } - equOrderStandardMapper.insertBaseFileBatch(files); - } - equOrderStandardMapper.updateEquOrderStandard(standardList); - } - equOrderMapper.updateEquOrder(checkList); - } - //新建申领单 缺少code - List equSpareApplies = equRepairWorkOrder.getApplyList(); - for(EquSpareApply equSpareApply:equSpareApplies){ - equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); - equSpareApply.setCreateBy(SecurityUtils.getUsername()); - equSpareApply.setCreateTime(DateUtils.getNowDate()); - equSpareApply.setApplyTime(DateUtils.getNowDate()); - equSpareApplyMapper.insertEquSpareApply(equSpareApply); - } - //维修人员名字????前端能够提供吗??? - //图片 - //先删除每个维修工单对应图片 - equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); - if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { - String[] ids = equRepairWorkOrder.getFileList().split(","); - List files = new ArrayList<>(); - BaseFileData file = null; - for (String id : ids) { - file = new BaseFileData(); - file.setFileId(IdUtils.fastSimpleUUID()); - file.setFileName(id.split("&fileName=")[1]); - file.setFileAddress(id); - file.setSourceId(equRepairWorkOrder.getWorkId()); - file.setCreateBy(SecurityUtils.getUsername()); - file.setCreateTime(new Date()); - //维修后 - file.setImageType("4"); - files.add(file); - } - equRepairWorkOrderMapper.insertBaseFileBatch(files); - } - equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); - equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); - equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); - return success("提交成功,维修完成!"); - } catch (Exception e) { - return error(); + //判断是否停机 + EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + if (list.getWorkDownMachine().equals("1")) { + //维修结束时间、维修真正停机时间 + equRepairWorkOrder.setActualDownEndTime(DateUtils.getNowDate()); } + equRepairWorkOrder.setWorkEndTime(DateUtils.getNowDate()); + //更新每一项点检/巡检检查项信息 + List checkLists = equRepairWorkOrder.getDetailList(); + for (EquOrder checkList : checkLists) { + checkList.setUpdateBy(SecurityUtils.getUsername()); + checkList.setUpdateTime(DateUtils.getNowDate()); + List standardLists = checkList.getStandardList(); + for (EquOrderStandard standardList : standardLists) { + //先删除每个检查项标准图片 + equOrderStandardMapper.deleteBaseFileBySourceId(standardList.getId()); + //图片 + if (StringUtils.isNotEmpty(standardList.getPicturePath())) { + String[] ids = standardList.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(standardList.getId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); + } + equOrderStandardMapper.insertBaseFileBatch(files); + } + standardList.setRepairReach(standardList.getDetailReach()); + standardList.setRepairValue(standardList.getActualValue()); + standardList.setUpdateTime(DateUtils.getNowDate()); + standardList.setUpdateBy(SecurityUtils.getUsername()); + equOrderStandardMapper.updateActualValues(standardList); + } + equOrderMapper.updateEquOrder(checkList); + } + + //新建申领单 + List equSpareApplies = equRepairWorkOrder.getApplyList(); + for (EquSpareApply equSpareApply : equSpareApplies) { + //生成领料单code + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); + //十五位单号 + equSpareApply.setApplyCode("AW" + code + serialNum); + equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); + //备品备件规格型号!!!!! +// equSpareApply.setSpareModel(equSpareApply.getS); + equSpareApply.setSpareCode(equSpareApply.getMaterialCode()); + equSpareApply.setSpareName(equSpareApply.getMaterialDesc()); + equSpareApply.setApplyPeople(SecurityUtils.getUsername()); + equSpareApply.setCreateBy(SecurityUtils.getUsername()); + equSpareApply.setCreateTime(DateUtils.getNowDate()); + equSpareApply.setApplyTime(DateUtils.getNowDate()); + equSpareApply.setSpareUseEquipment(equRepairWorkOrder.getEquipmentCode()); + equSpareApply.setWorkCode(equRepairWorkOrder.getWorkCode()); + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_", "")); + equSpareApplyMapper.insertEquSpareApply(equSpareApply); + + //更新完备品申领单后,更新库存 + SparePartsLedger sparePartsLedger = new SparePartsLedger(); + sparePartsLedger.setStorageId(equSpareApply.getStorageId()); + BigDecimal applyNum = equSpareApply.getSpareQuantity(); + BigDecimal amount = equSpareApply.getAmount(); + sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); + } + + //图片 + //先删除每个维修工单对应图片 + equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); + if (StringUtils.isNotEmpty(equRepairWorkOrder.getFileList())) { + String[] ids = equRepairWorkOrder.getFileList().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equRepairWorkOrder.getWorkId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); + } + equRepairWorkOrderMapper.insertBaseFileBatch(files); + } + //维修人:当前登录人 + //维修状态 + equRepairWorkOrder.setWorkStatus("1"); + //维修结束时间 + equRepairWorkOrder.setWorkPerson(SecurityUtils.getUsername()); + equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); + //需要更新设备状态????这里没做 + return success("提交成功,维修完成!"); } + + /** + * 查询故障树 + * + * @param equRepairWorkOrder + * @return + */ +// @Override +// @DS("#header.poolName") +// public AjaxResult queryEquFaultTypeTree(EquRepairWorkOrder equRepairWorkOrder) { +// // 查询一级数据 +// List firstLevel = equFaultTypeMapper.selectFirstLevelList(equRepairWorkOrder); +// // 一级list +// List firstTree = new ArrayList<>(); +// // 判空 +// if (!CollectionUtils.isEmpty(firstLevel)) { +// for(EquFaultType equFaultType : firstLevel){ +// +// } +// } +// +// return treeAll; +// } + + /** + * 查询设备管理列表 + * + * @param equEquipment 设备管理 + * @return 设备管理 + */ + @Override + @DS("#header.poolName") + public List selectEquEquipmentList(EquEquipment equEquipment) { + return equEquipmentMapper.selectEquEquipmentList(equEquipment); + } + } 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 cad366f07..34040a1af 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 @@ -2,6 +2,7 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; @@ -73,6 +74,10 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { @Autowired private EquOutsourceWorkMapper equOutsourceWorkMapper; + @Autowired + private EquSpareApplyMapper equSpareApplyMapper; + @Autowired + private SparePartsLedgerMapper sparePartsLedgerMapper; /** * 根据点检计划生成点检任务 * **/ @@ -91,11 +96,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉 - logger.info("++++++++++++" + dateSource.get("poolName") + "++++点检开始++++++++++"); - Runnable run = () -> createSpotCheckPlanFunc(dateSource.get("poolName")); - executorService.execute(run); - } + logger.info("++++++++++++" + dateSource.get("poolName") + "++++点检开始++++++++++"); + Runnable run = () -> createSpotCheckPlanFunc(dateSource.get("poolName")); + executorService.execute(run); }); } catch (Exception e) { logger.error("service == dataClearTask == exception", e); @@ -157,11 +160,9 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - if("ds_1000".equals(dateSource.get("poolName"))){//TODO生产去掉 - logger.info("++++++++++++" + dateSource.get("poolName") + "++++保养开始++++++++++"); - Runnable run = () -> createMaintenancePlanFunc(dateSource.get("poolName")); - executorService.execute(run); - } + logger.info("++++++++++++" + dateSource.get("poolName") + "++++保养开始++++++++++"); + Runnable run = () -> createMaintenancePlanFunc(dateSource.get("poolName")); + executorService.execute(run); }); } catch (Exception e) { logger.error("service == dataClearTask == exception", e); @@ -245,6 +246,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { private int createOrderPlan(EquPlan plan){ Date nowtime = DateUtils.getNowDate(); String createBy = "job"; + String factory = plan.getFactoryCode(); int sce = 0; /**equ_plan->equ_order********************************************************************/ EquOrder order = new EquOrder(); @@ -264,22 +266,42 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { /**equ_order**/ sce = equOrderMapper.insertEquOrder(order); System.out.println(plan.getPlanCode()+"========equ_order:"+sce); - /**equ_plan_equ_spare->equ_order_equ_spare*************************************************************/ + /**equ_plan_equ_spare->equ_spare_apply*************************************************************/ EquPlanEquSpare equPlanEquSpare = new EquPlanEquSpare(); equPlanEquSpare.setParentCode(plan.getPlanEquId()); List spares = equPlanEquSpareMapper.selectEquPlanEquSpareList(equPlanEquSpare); - for(EquPlanEquSpare spare:spares){ - spare.setId(IdUtils.fastSimpleUUID()); - spare.setCreateTime(nowtime); - spare.setCreateBy(createBy); - spare.setDelFlag("0"); - spare.setCode(orderCode); - } - if(!CollectionUtils.isEmpty(spares)){ - sce = equOrderEquSpareMapper.insertEquOrderEquSpares(spares); - System.out.println(plan.getPlanCode()+"========equ_order_equ_spare:"+sce); + + // 获取流水单号 + int applySerialNum = equSpareApplyMapper.selectSerialNumber(); + for (EquPlanEquSpare spare : spares) { + EquSpareApply apply = new EquSpareApply(); + apply.setApplyId(IdUtils.fastSimpleUUID()); + apply.setApplyCode("A"+orderCode+String.format("%02d",applySerialNum)); + applySerialNum++; + apply.setSpareCode(spare.getMaterialCode()); + apply.setSpareName(spare.getMaterialDesc()); + apply.setSpareModel(spare.getSpareType()); + apply.setSpareQuantity(spare.getApplyNum()); + apply.setFactoryCode(factory); + apply.setApplyPeople("job"); + apply.setWorkCode(orderCode); + apply.setCreateBy("job"); + apply.setCreateTime(nowtime); + apply.setSpareUseEquipment(plan.getEquipmentCode()); + apply.setApplyTime(nowtime); + // 插入备件信息 + equSpareApplyMapper.insertEquSpareApply(apply); + + // 减少备件仓库中备件数量 + sparePartsLedgerMapper.updateSpareNumReduce(apply); } +// if(!CollectionUtils.isEmpty(spares)){ +// sce = equOrderEquSpareMapper.insertEquOrderEquSpares(spares); +// System.out.println(plan.getPlanCode()+"========equ_spare_apply:"+sce); +// } + + /**equ_plan_detail->equ_order_detail*******************************************************/ EquPlanDetail itqo = new EquPlanDetail(); itqo.setParentCode(plan.getPlanEquId()); @@ -324,12 +346,12 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); BeanUtils.copyProperties(plan,equOutsourceWork); equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); - equOutsourceWork.setOrderCode(orderCode); equOutsourceWork.setWorkCode(order.getOutsourceCode()); equOutsourceWork.setWorkType("1");//1委外保养0委外维修 equOutsourceWork.setCreateBy(createBy); equOutsourceWork.setCreateTime(nowtime); equOutsourceWork.setDelFlag("0"); + equOutsourceWork.setRepairCode(orderCode); sce = equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); System.out.println(plan.getPlanCode() + "========equ_outsource_work:" + sce); }else { diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index f7f47d42e..c982cff2c 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -48,13 +48,15 @@ public class EquOrderServiceImpl implements IEquOrderService { @Autowired private PersonMapper personMapper; @Autowired - private EquOrderEquSpareMapper equOrderEquSpareMapper; - @Autowired private EquRepairOrderMapper equRepairOrderMapper; @Autowired private EquFileMapper equFileMapper; @Autowired private EquPlanMapper equPlanMapper; + @Autowired + private EquSpareApplyMapper equSpareApplyMapper; + @Autowired + private SparePartsLedgerMapper sparePartsLedgerMapper; /** * 查询计划工单 @@ -91,7 +93,7 @@ public class EquOrderServiceImpl implements IEquOrderService { order.setDetailList(detailList); // 备件 - List spareList = equOrderEquSpareMapper.selectEquOrderEquSpareByOrderCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); if (spareList.size() > 0) { order.setSpareList(spareList); } @@ -196,6 +198,11 @@ public class EquOrderServiceImpl implements IEquOrderService { } boolean hasError = false; + boolean maintenanceFlag = false; + + if (equOrder.getPlanType().equals("maintenance")) { + maintenanceFlag = true; + } List detailList = equOrder.getDetailList(); for (EquOrderDetail detail : detailList) { @@ -264,7 +271,7 @@ public class EquOrderServiceImpl implements IEquOrderService { } // 报修信息 - if (checkRepair && hasError) { + if (checkRepair && hasError && !maintenanceFlag) { // 获取故障报修流水号 EquRepairOrder equRepairOrder = new EquRepairOrder(); String serialNum = String.format("%03d", equRepairOrderMapper.selectOrderCodeSerialNumber()); @@ -278,6 +285,18 @@ public class EquOrderServiceImpl implements IEquOrderService { equRepairOrder.setOrderId(IdUtils.fastSimpleUUID()); equRepairOrder.setCreateTime(DateUtils.getNowDate()); equRepairOrder.setCreateBy(SecurityUtils.getUsername()); + + //报修人编码、故障时间、设备编码、报修时间、联系人联系方式-自动报修 + equRepairOrder.setOrderBreakdownTime(DateUtils.getNowDate()); + equRepairOrder.setOrderRepairmanCode(SecurityUtils.getUsername()); + equRepairOrder.setEquipmentCode(equipmentCode); + equRepairOrder.setOrderTime(DateUtils.getNowDate()); + EquTeamUser equTeamUser = new EquTeamUser(); + equTeamUser.setUserName(SecurityUtils.getUsername()); + EquTeamUser equTeamUserList = equRepairOrderMapper.getRepairPhoneNumber(equTeamUser); + equRepairOrder.setOrderConnection(equTeamUserList.getPhonenumber()); + equRepairOrder.setOrderRepairmanName(equTeamUserList.getNickName()); + // 报修来源 if (equOrder.getPlanType().equals("inspection")) { equRepairOrder.setOrderSource("巡检"); @@ -296,7 +315,7 @@ public class EquOrderServiceImpl implements IEquOrderService { } if (!hasError) { - // TODO 删除报修单 + // 删除报修单 if (equOrder.getRepairCode() != null) { if (!equOrder.getRepairCode().isEmpty()) { equRepairOrderMapper.deleteEquRepairOrderByRepairCode(equOrder.getRepairCode()); @@ -306,12 +325,29 @@ public class EquOrderServiceImpl implements IEquOrderService { } // 保养逻辑 - if (equOrder.getPlanType().equals("maintenance")) { + if (maintenanceFlag) { // 用时 if (equOrder.getOrderStart() != null) { long diffSeconds = (equOrder.getOrderEnd().getTime() - equOrder.getOrderStart().getTime()) / 60000; equOrder.setOrderCostTime(String.valueOf(diffSeconds)); } + // 保养图片 + if (StringUtils.isNotEmpty(equOrder.getPicturePath())) { + String[] ids = equOrder.getPicturePath().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equOrder.getOrderId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + files.add(file); + } + equFileMapper.insertEquFileBatch(files); + } } // 更新工单信息 @@ -327,8 +363,32 @@ public class EquOrderServiceImpl implements IEquOrderService { */ @Override @DS("#header.poolName") - public int deleteEquOrderByOrderIds(String[] orderIds) { - return equOrderMapper.deleteEquOrderByOrderIds(orderIds); + public AjaxResult deleteEquOrderByOrderIds(String[] orderIds) { + // 保养-备件逻辑 + for (String orderId : orderIds) { + EquOrder order = equOrderMapper.selectEquOrderByOrderId(orderId); + if (!order.getOrderStatus().equals("0")) { + return error(500,"工单已进行修改!不可删除!"); + } + if (order.getPlanType().equals("maintenance")) { + List applyList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); + for (EquSpareApply apply : applyList) { + // 返回备件数量 + sparePartsLedgerMapper.updateSpareNumAdd(apply); + } + } + } + // 逻辑删除获取人员 + equOrderPersonMapper.delEquOrderPersonByorderIds(orderIds); + // 逻辑删除标准信息 + equOrderStandardMapper.delEquOrderStandardByorderIds(orderIds); + // 逻辑删除检查项信息 + equOrderDetailMapper.delEquOrderDetailByorderIds(orderIds); + // 逻辑删除备件信息 + equSpareApplyMapper.delEquSpareApplyByorderIds(orderIds); + // 逻辑删除工单 + equOrderMapper.delEquOrderByOrderIds(orderIds); + return success(); } /** diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java index 324cd1fab..1bd1fcec6 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOutsourceWorkServiceImpl.java @@ -7,6 +7,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.device.domain.EquRepairWorkOrder; +import com.op.device.mapper.EquOrderMapper; import com.op.device.mapper.EquRepairWorkOrderMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,6 +30,12 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { @Autowired private EquOutsourceWorkMapper equOutsourceWorkMapper; + @Autowired + private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + + @Autowired + private EquOrderMapper equOrderMapper; + /** * 查询委外工单 @@ -63,6 +70,7 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { @Override @DS("#header.poolName") public int insertEquOutsourceWork(EquOutsourceWork equOutsourceWork) { + //新增的委外工单,不用报修单号、维修单号拼接 equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); String equipmentCode = equOutsourceWork.getEquipmentCode(); @@ -87,6 +95,13 @@ public class EquOutsourceWorkServiceImpl implements IEquOutsourceWorkService { @Override @DS("#header.poolName") public int updateEquOutsourceWork(EquOutsourceWork equOutsourceWork) { + //1完成委外 + if(equOutsourceWork.getWorkStatus().equals("1")){ + //更新维修工单状态 + equRepairWorkOrderMapper.updateWorkStatus(equOutsourceWork.getRepairCode()); + //更新保养工单状态 + equOrderMapper.updateEquOrderStatusComplete(equOutsourceWork.getRepairCode()); + } equOutsourceWork.setUpdateTime(DateUtils.getNowDate()); equOutsourceWork.setUpdateBy(SecurityUtils.getUsername()); return equOutsourceWorkMapper.updateEquOutsourceWork(equOutsourceWork); 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 d72e0b73a..b137c4eaa 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 @@ -264,26 +264,29 @@ public class EquPlanServiceImpl implements IEquPlanService { if (equCheckItemList.size() > 0) { List detailList = new ArrayList<>(); for (EquCheckItem checkItem : equCheckItemList) { - EquPlanDetail detail = new EquPlanDetail(); - BeanUtils.copyProperties(checkItem,detail); + // 只需要循环周期一致的检查项 + if(checkItem.getItemLoop() == data.getItemLoop() && checkItem.getItemLoopType().equals(data.getItemLoopType())) { + EquPlanDetail detail = new EquPlanDetail(); + BeanUtils.copyProperties(checkItem,detail); - if (!detail.getItemCode().isEmpty()) { - itemTempName.append(detail.getItemName()).append(","); - // 获取检查项详情list - List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); - if (equCheckItemList.size() > 0) { - List standardList = new ArrayList<>(); - for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { - EquPlanStandard standard = new EquPlanStandard(); - BeanUtils.copyProperties(standardTemp,standard); + if (!detail.getItemCode().isEmpty()) { + itemTempName.append(detail.getItemName()).append(","); + // 获取检查项详情list + List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); + if (equCheckItemList.size() > 0) { + List standardList = new ArrayList<>(); + for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { + EquPlanStandard standard = new EquPlanStandard(); + BeanUtils.copyProperties(standardTemp,standard); - standard.setShowFlag(true); - standardList.add(standard); + standard.setShowFlag(true); + standardList.add(standard); + } + detail.setEquPlanStandardList(standardList); } - detail.setEquPlanStandardList(standardList); } + detailList.add(detail); } - detailList.add(detail); } data.setEquPlanDetailList(detailList); data.setItemTempName(itemTempName.toString()); @@ -365,6 +368,8 @@ public class EquPlanServiceImpl implements IEquPlanService { List standardList = equPlanStandardMapper.selectEquPlanStandardListByParentCode(detail.getId()); for (EquPlanStandard standard : standardList) { standard.setShowFlag(true); + standard.setItemLoop(detail.getItemLoop()); + standard.setItemLoopType(detail.getItemLoopType()); } // 置入标准 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java index 55d73659c..de1ffbacf 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.op.device.service.impl; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -66,29 +67,17 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { list.setFiles(files); } -// //查询对应检查项信息 -// EquOrder equOrder = new EquOrder(); -// equOrder.setOrderCode(list.getOrderCode()); -// List checkLists = equOrderStandardMapper.selectPdaEquOrderList(equOrder); -// //每个检查项对应文件 -// for(EquOrderStandard equOrderStandard :checkLists){ -// List file = equOrderStandardMapper.getBaseFileBatch(equOrderStandard.getId()); -// if (!CollectionUtils.isEmpty(file)) { -// equOrderStandard.setPicturePaths(file); -// } -// } -// list.setCheckList(checkLists); - //查询对应检查项信息 EquOrder equOrder = new EquOrder(); //报修单号 equOrder.setRepairCode(list.getOrderCode()); //检查项 - List checkLists = equOrderMapper.selectEquOrderDetailsList(equOrder); + List checkLists = equOrderMapper.selectCheckListByRepairCode(equOrder); //每个检查项对应的检测标准 for(EquOrder equOrder1 :checkLists){ EquOrderStandard equOrderStandard = new EquOrderStandard(); equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for(EquOrderStandard standardList :standardLists){ //每个检查标准里面的照片 @@ -112,6 +101,22 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { @Override @DS("#header.poolName") public List selectEquRepairOrderList(EquRepairOrder equRepairOrder) { + if (equRepairOrder.getOrderBreakdownTimeArray() != null) { + // 设置故障开始时间、结束时间 + if (equRepairOrder.getOrderBreakdownTimeArray().size() == 2) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + equRepairOrder.setOrderBreakdownTimeStart(formatter.format(equRepairOrder.getOrderBreakdownTimeArray().get(0))); + equRepairOrder.setOrderBreakdownTimeEnd(formatter.format(equRepairOrder.getOrderBreakdownTimeArray().get(1))); + } + } + if (equRepairOrder.getOrderTimeArray() != null) { + // 设置更新日期开始和结束 + if (equRepairOrder.getOrderTimeArray().size() == 2) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + equRepairOrder.setOrderTimeStart(formatter.format(equRepairOrder.getOrderTimeArray().get(0))); + equRepairOrder.setOrderTimeEnd(formatter.format(equRepairOrder.getOrderTimeArray().get(1))); + } + } return equRepairOrderMapper.selectEquRepairOrderList(equRepairOrder); } @@ -166,14 +171,31 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { @Override @DS("#header.poolName") public int checkEquRepairOrder(EquRepairOrder equRepairOrder) { + //改了,不生成流水号,从第十位开始切割 + String code = equRepairOrder.getOrderCode().substring(10); + String workCode = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + code; + //判断是否是点检、巡检过来的 + if(equRepairOrder.getOrderSource().equals("点检") || equRepairOrder.getOrderSource().equals("巡检")){ + //更新检查项信息 + EquOrder equOrder = new EquOrder(); + List ids = equOrderMapper.getIdsByOrderCode(equRepairOrder.getOrderCode()); + for(String id :ids){ + EquOrder one = new EquOrder(); + one.setOrderId(id); + one.setWorkCode("WX" + workCode); + one.setUpdateBy(SecurityUtils.getUsername()); + one.setUpdateTime(DateUtils.getNowDate()); + //只更新其中一个信息 + equOrderMapper.updateEquOrderRepairCode(one); + } + } + if(equRepairOrder.getRepairDestination().equals("计划性维修")){ EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); //报修单号 equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); //维修单号 - String serialNum = String.format("%03d", equRepairWorkOrderMapper.selectWorkCodeSerialNumber()); - String equipmentCode = equRepairOrder.getEquipmentCode(); - equRepairWorkOrder.setWorkCode("WX"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equRepairWorkOrder.setWorkCode("WX" + workCode); equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); @@ -202,22 +224,24 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); equRepairOrder.setOrderStatus("审核通过"); + }else if(equRepairOrder.getRepairDestination().equals("不维修")){ equRepairOrder.setOrderStatus("驳回"); + }else if(equRepairOrder.getRepairDestination().equals("委外维修")){ EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); //委外工单编码、id、联系方式、委外单位、委外人员、委外原因 equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); equOutsourceWork.setOrderCode(equRepairOrder.getOrderCode()); - String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); - String equipmentCode = equRepairOrder.getEquipmentCode(); - equOutsourceWork.setEquipmentCode(equipmentCode); - equOutsourceWork.setWorkCode("WW"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); + equOutsourceWork.setEquipmentCode(equRepairOrder.getEquipmentCode()); + equOutsourceWork.setWorkCode("WW" + workCode); equOutsourceWork.setRepairCode("无"); equOutsourceWork.setWorkConnection(equRepairOrder.getWorkConnection()); equOutsourceWork.setWorkOutsourcingUnit(equRepairOrder.getWorkOutsourcingUnit()); equOutsourceWork.setWorkPerson(equRepairOrder.getOutSourcePerson()); equOutsourceWork.setWorkReason(equRepairOrder.getOutSourceReason()); + //委外类型 维修委外 + equOutsourceWork.setWorkType("0"); equOutsourceWork.setCreateBy(SecurityUtils.getUsername()); equOutsourceWork.setCreateTime(DateUtils.getNowDate()); HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); @@ -226,10 +250,38 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); equRepairOrder.setOrderStatus("审核通过"); }else if(equRepairOrder.getRepairDestination().equals("立即维修")){ - //立即维修 - //是否立即维修 1是 0 否 EquRepairWorkOrder equRepairWorkOrder = new EquRepairWorkOrder(); + //报修单号 + equRepairWorkOrder.setOrderCode(equRepairOrder.getOrderCode()); + //维修单号 + equRepairWorkOrder.setWorkCode("WX"+workCode); + equRepairWorkOrder.setOrderId(equRepairOrder.getOrderId()); + equRepairWorkOrder.setEquipmentCode(equRepairOrder.getEquipmentCode()); + equRepairWorkOrder.setWorkTeam(equRepairOrder.getWorkTeam()); + //不委外 + equRepairWorkOrder.setWorkOutsource("0"); + equRepairWorkOrder.setOutWorkCode("无"); + //是否立即维修 1是 0 否 equRepairWorkOrder.setWorkHandle("0"); + //计划维修时间 + equRepairWorkOrder.setWorkPlanTime(equRepairOrder.getWorkPlanTime()); + //是否停机维修 停机维修时间 + if(equRepairOrder.getWorkPlanDownTime() != null){ + equRepairWorkOrder.setWorkDownMachine("1"); + equRepairWorkOrder.setWorkPlanDownTime(equRepairOrder.getWorkPlanDownTime()); + }else{ + equRepairWorkOrder.setWorkDownMachine("0"); + } + equRepairWorkOrder.setWorkFaultDesc(equRepairOrder.getOrderDesc()); + equRepairWorkOrder.setWorkStatus("0"); + equRepairWorkOrder.setWorkId(IdUtils.fastSimpleUUID()); + equRepairWorkOrder.setCreateTime(DateUtils.getNowDate()); + equRepairWorkOrder.setCreateBy(SecurityUtils.getUsername()); + //工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equRepairWorkOrder.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + equRepairWorkOrderMapper.insertEquRepairWorkOrder(equRepairWorkOrder); equRepairOrder.setOrderStatus("审核通过"); } equRepairOrder.setUpdateTime(DateUtils.getNowDate()); @@ -326,12 +378,12 @@ public class EquRepairOrderServiceImpl implements IEquRepairOrderService { /** * 查询报修人员列表 * - * @param equEquipment + * @param equTeamUser * @return */ @Override @DS("#header.poolName") - public List getRepairPersonList(EquEquipment equEquipment) { - return equRepairOrderMapper.getRepairPersonList(equEquipment); + public List getRepairPersonList(EquTeamUser equTeamUser) { + return equRepairOrderMapper.getRepairPersonList(equTeamUser); } } 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 6cb2f0d8d..587462685 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 @@ -1,11 +1,14 @@ package com.op.device.service.impl; import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.domain.BaseFileData; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.device.domain.*; @@ -53,7 +56,7 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService EquRepairWorkOrder list = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(workId); List beforeFiles = equRepairWorkOrderMapper.getBaseFileBatch(list.getOrderId()); if (!CollectionUtils.isEmpty(beforeFiles)) { - list.setBeforeRepairFiles(beforeFiles); + list.setBeforeRepairFiles(beforeFiles); } //查询维修后图片 List afterFiles = equRepairWorkOrderMapper.getBaseFileBatch(workId); @@ -65,11 +68,12 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService EquOrder equOrder = new EquOrder(); equOrder.setWorkCode(list.getWorkCode()); //检查项 - List checkLists = equOrderMapper.selectEquOrderDetailsList(equOrder); + List checkLists = equOrderMapper.selectCheckListByWorkCode(equOrder); //每个检查项对应的检测标准 for(EquOrder equOrder1 :checkLists){ EquOrderStandard equOrderStandard = new EquOrderStandard(); equOrderStandard.setOrderCode(equOrder1.getOrderCode()); + equOrderStandard.setParentCode(equOrder1.getId()); List standardLists = equOrderStandardMapper.selectPdaEquOrderList(equOrderStandard); for(EquOrderStandard standardList :standardLists){ //每个检查标准里面的照片 @@ -153,6 +157,34 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService } equRepairWorkOrder.setUpdateBy(SecurityUtils.getUsername()); equRepairWorkOrder.setUpdateTime(DateUtils.getNowDate()); + + //先删除每个维修工单对应图片 + equRepairWorkOrderMapper.deleteBaseFileBySourceId(equRepairWorkOrder.getWorkId()); + if (StringUtils.isNotEmpty(equRepairWorkOrder.getAfterRepairFile())) { + String[] ids = equRepairWorkOrder.getAfterRepairFile().split(","); + List files = new ArrayList<>(); + BaseFileData file = null; + for (String id : ids) { + file = new BaseFileData(); + file.setFileId(IdUtils.fastSimpleUUID()); + file.setFileName(id.split("&fileName=")[1]); + file.setFileAddress(id); + file.setSourceId(equRepairWorkOrder.getWorkId()); + file.setCreateBy(SecurityUtils.getUsername()); + file.setCreateTime(new Date()); + //维修后 + file.setImageType("4"); + files.add(file); + } + equRepairWorkOrderMapper.insertBaseFileBatch(files); + } + + //更新标准表 + for(EquOrderStandard equOrderStandard:equRepairWorkOrder.getStandardList()){ + equOrderStandard.setUpdateBy(SecurityUtils.getUsername()); + equOrderStandard.setUpdateTime(DateUtils.getNowDate()); + equOrderStandardMapper.updateStandardAfterRepair(equOrderStandard); + } return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); } @@ -190,20 +222,25 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService @Override @DS("#header.poolName") public int applyEquOutsourceWork(EquRepairWorkOrder equRepairWorkOrder) { + //如果存在之前的删掉重新增加,物理删除 + equOutsourceWorkMapper.deleteEquOutsourceWorkByRepairCode(equRepairWorkOrder.getWorkCode()); //转委外 EquOutsourceWork equOutsourceWork = new EquOutsourceWork(); equOutsourceWork.setWorkId(IdUtils.fastSimpleUUID()); //委外工单号 - String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); - String equipmentCode = equRepairWorkOrder.getEquipmentCode(); + //String serialNum = String.format("%03d", equOutsourceWorkMapper.selectWorkCodeSerialNumber()); + //改了,不生成流水号,从第十位开始切割 + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equRepairWorkOrder.getWorkCode().substring(10); + equOutsourceWork.setWorkCode("WW"+ code); equOutsourceWork.setOrderCode("无"); - equOutsourceWork.setWorkCode("WW"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equipmentCode + serialNum); - equOutsourceWork.setEquipmentCode(equipmentCode); + equOutsourceWork.setEquipmentCode(equRepairWorkOrder.getEquipmentCode()); equOutsourceWork.setRepairCode(equRepairWorkOrder.getWorkCode()); equOutsourceWork.setWorkReason(equRepairWorkOrder.getOutSourceReason()); equOutsourceWork.setWorkPerson(equRepairWorkOrder.getOutSourcePerson()); equOutsourceWork.setWorkOutsourcingUnit(equRepairWorkOrder.getWorkOutsourcingUnit()); equOutsourceWork.setWorkConnection(equRepairWorkOrder.getWorkConnection()); + //委外类型 维修委外 + equOutsourceWork.setWorkType("0"); equOutsourceWork.setCreateTime(DateUtils.getNowDate()); equOutsourceWork.setCreateBy(SecurityUtils.getUsername()); if(equRepairWorkOrder.getWorkId()!= null){ @@ -211,6 +248,10 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equRepairWorkOrder.setOutWorkCode(equOutsourceWork.getWorkCode()); equRepairWorkOrderMapper.updateWorkOutsource(equRepairWorkOrder); } + //工厂号 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + equOutsourceWork.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); return equOutsourceWorkMapper.insertEquOutsourceWork(equOutsourceWork); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java index 9e8121880..f9a85cd96 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquSpareApplyServiceImpl.java @@ -9,8 +9,11 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; +import com.op.device.domain.EquOrder; import com.op.device.domain.EquRepairWorkOrder; import com.op.device.domain.SparePartsLedger; +import com.op.device.mapper.EquOrderMapper; +import com.op.device.mapper.EquRepairWorkOrderMapper; import com.op.device.mapper.SparePartsLedgerMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,6 +26,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; /** * 申领记录Service业务层处理 @@ -36,10 +40,14 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { private EquSpareApplyMapper equSpareApplyMapper; @Autowired private SparePartsLedgerMapper sparePartsLedgerMapper; + @Autowired + private EquRepairWorkOrderMapper equRepairWorkOrderMapper; + @Autowired + private EquOrderMapper equOrderMapper; /** * 查询申领记录 - * + * * @param applyId 申领记录主键 * @return 申领记录 */ @@ -51,7 +59,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { /** * 查询申领记录列表 - * + * * @param equSpareApply 申领记录 * @return 申领记录 */ @@ -71,7 +79,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { /** * 新增申领记录 - * + * * @param equSpareApply 申领记录 * @return 结果 */ @@ -79,11 +87,16 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { @DS("#header.poolName") public AjaxResult insertEquSpareApply(EquSpareApply equSpareApply) { try { - //equSpareApply.getSpareApplyLists().size() 是在申领备件的时候进行的操作 - if(equSpareApply.getSpareApplyLists().size() >= 1){ + //equSpareApply.getSpareApplyLists().size() 是在维修申领备件的时候进行的操作 批量新增 + if(equSpareApply.getSpareApplyLists().size() >= 1){ List list = equSpareApply.getSpareApplyLists(); for(EquSpareApply applyList:list){ applyList.setApplyId(IdUtils.fastSimpleUUID()); + //生成领料单code //申领单号 + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + String code = DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + applyList.getWorkCode().substring(2); + //申领单号 + equSpareApply.setApplyCode("AW" + code + serialNum); //领用时间 applyList.setApplyTime(DateUtils.getNowDate()); //申领人 @@ -92,28 +105,52 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; applyList.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + //创建人、创建时间 applyList.setCreateTime(DateUtils.getNowDate()); applyList.setCreateBy(SecurityUtils.getUsername()); equSpareApplyMapper.insertEquSpareApply(applyList); //更新完备品申领单后,更新库存 SparePartsLedger sparePartsLedger = new SparePartsLedger(); sparePartsLedger.setStorageId(applyList.getStorageId()); - BigDecimal applyNum = new BigDecimal(applyList.getSpareQuantity()); + BigDecimal applyNum = applyList.getSpareQuantity(); BigDecimal amount = applyList.getAmount(); sparePartsLedger.setAmount(amount.subtract(applyNum)); sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); } }else{ equSpareApply.setApplyId(IdUtils.fastSimpleUUID()); + String serialNum = String.format("%03d", equSpareApplyMapper.selectSerialNumber()); + if(equSpareApply.getWorkCode().length() == 12){ + //生成领料单code 十五位单号 + equSpareApply.setApplyCode("A" + equSpareApply.getWorkCode() + serialNum); + }else if(equSpareApply.getWorkCode().length() > 12){ + equSpareApply.setApplyCode("AW" + equSpareApply.getWorkCode().substring(2) + serialNum); + }else{ + //普通申领单 + equSpareApply.setApplyCode("AN" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + equSpareApply.getSpareUseEquipment() + serialNum); + } + //领用时间 + equSpareApply.setApplyTime(DateUtils.getNowDate()); + //申领人 + equSpareApply.setApplyPeople(SecurityUtils.getUsername()); //工厂号 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; equSpareApply.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + //创建人、创建时间 equSpareApply.setCreateTime(DateUtils.getNowDate()); equSpareApply.setCreateBy(SecurityUtils.getUsername()); equSpareApplyMapper.insertEquSpareApply(equSpareApply); + + //更新完备品申领单后,更新库存 + SparePartsLedger sparePartsLedger = new SparePartsLedger(); + sparePartsLedger.setStorageId(equSpareApply.getStorageId()); + BigDecimal applyNum = equSpareApply.getSpareQuantity(); + BigDecimal amount = equSpareApply.getAmount(); + sparePartsLedger.setAmount(amount.subtract(applyNum)); + sparePartsLedgerMapper.updateSparePartsLedger(sparePartsLedger); } - return AjaxResult.success("新增申领记录成功!"); + return success("新增申领记录成功!"); } catch (Exception e) { return error(); } @@ -121,7 +158,7 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { /** * 修改申领记录 - * + * * @param equSpareApply 申领记录 * @return 结果 */ @@ -135,19 +172,59 @@ public class EquSpareApplyServiceImpl implements IEquSpareApplyService { /** * 批量删除申领记录 - * + * * @param applyIds 需要删除的申领记录主键 * @return 结果 */ @Override @DS("#header.poolName") - public int deleteEquSpareApplyByApplyIds(String[] applyIds) { - return equSpareApplyMapper.deleteEquSpareApplyByApplyIds(applyIds); + public AjaxResult deleteEquSpareApplyByApplyIds(String[] applyIds) { + boolean check = true; + // 校验 + for (String id : applyIds) { + EquSpareApply apply = equSpareApplyMapper.selectEquSpareApplyByApplyId(id); + int checkNull = 0; + if (apply.getWorkCode() != null) { + if (!apply.getWorkCode().isEmpty()) { + EquRepairWorkOrder workOrder = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkCode(apply.getWorkCode()); + if (workOrder != null) { + if (workOrder.getWorkStatus().equals("1")) { + check = false; + } + }else { + checkNull++; + } + EquOrder order = equOrderMapper.selectEquOrderByOrderCode(apply.getWorkCode()); + if (order != null) { + if (order.getOrderStatus().equals("1")){ + check = false; + } + }else { + checkNull++; + } + } + } + + if (checkNull == 2) { + return error(500,"关联单号信息为空!删除失败!"); + } + + if (check) { + // 回填数据 + sparePartsLedgerMapper.updateSpareNumAdd(apply); + // 逻辑删除领用单 + equSpareApplyMapper.delEquSpareApplyByApplyId(id); + }else { + return error(500,"关联工单状态已完成,不可删除!"); + } + + } + return success(); } /** * 删除申领记录信息 - * + * * @param applyId 申领记录主键 * @return 结果 */ 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 869c5b835..7301bc0a2 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 @@ -46,26 +46,29 @@ public class EquSpotCheckServiceImpl implements IEquSpotCheckService { if (equCheckItemList.size() > 0) { List detailList = new ArrayList<>(); for (EquCheckItem checkItem : equCheckItemList) { - EquPlanDetail detail = new EquPlanDetail(); - BeanUtils.copyProperties(checkItem,detail); + // 只需要循环周期一致的检查项 + if(checkItem.getItemLoop() == data.getItemLoop() && checkItem.getItemLoopType().equals(data.getItemLoopType())) { + EquPlanDetail detail = new EquPlanDetail(); + BeanUtils.copyProperties(checkItem,detail); - if (!detail.getItemCode().isEmpty()) { - itemTempName.append(detail.getItemName()).append(","); - // 获取检查项详情list - List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); - if (equCheckItemList.size() > 0) { - List standardList = new ArrayList<>(); - for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { - EquPlanStandard standard = new EquPlanStandard(); - BeanUtils.copyProperties(standardTemp,standard); + if (!detail.getItemCode().isEmpty()) { + itemTempName.append(detail.getItemName()).append(","); + // 获取检查项详情list + List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); + if (equCheckItemList.size() > 0) { + List standardList = new ArrayList<>(); + for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { + EquPlanStandard standard = new EquPlanStandard(); + BeanUtils.copyProperties(standardTemp,standard); - standard.setShowFlag(true); - standardList.add(standard); + standard.setShowFlag(true); + standardList.add(standard); + } + detail.setEquPlanStandardList(standardList); } - detail.setEquPlanStandardList(standardList); } + detailList.add(detail); } - detailList.add(detail); } data.setEquPlanDetailList(detailList); data.setItemTempName(itemTempName.toString()); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java index df8779159..8941946bd 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquTeamServiceImpl.java @@ -52,7 +52,7 @@ public class EquTeamServiceImpl implements IEquTeamService { List equTeamUser1 = equTeamUserMapper.selectEquTeamUserList(equTeamUser); EquTeam equTeam = equTeamMapper.selectEquTeamById(id); equTeam.setSelectedData(equTeamUser1); - return equTeamMapper.selectEquTeamById(id); + return equTeam; } /** @@ -99,9 +99,9 @@ public class EquTeamServiceImpl implements IEquTeamService { list = equTeam.getRightData(); String userId = list.get(i); equTeamUser.setUserId(userId); - EquTeamUser memberList = equTeamMapper.selectTeamMember(equTeamUser); - equTeamUser.setUserName(memberList.getUserName()); - equTeamUser.setNickName(memberList.getNickName()); +// EquTeamUser memberList = equTeamMapper.selectTeamMember(equTeamUser); +// equTeamUser.setUserName(memberList.getUserName()); +// equTeamUser.setNickName(memberList.getNickName()); equTeamUserMapper.insertEquTeamUser(equTeamUser); } return success("新增设备班组成功!"); @@ -123,6 +123,7 @@ public class EquTeamServiceImpl implements IEquTeamService { try{ equTeam.setUpdateTime(DateUtils.getNowDate()); equTeam.setUpdateBy(SecurityUtils.getUsername()); + equTeamUserMapper.deleteEquTeamUserByTeamId(equTeam.getId()); equTeamMapper.updateEquTeam(equTeam); for(int i = 0;i spareList = new ArrayList<>(); List equSpareList = equPlanEqu.getSpareList(); if (equSpareList != null) { + // 获取流水单号 + int applySerialNum = equSpareApplyMapper.selectSerialNumber(); + for (EquPlanEquSpare spare : equSpareList) { - EquOrderEquSpare spareTemp = new EquOrderEquSpare(); - BeanUtils.copyProperties(spare,spareTemp); - spareTemp.setId(IdUtils.fastSimpleUUID()); - spareTemp.setOrderCode(equOrder.getOrderCode()); - spareTemp.setFactoryCode(factory); - spareTemp.setCreateBy(SecurityContextHolder.getUserName()); - spareTemp.setCreateTime(DateUtils.getNowDate()); - spareTemp.setUpdateBy(SecurityContextHolder.getUserName()); - spareTemp.setUpdateTime(DateUtils.getNowDate()); + EquSpareApply apply = new EquSpareApply(); + apply.setApplyId(IdUtils.fastSimpleUUID()); + apply.setApplyCode("A"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+String.format("%03d",applySerialNum)); + applySerialNum++; + apply.setSpareCode(spare.getMaterialCode()); + apply.setSpareName(spare.getMaterialDesc()); + apply.setSpareModel(spare.getSpareType()); + apply.setSpareQuantity(spare.getApplyNum()); + apply.setFactoryCode(factory); + apply.setApplyPeople(SecurityContextHolder.getUserName()); + apply.setWorkCode(equOrder.getOrderCode()); + apply.setCreateBy(SecurityContextHolder.getUserName()); + apply.setCreateTime(DateUtils.getNowDate()); + apply.setSpareUseEquipment(equOrder.getEquipmentCode()); + apply.setApplyTime(DateUtils.getNowDate()); // 插入备件信息 - equOrderEquSpareMapper.insertEquOrderEquSpare(spareTemp); - spareList.add(spareTemp); + equSpareApplyMapper.insertEquSpareApply(apply); + + // 减少备件仓库中备件数量 + sparePartsLedgerMapper.updateSpareNumReduce(apply); } } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java index 77c4783da..ce0a90086 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquUpkeepServiceImpl.java @@ -182,26 +182,29 @@ public class EquUpkeepServiceImpl implements IEquUpkeepService { if (equCheckItemList.size() > 0) { List detailList = new ArrayList<>(); for (EquCheckItem checkItem : equCheckItemList) { - EquPlanDetail detail = new EquPlanDetail(); - BeanUtils.copyProperties(checkItem,detail); + // 只需要循环周期一致的检查项 + if(checkItem.getItemLoop() == data.getItemLoop() && checkItem.getItemLoopType().equals(data.getItemLoopType())) { + EquPlanDetail detail = new EquPlanDetail(); + BeanUtils.copyProperties(checkItem,detail); - if (!detail.getItemCode().isEmpty()) { - itemTempName.append(detail.getItemName()).append(","); - // 获取检查项详情list - List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); - if (equCheckItemList.size() > 0) { - List standardList = new ArrayList<>(); - for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { - EquPlanStandard standard = new EquPlanStandard(); - BeanUtils.copyProperties(standardTemp,standard); + if (!detail.getItemCode().isEmpty()) { + itemTempName.append(detail.getItemName()).append(","); + // 获取检查项详情list + List equCheckItemDetailList = equCheckItemDetailMapper.selectCheckItemDetailByItemCode(detail.getItemCode()); + if (equCheckItemList.size() > 0) { + List standardList = new ArrayList<>(); + for (EquCheckItemDetail standardTemp : equCheckItemDetailList) { + EquPlanStandard standard = new EquPlanStandard(); + BeanUtils.copyProperties(standardTemp,standard); - standard.setShowFlag(true); - standardList.add(standard); + standard.setShowFlag(true); + standardList.add(standard); + } + detail.setEquPlanStandardList(standardList); } - detail.setEquPlanStandardList(standardList); } + detailList.add(detail); } - detailList.add(detail); } data.setEquPlanDetailList(detailList); data.setItemTempName(itemTempName.toString()); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java index c1430e2b5..7203edc3b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/InspectionWorkServiceImpl.java @@ -1,6 +1,7 @@ package com.op.device.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.domain.BaseFileData; import com.op.common.core.web.domain.AjaxResult; import com.op.device.domain.*; import com.op.device.domain.vo.InspectionWorkVO; @@ -36,7 +37,9 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { @Autowired private EquOrderEquSpareMapper equOrderEquSpareMapper; @Autowired - private EquOrderEquMapper equOrderEquMapper; + private EquSpareApplyMapper equSpareApplyMapper; + @Autowired + private EquFileMapper equFileMapper; /** * 查询巡检记录 @@ -56,8 +59,16 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { order.setPlanName(equPlan.getPlanName()); } + // 保养图片 + BaseFileData selectTemp = new BaseFileData(); + selectTemp.setSourceId(orderId); + List upkeepPictures = equFileMapper.selectUrlList(selectTemp); + if (upkeepPictures != null) { + order.setUpkeepPictures(upkeepPictures); + } + // 查询备件信息 - List spareList = equOrderEquSpareMapper.selectEquOrderEquSpareByOrderCode(order.getOrderCode()); + List spareList = equSpareApplyMapper.selectEquSpareApplyListByWorkCode(order.getOrderCode()); // 替换循环周期 order.setPlanLoopType(equOrderMapper.changeLoopType(order.getPlanLoopType())); @@ -82,6 +93,14 @@ public class InspectionWorkServiceImpl implements IInspectionWorkService { standard.setDetailReach("达标"); } } + // 未达标图片 + selectTemp.setSourceId(standard.getId()); + selectTemp.setImageType("3"); + List checkPictrueList = equFileMapper.selectUrlList(selectTemp); + if (checkPictrueList != null) { + standard.setCheckPictrueList(checkPictrueList); + } + } detail.setStandardList(standardList); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml new file mode 100644 index 000000000..06c2b7f89 --- /dev/null +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml index 2531142c9..a190ac188 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceTaskMapper.xml @@ -22,6 +22,7 @@ ep.work_outsourcing_unit workOutsourcingUnit, ep.work_connection workConnection, ep.work_reason workReason, + ep.plan_code planCode, epe.equipment_code equipmentCode, epe.equipment_name equipmentName, epe.id planEquId diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml index 03432131d..437a399ad 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquCheckItemDetailMapper.xml @@ -60,7 +60,7 @@ @@ -41,6 +44,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and attr2 = #{attr2} and attr3 = #{attr3} and del_flag = #{delFlag} + and item_loop = #{itemLoop} + and item_loop_type = #{itemLoopType} + and item_tools like concat('%', #{itemTools}, '%') and CONVERT(date,create_time) >= #{createTimeStart} and #{createTimeEnd} >= CONVERT(date,create_time) and create_by like concat('%', #{createBy}, '%') @@ -65,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT COUNT(fault_id)+1 AS serialNum FROM equ_fault_type - WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) and del_flag = '0' + WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) @@ -125,4 +130,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{faultId} + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml index ef5150b67..00829f881 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquFileMapper.xml @@ -68,7 +68,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and image_type = #{imageType} - + + + insert into base_file file_id, @@ -105,7 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time) + INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time,image_type) VALUES ( @@ -115,7 +123,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{baseFile.sourceId}, #{baseFile.remark}, #{baseFile.createBy}, - #{baseFile.createTime} + #{baseFile.createTime}, + #{baseFile.imageType} ) diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml index e58ca3995..fb8bc2847 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquItemEquipmentMapper.xml @@ -50,7 +50,7 @@ + + + and equipment_code = #{equipmentCode} + and start_time = #{startTime} + and end_time = #{endTime} + and type = #{type} + and maintenance_type = #{maintenanceType} + and parent_id = #{parentId} + and factory_code = #{factoryCode} + and attr1 = #{attr1} + and attr2 = #{attr2} + and attr3 = #{attr3} + + + + + + + + + insert into equ_operation_record + + id, + equipment_code, + start_time, + end_time, + type, + maintenance_type, + parent_id, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{id}, + #{equipmentCode}, + #{startTime}, + #{endTime}, + #{type}, + #{maintenanceType}, + #{parentId}, + #{factoryCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update equ_operation_record + + equipment_code = #{equipmentCode}, + start_time = #{startTime}, + end_time = #{endTime}, + type = #{type}, + maintenance_type = #{maintenanceType}, + parent_id = #{parentId}, + factory_code = #{factoryCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete + from equ_operation_record + where id = #{id} + + + + delete from equ_operation_record where id in + + #{id} + + + + + + + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml index 3c8a2a6f4..ea050820f 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderDetailMapper.xml @@ -23,12 +23,13 @@ + select id, code, order_code, parent_code, item_code, item_name, item_method, item_type, item_type_name, factory_code, attr1, attr2, attr3, del_flag, - create_by, create_time, update_by, update_time + create_by, create_time, update_by, update_time,item_tools from equ_order_detail @@ -47,6 +48,7 @@ and attr1 = #{attr1} and attr2 = #{attr2} and attr3 = #{attr3} + and item_tools = #{itemTools} and del_flag = '0' @@ -87,6 +89,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -107,6 +110,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, @@ -115,7 +119,7 @@ id, order_code, item_code, item_name, item_method, item_type, item_type_name, factory_code, del_flag, - create_by, create_time + create_by, create_time,item_tools ) VALUES @@ -123,7 +127,7 @@ #{item.id},#{item.parentCode}, #{item.itemCode},#{item.itemName},#{item.itemMethod}, #{item.itemType},#{item.itemTypeName},#{item.factoryCode},#{item.delFlag}, - #{item.createBy},#{item.createTime} + #{item.createBy},#{item.createTime},#{itemTools} ) @@ -141,6 +145,7 @@ item_type = #{itemType}, item_type_name = #{itemTypeName}, factory_code = #{factoryCode}, + item_tools = #{itemTools}, attr1 = #{attr1}, attr2 = #{attr2}, attr3 = #{attr3}, @@ -163,4 +168,13 @@ #{id} + + + update equ_order_detail set del_flag = '1' where del_flag = '0' and order_code in ( select order_code from + equ_order where del_flag = '0' and order_id in + + #{id} + + ) + diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml index 25c42457d..b07e84e40 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderEquSpareMapper.xml @@ -105,6 +105,7 @@ #{updateTime}, + insert into equ_order_equ_spare( id, order_code, material_code, material_desc, diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml index a5d1aa8f4..bede34e5a 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderMapper.xml @@ -40,6 +40,7 @@ + @@ -127,7 +128,7 @@ - where CONVERT(date,GETDATE()) > plan_loop_start and plan_type = #{planType} and del_flag = '0' and order_status != '1' and order_code in ( + where CONVERT(date,GETDATE()) >= plan_loop_start and plan_type = #{planType} and del_flag = '0' and order_status != '1' and order_code in ( select order_code from equ_order_person where del_flag = '0' and user_id = #{userId} GROUP BY order_code ) @@ -285,24 +286,76 @@ - - select eo.order_id, eo.order_code, eo.repair_code, eo.work_code, + eod.id, eod.item_name, eod.item_method, eod.item_type, eod.item_type_name from equ_order eo left join equ_order_detail eod on eo.order_code = eod.order_code - - and eo.work_code = #{workCode} - and eo.repair_code = #{repairCode} - and eo.del_flag = '0' - + where eo.work_code = #{workCode} + and eo.del_flag = '0' + + + + + + + + + + update equ_order + + update_by = #{updateBy}, + update_time = #{updateTime}, + work_code = #{workCode}, + + where order_id = #{orderId} + + + + update equ_order + set + order_status = '1' + where order_code = #{repairCode} + and del_flag = '0' + + diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml index 870e0dc05..51a5b7013 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderPersonMapper.xml @@ -127,4 +127,15 @@ #{id} + + + update equ_order_person + set del_flag = '1' + where del_flag = '0' and order_code in ( + select order_code from equ_order where del_flag = '0' and order_id in + + #{id} + + ) + diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml index ec27f3ef0..6ce4fe557 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOrderStandardMapper.xml @@ -209,6 +209,17 @@ where id = #{id} and del_flag = '0' + + update equ_order_standard + + repair_reach = #{repairReach}, + repair_value = #{repairValue}, + repair_picture = #{repairPicture}, + + where id = #{id} + and del_flag = '0' + + delete from equ_order_standard where id = #{id} @@ -223,23 +234,21 @@ @@ -263,9 +272,31 @@ delete from base_file where source_id = #{sourceId} + + update equ_order_standard set del_flag = '1' + where del_flag = '0' and order_code in ( + select order_code from equ_order where del_flag = '0' and order_id in + + #{id} + + ) + + + + update equ_order_standard + + update_by = #{updateBy}, + update_time = #{updateTime}, + repair_reach = #{repairReach}, + repair_value = #{repairValue}, + + where id = #{id} + and del_flag = '0' + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml index c127939ae..839ab7f0a 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOutsourceWorkMapper.xml @@ -17,6 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -35,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select work_id, work_code,order_code, repair_code, work_person, work_outsourcing_unit, work_connection, work_reason, work_type, equipment_code, work_cost, work_cost_time, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code from equ_outsource_work + select work_id, work_code,order_code, repair_code, work_person, work_outsourcing_unit, work_connection, work_reason, work_type, equipment_code, work_cost, work_cost_time,work_status, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code from equ_outsource_work SELECT COUNT(work_id)+1 AS serialNum FROM equ_outsource_work - where del_flag = '0' + WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml index 0caa0b000..0e55988c4 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquPlanDetailMapper.xml @@ -25,12 +25,13 @@ + select id, code, plan_id,plan_code, parent_code, item_code, item_name, item_method, item_type, item_type_name, item_remark, factory_code, attr1, attr2, attr3, del_flag, - create_by, create_time, update_by, update_time + create_by, create_time, update_by, update_time,item_tools from equ_plan_detail @@ -51,6 +52,7 @@ and attr1 = #{attr1} and attr2 = #{attr2} and attr3 = #{attr3} + and item_tools = #{itemTools} and del_flag = '0' ORDER BY item_name @@ -94,6 +96,7 @@ create_time, update_by, update_time, + item_tools, #{id}, @@ -116,6 +119,7 @@ #{createTime}, #{updateBy}, #{updateTime}, + #{itemTools}, @@ -141,6 +145,7 @@ create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime}, + item_tools = #{itemTools}, where id = #{id} and del_flag = '0' diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml index a73fcf745..c05b9aba5 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquPlanMapper.xml @@ -97,7 +97,7 @@ SELECT COUNT(order_id)+1 AS serialNum FROM equ_repair_order WHERE CONVERT(date, GETDATE()) = CONVERT(date,create_time) - and del_flag = '0' + + SELECT COUNT(work_id)+1 AS serialNum FROM equ_repair_work_order - where del_flag = '0' - + + + INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time,image_type) VALUES @@ -443,4 +469,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + update equ_repair_work_order + set + work_status = '1' + where work_code = #{repairCode} + and del_flag = '0' + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml index 78e454e3d..3581ceb46 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml @@ -28,7 +28,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - @@ -167,6 +166,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + update equ_spare_apply set del_flag = '1' where del_flag = '0' and work_code in ( select order_code from + equ_order where del_flag = '0' and order_id in + + #{id} + + ) + + + + update equ_spare_apply set del_flag = '1' + where apply_id in + + #{id} + + + + + update equ_spare_apply set del_flag = '1' where apply_id = #{id} + + + + + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml index b21528abe..e88125bb2 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquTeamMapper.xml @@ -129,4 +129,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where del_flag = '0' + + \ No newline at end of file diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml index dae6a04cd..af5cc8bb4 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquTeamUserMapper.xml @@ -21,13 +21,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + and parent_id = #{parentId} + and build_id = #{buildId} + and build_name like concat('%', #{buildName}, '%') + and build_status = #{buildStatus} + and ancestors = #{ancestors} + and grade = #{grade} + and dept_id = #{deptId} + and user_id = #{userId} + + + + + + + insert into base_build_info + + parent_id, + build_id, + build_name, + build_status, + ancestors, + grade, + remark, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{buildId}, + #{buildName}, + #{buildStatus}, + #{ancestors}, + #{grade}, + #{remark}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_build_info + + parent_id = #{parentId}, + build_id = #{buildId}, + build_name = #{buildName}, + build_status = #{buildStatus}, + ancestors = #{ancestors}, + grade = #{grade}, + remark = #{remark}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_build_info where objid = #{objid} + + + + delete from base_build_info where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseBusinessTypeMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseBusinessTypeMapper.xml new file mode 100644 index 000000000..f99e9649f --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseBusinessTypeMapper.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + select objid, parent_id, business_id, business_name, business_status, user_id, dept_id, create_by, create_time, update_by, update_time from base_business_type + + + + + + + + insert into base_business_type + + parent_id, + business_id, + business_name, + business_status, + user_id, + dept_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{businessId}, + #{businessName}, + #{businessStatus}, + #{userId}, + #{deptId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_business_type + + parent_id = #{parentId}, + business_id = #{businessId}, + business_name = #{businessName}, + business_status = #{businessStatus}, + user_id = #{userId}, + dept_id = #{deptId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_business_type where objid = #{objid} + + + + delete from base_business_type where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectCommunicateMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectCommunicateMapper.xml new file mode 100644 index 000000000..1c0b8c43b --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectCommunicateMapper.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, collect_device_id, terminal_time, time_interval, meter_agreement, meter_type, meter_status, meter_ip, heart_interval, baud_rate_one, baud_rate_two, baud_rate_three, baud_rate_four, remark, dept_id, user_id, create_by, create_time, update_by, update_time from base_collect_communicate + + + + + + + + insert into base_collect_communicate + + collect_device_id, + terminal_time, + time_interval, + meter_agreement, + meter_type, + meter_status, + meter_ip, + heart_interval, + baud_rate_one, + baud_rate_two, + baud_rate_three, + baud_rate_four, + remark, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{collectDeviceId}, + #{terminalTime}, + #{timeInterval}, + #{meterAgreement}, + #{meterType}, + #{meterStatus}, + #{meterIp}, + #{heartInterval}, + #{baudRateOne}, + #{baudRateTwo}, + #{baudRateThree}, + #{baudRateFour}, + #{remark}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_collect_communicate + + collect_device_id = #{collectDeviceId}, + terminal_time = #{terminalTime}, + time_interval = #{timeInterval}, + meter_agreement = #{meterAgreement}, + meter_type = #{meterType}, + meter_status = #{meterStatus}, + meter_ip = #{meterIp}, + heart_interval = #{heartInterval}, + baud_rate_one = #{baudRateOne}, + baud_rate_two = #{baudRateTwo}, + baud_rate_three = #{baudRateThree}, + baud_rate_four = #{baudRateFour}, + remark = #{remark}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_collect_communicate where objid = #{objid} + + + + delete from base_collect_communicate where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectDeviceInfoMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectDeviceInfoMapper.xml new file mode 100644 index 000000000..1911fa873 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseCollectDeviceInfoMapper.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, collect_device_id, collect_device_name, manufacturer, factory_number, produce_date, address, energy_type, model, ip, remark, online_state, dept_id, user_id, create_by, create_time, update_by, update_time from base_collect_device_info + + + + + + + + insert into base_collect_device_info + + collect_device_id, + collect_device_name, + manufacturer, + factory_number, + produce_date, + address, + energy_type, + model, + ip, + remark, + online_state, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{collectDeviceId}, + #{collectDeviceName}, + #{manufacturer}, + #{factoryNumber}, + #{produceDate}, + #{address}, + #{energyType}, + #{model}, + #{ip}, + #{remark}, + #{onlineState}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_collect_device_info + + collect_device_id = #{collectDeviceId}, + collect_device_name = #{collectDeviceName}, + manufacturer = #{manufacturer}, + factory_number = #{factoryNumber}, + produce_date = #{produceDate}, + address = #{address}, + energy_type = #{energyType}, + model = #{model}, + ip = #{ip}, + remark = #{remark}, + online_state = #{onlineState}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_collect_device_info where objid = #{objid} + + + + delete from base_collect_device_info where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseDnbThresholdMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseDnbThresholdMapper.xml new file mode 100644 index 000000000..17a780bf2 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseDnbThresholdMapper.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, monitor_id, i_a_max, i_a_min, i_b_max, i_b_min, + i_c_max, i_c_min, v_a_max, v_a_min, v_b_max, v_b_min, v_c_max, + v_c_min, hour_consumption, day_consumption, line_loss_rate, threshold_status, dept_id, user_id, + create_by, create_time, update_by, update_time + from base_dnb_threshold + + + + + + + + insert into base_dnb_threshold + + monitor_id, + i_a_max, + i_a_min, + i_b_max, + i_b_min, + i_c_max, + i_c_min, + v_a_max, + v_a_min, + v_b_max, + v_b_min, + v_c_max, + v_c_min, + hour_consumption, + day_consumption, + line_loss_rate, + threshold_status, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{monitorId}, + #{iAMax}, + #{iAMin}, + #{iBMax}, + #{iBMin}, + #{iCMax}, + #{iCMin}, + #{vAMax}, + #{vAMin}, + #{vBMax}, + #{vBMin}, + #{vCMax}, + #{vCMin}, + #{hourConsumption}, + #{dayConsumption}, + #{lineLossRate}, + #{thresholdStatus}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_dnb_threshold + + monitor_id = #{monitorId}, + i_a_max = #{iAMax}, + i_a_min = #{iAMin}, + i_b_max = #{iBMax}, + i_b_min = #{iBMin}, + i_c_max = #{iCMax}, + i_c_min = #{iCMin}, + v_a_max = #{vAMax}, + v_a_min = #{vAMin}, + v_b_max = #{vBMax}, + v_b_min = #{vBMin}, + v_c_max = #{vCMax}, + v_c_min = #{vCMin}, + hour_consumption = #{hourConsumption}, + day_consumption = #{dayConsumption}, + line_loss_rate = #{lineLossRate}, + threshold_status = #{thresholdStatus}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_dnb_threshold where objid = #{objid} + + + + delete from base_dnb_threshold where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseEnergyTypeMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseEnergyTypeMapper.xml new file mode 100644 index 000000000..eef7363a8 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseEnergyTypeMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + select objid, energy_type_id, energy_name, measure_unit, price, dept_id, + user_id, create_by, create_time, update_by, update_time from base_energy_type + + + + + + + + insert into base_energy_type + + energy_type_id, + energy_name, + measure_unit, + price, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{energyTypeId}, + #{energyName}, + #{measureUnit}, + #{price}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_energy_type + + energy_type_id = #{energyTypeId}, + energy_name = #{energyName}, + measure_unit = #{measureUnit}, + price = #{price}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_energy_type where objid = #{objid} + + + + delete from base_energy_type where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseLineLossMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineLossMapper.xml new file mode 100644 index 000000000..7e0f1b9fa --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineLossMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + select objid, line_loss_id, line_loss_name, monitor_id, monitor_name, monitor_type, grade, line_loss_status, user_id, dept_id, create_by, create_time, update_by, update_time from base_line_loss + + + + + + + + + insert into base_line_loss + + line_loss_id, + line_loss_name, + monitor_id, + monitor_name, + monitor_type, + grade, + line_loss_status, + user_id, + dept_id, + create_by, + create_time, + update_by, + update_time, + + + #{lineLossId}, + #{lineLossName}, + #{monitorId}, + #{monitorName}, + #{monitorType}, + #{grade}, + #{lineLossStatus}, + #{userId}, + #{deptId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_line_loss + + line_loss_id = #{lineLossId}, + line_loss_name = #{lineLossName}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_type = #{monitorType}, + grade = #{grade}, + line_loss_status = #{lineLossStatus}, + user_id = #{userId}, + dept_id = #{deptId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_line_loss where objid = #{objid} + + + + delete from base_line_loss where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseLineMonitorMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineMonitorMapper.xml new file mode 100644 index 000000000..0f955497c --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseLineMonitorMapper.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, monitor_status, collect_device_id, build_id, ancestors, grade, correct_value, is_ammeter, line_name, line_length, line_status, power_capacity, water_capacity, dept_id, user_id, create_by, create_time, update_by, update_time from base_line_monitor + + + + + + + + insert into base_line_monitor + + parent_id, + monitor_id, + monitor_name, + monitor_addr, + monitor_type, + monitor_status, + collect_device_id, + build_id, + ancestors, + grade, + correct_value, + is_ammeter, + line_name, + line_length, + line_status, + power_capacity, + water_capacity, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{monitorId}, + #{monitorName}, + #{monitorAddr}, + #{monitorType}, + #{monitorStatus}, + #{collectDeviceId}, + #{buildId}, + #{ancestors}, + #{grade}, + #{correctValue}, + #{isAmmeter}, + #{lineName}, + #{lineLength}, + #{lineStatus}, + #{powerCapacity}, + #{waterCapacity}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_line_monitor + + parent_id = #{parentId}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_addr = #{monitorAddr}, + monitor_type = #{monitorType}, + monitor_status = #{monitorStatus}, + collect_device_id = #{collectDeviceId}, + build_id = #{buildId}, + ancestors = #{ancestors}, + grade = #{grade}, + correct_value = #{correctValue}, + is_ammeter = #{isAmmeter}, + line_name = #{lineName}, + line_length = #{lineLength}, + line_status = #{lineStatus}, + power_capacity = #{powerCapacity}, + water_capacity = #{waterCapacity}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_line_monitor where objid = #{objid} + + + + delete from base_line_monitor where objid in + + #{objid} + + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMeterInfoMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMeterInfoMapper.xml new file mode 100644 index 000000000..08d0a40cf --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMeterInfoMapper.xml @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, dept_id, dept_name, build_number, floor_number, room_number, physical_number, manufacturer, precision_value, produce_date, meter_id, model, meter_energy_type, meter_adress, meter_status, ct_change, collect_id, remark from base_meter_info + + + + + + + + insert into base_meter_info + + dept_id, + dept_name, + build_number, + floor_number, + room_number, + physical_number, + manufacturer, + precision_value, + produce_date, + meter_id, + model, + meter_energy_type, + meter_adress, + meter_status, + ct_change, + collect_id, + remark, + + + #{deptId}, + #{deptName}, + #{buildNumber}, + #{floorNumber}, + #{roomNumber}, + #{physicalNumber}, + #{manufacturer}, + #{precisionValue}, + #{produceDate}, + #{meterId}, + #{model}, + #{meterEnergyType}, + #{meterAdress}, + #{meterStatus}, + #{ctChange}, + #{collectId}, + #{remark}, + + + + + update base_meter_info + + dept_id = #{deptId}, + dept_name = #{deptName}, + build_number = #{buildNumber}, + floor_number = #{floorNumber}, + room_number = #{roomNumber}, + physical_number = #{physicalNumber}, + manufacturer = #{manufacturer}, + precision_value = #{precisionValue}, + produce_date = #{produceDate}, + meter_id = #{meterId}, + model = #{model}, + meter_energy_type = #{meterEnergyType}, + meter_adress = #{meterAdress}, + meter_status = #{meterStatus}, + ct_change = #{ctChange}, + collect_id = #{collectId}, + remark = #{remark}, + + where objid = #{objid} + + + + delete from base_meter_info where objid = #{objid} + + + + delete from base_meter_info where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml new file mode 100644 index 000000000..58ec73a56 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfo1Mapper.xml @@ -0,0 +1,227 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, monitor_status, + collect_device_id, ancestors, grade, build_id, subentry_id, business_id, meter_type_id, + meter_id, correct_value, pt, ct, is_ammeter, is_key_monitor, is_circuit, dept_id, user_id, + create_by, create_time, update_by, update_time, public_share_type,monitor_hierarchy,room_code,room_name,physical_code from base_monitor_info + + + + + + + + + + update base_monitor_info set ancestors = + + when #{item.monitorId} then #{item.ancestors} + + where monitor_id in + + #{item.monitorId} + + + + insert into base_monitor_info + + parent_id, + monitor_id, + monitor_name, + monitor_addr, + monitor_type, + monitor_status, + collect_device_id, + ancestors, + grade, + build_id, + subentry_id, + business_id, + meter_type_id, + meter_id, + correct_value, + pt, + ct, + is_ammeter, + is_key_monitor, + is_circuit, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + public_share_type, + monitor_hierarchy, + room_code, + room_name, + physical_code, + + + #{parentId}, + #{monitorId}, + #{monitorName}, + #{monitorAddr}, + #{monitorType}, + #{monitorStatus}, + #{collectDeviceId}, + #{ancestors}, + #{grade}, + #{buildId}, + #{subentryId}, + #{businessId}, + #{meterTypeId}, + #{meterId}, + #{correctValue}, + #{pt}, + #{ct}, + #{isAmmeter}, + #{isKeyMonitor}, + #{isCircuit}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{publicShareType}, + #{monitorHierarchy}, + #{roomCode}, + #{roomName}, + #{physicalCode}, + + + + + update base_monitor_info + + parent_id = #{parentId}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_addr = #{monitorAddr}, + monitor_type = #{monitorType}, + monitor_status = #{monitorStatus}, + collect_device_id = #{collectDeviceId}, + ancestors = #{ancestors}, + grade = #{grade}, + build_id = #{buildId}, + subentry_id = #{subentryId}, + business_id = #{businessId}, + meter_type_id = #{meterTypeId}, + meter_id = #{meterId}, + correct_value = #{correctValue}, + pt = #{pt}, + ct = #{ct}, + is_ammeter = #{isAmmeter}, + is_key_monitor = #{isKeyMonitor}, + is_circuit = #{isCircuit}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + public_share_type = #{publicShareType}, + monitor_hierarchy = #{monitorHierarchy}, + room_code = #{roomCode}, + room_name = #{roomName}, + physical_code = #{physicalCode}, + + where objid = #{objid} + + + + delete from base_monitor_info where objid = #{objid} + + + + delete from base_monitor_info where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml new file mode 100644 index 000000000..9f203e471 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorInfoMapper.xml @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, parent_id, monitor_id, monitor_name, monitor_addr, monitor_type, + monitor_status, collect_device_id, ancestors, grade, build_id, subentry_id, + business_id, meter_type_id, meter_id, correct_value, pt, ct, is_ammeter, + is_key_monitor, is_circuit, dept_id, user_id, create_by, create_time, update_by, update_time from base_monitor_info + + + + + + + + + + + update base_monitor_info set ancestors = + + when #{item.monitorId} then #{item.ancestors} + + where monitor_id in + + #{item.monitorId} + + + + insert into base_monitor_info + + parent_id, + monitor_id, + monitor_name, + monitor_addr, + monitor_type, + monitor_status, + collect_device_id, + ancestors, + grade, + build_id, + subentry_id, + business_id, + meter_type_id, + meter_id, + correct_value, + pt, + ct, + is_ammeter, + is_key_monitor, + is_circuit, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{monitorId}, + #{monitorName}, + #{monitorAddr}, + #{monitorType}, + #{monitorStatus}, + #{collectDeviceId}, + #{ancestors}, + #{grade}, + #{buildId}, + #{subentryId}, + #{businessId}, + #{meterTypeId}, + #{meterId}, + #{correctValue}, + #{pt}, + #{ct}, + #{isAmmeter}, + #{isKeyMonitor}, + #{isCircuit}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_monitor_info + + parent_id = #{parentId}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_addr = #{monitorAddr}, + monitor_type = #{monitorType}, + monitor_status = #{monitorStatus}, + collect_device_id = #{collectDeviceId}, + ancestors = #{ancestors}, + grade = #{grade}, + build_id = #{buildId}, + subentry_id = #{subentryId}, + business_id = #{businessId}, + meter_type_id = #{meterTypeId}, + meter_id = #{meterId}, + correct_value = #{correctValue}, + pt = #{pt}, + ct = #{ct}, + is_ammeter = #{isAmmeter}, + is_key_monitor = #{isKeyMonitor}, + is_circuit = #{isCircuit}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_monitor_info where objid = #{objid} + + + + delete from base_monitor_info where objid in + + #{objid} + + + + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorPublicMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorPublicMapper.xml new file mode 100644 index 000000000..49ece04dc --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseMonitorPublicMapper.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + select monitor_id, public_share_id,public_share_type from base_monitor_public + + + + + + + + insert into base_monitor_public + + monitor_id, + public_share_id, + public_share_type, + + + #{monitorId}, + #{publicShareId}, + #{publicShareType}, + + + + insert into base_monitor_public(monitor_id, public_share_id,public_share_type) values + + (#{item.monitorId},#{item.publicShareId},#{item.publicShareType}) + + + + + update base_monitor_public + + public_share_id = #{publicShareId}, + public_share_type = #{publicShareType}, + + where monitor_id = #{monitorId} + + + + delete from base_monitor_public where monitor_id = #{monitorId} + + + + delete from base_monitor_public where public_share_id = #{id} + + + + delete from base_monitor_public where monitor_id in + + #{monitorId} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BasePublicManageMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicManageMapper.xml new file mode 100644 index 000000000..4649b3b8c --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicManageMapper.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + select id, begin_time, end_time, public_share_type, public_share_rule, public_share_value, create_by, create_time, update_by, update_time, remark, other1, other2 from base_public_manage + + + + + + + + insert into base_public_manage + + id, + begin_time, + end_time, + public_share_type, + public_share_rule, + public_share_value, + create_by, + create_time, + update_by, + update_time, + remark, + other1, + other2, + + + #{id}, + #{beginTime}, + #{endTime}, + #{publicShareType}, + #{publicShareRule}, + #{publicShareValue}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{other1}, + #{other2}, + + + + + update base_public_manage + + begin_time = #{beginTime}, + end_time = #{endTime}, + public_share_type = #{publicShareType}, + public_share_rule = #{publicShareRule}, + public_share_value = #{publicShareValue}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + other1 = #{other1}, + other2 = #{other2}, + + where id = #{id} + + + + delete from base_public_manage where id = #{id} + + + + delete from base_public_manage where id in + + #{id} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserMapper.xml new file mode 100644 index 000000000..58a42f3d7 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserMapper.xml @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, user_name,area, create_by, create_time, update_by, update_time, remark from base_public_user + + + + + + + + + + + + + + + + insert into base_public_user + + user_name, + monitor_id, + area, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{userName}, + #{monitorId}, + #{area}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update base_public_user + + user_name = #{userName}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + area = #{area}, + + where id = #{id} + + + + delete from base_public_user where id = #{id} + + + + delete from base_public_user where id in + + #{id} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserRecordMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserRecordMapper.xml new file mode 100644 index 000000000..6de2c5d7d --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BasePublicUserRecordMapper.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objid, public_share_id, public_user_id, bpu.user_name public_user_name, bpm.public_share_rule, public_monitor_ids, base_public_user_record.start_time, base_public_user_record.end_time, + allocation_ratio, public_energy_consumption, owner_energy_consumption, ifnull(public_energy_consumption,0) + ifnull(owner_energy_consumption,0) sumEnergyConsumption, + energy_type, del_status, created_by, created_time, base_public_user_record.update_by, base_public_user_record.update_time from base_public_user_record + left join base_public_user bpu on bpu.id = base_public_user_record.public_user_id + left join base_public_manage bpm on bpm.id = base_public_user_record.public_share_id + + + + + + + + insert into base_public_user_record + + public_share_id, + public_user_id, + public_monitor_ids, + start_time, + end_time, + allocation_ratio, + public_energy_consumption, + owner_energy_consumption, + energy_type, + created_by, + created_time, + update_by, + update_time, + + + #{publicShareId}, + #{publicUserId}, + #{publicMonitorIds}, + #{startTime}, + #{endTime}, + #{allocationRatio}, + #{publicEnergyConsumption}, + #{ownerEnergyConsumption}, + #{energyType}, + #{createdBy}, + #{createdTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_public_user_record + + public_share_id = #{publicShareId}, + public_user_id = #{publicUserId}, + public_monitor_ids = #{publicMonitorIds}, + start_time = #{startTime}, + end_time = #{endTime}, + allocation_ratio = #{allocationRatio}, + public_energy_consumption = #{publicEnergyConsumption}, + owner_energy_consumption = #{ownerEnergyConsumption}, + energy_type = #{energyType}, + del_status = #{delStatus}, + created_by = #{createdBy}, + created_time = #{createdTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_public_user_record where objid = #{objid} + + + + delete from base_public_user_record where objid in + + #{objid} + + + \ No newline at end of file diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseSubentryTypeMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseSubentryTypeMapper.xml new file mode 100644 index 000000000..1d80ba526 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseSubentryTypeMapper.xml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + select objid, parent_id, subentry_id, subentry_name, subentry_status, dept_id, user_id, create_by, create_time, update_by, update_time from base_subentry_type + + + + + + + + insert into base_subentry_type + + parent_id, + subentry_id, + subentry_name, + subentry_status, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{parentId}, + #{subentryId}, + #{subentryName}, + #{subentryStatus}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + insert into base_line_loss + + line_loss_id, + line_loss_name, + monitor_id, + monitor_name, + monitor_type, + grade, + line_loss_status, + user_id, + dept_id, + create_by, + create_time, + update_by, + update_time, + + + #{lineLossId}, + #{lineLossName}, + #{monitorId}, + #{monitorName}, + #{monitorType}, + #{grade}, + #{lineLossStatus}, + #{userId}, + #{deptId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_subentry_type + + parent_id = #{parentId}, + subentry_id = #{subentryId}, + subentry_name = #{subentryName}, + subentry_status = #{subentryStatus}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_subentry_type where objid = #{objid} + + + + delete from base_subentry_type where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseTypeRelationMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseTypeRelationMapper.xml new file mode 100644 index 000000000..9aa6ff3ef --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseTypeRelationMapper.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + select base_type_relation.objid, + base_type_relation.monitor_id, + type, + relation_id, + base_type_relation.remark, + base_type_relation.create_by, + base_type_relation.create_time, + base_type_relation.update_by, + base_type_relation.update_time, + m.monitor_type, + m.monitor_name, + case + when base_type_relation.type = 0 then bi.build_name + when base_type_relation.type = 1 then bt.business_name + when base_type_relation.type = 2 then st.subentry_name + end unit_name, + base_type_relation.rate, base_type_relation.formula_mode + from base_type_relation + left join base_monitor_info m on m.monitor_id = base_type_relation.monitor_id + left join base_build_info bi on base_type_relation.relation_id = bi.objid + left join base_business_type bt on base_type_relation.relation_id = bt.objid + left join base_subentry_type st on base_type_relation.relation_id = st.objid + + + + + + + + + insert into base_type_relation + + monitor_id, + type, + relation_id, + remark, + create_by, + create_time, + update_by, + update_time, + rate, + formula_mode, + + + #{monitorId}, + #{type}, + #{relationId}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{rate}, + #{formulaMode}, + + + + + update base_type_relation + + monitor_id = #{monitorId}, + type = #{type}, + relation_id = #{relationId}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + rate = #{rate}, + formula_mode = #{formulaMode}, + + where objid = #{objid} + + + + delete from base_type_relation where objid = #{objid} + + + + delete from base_type_relation where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/BaseWaterThresholdMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/BaseWaterThresholdMapper.xml new file mode 100644 index 000000000..1f65cd5d1 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/BaseWaterThresholdMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + select objid, monitor_id, monitor_name, line_loss_rate, max_traffic, min_traffic, hour_consumption, day_consumption, + threshold_status, dept_id, user_id, create_by, create_time, + update_by, update_time + from base_water_threshold + + + + + + + + insert into base_water_threshold + + monitor_id, + monitor_name, + max_traffic, + min_traffic, + hour_consumption, + day_consumption, + line_loss_rate, + threshold_status, + dept_id, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{monitorId}, + #{monitorName}, + #{maxTraffic}, + #{minTraffic}, + #{hourConsumption}, + #{dayConsumption}, + #{lineLossRate}, + #{thresholdStatus}, + #{deptId}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update base_water_threshold + + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + max_traffic = #{maxTraffic}, + min_traffic = #{minTraffic}, + hour_consumption = #{hourConsumption}, + day_consumption = #{dayConsumption}, + line_loss_rate = #{lineLossRate}, + threshold_status = #{thresholdStatus}, + dept_id = #{deptId}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from base_water_threshold where objid = #{objid} + + + + delete from base_water_threshold where objid in + + #{objid} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/CbsMonitorReportMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/CbsMonitorReportMapper.xml new file mode 100644 index 000000000..ad7bad2a6 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/CbsMonitorReportMapper.xml @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select obj_id, monitor_id, monitor_name, monitor_type, public_share_type, + room_code, room_name,physical_code, build_code, build_name, is_bind, last_monitor_time, last_monitor_expend, this_monitor_time, this_monitor_expend, last_flag, this_flag, remark, create_by, create_time, update_by, update_time from cbs_monitor_report + + + + + + + + + + + insert into cbs_monitor_report + + monitor_id, + monitor_name, + monitor_type, + public_share_type, + room_code, + room_name, + build_code, + build_name, + is_bind, + last_monitor_time, + last_monitor_expend, + this_monitor_time, + this_monitor_expend, + last_flag, + this_flag, + remark, + create_by, + create_time, + update_by, + update_time, + physical_code, + + + #{monitorId}, + #{monitorName}, + #{monitorType}, + #{publicShareType}, + #{roomCode}, + #{roomName}, + #{buildCode}, + #{buildName}, + #{isBind}, + #{lastMonitorTime}, + #{lastMonitorExpend}, + #{thisMonitorTime}, + #{thisMonitorExpend}, + #{lastFlag}, + #{thisFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{physicalCode}, + + + + + update cbs_monitor_report + + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + monitor_type = #{monitorType}, + public_share_type = #{publicShareType}, + room_code = #{roomCode}, + room_name = #{roomName}, + build_code = #{buildCode}, + build_name = #{buildName}, + is_bind = #{isBind}, + last_monitor_time = #{lastMonitorTime}, + last_monitor_expend = #{lastMonitorExpend}, + this_monitor_time = #{thisMonitorTime}, + this_monitor_expend = #{thisMonitorExpend}, + last_flag = #{lastFlag}, + this_flag = #{thisFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + physical_code = #{physicalCode}, + + where obj_id = #{objId} + + + + delete from cbs_monitor_report where obj_id = #{objId} + + + + delete from cbs_monitor_report where obj_id in + + #{objId} + + + \ No newline at end of file diff --git a/op-modules/op-energy/src/main/resources/mapper/base/SysConfigMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/SysConfigMapper.xml new file mode 100644 index 000000000..6c9201934 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/SysConfigMapper.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + select config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark + from sys_config + + + + + + + and config_id = #{configId} + + + and config_key = #{configKey} + + + + + + + + + + + + + + insert into sys_config ( + config_name, + config_key, + config_value, + config_type, + create_by, + remark, + create_time + )values( + #{configName}, + #{configKey}, + #{configValue}, + #{configType}, + #{createBy}, + #{remark}, + sysdate() + ) + + + + update sys_config + + config_name = #{configName}, + config_key = #{configKey}, + config_value = #{configValue}, + config_type = #{configType}, + update_by = #{updateBy}, + remark = #{remark}, + update_time = sysdate() + + where config_id = #{configId} + + + + delete from sys_config where config_id = #{configId} + + + + delete from sys_config where config_id in + + #{configId} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/base/SysDatasourceMapper.xml b/op-modules/op-energy/src/main/resources/mapper/base/SysDatasourceMapper.xml new file mode 100644 index 000000000..cfb83095b --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/base/SysDatasourceMapper.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, url, user_name, password, drive_class_name, pool_name, status, del_flag, create_by, create_time, update_by, update_time, remark, cbs_park_code, cbs_park_name from sys_datasource + + + + + + + + + + + insert into sys_datasource + + id, + url, + user_name, + password, + drive_class_name, + pool_name, + status, + del_flag, + create_by, + create_time, + update_by, + update_time, + remark, + cbs_park_code, + cbs_park_name, + + + #{id}, + #{url}, + #{userName}, + #{password}, + #{driveClassName}, + #{poolName}, + #{status}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{cbsParkCode}, + #{cbsParkName}, + + + + + update sys_datasource + + url = #{url}, + user_name = #{userName}, + password = #{password}, + drive_class_name = #{driveClassName}, + pool_name = #{poolName}, + status = #{status}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + cbs_park_code = #{cbsParkCode}, + cbs_park_name = #{cbsParkName}, + + where id = #{id} + + + + delete from sys_datasource where id = #{id} + + + + delete from sys_datasource where id in + + #{id} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmDataMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmDataMapper.xml new file mode 100644 index 000000000..7bed7cbcd --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmDataMapper.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + select record_alarm_data.objId, + record_alarm_data.monitor_id, + case when m.monitor_name is null then cdi.collect_device_name else m.monitor_name end monitor_name, + record_alarm_data.collect_device_id,collect_time,alarm_type,alarmStatus, + alarmData,operation_name,operation_time,cause,record_alarm_data.create_by,record_alarm_data.create_time, + record_alarm_data.update_by,record_alarm_data.update_time,notify_user, + record_alarm_data.dept_id,record_alarm_data.user_id + from record_alarm_data + left join base_monitor_info m on m.monitor_id = record_alarm_data.monitor_id + left join base_collect_device_info cdi on cdi.collect_device_id = record_alarm_data.collect_device_id + + + + + + + + insert into record_alarm_data + + monitor_id, + collect_device_id, + collect_time, + alarm_type, + alarmStatus, + alarmData, + operation_name, + operation_time, + cause, + create_by, + create_time, + update_by, + update_time, + notify_user, + dept_id, + user_id, + + + #{monitorId}, + #{collectDeviceId}, + #{collectTime}, + #{alarmType}, + #{alarmStatus}, + #{alarmData}, + #{operationName}, + #{operationTime}, + #{cause}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{notifyUser}, + #{deptId}, + #{userId}, + + + + + update record_alarm_data + + monitor_id = #{monitorId}, + collect_device_id = #{collectDeviceId}, + collect_time = #{collectTime}, + alarm_type = #{alarmType}, + alarmStatus = #{alarmStatus}, + alarmData = #{alarmData}, + operation_name = #{operationName}, + operation_time = #{operationTime}, + cause = #{cause}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + notify_user = #{notifyUser}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objId = #{objId} + + + + delete from record_alarm_data where objId = #{objId} + + + + delete from record_alarm_data where objId in + + #{objId} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmRuleMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmRuleMapper.xml new file mode 100644 index 000000000..12aa75c33 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordAlarmRuleMapper.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + select objId, rule_id, rule_name, monitor_id, collect_time, energy_type, trigger_rule, trigger_number, time_range, device_offline_time, notify_user, cause, create_by, create_time, update_by, update_time, dept_id, user_id from record_alarm_rule + + + + + + + + insert into record_alarm_rule + + rule_id, + rule_name, + monitor_id, + collect_time, + energy_type, + trigger_rule, + trigger_number, + time_range, + device_offline_time, + notify_user, + cause, + create_by, + create_time, + update_by, + update_time, + dept_id, + user_id, + + + #{ruleId}, + #{ruleName}, + #{monitorId}, + #{collectTime}, + #{energyType}, + #{triggerRule}, + #{triggerNumber}, + #{timeRange}, + #{deviceOfflineTime}, + #{notifyUser}, + #{cause}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{deptId}, + #{userId}, + + + + + update record_alarm_rule + + rule_id = #{ruleId}, + rule_name = #{ruleName}, + monitor_id = #{monitorId}, + collect_time = #{collectTime}, + energy_type = #{energyType}, + trigger_rule = #{triggerRule}, + trigger_number = #{triggerNumber}, + time_range = #{timeRange}, + device_offline_time = #{deviceOfflineTime}, + notify_user = #{notifyUser}, + cause = #{cause}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objId = #{objId} + + + + delete from record_alarm_rule where objId = #{objId} + + + + delete from record_alarm_rule where objId in + + #{objId} + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordDnbInstantMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordDnbInstantMapper.xml new file mode 100644 index 000000000..3bfad15ad --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordDnbInstantMapper.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_dnb_instant.objid, record_dnb_instant.monitor_id,m.monitor_name,m.monitor_addr address, collect_time, vA, vB, vC, iA, iB, iC, record_time, glys, + zxyg, active_power, reactive_power, consumption, collect_type, record_dnb_instant.dept_id, record_dnb_instant.user_id from record_dnb_instant + left join base_monitor_info m on m.monitor_id = record_dnb_instant.monitor_id + + + + + + + + + + + + insert into record_dnb_instant + + monitor_id, + collect_time, + vA, + vB, + vC, + iA, + iB, + iC, + record_time, + glys, + zxyg, + active_power, + reactive_power, + consumption, + collect_type, + dept_id, + user_id, + + + #{monitorId}, + #{collectTime}, + #{vA}, + #{vB}, + #{vC}, + #{iA}, + #{iB}, + #{iC}, + #{recordTime}, + #{glys}, + #{zxyg}, + #{activePower}, + #{reactivePower}, + #{consumption}, + #{collectType}, + #{deptId}, + #{userId}, + + + + + update record_dnb_instant + + monitor_id = #{monitorId}, + collect_time = #{collectTime}, + vA = #{vA}, + vB = #{vB}, + vC = #{vC}, + iA = #{iA}, + iB = #{iB}, + iC = #{iC}, + record_time = #{recordTime}, + glys = #{glys}, + zxyg = #{zxyg}, + active_power = #{activePower}, + reactive_power = #{reactivePower}, + consumption = #{consumption}, + collect_type = #{collectType}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objid = #{objid} + + + + delete from record_dnb_instant where objid = #{objid} + + + + delete from record_dnb_instant where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/record/RecordWaterInstantMapper.xml b/op-modules/op-energy/src/main/resources/mapper/record/RecordWaterInstantMapper.xml new file mode 100644 index 000000000..eaecb597d --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/record/RecordWaterInstantMapper.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + select record_water_instant.objid, record_water_instant.monitor_id,m.monitor_name, collect_time, + flux_flow, water_flow, record_time, collect_type, record_water_instant.dept_id, record_water_instant.user_id from record_water_instant + left join base_monitor_info m on m.monitor_id = record_water_instant.monitor_id + + + + + + + + + + + + insert into record_water_instant + + objid, + monitor_id, + collect_time, + flux_flow, + water_flow, + record_time, + collect_type, + dept_id, + user_id, + + + #{objid}, + #{monitorId}, + #{collectTime}, + #{fluxFlow}, + #{waterFlow}, + #{recordTime}, + #{collectType}, + #{deptId}, + #{userId}, + + + + + update record_water_instant + + monitor_id = #{monitorId}, + collect_time = #{collectTime}, + flux_flow = #{fluxFlow}, + water_flow = #{waterFlow}, + record_time = #{recordTime}, + collect_type = #{collectType}, + dept_id = #{deptId}, + user_id = #{userId}, + + where objid = #{objid} + + + + delete from record_water_instant where objid = #{objid} + + + + delete from record_water_instant where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml new file mode 100644 index 000000000..e80f8f889 --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointDnbMapper.xml @@ -0,0 +1,322 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select report_point_dnb.objid, report_point_dnb.dept_id, dept_name, report_point_dnb.monitor_id,m.monitor_name, + p_monitor_id, m.monitor_addr address, expend, price, + point_time, begin_time, end_time, record_time, update_flag, meter_value, + report_point_dnb.update_by, report_point_dnb.update_time, collect_type,report_point_dnb. user_id from report_point_dnb + left join base_monitor_info m on m.monitor_id = report_point_dnb.monitor_id + + + + + + + + + + + + + + + insert into report_point_dnb + + objid, + dept_id, + dept_name, + monitor_id, + monitor_name, + p_monitor_id, + address, + expend, + price, + point_time, + begin_time, + end_time, + record_time, + update_flag, + meter_value, + update_by, + update_time, + collect_type, + user_id, + + + #{objid}, + #{deptId}, + #{deptName}, + #{monitorId}, + #{monitorName}, + #{pMonitorId}, + #{address}, + #{expend}, + #{price}, + #{pointTime}, + #{beginTime}, + #{endTime}, + #{recordTime}, + #{updateFlag}, + #{meterValue}, + #{updateBy}, + #{updateTime}, + #{collectType}, + #{userId}, + + + + + update report_point_dnb + + dept_id = #{deptId}, + dept_name = #{deptName}, + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + p_monitor_id = #{pMonitorId}, + address = #{address}, + expend = #{expend}, + price = #{price}, + point_time = #{pointTime}, + begin_time = #{beginTime}, + end_time = #{endTime}, + record_time = #{recordTime}, + update_flag = #{updateFlag}, + meter_value = #{meterValue}, + update_by = #{updateBy}, + update_time = #{updateTime}, + collect_type = #{collectType}, + user_id = #{userId}, + + where objid = #{objid} + + + + delete from report_point_dnb where objid = #{objid} + + + + delete from report_point_dnb where objid in + + #{objid} + + + + diff --git a/op-modules/op-energy/src/main/resources/mapper/report/ReportPointWaterMapper.xml b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointWaterMapper.xml new file mode 100644 index 000000000..5098eb57c --- /dev/null +++ b/op-modules/op-energy/src/main/resources/mapper/report/ReportPointWaterMapper.xml @@ -0,0 +1,336 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select report_point_water.objid, report_point_water.monitor_id,m.monitor_name, report_point_water.monitor_name, p_monitor_id, address, expend, + price, point_time, begin_time, end_time, record_time, update_flag, + meter_value, operation_name, operation_time, collect_type, + report_point_water.dept_id, dept_name, report_point_water.user_id, report_point_water.create_by, + report_point_water.create_time, report_point_water.update_by, report_point_water.update_time from report_point_water + left join base_monitor_info m on m.monitor_id = report_point_water.monitor_id + + + + + + + + + + + + insert into report_point_water + + objid, + monitor_id, + monitor_name, + p_monitor_id, + address, + expend, + price, + point_time, + begin_time, + end_time, + record_time, + update_flag, + meter_value, + operation_name, + operation_time, + collect_type, + dept_id, + dept_name, + user_id, + create_by, + create_time, + update_by, + update_time, + + + #{objid}, + #{monitorId}, + #{monitorName}, + #{pMonitorId}, + #{address}, + #{expend}, + #{price}, + #{pointTime}, + #{beginTime}, + #{endTime}, + #{recordTime}, + #{updateFlag}, + #{meterValue}, + #{operationName}, + #{operationTime}, + #{collectType}, + #{deptId}, + #{deptName}, + #{userId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update report_point_water + + monitor_id = #{monitorId}, + monitor_name = #{monitorName}, + p_monitor_id = #{pMonitorId}, + address = #{address}, + expend = #{expend}, + price = #{price}, + point_time = #{pointTime}, + begin_time = #{beginTime}, + end_time = #{endTime}, + record_time = #{recordTime}, + update_flag = #{updateFlag}, + meter_value = #{meterValue}, + operation_name = #{operationName}, + operation_time = #{operationTime}, + collect_type = #{collectType}, + dept_id = #{deptId}, + dept_name = #{deptName}, + user_id = #{userId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where objid = #{objid} + + + + delete from report_point_water where objid = #{objid} + + + + delete from report_point_water where objid in + + #{objid} + + + + diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index 79c5d44ca..bd5ff7f94 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -53,7 +53,7 @@ public class RyTask { remoteSapService.shopOrderSync(sapProOrder); } - /**每天22点执行 + /**每天22点执行(废弃) * 理论今天16点出明天的领料单 * 0 00 22 * * ? */ diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java index 5571d0182..bdd116a7f 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesReportWorkController.java @@ -57,15 +57,15 @@ public class MesReportWorkController extends BaseController { @GetMapping("/list") public TableDataInfo list(MesReportWork mesReportWork) { startPage(); - //默认时间范围T 00:00:00~T+1 00:00:00 - if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ - mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start - LocalDate date = LocalDate.now(); - LocalDate dateEnd = date.plusDays(1); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; - mesReportWork.setCreateTimeEnd(dateEndStr);//end - } +// //默认时间范围T 00:00:00~T+1 00:00:00 +// if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ +// mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start +// LocalDate date = LocalDate.now(); +// LocalDate dateEnd = date.plusDays(1); +// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; +// mesReportWork.setCreateTimeEnd(dateEndStr);//end +// } List list = mesReportWorkService.selectMesReportWorkList(mesReportWork); return getDataTable(list); } @@ -77,15 +77,15 @@ public class MesReportWorkController extends BaseController { //@Log(title = "报工报表", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, MesReportWork mesReportWork) { - //默认时间范围T 00:00:00~T+1 00:00:00 - if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ - mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start - LocalDate date = LocalDate.now(); - LocalDate dateEnd = date.plusDays(1); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; - mesReportWork.setCreateTimeEnd(dateEndStr);//end - } +// //默认时间范围T 00:00:00~T+1 00:00:00 +// if(StringUtils.isEmpty(mesReportWork.getCreateTimeStart())){ +// mesReportWork.setCreateTimeStart(DateUtils.getDate()+" 00:00:00");//start +// LocalDate date = LocalDate.now(); +// LocalDate dateEnd = date.plusDays(1); +// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); +// String dateEndStr = dtf.format(dateEnd)+" 00:00:00"; +// mesReportWork.setCreateTimeEnd(dateEndStr);//end +// } List list = mesReportWorkService.selectMesReportWorkList(mesReportWork); ExcelUtil util = new ExcelUtil(MesReportWork.class); util.exportExcel(response, list, "报工报表数据"); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index 74694cd0d..00ef2696c 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -108,4 +108,6 @@ public interface MesReportWorkMapper { List getMesListEquip(EquEquipmentDTO qo); List getBatchList(ProOrderWorkorder proOrderWorkorder); + + List getSapWorkOrder(String workorderCode); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesPrepareService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesPrepareService.java index 334c839c3..35476916d 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesPrepareService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesPrepareService.java @@ -60,6 +60,7 @@ public interface IMesPrepareService { */ public int deleteMesPrepareByPrepareId(String prepareId); + /**废弃**/ public R getMesPrepare(); public R reportWorkTask(); 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 116f6026a..435f3d3a8 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 @@ -9,13 +9,11 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.bean.BeanUtils; import com.op.common.core.utils.http.HttpUtils; import com.op.common.core.utils.uuid.IdUtils; -import com.op.mes.domain.BufferInfoParam; -import com.op.mes.domain.MesReportWork; -import com.op.mes.domain.MesShift; -import com.op.mes.domain.ProOrderWorkorder; +import com.op.mes.domain.*; import com.op.mes.domain.buffer.JsonRootBean; import com.op.mes.domain.dto.LGInfoDto; import com.op.mes.mapper.MesMapper; +import com.op.mes.mapper.MesReportWorkConsumeMapper; import com.op.mes.mapper.MesReportWorkMapper; import com.op.mes.mapper.ProRfidProcessDetailMapper; import com.op.mes.service.IWCSInterfaceService; @@ -28,6 +26,7 @@ import com.op.system.api.domain.dto.BoardDTO; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDataDTO; import com.op.system.api.domain.mes.ProRfidProcessDetail; +import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.SapRFW; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; @@ -69,6 +68,9 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { @Autowired private RemoteSapService remoteSapService; + @Autowired + private MesReportWorkConsumeMapper mesReportWorkConsumeMapper; + /**下一工序机台集合获取 * JSON * { @@ -296,7 +298,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { SapRFW sapRFW = new SapRFW(); sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.new lt_gs();//生产订单报工工时修改 + SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 ltgs.setConf_activity1(work.getSac1());//人工 ltgs.setConf_activity2(work.getSac2()); ltgs.setConf_activity3(work.getSac3());//机器 @@ -304,20 +306,28 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { ltgs.setConf_activity5(work.getSac5());//折旧 ltgs.setConf_activity6(work.getSac6()); sapRFW.setLt_gs(ltgs); - SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改 - lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; - lthw.setMaterial(work.getProcessCode()); - sapRFW.setLt_hw(lthw); - //添加调用sap日志 - SysSapLog sysSapLog = new SysSapLog(); - sysSapLog.setId(IdUtils.fastSimpleUUID()); - sysSapLog.setMesssge(sapRFW.toString()); - sysSapLog.setMethod("reportWork"); - sysSapLog.setReqcode("请求"); - sysSapLog.setCreateTime(DateUtils.getNowDate()); - mesMapper.addSapLog(sysSapLog); + List lt_hwList =new ArrayList<>(); + logger.info(work.getWorkorderCodeSap()+"母sap工单报工:报工数量"+sapRFW.getGamng()); + MesReportWorkConsume consumeqo = new MesReportWorkConsume(); + consumeqo.setWorkorderCode(work.getWorkorderCode()); + List consumes = mesReportWorkConsumeMapper.selectMesReportWorkConsumeList(consumeqo); + if(!CollectionUtils.isEmpty(consumes)){ + for(MesReportWorkConsume consume:consumes){ + logger.info(work.getWorkorderCodeSap()+"母sap工单报工:【原料损耗】"+ + consume.getMaterialCode()+"|"+consume.getQuantity()); + SapRFW.lt_hw lthw = sapRFW.new lt_hw();//MES生产订单报工货物移动修改 + lthw.setEntry_qnt(consume.getQuantity()+"");//数量 + lthw.setMaterial(consume.getMaterialCode());//物料编码 + lt_hwList.add(lthw); + } + }else{ + logger.info(work.getWorkorderCodeSap()+"母sap工单报工:工单"+work.getWorkorderCode()+"mes_report_work_consume没有数据"); + return R.fail("mes_report_work_consume没有数据"); + } + sapRFW.setLt_hwList(lt_hwList); R r = remoteSapService.sapRFWOrder(sapRFW); + logger.info(work.getWorkorderCodeSap()+"母sap工单报工结果:"+r.getCode()+","+r.getData()+","+r.getMsg()); //上传成功,更改mes_report_work状态 if (r.getCode() == 200) { work.setUploadStatus("1"); @@ -334,12 +344,25 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { || "1".equals(work.getEndReport())//最终报工标识 ){ + logger.info("工单请求关闭:调用remoteSapService.sapCloseOrder,参数:"+work.getWorkorderCodeSap()); //工单完成,关闭工单 - remoteSapService.sapCloseOrder(work.getWorkorderCodeSap()); + List sapWorkOrders = mesReportWorkMapper.getSapWorkOrder(work.getWorkorderCode());//根据belong_work_order找到所有要关闭的虚拟工单 + //关闭母子订单//订单的订单编码 + SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery(); + sapCloseOrderQuery.setLeadOrder(sapWorkOrders.get(0)); + sapCloseOrderQuery.setOrder(sapWorkOrders.get(1)); + R closeR = remoteSapService.sapCloseOrder(sapCloseOrderQuery); + logger.info(work.getWorkorderCodeSap()+"报工后关闭母子工单"+sapCloseOrderQuery.getLeadOrder()+":"+ + sapCloseOrderQuery.getOrder()+":"+ + closeR.getCode()+","+ + closeR.getMsg()+","+ + closeR.getData()); + work.setStatus("w3"); work.setUpdateTime(DateUtils.getNowDate()); - //pro_work_order status->w4报工 + //pro_work_order status->w3报工--belong_work_order mesReportWorkMapper.updateWorkOrderStatus(work); + logger.info("工单"+work.getWorkorderCodeSap()+"关闭成功"); } return R.ok(); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java index a4d034cdd..db84819b5 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java @@ -140,9 +140,11 @@ public class MesPrepareServiceImpl implements IMesPrepareService { new LinkedBlockingQueue()); try { dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++开始++++++++++"); - Runnable run = () -> getMesPrepareByFactory(dateSource.get("poolName")); - executorService.execute(run); + if(!"ds_999".equals(dateSource.get("poolName"))){ + logger.info("++++++++++++" + dateSource.get("poolName") + "++++开始++++++++++"); + Runnable run = () -> getMesPrepareByFactory(dateSource.get("poolName")); + executorService.execute(run); + } }); } catch (Exception e) { logger.error("service == deviceOfflineTimingTask == exception", e); @@ -156,67 +158,63 @@ public class MesPrepareServiceImpl implements IMesPrepareService { } public void getMesPrepareByFactory(String poolName) { - DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key -// List list = sapMaterialPreparationList.stream() -// .filter(a->a.getWERKS().equals(poolName)) -// .collect(Collectors.toList()); - - //获取T+1天的所有母工单 - MesPrepare qo = new MesPrepare(); - Calendar cal = Calendar.getInstance(); - cal.add(Calendar.DATE, 1);//这里改为1 - Date time = cal.getTime(); - qo.setDayStr(new SimpleDateFormat("yyyy-MM-dd").format(time)); - List parents = mesPrepareMapper.getParentWorkOrderT1(qo); - if (CollectionUtils.isEmpty(parents)) { - System.out.println("T+1无母工单数据"); - } - for (MesPrepare mesPrepare : parents) { - List sapMaterialPreparationList = remoteSapService.materialPreparation(mesPrepare.getWorkorderCodeSap()).getData(); - if (CollectionUtils.isEmpty(sapMaterialPreparationList)) { - System.out.println("sap无领料单数据"); - } - //取出各领料单 - Set orderCodes = sapMaterialPreparationList.stream().map(SapMaterialPreparation::getAUFNR).collect(Collectors.toSet()); - for (String orderCode : orderCodes) { - /**mes_prepare**/ - String mesPrepareId = IdUtils.fastSimpleUUID(); - MesPrepare mesPrepare0 = new MesPrepare(); - mesPrepare0.setPrepareId(mesPrepareId); - mesPrepare0.setWorkorderCode(orderCode);//工单(子) - mesPrepare0.setCreateTime(DateUtils.getNowDate()); - mesPrepare0.setCreateBy(SecurityUtils.getUsername()); - mesPrepare0.setStatus("L0");//默认待确认 - mesPrepareMapper.insertMesPrepare(mesPrepare0); - /**mes_prepare_detail**/ - List details = new ArrayList<>(); -// List listdetails = list.stream() -// .filter(a->a.getAUFNR().equals(orderCode)) -// .collect(Collectors.toList()); - MesPrepareDetail detail = null; - Date createDate = DateUtils.getNowDate(); - for (SapMaterialPreparation sap : sapMaterialPreparationList) { - detail = new MesPrepareDetail(); - detail.setPrepareId(mesPrepareId); - detail.setRecordId(IdUtils.fastSimpleUUID()); - detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号 - detail.setMaterialCode(sap.getMATNR());//物料号 - detail.setMaterailName(sap.getMAKTX());//物料描述(短文本) - detail.setFactoryCode(sap.getWERKS());//工厂 - detail.setLocator(sap.getLGORT());//库存地点 - detail.setNeedDate(sap.getBDTER());//组件的需求日期 - detail.setQuantity(sap.getBDMNG());////需求量 - detail.setFundQuanlity(sap.getZQLSL());//欠料数量 - detail.setUnit(sap.getMEINS());//基本计量单位 - detail.setRecoil(sap.getRGEKZ());//反冲标识 - detail.setBuyFlag(sap.getDBSKZ());//直接采购标识 - detail.setCreateBy(SecurityUtils.getUsername()); - detail.setCreateTime(createDate); - details.add(detail); - } - mesPrepareDetailMapper.insertMesPrepareDetails(details); - } - } +// DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key +// //获取T+1天的所有母工单 +// MesPrepare qo = new MesPrepare(); +// Calendar cal = Calendar.getInstance(); +// cal.add(Calendar.DATE, 1);//这里改为1 +// Date time = cal.getTime(); +// qo.setDayStr(new SimpleDateFormat("yyyy-MM-dd").format(time)); +// List parents = mesPrepareMapper.getParentWorkOrderT1(qo); +// if (CollectionUtils.isEmpty(parents)) { +// System.out.println("T+1无母工单数据"); +// } +// for (MesPrepare mesPrepare : parents) { +// List sapMaterialPreparationList = remoteSapService.materialPreparation(mesPrepare.getWorkorderCodeSap()).getData(); +// if (CollectionUtils.isEmpty(sapMaterialPreparationList)) { +// System.out.println("sap无领料单数据"); +// } +// //取出各领料单 +// Set orderCodes = sapMaterialPreparationList.stream().map(SapMaterialPreparation::getAUFNR).collect(Collectors.toSet()); +// for (String orderCode : orderCodes) { +// /**mes_prepare**/ +// String mesPrepareId = IdUtils.fastSimpleUUID(); +// MesPrepare mesPrepare0 = new MesPrepare(); +// mesPrepare0.setPrepareId(mesPrepareId); +// mesPrepare0.setWorkorderCode(orderCode);//工单(子) +// mesPrepare0.setCreateTime(DateUtils.getNowDate()); +// mesPrepare0.setCreateBy(SecurityUtils.getUsername()); +// mesPrepare0.setStatus("L0");//默认待确认 +// mesPrepareMapper.insertMesPrepare(mesPrepare0); +// /**mes_prepare_detail**/ +// List details = new ArrayList<>(); +//// List listdetails = list.stream() +//// .filter(a->a.getAUFNR().equals(orderCode)) +//// .collect(Collectors.toList()); +// MesPrepareDetail detail = null; +// Date createDate = DateUtils.getNowDate(); +// for (SapMaterialPreparation sap : sapMaterialPreparationList) { +// detail = new MesPrepareDetail(); +// detail.setPrepareId(mesPrepareId); +// detail.setRecordId(IdUtils.fastSimpleUUID()); +// detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号 +// detail.setMaterialCode(sap.getMATNR());//物料号 +// detail.setMaterailName(sap.getMAKTX());//物料描述(短文本) +// detail.setFactoryCode(sap.getWERKS());//工厂 +// detail.setLocator(sap.getLGORT());//库存地点 +// detail.setNeedDate(sap.getBDTER());//组件的需求日期 +// detail.setQuantity(sap.getBDMNG());////需求量 +// detail.setFundQuanlity(sap.getZQLSL());//欠料数量 +// detail.setUnit(sap.getMEINS());//基本计量单位 +// detail.setRecoil(sap.getRGEKZ());//反冲标识 +// detail.setBuyFlag(sap.getDBSKZ());//直接采购标识 +// detail.setCreateBy(SecurityUtils.getUsername()); +// detail.setCreateTime(createDate); +// details.add(detail); +// } +// mesPrepareDetailMapper.insertMesPrepareDetails(details); +// } +// } } @@ -250,40 +248,40 @@ public class MesPrepareServiceImpl implements IMesPrepareService { //报工 public void reportWorkByFactory(String poolName) { MesReportWork mesReportWork = new MesReportWork(); - mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 - mesReportWork.setProdType("prod"); - List reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork); - for(MesReportWork work:reportWorks) { - SapRFW sapRFW = new SapRFW(); - sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 - sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 - SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 - ltgs.setConf_activity1(work.getSac1());//人工 - ltgs.setConf_activity2(work.getSac2()); - ltgs.setConf_activity3(work.getSac3()); - ltgs.setConf_activity4(work.getSac4()); - ltgs.setConf_activity5(work.getSac5()); - ltgs.setConf_activity6(work.getSac6()); - SapRFW.lt_hw lthw = sapRFW.getLt_hw();//MES生产订单报工货物移动修改 - lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; - lthw.setMaterial(work.getProcessCode()); - R r = remoteSapService.sapRFWOrder(sapRFW); - //上传成功,更改mes_report_work状态 - if (r.getCode() == 200) { - work.setUploadStatus("1"); - } else { - work.setUploadStatus("2"); - work.setUploadMsg(r.getMsg()); - } - work.setUploadTime(DateUtils.getNowDate()); - mesReportWorkMapper.updateSyncSapStatus(work); - //关闭订单 - remoteSapService.sapCloseOrder(work.getOrderCode()); - //pro_work_order status->w4报工 - work.setStatus("w4"); - work.setUpdateTime(DateUtils.getNowDate()); - mesReportWorkMapper.updateWorkOrderStatus(work); - } +// mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 +// mesReportWork.setProdType("prod"); +// List reportWorks = mesReportWorkMapper.getReportWorkList(mesReportWork); +// for(MesReportWork work:reportWorks) { +// SapRFW sapRFW = new SapRFW(); +// sapRFW.setAufnr(work.getWorkorderCodeSap());//虚拟工单号 +// sapRFW.setGamng(work.getQuantityFeedback().toString());//报工数量 +// SapRFW.lt_gs ltgs = sapRFW.getLt_gs();//生产订单报工工时修改 +// ltgs.setConf_activity1(work.getSac1());//人工 +// ltgs.setConf_activity2(work.getSac2()); +// ltgs.setConf_activity3(work.getSac3()); +// ltgs.setConf_activity4(work.getSac4()); +// ltgs.setConf_activity5(work.getSac5()); +// ltgs.setConf_activity6(work.getSac6()); +// SapRFW.lt_hw lthw = sapRFW.getLt_hw();//MES生产订单报工货物移动修改 +// lthw.setEntry_qnt(work.getQuantityFeedback().toString());//TODO; +// lthw.setMaterial(work.getProcessCode()); +// R r = remoteSapService.sapRFWOrder(sapRFW); +// //上传成功,更改mes_report_work状态 +// if (r.getCode() == 200) { +// work.setUploadStatus("1"); +// } else { +// work.setUploadStatus("2"); +// work.setUploadMsg(r.getMsg()); +// } +// work.setUploadTime(DateUtils.getNowDate()); +// mesReportWorkMapper.updateSyncSapStatus(work); +// //关闭订单 +// remoteSapService.sapCloseOrder(work.getOrderCode()); +// //pro_work_order status->w4报工 +// work.setStatus("w4"); +// work.setUpdateTime(DateUtils.getNowDate()); +// mesReportWorkMapper.updateWorkOrderStatus(work); +// } } public static void main(String args[]) { List list = new ArrayList<>(); diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index a4fcf4a93..f6ae8139c 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 @@ -275,18 +275,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_factory where f_type = 'c' + insert into mes_report_work diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/ProRfidProcessDetailMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/ProRfidProcessDetailMapper.xml index 75ec7ae35..bc0901f2b 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/ProRfidProcessDetailMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/ProRfidProcessDetailMapper.xml @@ -73,7 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join pro_process pp on pp.process_id = ppd.next_process_id left join pro_process ppp on ppp.process_id = ppd.now_process_id left join pro_order_workorder pow on pow.workorder_code = ppd.workorder_code - order by ppd.in_time desc + and ppd.workorder_code like concat('%', #{workorderCode}, '%') and rfid like concat('%', #{rfid}, '%') @@ -92,6 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and work_batch_code = #{workBatchCode} and bind_status = #{bindStatus} + order by ppd.in_time desc + + diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java index ef9b4bb96..7955afdb3 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderWorkorderController.java @@ -77,6 +77,18 @@ public class ProOrderWorkorderController extends BaseController { return proOrderWorkorderService.subChangeWorkOrder(splitOrderDTO); } + /** + * 提交修改工单-设备变更接口 + * + * @param splitOrderDTO + * @return + */ + @PostMapping("/subChangeWorkOrderM") + @RequiresPermissions("mes:pro:workorder:edit") + public AjaxResult subChangeWorkOrderM(@RequestBody SplitOrderDTO splitOrderDTO) { + return proOrderWorkorderService.subChangeWorkOrderM(splitOrderDTO); + } + /** * 通过子工单获取批次信息list(父工单批次信息) * diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java index 2f7acc72a..01c5dba55 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java @@ -85,6 +85,15 @@ public class ProOrderWorkorder extends TreeEntity { // TODO 暂时存放线体编码 private String prodLineName; + private String belongWorkOrder; + + public String getBelongWorkOrder() { + return belongWorkOrder; + } + + public void setBelongWorkOrder(String belongWorkOrder) { + this.belongWorkOrder = belongWorkOrder; + } public String getProdLineName() { return prodLineName; diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index 2fe38f039..16a3d725c 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -100,7 +100,7 @@ public interface ProOrderWorkorderMapper { ProOrderWorkorder selectWorkOrderByCode(String workorderCode); /**下发生产订单**/ - public int downProOrderWorkorderByWorkorderIds(String[] workorderIds); + public int downWorkorders(String[] workorderIds); public List getWorkOrderByIds(String[] workorderIds); @@ -154,5 +154,17 @@ public interface ProOrderWorkorderMapper { void deleteProOrderWorkorderByOrderIds(String[] orderIds); List getBatchInfo(String workorderCode); + + ProOrderWorkorder getWorkOrderByCode(String workorderCode); + + void updateProOrderWorkorderM(ProOrderWorkorder proWorkOrder); + + void insertMesPrepare(MesPrepareDTO mesPrepare0); + + int insertMesPrepareDetails(@Param("list") List details); + + int updateWhiteWorkOrder(ProOrderWorkorder whiteOrder); + + ProOrderWorkorder getPWorkOrder(ProOrderWorkorder whiteOrder); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java index 8c7de2c9c..968ef5420 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderWorkorderService.java @@ -120,4 +120,6 @@ public interface IProOrderWorkorderService { * @param whiteWorkOrder */ void deleteWhiteWorkorderByWorkOrder(List whiteWorkOrder); + + AjaxResult subChangeWorkOrderM(SplitOrderDTO splitOrderDTO); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index d7191c569..fc41f382c 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.op.plan.service.impl; +import java.math.BigDecimal; import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlockingQueue; @@ -265,6 +266,7 @@ public class ProOrderServiceImpl implements IProOrderService { // 获取单位换算值 Long conver = 1L; + String belongWorkOrder = "0"; while (run) { // 先进行当前订单拆分操作 // 1.设置工单信息,并更新订单信息至数据库 @@ -275,6 +277,25 @@ public class ProOrderServiceImpl implements IProOrderService { workOrder.setParentOrder(parentOrder.toString()); workOrder.setSortNo(splitOrderDTO.getSortNo()); + if("0".equals(workOrder.getParentOrder())){ + //20231127,加入belongWorkOrder概念 + belongWorkOrder = workOrder.getWorkorderCode(); + + //推送sap订单更新信息 + SapShopOrderQuery sapChange = new SapShopOrderQuery(); + sapChange.setAufnr(proOrder.getOrderCode());//母订单号 + BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity()) + .subtract(new BigDecimal(proOrder.getQuantitySplit())); + sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量 + logger.info("母订单"+proOrder.getOrderCode()+ + "订单数量变更:修改前"+proOrder.getQuantity()+","+ + ",已拆数量"+proOrder.getQuantitySplit()+","+ + "给sap汇报数量"+newSapQuantityNum.toString()); + R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 + logger.info("母订单"+proOrder.getOrderCode()+ + "订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg()); + } + workOrder.setBelongWorkOrder(belongWorkOrder); // 将工单信息更新至数据库 proOrderWorkorderMapper.insertProOrderWorkorder(workOrder); @@ -501,9 +522,6 @@ public class ProOrderServiceImpl implements IProOrderService { failOrder = proOrder.getOrderCode(); logger.info("=======订单"+failOrder+"同步失败"); } -// else {//关闭订单 -// remoteSapService.sapCloseOrder(proOrder.getOrderCode()); -// } } return failOrder; } @@ -565,9 +583,9 @@ public class ProOrderServiceImpl implements IProOrderService { if (checkResult.isSuccess()) { String info = syncImportFunc(orderList); return success("信息导入完成。其中导入失败订单:"+info); + }else{ + return checkResult; } - // 校验失败 - return checkResult; } @Override diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 3509a1c85..9a00d021d 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -2,6 +2,7 @@ package com.op.plan.service.impl; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.domain.R; import com.op.common.core.exception.ServiceException; @@ -20,8 +21,12 @@ import com.op.system.api.RemoteSapService; import com.op.system.api.domain.SysSapLog; import com.op.system.api.domain.dto.MesPrepareDTO; import com.op.system.api.domain.dto.MesPrepareDetailDTO; +import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.SapCreateOrder; +import com.op.system.api.domain.sap.SapMaterialPreparation; +import com.op.system.api.domain.sap.SapShopOrderQuery; import net.bytebuddy.matcher.FilterableList; +import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,6 +38,8 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -219,8 +226,6 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { @DS("#header.poolName") @Transactional(rollbackFor = Exception.class) public int downProOrderWorkorderByWorkorderIds(String[] workorderIds) { - List ids = new ArrayList<>(); - List psorders = new ArrayList<>();//父级工单 List sapList = null;//回传给sap的工单 //如果是白坯生成备料单 for (String workorderId : workorderIds) { @@ -240,7 +245,6 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { mesPrepare.setStatus("L0");//待确认 proOrderWorkorderMapper.createPrepare(mesPrepare); //备(领)料明细 - List details = new ArrayList<>(); MesPrepareDetailDTO detail = new MesPrepareDetailDTO(); detail.setCreateTime(DateUtils.getNowDate()); @@ -256,11 +260,42 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { details.add(detail); proOrderWorkorderMapper.createPrepareDetails(details); - ids.add(workorderId); }else{ //无湿料计划,下发不了 } - } else if (whiteOrder != null && !"white".equals(whiteOrder.getProdType())) {//成品的母工单回传sap + + whiteOrder.setUpdateBy(SecurityUtils.getUsername()); + whiteOrder.setUpdateTime(DateUtils.getNowDate()); + proOrderWorkorderMapper.updateWhiteWorkOrder(whiteOrder); + } else if (whiteOrder != null && !"white".equals(whiteOrder.getProdType())) { + List wids = new ArrayList<>();//一起下发用 + List wcodes = new ArrayList<>();//领料单用 + List ordercodes = new ArrayList<>();//关闭订单用 + + wids.add(whiteOrder.getWorkorderId()); + wcodes.add(whiteOrder.getWorkorderCode()); + ordercodes.add(whiteOrder.getOrderCode()); + Boolean isTop = true; + //成品的母工单//查上一级工单 + while(isTop) { + //查上一级工单 + whiteOrder.setWorkorderCode(whiteOrder.getParentOrder()); + ProOrderWorkorder pWorkOrder = proOrderWorkorderMapper.getPWorkOrder(whiteOrder); + if(pWorkOrder != null ){ + wids.add(pWorkOrder.getWorkorderId()); + wcodes.add(pWorkOrder.getWorkorderCode()); + ordercodes.add(pWorkOrder.getOrderCode()); + } + if("0".equals(pWorkOrder.getParentOrder())){ + BeanUtils.copyProperties(pWorkOrder,whiteOrder); + isTop = false; + } + } + //顺序母子 + Collections.reverse(wids); + Collections.reverse(wcodes); + Collections.reverse(ordercodes); + sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); sap.setWerks(whiteOrder.getFactoryCode());//工厂编码 @@ -272,82 +307,63 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sapList.add(sap); //添加调用sap日志 - SysSapLog sysSapLog = new SysSapLog(); - sysSapLog.setId(IdUtils.fastSimpleUUID()); - sysSapLog.setMesssge(sapList.toString()); - sysSapLog.setMethod("downProOrderWorkorderByWorkorderIds"); - sysSapLog.setReqcode("请求"); - sysSapLog.setCreateTime(DateUtils.getNowDate()); - proOrderMapper.addSapLog(sysSapLog); - - R> r = remoteSapService.SapCreateOrder(sapList); +// SysSapLog sysSapLog = new SysSapLog(); +// sysSapLog.setId(IdUtils.fastSimpleUUID()); +// sysSapLog.setMesssge(Arrays.asList(sapList).toString()); +// sysSapLog.setMethod("downProOrderWorkorderByWorkorderIds"); +// sysSapLog.setReqcode("请求"); +// sysSapLog.setCreateTime(DateUtils.getNowDate()); +// proOrderMapper.addSapLog(sysSapLog); + logger.info(whiteOrder.getWorkorderCode()+"sap工单回传sap虚拟工单号开始:"+Arrays.asList(sapList).toString()); + R>> r = remoteSapService.SapCreateOrder(sapList); logger.info("sap工单回传:" + r.getMsg()); if (500 == r.getCode()) { logger.error("sap工单回传:" + r.getMsg()); return 0; } - List returnCodes = r.getData(); + List> returnMaps = r.getData(); + List returnCodes = new ArrayList<>(); + for(Map mapdto:returnMaps){ + returnCodes.add(mapdto.get("LEAD_AUFNR")); + returnCodes.add(mapdto.get("AUFNR")); + } + Date updateTime = DateUtils.getNowDate(); if (!CollectionUtils.isEmpty(returnCodes)) { - for (String sapCode : returnCodes) { + logger.info("sap工单回传sap虚拟工单号结束:" + StringUtils.join(returnCodes, ",")); + //按照母子顺序进行更新 + for (int m=0;m pordes = getListBySonCode(pOrder); - if(!CollectionUtils.isEmpty(pordes)){ - psorders.addAll(pordes); - } - - ids.add(workorderId); - } - } - } - if(!CollectionUtils.isEmpty(ids)){ - String[] idsArray = (String[])ids.toArray(new String[ids.size()]); - List workorders = proOrderWorkorderMapper.getWorkOrderByIds(idsArray); - for (ProOrderWorkorder workorder : workorders) { - //关联工艺 - if (StringUtils.isNotBlank(workorder.getRouteCode())) { - List workDetails = proWorkorderProcessDetailMapper.getWorkOrderDetailsByRouteCode(workorder); - if (!CollectionUtils.isEmpty(workDetails)) { - workDetails.forEach(str -> { - str.setRecordId(IdUtils.fastSimpleUUID()); - str.setWorkorderId(workorder.getWorkorderId()); - str.setStatus("s0");//未执行 - str.setCreateBy(SecurityContextHolder.getUserName()); - str.setCreateTime(DateUtils.getNowDate()); - str.setFactoryCode(workorder.getFactoryCode()); - }); - proWorkorderProcessDetailMapper.addWorkOrderDetails(workDetails); } } +//测试 +// List returnCodes = new ArrayList<>(); +// returnCodes.add("000100305879"); +// returnCodes.add("000100305878"); + + //获取领料单 + this.getMesPrepare(returnCodes,wcodes); + + //关闭母子订单//订单的订单编码 + SapCloseOrderQuery sapCloseOrderQuery = new SapCloseOrderQuery(); + sapCloseOrderQuery.setLeadOrder(ordercodes.get(0)); + sapCloseOrderQuery.setOrder(ordercodes.get(1)); + R closeR= remoteSapService.sapCloseOrder(sapCloseOrderQuery); + logger.info(whiteOrder.getWorkorderCode()+"下发工单后关闭母订单"+sapCloseOrderQuery.getLeadOrder()+":"+ + sapCloseOrderQuery.getOrder()+":"+ + closeR.getCode()+","+ + closeR.getMsg()+","+ + closeR.getData()); + //下达工单 + String[] idsArrayAll = (String[])wids.toArray(new String[wids.size()]); + proOrderWorkorderMapper.downWorkorders(idsArrayAll); } - //下达工单 - if(!CollectionUtils.isEmpty(psorders)){ - List pcodes = psorders.stream().map(e -> e.getOrderCode()).collect(Collectors.toList()); - ids.addAll(pcodes); - } - String[] idsArrayAll = (String[])ids.toArray(new String[ids.size()]); - //下达工单 - return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(idsArrayAll); } - return 0; + return 1; } //子查父递归 @@ -361,45 +377,71 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { return codeList; } - // //获取最低级材料 -// private void getLastChildren(List all, List allChildren , BaseBomComponentDTO bc) { -// List cList = all.stream().filter(item -> item.getCumc().equals(bc.getComponent())) -// .collect(Collectors.toList()); -// if(CollectionUtils.isEmpty(cList)){ -// allChildren.add(bc); -// }else{ -// for(BaseBomComponentDTO bcc : cList){ -// getLastChildren(all, allChildren ,bcc); -// } -// } -// } -// //获取顶级定单的bom组成 -// private List getBomDtos(String workorderId){ -// List bomdtoAdds = new ArrayList<>();//所有数据 -// -// List cumsDtos = new ArrayList<>(); -// BaseBomComponentDTO cumsDto = new BaseBomComponentDTO(); -// ProOrder order = this.getTopOrder(workorderId); -// cumsDto.setCumc(order.getProdCode()); -// cumsDtos.add(cumsDto); -// List bomdtos = proOrderWorkorderMapper.getBomComponents(order,cumsDtos);//最新版本的第一层子 -// bomdtoAdds.addAll(bomdtos); -// Boolean isTrue = true; -// while(isTrue){ -// List bomdtoTop = new ArrayList<>(); -// bomdtos.forEach(e->e.setCumc(e.getComponent())); -// bomdtoTop.addAll(bomdtos); -// List bomdtoSon = proOrderWorkorderMapper.getBomComponents(order,bomdtoTop); -// if(CollectionUtils.isEmpty(bomdtoSon)){ -// isTrue = false; -// }else{ -// bomdtos = bomdtoSon; -// bomdtoAdds.addAll(bomdtoSon); -// } -// } -// -// return bomdtos; -// } + public void getMesPrepare(List sapWorkOrders,List workOrders) { + Date createDate = DateUtils.getNowDate(); + for (int m = 0;m sapMaterialPreparationList = remoteSapService.materialPreparation(sapWorkOrders.get(m)).getData(); + if (CollectionUtils.isEmpty(sapMaterialPreparationList)) { + System.out.println("sap无领料单数据"); + } + //取出各领料单 + String orderCode = sapWorkOrders.get(m); + logger.info("sap虚拟工单码:"+orderCode); + /**mes_prepare**/ + String mesPrepareId = IdUtils.fastSimpleUUID(); + MesPrepareDTO mesPrepare0 = new MesPrepareDTO(); + mesPrepare0.setPrepareId(mesPrepareId); + mesPrepare0.setWorkorderCode(workOrders.get(m)); + mesPrepare0.setWorkorderName(orderCode);//工单(子) + mesPrepare0.setCreateTime(createDate); + mesPrepare0.setCreateBy(SecurityUtils.getUsername()); + mesPrepare0.setStatus("L0");//默认待确认 + proOrderWorkorderMapper.insertMesPrepare(mesPrepare0); + /**mes_prepare_detail**/ + List details = new ArrayList<>(); + + MesPrepareDetailDTO detail = null; + for (SapMaterialPreparation sap : sapMaterialPreparationList) { + detail = new MesPrepareDetailDTO(); + detail.setPrepareId(mesPrepareId); + detail.setRecordId(IdUtils.fastSimpleUUID()); + detail.setAttr1(sap.getRSPOS());//预留/相关需求的项目编号 + detail.setMaterialCode(sap.getMATNR());//物料号 + detail.setMaterailName(sap.getMAKTX());//物料描述(短文本) + detail.setFactoryCode(sap.getWERKS());//工厂 + detail.setLocator(sap.getLGORT());//库存地点 + detail.setNeedDate(sap.getBDTER());//组件的需求日期 + detail.setQuantity(sap.getBDMNG());////需求量 + detail.setFundQuanlity(sap.getZQLSL());//欠料数量 + detail.setUnit(sap.getMEINS());//基本计量单位 + detail.setRecoil(sap.getRGEKZ());//反冲标识 + detail.setBuyFlag(sap.getDBSKZ());//直接采购标识 + detail.setCreateBy(SecurityUtils.getUsername()); + detail.setCreateTime(createDate); + detail.setParentWorkOrder(workOrders.get(0)); + details.add(detail); + logger.info("领料单内容detail:"+sap.getRSPOS()+","+sap.getMATNR()+","+ + sap.getMAKTX()+","+sap.getWERKS()+","+ sap.getLGORT()+","+ + sap.getBDTER()+","+sap.getBDMNG()+","+sap.getZQLSL()+","+ + sap.getMEINS()+","+sap.getRGEKZ()+","+sap.getDBSKZ() + ); + } + proOrderWorkorderMapper.insertMesPrepareDetails(details); + logger.info("获取sap领料单:" + sapWorkOrders.get(m)+"结束"); + } + } + + //根据工单子单编码获取最顶级订单的母单 private ProOrder getTopOrder(String workorderId) { //pro_order_workorder @@ -726,6 +768,23 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { Long conver = 1L; int index = workOrderList.size(); while (run) { + + if(StringUtils.isBlank(proOrder.getParentOrder())){ + //推送sap订单更新信息 + SapShopOrderQuery sapChange = new SapShopOrderQuery(); + sapChange.setAufnr(proOrder.getOrderCode());//母订单号 + BigDecimal newSapQuantityNum = new BigDecimal(proOrder.getQuantity()) + .subtract(new BigDecimal(proOrder.getAtrr1())); + sapChange.setQuantity(newSapQuantityNum.toString());//母订单新数量 + logger.info("母订单"+proOrder.getOrderCode()+ + "订单数量变更:修改前"+proOrder.getQuantity()+","+ + "已拆数量"+proOrder.getAtrr1()+","+ + "给sap汇报数量"+newSapQuantityNum.toString()); + R rSapChange = remoteSapService.shopUpdateSync(sapChange);//sap只能同步指定日期的数据 + logger.info("母订单"+proOrder.getOrderCode()+ + "订单数量变更结果:"+rSapChange.getCode()+","+rSapChange.getMsg()); + } + // 获得对应工单 ProOrderWorkorder proOrderWorkorder = workOrderList.get(--index); // 更新订单 @@ -758,18 +817,11 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { if (splitOrderDTO.getRouteCode() != null) { proOrderWorkorder.setRouteCode(splitOrderDTO.getRouteCode()); } -// // 白坯工单返修-车数 -// if (proOrderWorkorder.getProdType().equals("white")) { -// if (splitOrderDTO.getCarNum() != null) { -// proOrderWorkorder.setCarNum(splitOrderDTO.getCarNum()); -// } -// } proOrderWorkorderMapper.updateProOrderWorkorder(proOrderWorkorder); // 删除工单下对应批次信息 proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderId(proOrderWorkorder.getWorkorderId()); -// System.out.println("这里是workorderCode------------》"+proOrderWorkorder.getWorkorderCode()); // 生成对应批次表 workBatch.setWorkorderId(proOrderWorkorder.getWorkorderId()); @@ -825,13 +877,6 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { if (!(proOrderWorkorder.getStatus().equals("w0") || proOrderWorkorder.getStatus().equals("w1"))) { return error("工单已生产,不可变更!"); } -// // 白坯工单所在湿料计划下发不允许变更 -// if (proOrderWorkorder.getProdType().equals("white")) { -// ProWetMaterialPlan plan = proWetMaterialPlanMapper.selectProWetMaterialPlanByWorkId(proOrderWorkorder.getWorkorderId()); -// if (plan != null) { -// return error("工单所在湿料计划已下发,不允许变更!"); -// } -// } return success(); } @@ -1035,4 +1080,43 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { return workBatch; } + /** + * 提交修改工单设备接口 + * + * @param splitOrderDTO + * @return + */ + @Override + @DS("#header.poolName") + @Transactional + public AjaxResult subChangeWorkOrderM(SplitOrderDTO splitOrderDTO) { + ProOrderWorkorder proWorkOrder = splitOrderDTO.getProOrderWorkorder(); + proWorkOrder.setProdLineCode(JSONArray.toJSONString(splitOrderDTO.getProdLineCodeArray())); + proWorkOrder.setUpdateBy(SecurityUtils.getUsername()); + proWorkOrder.setUpdateTime(DateUtils.getNowDate()); + // 白坯订单变更逻辑 + if (splitOrderDTO.getProOrderWorkorder().getProdType().equals("white")) { + + proOrderWorkorderMapper.updateProOrderWorkorderM(proWorkOrder); + }else{ + proOrderWorkorderMapper.updateProOrderWorkorder(proWorkOrder); + //pro_order_workorder + ProOrderWorkorder topWorkOrder = proOrderWorkorderMapper.getWorkOrderByCode(proWorkOrder.getWorkorderCode()); + while (!"0".equals(topWorkOrder.getParentOrder()) && StringUtils.isNotEmpty(topWorkOrder.getParentOrder())) { + //pro_order_workorder + topWorkOrder = proOrderWorkorderMapper.getWorkOrderByCode(topWorkOrder.getParentOrder()); + proWorkOrder.setWorkorderId(topWorkOrder.getWorkorderId()); + proOrderWorkorderMapper.updateProOrderWorkorderM(proWorkOrder); + } + } + return success("变更成功"); + } + public static void main(String args[]){ + List wcodes =new ArrayList<>(); + wcodes.add("aaa"); + wcodes.add("bbb"); + wcodes.add("ccc"); + Collections.reverse(wcodes); + System.out.println(StringUtils.join(wcodes, ",")); + } } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 57a1c89b2..e49372efb 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -203,6 +203,7 @@ end_flag, car_num, sort_no, + belong_work_order, #{workorderId}, @@ -238,6 +239,7 @@ #{endFlag}, #{carNum}, #{sortNo}, + #{belongWorkOrder}, @@ -353,6 +355,21 @@ from pro_order_workorder_batch where workorder_id = #{workorderId} and del_flag = '0' + + insert into mes_prepare_detail @@ -369,6 +386,90 @@ ) + + insert into mes_prepare + + prepare_id, + workorder_code, + workorder_name, + parent_order, + order_id, + order_code, + product_id, + product_code, + prod_type, + product_name, + product_spc, + wet_detail_plan_id, + product_date, + shift_id, + ancestors, + status, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + material_code, + material_name, + material_spc, + unit, + quantity, + + + #{prepareId}, + #{workorderCode}, + #{workorderName}, + #{parentOrder}, + #{orderId}, + #{orderCode}, + #{productId}, + #{productCode}, + #{prodType}, + #{productName}, + #{productSpc}, + #{wetDetailPlanId}, + #{productDate}, + #{shiftId}, + #{ancestors}, + #{status}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{materialCode}, + #{materialName}, + #{materialSpc}, + #{unit}, + #{quantity}, + + + + INSERT INTO mes_prepare_detail ( + record_id,prepare_id,material_code,material_name,unit, + quantity,create_by,create_time,factory_code,status, + locator,need_date,recoil,fund_quanlity,buy_flag,parent_work_order + )VALUES + + ( + #{d.recordId},#{d.prepareId},#{d.materialCode},#{d.materailName},#{d.unit}, + #{d.quantity},#{d.createBy},#{d.createTime},#{d.factoryCode},#{d.status}, + #{d.locator},#{d.needDate},#{d.recoil},#{d.fundQuanlity},#{d.buyFlag},#{d.parentWorkOrder} + ) + + + update pro_order_workorder @@ -408,12 +509,12 @@ where workorder_id = #{workorderId} - + update pro_order_workorder set status = 'w1' - where workorder_code in - - #{workorderCode} + where workorder_id in + + #{workorderId} and del_flag = '0' @@ -424,6 +525,20 @@ where workorder_code = #{workorderId} and del_flag = '0' + + update pro_order_workorder + + prod_line_code = #{prodLineCode}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where workorder_id = #{workorderId} + + + update pro_order_workorder + set status = 'w1' + where workorder_id = #{workorderId} + update pro_order_workorder 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 f6e875209..361dcc581 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 @@ -7,9 +7,7 @@ import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.DateUtils; import com.op.common.security.utils.SecurityUtils; -import com.op.quality.domain.QcBomComponent; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcSupplier; +import com.op.quality.domain.*; import com.op.system.api.domain.SysRole; import com.op.system.api.domain.SysUser; import org.apache.commons.lang.StringUtils; @@ -25,7 +23,6 @@ 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.QcCheckTaskIncome; import com.op.quality.service.IQcCheckTaskIncomeService; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; @@ -219,4 +216,10 @@ public class QcCheckTaskIncomeController extends BaseController { return toAjax(qcCheckTaskIncomeService.commitCheckResult(qcCheckTaskIncome)); } + /**不良类型**/ + @PutMapping("/getDefectList") + public List getDefectList(@RequestBody QcDefectType qcDefectType) { + return qcCheckTaskIncomeService.getDefectList(qcDefectType); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java index 5d5bcf840..d5c864fdc 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTypeProjectController.java @@ -26,7 +26,7 @@ import com.op.common.core.web.page.TableDataInfo; /** * 物料检验项目维护Controller - * + * * @author Open Platform * @date 2023-10-17 */ @@ -35,8 +35,6 @@ import com.op.common.core.web.page.TableDataInfo; public class QcCheckTypeProjectController extends BaseController { @Autowired private IQcCheckTypeProjectService qcCheckTypeProjectService; - @Autowired - private IQcMaterialGroupService qcMaterialGroupService; /** * 查询物料检验项目维护列表 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcDefectTypeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcDefectTypeController.java new file mode 100644 index 000000000..980096f2f --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcDefectTypeController.java @@ -0,0 +1,92 @@ +package com.op.quality.controller; + +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; + +import com.op.quality.domain.QcDefectType; +import com.op.quality.service.IQcDefectTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 不良类型维护Controller + * + * @author wws + * @date 2023-10-12 + */ +@RestController +@RequestMapping("/defectType") +public class QcDefectTypeController extends BaseController { + @Autowired + private IQcDefectTypeService qcDefectTypeService; + + /** + * 查询不良类型维护列表 + */ + @RequiresPermissions("quality:defectType:list") + @GetMapping("/list") + public TableDataInfo list(QcDefectType qcDefectType) { + startPage(); + List list = qcDefectTypeService.selectQcDefectTypeList(qcDefectType); + return getDataTable(list); + } + + /** + * 导出不良类型维护列表 + */ + @RequiresPermissions("quality:defectType:export") + @Log(title = "不良类型维护", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcDefectType qcDefectType) { + List list = qcDefectTypeService.selectQcDefectTypeList(qcDefectType); + ExcelUtil util = new ExcelUtil(QcDefectType.class); + util.exportExcel(response, list, "不良类型维护数据"); + } + + /** + * 获取不良类型维护详细信息 + */ + @RequiresPermissions("quality:defectType:query") + @GetMapping(value = "/{defectId}") + public AjaxResult getInfo(@PathVariable("defectId") String defectId) { + return success(qcDefectTypeService.selectQcDefectTypeByDefectId(defectId)); + } + + /** + * 新增不良类型维护 + */ + @RequiresPermissions("quality:defectType:add") + @Log(title = "不良类型维护", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcDefectType qcDefectType) { + return qcDefectTypeService.insertQcDefectType(qcDefectType); + } + + /** + * 修改不良类型维护 + */ + @RequiresPermissions("quality:defectType:edit") + @Log(title = "不良类型维护", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcDefectType qcDefectType) { + return qcDefectTypeService.updateQcDefectType(qcDefectType); + } + + /** + * 删除不良类型维护 + */ + @RequiresPermissions("quality:defectType:remove") + @Log(title = "不良类型维护", businessType = BusinessType.DELETE) + @DeleteMapping("/{defectIds}") + public AjaxResult remove(@PathVariable String[] defectIds) { + return toAjax(qcDefectTypeService.deleteQcDefectTypeByDefectIds(defectIds)); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index 71b5a8b18..c863f96fa 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -1,12 +1,18 @@ package com.op.quality.controller; +import java.math.BigDecimal; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.Arrays; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import com.op.common.core.utils.DateUtils; +import com.op.system.api.domain.quality.ChartDTO; +import com.op.system.api.domain.quality.FactoryDto; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -72,18 +78,138 @@ public class QcStaticTableController extends BaseController { * 生产过程质量报表 */ @RequiresPermissions("quality:gcTableProduce:list") - @GetMapping("/getProduceTableList") - public TableDataInfo getProduceList(QcStaticTable qcStaticTable) { - startPage(); - List list = qcStaticTableService.selectQcStaticTableList(qcStaticTable); - return getDataTable(list); + @GetMapping("/getProduceChartData") + public QcStaticTable getProduceChartData(QcStaticTable qcStaticTable) { + QcStaticTable resultdto = new QcStaticTable(); + //默认时间范围T 00:00:00~T+1 00:00:00 + if(StringUtils.isEmpty(qcStaticTable.getYmArrayStart())){ + LocalDate date = LocalDate.now(); + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM"); + String ymStr = dtf.format(date); + qcStaticTable.setYmArrayStart(ymStr); + qcStaticTable.setYmArrayEnd(ymStr); + } + if(StringUtils.isNotBlank(qcStaticTable.getMaterialCode())){ + qcStaticTable.setMaterialCode("'"+qcStaticTable.getMaterialCode().replace(",","','")+"'"); + } + //xAxis; + if(qcStaticTable.getYmArrayStart().equals(qcStaticTable.getYmArrayEnd())){ + /**月内每日**/ + List days = this.getXNames(qcStaticTable.getYmArrayStart()+"-01", + qcStaticTable.getYmArrayEnd()+"-01","ymd"); + resultdto.setxAxis(days); + + qcStaticTable.setDataType("ymd"); + qcStaticTable.setYmArrayStart(days.get(0)); + qcStaticTable.setYmArrayEnd(days.get(days.size()-1)); + }else{ + /**年内各月**/ + List months = this.getXNames(qcStaticTable.getYmArrayStart(),qcStaticTable.getYmArrayEnd(),"ym"); + resultdto.setxAxis(months); + + qcStaticTable.setDataType("ym"); + qcStaticTable.setYmArrayStart(months.get(0)); + qcStaticTable.setYmArrayEnd(months.get(months.size()-1)); + } + + + List serieDTOs = qcStaticTableService.getProduceNames(qcStaticTable); + //legendData + List pnames = serieDTOs.stream().map(u -> u.getMaterialName()).collect(Collectors.toList()); + resultdto.setLegendData(pnames); + + Map seriesdtos= null; + if("ymd".equals(qcStaticTable.getDataType())){//ymd + //code->materialCode+yyyy-mm-dd + seriesdtos= qcStaticTableService.getProduceChartData(qcStaticTable); + }else{//ym + //code->materialCode+yyyy-mm-dd + seriesdtos= qcStaticTableService.getProduceChartDataYM(qcStaticTable); + } + + List seriesChart = new ArrayList<>(); + for(QcStaticTable serieDTO:serieDTOs){ + ChartDTO chartDTO = new ChartDTO(); + chartDTO.setName(serieDTO.getMaterialName()); + chartDTO.setType("line"); + String keyPre = serieDTO.getMaterialCode(); + List datas = new ArrayList<>(); + for(String ymd:resultdto.getxAxis()){ + String key = keyPre+ymd; + QcStaticTable mdata = seriesdtos.get(key); + if(mdata != null){ + BigDecimal defectRate = (mdata.getaNoOkquality().add(mdata.getbNoOkquality()).multiply(new BigDecimal("0.65")) + .add(mdata.getcNoOkquality()).multiply(new BigDecimal(0.35))) + .divide(new BigDecimal(mdata.getSampleQuality())) + .setScale(2, BigDecimal.ROUND_HALF_UP); + datas.add(defectRate.doubleValue()); + }else{ + datas.add(0.00); + } + } + chartDTO.setData(datas); + seriesChart.add(chartDTO); + } + resultdto.setSeries(seriesChart); + + return resultdto; } + + public List getXNames(String startMonth,String endMonth,String type){ + // 返回的日期集合 + List days = new ArrayList(); + DateFormat dateFormat = null; + try { + Calendar tempStart = null; + Calendar tempEnd = null; + if("ymd".equals(type)){ + dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date start = dateFormat.parse(startMonth);//开始 + Date end = dateFormat.parse(endMonth);//结束 + + tempStart = Calendar.getInstance(); + tempStart.setTime(start); + + tempEnd = Calendar.getInstance(); + tempEnd.setTime(end); + tempEnd.add(Calendar.MONTH, 1); + }else{ + dateFormat = new SimpleDateFormat("yyyy-MM"); + Date start = dateFormat.parse(startMonth);//开始 + Date end = dateFormat.parse(endMonth);//结束 + + tempStart = Calendar.getInstance(); + tempStart.setTime(start); + + tempEnd = Calendar.getInstance(); + tempEnd.setTime(end); + tempEnd.add(Calendar.MONTH, 1); + } + + while (tempStart.before(tempEnd)) { + days.add(dateFormat.format(tempStart.getTime())); + if("ymd".equals(type)) { + tempStart.add(Calendar.DAY_OF_MONTH, 1); + }else{ + tempStart.add(Calendar.MONTH, 1); + } + } + } catch (ParseException e) { + e.printStackTrace(); + } + return days; + } + @RequiresPermissions("quality:gcTableProduce:list") - @Log(title = "质量系统报", businessType = BusinessType.EXPORT) @PostMapping("/exportTableList") public void exportTableList(HttpServletResponse response, QcStaticTable qcStaticTable) { List list = qcStaticTableService.selectQcStaticTableList(qcStaticTable); ExcelUtil util = new ExcelUtil(QcStaticTable.class); util.exportExcel(response, list, "质量系统报数据"); } + + @GetMapping("/getWorkcenterList") + public List getWorkcenterList(FactoryDto factoryDto) { + return qcStaticTableService.getWorkcenterList(factoryDto); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java index b1a4176c8..d63fb8308 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QuaController.java @@ -2,19 +2,20 @@ package com.op.quality.controller; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; +import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.core.web.domain.AjaxResult; import com.op.common.core.web.page.TableDataInfo; -import com.op.quality.domain.QcCheckTaskProduce; -import com.op.quality.domain.QcCheckTaskWarehousing; -import com.op.quality.domain.QcProCheck; -import com.op.quality.service.IQcCheckTaskProduceService; -import com.op.quality.service.IQcCheckTaskWarehousingService; -import com.op.quality.service.QcProCheckService; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.*; +import com.op.quality.service.*; import com.op.system.api.RemoteMesService; +import com.op.system.api.domain.SysDictData; import com.op.system.api.domain.dto.WCSDTO; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -34,12 +35,16 @@ public class QuaController extends BaseController { @Autowired private RemoteMesService remoteMesService; - @Autowired private IQcCheckTaskProduceService qcCheckTaskProduceService; - @Autowired private IQcCheckTaskWarehousingService qcCheckTaskWarehousingService; + @Autowired + private IQcCheckTypeService qcCheckTypeService; + @Autowired + private IQcMaterialGroupService qcMaterialGroupService; + @Autowired + private IQcCheckTaskIncomeService qcCheckTaskIncomeService; @PostMapping("/saveQcProCheck") public R saveQcProCheck(@RequestBody QcProCheck qcProCheck) { @@ -149,4 +154,94 @@ public class QuaController extends BaseController { //添加检测任务 return success(qcCheckTaskWarehousingService.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing)); } + + /** + * 任务数量管理 + */ + @GetMapping(value = "getTopTaskInfo") + public AjaxResult getTopTaskInfo(QcCheckType qcCheckType) { + if(StringUtils.isBlank(qcCheckType.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + return success(qcCheckTypeService.getTopTaskInfo(qcCheckType)); + } + + + /** + * 获取检验节点下拉列表 + */ + @GetMapping(value = "getCheckType") + public AjaxResult getCheckType(QcCheckType qcCheckType) { + if(StringUtils.isBlank(qcCheckType.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + return success(qcCheckTypeService.getCheckType(qcCheckType)); + } + + /** + * 获取待检验信息列表 + */ + @GetMapping(value = "getCheckTaskList") + public TableDataInfo getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { + + if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckStatus())){ + qcCheckTaskIncome.setCheckStatus("'"+ qcCheckTaskIncome.getCheckStatus().replace(",","','")+"'"); + } + startPage(); + List list = qcProCheckService.getCheckTaskList(qcCheckTaskIncome); + return getDataTable(list); + } + /** + * 获取待检验信息列表 + */ + @GetMapping(value = "getCheckTaskDetailList") + public AjaxResult getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { + if(StringUtils.isBlank(qcCheckTaskDetail.getFactoryCode())){ + return error("[factoryCode]不能为空"); + } + if(StringUtils.isBlank(qcCheckTaskDetail.getBelongTo())){ + return error("[belongTo]不能为空"); + } + return success(qcProCheckService.getCheckTaskDetailList(qcCheckTaskDetail)); + } + + /** + * 获取待检验信息列表 + */ + @PostMapping(value = "commitCheckResults") + public AjaxResult commitCheckResults(@RequestBody List qcCheckTaskDetails) { + if(CollectionUtils.isEmpty(qcCheckTaskDetails)){ + return error("[List]不能为空"); + } + return success(qcCheckTaskIncomeService.commitCheckResults(qcCheckTaskDetails)); + } + /** + * 检验单位 + */ + @GetMapping(value = "getQcUnitList") + public TableDataInfo getQcUnitList(SysDictData sysDictData) { + startPage(); + List list = qcProCheckService.getQcUnitList(sysDictData); + return getDataTable(list); + } + /** + * 检验项目 + */ + @GetMapping("/pdaMaterialTree") + public AjaxResult pdaMaterialTree(QcMaterialGroup materialGroup) { + DynamicDataSourceContextHolder.push("ds_"+materialGroup.getFactoryCode()); + return success(qcMaterialGroupService.selectQcMaterialTreeList(materialGroup)); + } + + /** + * 查询物料检验项目维护列表 + */ + + @GetMapping("/getCheckTypeProjectList") + public TableDataInfo list(QcCheckTypeProject qcCheckTypeProject) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTypeProject.getFactoryCode()); + startPage(); + List list = qcMaterialGroupService.getCheckTypeProjectList(qcCheckTypeProject); + return getDataTable(list); + } } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java index 0eccb0208..4517e5621 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDetail.java @@ -94,6 +94,24 @@ public class QcCheckTaskDetail extends BaseEntity { private Integer sampleNum; private List actualValues; private String typeProjectId; + private String defectCode; + private String checkType; + + public String getCheckType() { + return checkType; + } + + public void setCheckType(String checkType) { + this.checkType = checkType; + } + + public String getDefectCode() { + return defectCode; + } + + public void setDefectCode(String defectCode) { + this.defectCode = defectCode; + } public String getTypeProjectId() { return typeProjectId; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index 5ff7a6ffd..0f66846dd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -25,7 +25,7 @@ public class QcCheckTaskIncome extends BaseEntity { private String checkNo; /** 来料批次号 */ - @Excel(name = "来料批次号") + @Excel(name = "批次号") private String incomeBatchNo; /** 订单号 */ @@ -44,6 +44,9 @@ public class QcCheckTaskIncome extends BaseEntity { @Excel(name = "收货数量") private BigDecimal quality; + @Excel(name = "不合格数量") + private BigDecimal noOkQuality; + /** 单位 */ @Excel(name = "单位") private String unit; @@ -120,6 +123,14 @@ public class QcCheckTaskIncome extends BaseEntity { private String typeCode; private String checkType; + public BigDecimal getNoOkQuality() { + return noOkQuality; + } + + public void setNoOkQuality(BigDecimal noOkQuality) { + this.noOkQuality = noOkQuality; + } + public String getCheckType() { return checkType; } 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 21e447749..48cc8969b 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 @@ -128,6 +128,61 @@ public class QcCheckTaskProduce extends BaseEntity { private String typeCode; private String checkType; + @Excel(name = "抽样数量") + private BigDecimal sampleQuality; + + @Excel(name = "不合格数量") + private BigDecimal noOkQuality; + + @Excel(name = "A类不合格数量") + private BigDecimal aNoOkquality; + + @Excel(name = "B类不合格数量") + private BigDecimal bNoOkquality; + + @Excel(name = "C类不合格数量") + private BigDecimal cNoOkquality; + + public BigDecimal getaNoOkquality() { + return aNoOkquality; + } + + public void setaNoOkquality(BigDecimal aNoOkquality) { + this.aNoOkquality = aNoOkquality; + } + + public BigDecimal getbNoOkquality() { + return bNoOkquality; + } + + public void setbNoOkquality(BigDecimal bNoOkquality) { + this.bNoOkquality = bNoOkquality; + } + + public BigDecimal getcNoOkquality() { + return cNoOkquality; + } + + public void setcNoOkquality(BigDecimal cNoOkquality) { + this.cNoOkquality = cNoOkquality; + } + + public BigDecimal getSampleQuality() { + return sampleQuality; + } + + public void setSampleQuality(BigDecimal sampleQuality) { + this.sampleQuality = sampleQuality; + } + + public BigDecimal getNoOkQuality() { + return noOkQuality; + } + + public void setNoOkQuality(BigDecimal noOkQuality) { + this.noOkQuality = noOkQuality; + } + public String getTypeCode() { return typeCode; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java index d75d4a5e0..c267cb334 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java @@ -58,7 +58,7 @@ public class QcCheckTaskWarehousing extends BaseEntity { /** 来料时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Excel(name = "来料时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date incomeTime; /** 检测地点 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java index e6f76a14f..79249d12e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckType.java @@ -7,7 +7,7 @@ import com.op.common.core.web.domain.BaseEntity; /** * 检验节点维护对象 qc_check_type - * + * * @author Open Platform * @date 2023-10-12 */ @@ -24,7 +24,7 @@ public class QcCheckType extends BaseEntity { /** 名称 */ @Excel(name = "名称") private String checkName; - + private String checkType; /** 类型编码 */ @Excel(name = "类型编码") private String typeCode; @@ -44,6 +44,24 @@ public class QcCheckType extends BaseEntity { /** 删除标识1删除0正常 */ private String delFlag; + private int taskNum; + + public int getTaskNum() { + return taskNum; + } + + public String getCheckType() { + return checkType; + } + + public void setCheckType(String checkType) { + this.checkType = checkType; + } + + public void setTaskNum(int taskNum) { + this.taskNum = taskNum; + } + public void setId(String id) { this.id = id; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java index bc93b9a06..5619b9b99 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTypeProject.java @@ -70,10 +70,48 @@ public class QcCheckTypeProject extends BaseEntity { @Excel(name = "物料编码") private String materialCode; + private String materialName; + private Integer sort; private String projectNo; + private String checkTool; + private String checkMode; + private String uint; + + public String getUint() { + return uint; + } + + public void setUint(String uint) { + this.uint = uint; + } + + public String getCheckTool() { + return checkTool; + } + + public void setCheckTool(String checkTool) { + this.checkTool = checkTool; + } + + public String getCheckMode() { + return checkMode; + } + + public void setCheckMode(String checkMode) { + this.checkMode = checkMode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + public Integer getSort() { return sort; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcDefectType.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcDefectType.java new file mode 100644 index 000000000..e25463184 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcDefectType.java @@ -0,0 +1,215 @@ +package com.op.quality.domain; + +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.util.Date; +import java.util.List; + +/** + * 不良类型维护对象 qc_defect_type + * + * @author wws + * @date 2023-10-12 + */ +public class QcDefectType extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 主键 */ + private String defectId; + + /** 不良类型编码 */ + @Excel(name = "不良类型编码") + private String defectCode; + + /** 不良类型 */ + @Excel(name = "不良类型") + private String defectType; + + /** 不良子类 */ + @Excel(name = "不良子类") + private String defectSubclass; + + /** 备注 */ + @Excel(name = "备注") + private String defectRemark; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private String attr1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String attr2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String attr3; + + /** 删除标志 */ + @Excel(name = "删除标志") + private String delFlag; + + // 创建日期范围list + private List createTimeArray; + + // 更新日期范围list + private List updateTimeArray; + + // 更新日期开始 + private String updateTimeStart; + + // 更新日期结束 + private String updateTimeEnd; + + // 创建日期开始 + private String createTimeStart; + + // 创建日期结束 + private String createTimeEnd; + + public List getCreateTimeArray() { + return createTimeArray; + } + + public void setCreateTimeArray(List createTimeArray) { + this.createTimeArray = createTimeArray; + } + + public List getUpdateTimeArray() { + return updateTimeArray; + } + + public void setUpdateTimeArray(List updateTimeArray) { + this.updateTimeArray = updateTimeArray; + } + + public String getUpdateTimeStart() { + return updateTimeStart; + } + + public void setUpdateTimeStart(String updateTimeStart) { + this.updateTimeStart = updateTimeStart; + } + + public String getUpdateTimeEnd() { + return updateTimeEnd; + } + + public void setUpdateTimeEnd(String updateTimeEnd) { + this.updateTimeEnd = updateTimeEnd; + } + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } + + public void setDefectId(String defectId) { + this.defectId = defectId; + } + + public String getDefectId() { + return defectId; + } + public void setDefectCode(String defectCode) { + this.defectCode = defectCode; + } + + public String getDefectCode() { + return defectCode; + } + public void setDefectType(String defectType) { + this.defectType = defectType; + } + + public String getDefectType() { + return defectType; + } + public void setDefectSubclass(String defectSubclass) { + this.defectSubclass = defectSubclass; + } + + public String getDefectSubclass() { + return defectSubclass; + } + public void setDefectRemark(String defectRemark) { + this.defectRemark = defectRemark; + } + + public String getDefectRemark() { + return defectRemark; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("defectId", getDefectId()) + .append("defectCode", getDefectCode()) + .append("defectType", getDefectType()) + .append("defectSubclass", getDefectSubclass()) + .append("defectRemark", getDefectRemark()) + .append("factoryCode", getFactoryCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} 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 8fd2e8a39..5a0fe17cd 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 @@ -2,7 +2,9 @@ package com.op.quality.domain; import com.op.common.core.annotation.Excel; import com.op.common.core.web.domain.BaseEntity; +import com.op.system.api.domain.quality.ChartDTO; +import java.math.BigDecimal; import java.util.List; /** @@ -36,6 +38,141 @@ public class QcStaticTable extends BaseEntity { private String checkResult; private String noOkBatchRate; private String noOkNumRate; + private String ymArrayStart; + private String ymArrayEnd; + private List legendData; + private List xAxis; + private List series; + private String materialCode; + private String materialName; + private String sampleQuality; + private BigDecimal aNoOkquality; + private BigDecimal bNoOkquality; + private BigDecimal cNoOkquality; + private BigDecimal defectRate;//不良率 + private String materailDate; + private String dataType; + private String workCenter; + + public String getWorkCenter() { + return workCenter; + } + + public void setWorkCenter(String workCenter) { + this.workCenter = workCenter; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public String getMaterailDate() { + return materailDate; + } + + public void setMaterailDate(String materailDate) { + this.materailDate = materailDate; + } + + public BigDecimal getDefectRate() { + return defectRate; + } + + public void setDefectRate(BigDecimal defectRate) { + this.defectRate = defectRate; + } + + public String getMaterialCode() { + return materialCode; + } + + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialName() { + return materialName; + } + + public void setMaterialName(String materialName) { + this.materialName = materialName; + } + + public String getSampleQuality() { + return sampleQuality; + } + + public void setSampleQuality(String sampleQuality) { + this.sampleQuality = sampleQuality; + } + + public BigDecimal getaNoOkquality() { + return aNoOkquality; + } + + public void setaNoOkquality(BigDecimal aNoOkquality) { + this.aNoOkquality = aNoOkquality; + } + + public BigDecimal getbNoOkquality() { + return bNoOkquality; + } + + public void setbNoOkquality(BigDecimal bNoOkquality) { + this.bNoOkquality = bNoOkquality; + } + + public BigDecimal getcNoOkquality() { + return cNoOkquality; + } + + public void setcNoOkquality(BigDecimal cNoOkquality) { + this.cNoOkquality = cNoOkquality; + } + + public String getYmArrayStart() { + return ymArrayStart; + } + + public void setYmArrayStart(String ymArrayStart) { + this.ymArrayStart = ymArrayStart; + } + + public String getYmArrayEnd() { + return ymArrayEnd; + } + + public void setYmArrayEnd(String ymArrayEnd) { + this.ymArrayEnd = ymArrayEnd; + } + + public List getSeries() { + return series; + } + + public void setSeries(List series) { + this.series = series; + } + + public List getxAxis() { + return xAxis; + } + + public void setxAxis(List xAxis) { + this.xAxis = xAxis; + } + + public List getLegendData() { + return legendData; + } + + public void setLegendData(List legendData) { + this.legendData = legendData; + } public String getNoOkNumRate() { return noOkNumRate; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 71fb885f8..bfe823578 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -6,8 +6,10 @@ import com.op.quality.domain.QcBomComponent; import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcSupplier; +import com.op.system.api.domain.SysDictData; import com.op.system.api.domain.SysUser; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 来料检验Mapper接口 @@ -74,4 +76,10 @@ public interface QcCheckTaskIncomeMapper { int getTodayMaxNum(QcCheckTaskIncome qcCheckTaskIncome); List getCkeckProjectList(QcCheckTaskDetail qcCheckTaskDetail); + + int updateQcCheckTask(QcCheckTaskIncome qcCheckTask); + + int updateQcCheckTaskDetails(@Param("list") List details); + + List getQcUnitList(SysDictData sysDictData); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java index a5a45573b..3069165d8 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTypeMapper.java @@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Mapper; /** * 检验节点维护Mapper接口 - * + * * @author Open Platform * @date 2023-10-12 */ @@ -15,7 +15,7 @@ import org.apache.ibatis.annotations.Mapper; public interface QcCheckTypeMapper { /** * 查询检验节点维护 - * + * * @param id 检验节点维护主键 * @return 检验节点维护 */ @@ -23,7 +23,7 @@ public interface QcCheckTypeMapper { /** * 查询检验节点维护列表 - * + * * @param qcCheckType 检验节点维护 * @return 检验节点维护集合 */ @@ -31,7 +31,7 @@ public interface QcCheckTypeMapper { /** * 新增检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -39,7 +39,7 @@ public interface QcCheckTypeMapper { /** * 修改检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -47,7 +47,7 @@ public interface QcCheckTypeMapper { /** * 删除检验节点维护 - * + * * @param id 检验节点维护主键 * @return 结果 */ @@ -55,9 +55,11 @@ public interface QcCheckTypeMapper { /** * 批量删除检验节点维护 - * + * * @param ids 需要删除的数据主键集合 * @return 结果 */ public int deleteQcCheckTypeByIds(String[] ids); + + List getTopTaskInfo(QcCheckType qcCheckType); } 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 169691713..15c7b8f39 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 @@ -1,9 +1,12 @@ package com.op.quality.mapper; import java.util.List; +import java.util.Map; import com.op.quality.domain.QcCheckTaskDetail; import com.op.quality.domain.QcCheckTypeProject; +import com.op.system.api.domain.SysDictData; +import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; /** @@ -65,4 +68,8 @@ public interface QcCheckTypeProjectMapper { List getTPByTypeMaterial(QcCheckTypeProject qctp); List getTPByTypeGroup(QcCheckTypeProject qctp); + + List getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject); + @MapKey("dictValue") + Map getDictMap(SysDictData sysDictData); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java index 21de6735d..09a483496 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java @@ -3,6 +3,7 @@ package com.op.quality.mapper; import java.util.List; import com.op.quality.domain.QcCheckUnqualified; +import com.op.quality.domain.QcDefectType; import org.apache.ibatis.annotations.Mapper; /** @@ -60,4 +61,6 @@ public interface QcCheckUnqualifiedMapper { * @return 结果 */ public int deleteQcCheckUnqualifiedByIds(String[] ids); + + public List getDefectList(QcDefectType qcDefectType); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcDefectTypeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcDefectTypeMapper.java new file mode 100644 index 000000000..156516a03 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcDefectTypeMapper.java @@ -0,0 +1,70 @@ +package com.op.quality.mapper; + +import com.op.quality.domain.QcDefectType; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 不良类型维护Mapper接口 + * + * @author wws + * @date 2023-10-12 + */ +@Mapper +public interface QcDefectTypeMapper { + /** + * 查询不良类型维护 + * + * @param faultId 不良类型维护主键 + * @return 不良类型维护 + */ + public QcDefectType selectQcDefectTypeByDefectId(String faultId); + + /** + * 查询不良类型维护列表 + * + * @param qcDefectType 不良类型维护 + * @return 不良类型维护集合 + */ + public List selectQcDefectTypeList(QcDefectType qcDefectType); + + /** + * 新增不良类型维护 + * + * @param qcDefectType 不良类型维护 + * @return 结果 + */ + public int insertQcDefectType(QcDefectType qcDefectType); + + /** + * 修改不良类型维护 + * + * @param qcDefectType 不良类型维护 + * @return 结果 + */ + public int updateQcDefectType(QcDefectType qcDefectType); + + /** + * 删除不良类型维护-逻辑 + * + * @param faultId 不良类型维护主键 + * @return 结果 + */ + public int deleteQcDefectTypeByDefectId(String faultId); + + /** + * 批量删除不良类型维护-逻辑 + * + * @param faultIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteQcDefectTypeByDefectIds(String[] faultIds); + + /** + * 获取流水号 + * @return + */ + int selectSerialNumber(); + +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java index a64b5c60e..f68842a66 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java @@ -2,6 +2,7 @@ package com.op.quality.mapper; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcProCheck; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -34,4 +35,6 @@ public interface QcProCheckMapper { List getEquipmentList(QcProCheck qcProCheck); List getDictList(QcProCheck qcProCheck); + + List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcStaticTableMapper.java index da364cc4b..052af7fc6 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 @@ -4,6 +4,7 @@ import java.util.List; import java.util.Map; import com.op.quality.domain.QcStaticTable; +import com.op.system.api.domain.quality.FactoryDto; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -30,4 +31,12 @@ public interface QcStaticTableMapper { @MapKey("supplierCode") public Map selectNumMap(@Param("qc")QcStaticTable qcStaticTable, @Param("codes")List tabledtos); + @MapKey("materailDate") + Map getProduceChartData(QcStaticTable qcStaticTable); + + List getProduceNames(QcStaticTable qcStaticTable); + @MapKey("materailDate") + Map getProduceChartDataYM(QcStaticTable qcStaticTable); + + List getWorkcenterList(FactoryDto factoryDto); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index 56d51a20b..a6a508865 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -2,10 +2,7 @@ package com.op.quality.service; import java.util.List; -import com.op.quality.domain.QcBomComponent; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcCheckTaskIncome; -import com.op.quality.domain.QcSupplier; +import com.op.quality.domain.*; import com.op.system.api.domain.SysUser; /** @@ -78,4 +75,9 @@ public interface IQcCheckTaskIncomeService { int commitActualValue(QcCheckTaskDetail qcCheckTaskDetail); int commitCheckResult(QcCheckTaskIncome qcCheckTaskIncome); + + int commitCheckResults(List details); + + List getDefectList(QcDefectType qcDefectType); + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java index 7067bb367..84478087f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTypeService.java @@ -1,18 +1,20 @@ package com.op.quality.service; import java.util.List; + +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckType; /** * 检验节点维护Service接口 - * + * * @author Open Platform * @date 2023-10-12 */ public interface IQcCheckTypeService { /** * 查询检验节点维护 - * + * * @param id 检验节点维护主键 * @return 检验节点维护 */ @@ -20,7 +22,7 @@ public interface IQcCheckTypeService { /** * 查询检验节点维护列表 - * + * * @param qcCheckType 检验节点维护 * @return 检验节点维护集合 */ @@ -28,7 +30,7 @@ public interface IQcCheckTypeService { /** * 新增检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -36,7 +38,7 @@ public interface IQcCheckTypeService { /** * 修改检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -44,7 +46,7 @@ public interface IQcCheckTypeService { /** * 批量删除检验节点维护 - * + * * @param ids 需要删除的检验节点维护主键集合 * @return 结果 */ @@ -52,9 +54,15 @@ public interface IQcCheckTypeService { /** * 删除检验节点维护信息 - * + * * @param id 检验节点维护主键 * @return 结果 */ public int deleteQcCheckTypeById(String id); + + List getCheckType(QcCheckType qcCheckType); + + List getTopTaskInfo(QcCheckType qcCheckType); + + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcDefectTypeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcDefectTypeService.java new file mode 100644 index 000000000..e1f4f2d28 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcDefectTypeService.java @@ -0,0 +1,62 @@ +package com.op.quality.service; + +import com.op.common.core.web.domain.AjaxResult; +import com.op.quality.domain.QcDefectType; + +import java.util.List; + +/** + * 不良类型维护Service接口 + * + * @author zxl + * @date 2023-10-12 + */ +public interface IQcDefectTypeService { + /** + * 查询不良类型维护 + * + * @param defectId 不良类型维护主键 + * @return 不良类型维护 + */ + public QcDefectType selectQcDefectTypeByDefectId(String defectId); + + /** + * 查询不良类型维护列表 + * + * @param equDefectType 不良类型维护 + * @return 不良类型维护集合 + */ + public List selectQcDefectTypeList(QcDefectType equDefectType); + + /** + * 新增不良类型维护 + * + * @param equDefectType 不良类型维护 + * @return 结果 + */ + public AjaxResult insertQcDefectType(QcDefectType equDefectType); + + /** + * 修改不良类型维护 + * + * @param equDefectType 不良类型维护 + * @return 结果 + */ + public AjaxResult updateQcDefectType(QcDefectType equDefectType); + + /** + * 批量删除不良类型维护 + * + * @param defectIds 需要删除的不良类型维护主键集合 + * @return 结果 + */ + public int deleteQcDefectTypeByDefectIds(String[] defectIds); + + /** + * 删除不良类型维护信息 + * + * @param defectId 不良类型维护主键 + * @return 结果 + */ + public int deleteQcDefectTypeByDefectId(String defectId); +} 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 1ed5f6358..32d573c95 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 @@ -1,20 +1,22 @@ package com.op.quality.service; import java.util.List; + +import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcMaterialGroup; import com.op.quality.domain.vo.TreeSelect; import com.op.system.api.domain.SysDept; /** * 物料组Service接口 - * + * * @author materialGroup * @date 2023-10-16 */ public interface IQcMaterialGroupService { /** * 查询物料组 - * + * * @param id 物料组主键 * @return 物料组 */ @@ -22,7 +24,7 @@ public interface IQcMaterialGroupService { /** * 查询物料组列表 - * + * * @param qcMaterialGroup 物料组 * @return 物料组集合 */ @@ -38,7 +40,7 @@ public interface IQcMaterialGroupService { /** * 新增物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -46,7 +48,7 @@ public interface IQcMaterialGroupService { /** * 修改物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -54,7 +56,7 @@ public interface IQcMaterialGroupService { /** * 批量删除物料组 - * + * * @param ids 需要删除的物料组主键集合 * @return 结果 */ @@ -62,11 +64,13 @@ public interface IQcMaterialGroupService { /** * 删除物料组信息 - * + * * @param id 物料组主键 * @return 结果 */ public int deleteQcMaterialGroupById(String id); public boolean validationData(String id); + + List getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java index 964656039..e722ca1e5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcStaticTableService.java @@ -1,7 +1,10 @@ package com.op.quality.service; import java.util.List; +import java.util.Map; + import com.op.quality.domain.QcStaticTable; +import com.op.system.api.domain.quality.FactoryDto; /** * 质量系统报Service接口 @@ -19,4 +22,11 @@ public interface IQcStaticTableService { */ public List selectQcStaticTableList(QcStaticTable qcStaticTable); + public Map getProduceChartData(QcStaticTable qcStaticTable); + + public List getProduceNames(QcStaticTable qcStaticTable); + + public Map getProduceChartDataYM(QcStaticTable qcStaticTable); + + List getWorkcenterList(FactoryDto factoryDto); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index ca4bf2491..785a37c39 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -3,8 +3,10 @@ package com.op.quality.service; import com.op.common.core.domain.R; //import com.op.quality.domain.BaseFile; import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcProCheck; +import com.op.system.api.domain.SysDictData; import java.util.List; @@ -30,4 +32,9 @@ public interface QcProCheckService { List getDictList(QcProCheck qcProCheck); + List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); + + List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); + + List getQcUnitList(SysDictData sysDictData); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java similarity index 97% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckProjectServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java index c37f5bc59..6e6fd6068 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckProjectServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; @@ -19,7 +19,7 @@ import javax.servlet.http.HttpServletRequest; /** * 检验项目维护Service业务层处理 - * + * * @author Open Platform * @date 2023-10-13 */ @@ -30,7 +30,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 查询检验项目维护 - * + * * @param id 检验项目维护主键 * @return 检验项目维护 */ @@ -42,7 +42,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 查询检验项目维护列表 - * + * * @param qcCheckProject 检验项目维护 * @return 检验项目维护 */ @@ -54,7 +54,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 新增检验项目维护 - * + * * @param qcCheckProject 检验项目维护 * @return 结果 */ @@ -77,7 +77,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 修改检验项目维护 - * + * * @param qcCheckProject 检验项目维护 * @return 结果 */ @@ -91,7 +91,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 批量删除检验项目维护 - * + * * @param ids 需要删除的检验项目维护主键 * @return 结果 */ @@ -103,7 +103,7 @@ public class QcCheckProjectServiceImpl implements IQcCheckProjectService { /** * 删除检验项目维护信息 - * + * * @param id 检验项目维护主键 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportIncomeServiceImpl.java similarity index 97% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportIncomeServiceImpl.java index aa75c98fc..7cec9cea5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportIncomeServiceImpl.java @@ -1,7 +1,8 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; @@ -176,8 +177,8 @@ public class QcCheckReportIncomeServiceImpl implements IQcCheckReportIncomeServi return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 @Override + @DS("master") public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java similarity index 98% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java index 45ea3f41c..0dd13d133 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProduceServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; @@ -178,7 +178,7 @@ public class QcCheckReportProduceServiceImpl implements IQcCheckReportProduceSer return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 + @DS("master") @Override public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProductServiceImpl.java similarity index 95% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProductServiceImpl.java index f415b74c7..3dbfaf3da 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckReportProductServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckReportProductServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; @@ -102,12 +102,12 @@ public class QcCheckReportProductServiceImpl implements IQcCheckReportProductSer qctp.setTypeId(qcCheckReportIncome.getCheckType());//生产过程检验 qctp.setMaterialCode(qcCheckReportIncome.getMaterialCode());//特性 /**qc_check_type_project**/ - List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); - if(CollectionUtils.isEmpty(items)){ - /**qc_material_group_detail**/ + List items = qcCheckTypeProjectMapper.getTPByTypeMaterial(qctp); + if(CollectionUtils.isEmpty(items)){ + /**qc_material_group_detail**/ QcMaterialGroupDetail group = qcMaterialGroupDetailMapper.getGroupByMaterial(qcCheckReportIncome.getMaterialCode()); if(group == null){ - return 0;//没有找到检测项目 + return 0;//没有找到检测项目 } qctp.setGroupId(group.getGroupId());//共性 items = qcCheckTypeProjectMapper.getTPByTypeGroup(qctp); @@ -178,7 +178,7 @@ public class QcCheckReportProductServiceImpl implements IQcCheckReportProductSer return qcCheckReportIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 + @DS("master") @Override public List getQcListUser(SysUser sysUser) { return qcCheckReportIncomeMapper.getQcListUser(sysUser); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 4bff73859..b1544f82f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -6,6 +6,7 @@ import java.util.List; import com.alibaba.fastjson2.JSONArray; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; @@ -13,6 +14,8 @@ import com.op.quality.domain.*; import com.op.quality.mapper.*; import com.op.quality.service.IQcCheckTaskProduceService; import com.op.system.api.domain.SysUser; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.service.IQcCheckTaskIncomeService; @@ -31,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; */ @Service public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; @@ -190,8 +194,8 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return qcCheckTaskIncomeMapper.getQcListSupplier(qcSupplier); } - //在公共库里不需要切库 @Override + @DS("master") public List getQcListUser(SysUser sysUser) { return qcCheckTaskIncomeMapper.getQcListUser(sysUser); } @@ -279,4 +283,62 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return n ; } + @Override + @DS("#header.poolName") + public List getDefectList(QcDefectType qcDefectType) { + return qcCheckUnqualifiedMapper.getDefectList(qcDefectType); + } + + @Override + public int commitCheckResults(List details) { + DynamicDataSourceContextHolder.push("ds_"+details.get(0).getFactoryCode()); + Date nowTime = DateUtils.getNowDate(); + String factoryCode = details.get(0).getFactoryCode(); + String updateBy = details.get(0).getUpdateBy(); + String belongId = details.get(0).getBelongTo(); + String checkType = details.get(0).getCheckType(); + + //默认合格 + String result = "Y"; + for(QcCheckTaskDetail detail:details){ + if("N".equals(detail.getStatus())){ + result = "N";//不合格 + break; + } + } + + int n = 0; + QcCheckTaskIncome qcCheckTask = new QcCheckTaskIncome(); + qcCheckTask.setUpdateBy(updateBy); + qcCheckTask.setRecordId(belongId); + qcCheckTask.setCheckResult("2");//检测状态0待检测1检测中2检测完成 + qcCheckTask.setUpdateTime(nowTime); + qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 + /**qc_check_task**/ + n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask); + logger.info("qc_check_task:"+n); + /**更新qc_check_task_detail**/ + for(QcCheckTaskDetail detail:details){ + detail.setUpdateTime(nowTime); + } + + n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details); + logger.info("更新qc_check_task_detail:"+n); + //不合格处理 + if("N".equals(result)){ + QcCheckUnqualified unqualified = new QcCheckUnqualified(); + unqualified.setId(IdUtils.fastSimpleUUID()); + unqualified.setTaskId(belongId); + unqualified.setCreateTime(DateUtils.getNowDate()); + unqualified.setCreateBy(updateBy); + unqualified.setFactoryCode(factoryCode); + unqualified.setType(checkType); + /**qc_check_unqualified**/ + n = qcCheckUnqualifiedMapper.insertQcCheckUnqualified(unqualified); + logger.info("qc_check_unqualified:"+n); + } + + return n ; + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeProjectServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java similarity index 84% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeProjectServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java index adc747b70..142444992 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeProjectServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeProjectServiceImpl.java @@ -1,11 +1,14 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; +import java.util.Map; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; +import com.op.system.api.domain.SysDictData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcCheckTypeProjectMapper; @@ -18,7 +21,7 @@ import javax.servlet.http.HttpServletRequest; /** * 物料检验项目维护Service业务层处理 - * + * * @author Open Platform * @date 2023-10-17 */ @@ -29,7 +32,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 查询物料检验项目维护 - * + * * @param id 物料检验项目维护主键 * @return 物料检验项目维护 */ @@ -41,19 +44,29 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 查询物料检验项目维护列表 - * + * * @param qcCheckTypeProject 物料检验项目维护 * @return 物料检验项目维护 */ @Override @DS("#header.poolName") public List selectQcCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) { - return qcCheckTypeProjectMapper.selectQcCheckTypeProjectList(qcCheckTypeProject); + List dtos = qcCheckTypeProjectMapper.selectQcCheckTypeProjectList(qcCheckTypeProject); + DynamicDataSourceContextHolder.push("master"); + SysDictData sData = new SysDictData(); + sData.setDictType("unit"); + Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); + if(dictMap != null){ + for(QcCheckTypeProject dto:dtos){ + dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + } + } + return dtos; } /** * 新增物料检验项目维护 - * + * * @param qcCheckTypeProject 物料检验项目维护 * @return 结果 */ @@ -71,7 +84,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 修改物料检验项目维护 - * + * * @param qcCheckTypeProject 物料检验项目维护 * @return 结果 */ @@ -85,7 +98,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 批量删除物料检验项目维护 - * + * * @param ids 需要删除的物料检验项目维护主键 * @return 结果 */ @@ -97,7 +110,7 @@ public class QcCheckTypeProjectServiceImpl implements IQcCheckTypeProjectService /** * 删除物料检验项目维护信息 - * + * * @param id 物料检验项目维护主键 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java similarity index 83% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java index e75c29b20..88ee8cb94 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcCheckTypeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTypeServiceImpl.java @@ -1,8 +1,9 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; @@ -19,7 +20,7 @@ import javax.servlet.http.HttpServletRequest; /** * 检验节点维护Service业务层处理 - * + * * @author Open Platform * @date 2023-10-12 */ @@ -30,7 +31,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 查询检验节点维护 - * + * * @param id 检验节点维护主键 * @return 检验节点维护 */ @@ -42,7 +43,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 查询检验节点维护列表 - * + * * @param qcCheckType 检验节点维护 * @return 检验节点维护 */ @@ -54,7 +55,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 新增检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -77,7 +78,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 修改检验节点维护 - * + * * @param qcCheckType 检验节点维护 * @return 结果 */ @@ -91,7 +92,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 批量删除检验节点维护 - * + * * @param ids 需要删除的检验节点维护主键 * @return 结果 */ @@ -103,7 +104,7 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { /** * 删除检验节点维护信息 - * + * * @param id 检验节点维护主键 * @return 结果 */ @@ -112,4 +113,17 @@ public class QcCheckTypeServiceImpl implements IQcCheckTypeService { public int deleteQcCheckTypeById(String id) { return qcCheckTypeMapper.deleteQcCheckTypeById(id); } + + @Override + public List getCheckType(QcCheckType qcCheckType) { + DynamicDataSourceContextHolder.push(qcCheckType.getFactoryCode());// 这是数据源的key + return qcCheckTypeMapper.selectQcCheckTypeList(qcCheckType); + } + + @Override + public List getTopTaskInfo(QcCheckType qcCheckType) { + DynamicDataSourceContextHolder.push(qcCheckType.getFactoryCode());// 这是数据源的key + return qcCheckTypeMapper.getTopTaskInfo(qcCheckType); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcDefectTypeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcDefectTypeServiceImpl.java new file mode 100644 index 000000000..8f69798a4 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcDefectTypeServiceImpl.java @@ -0,0 +1,169 @@ +package com.op.quality.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.context.SecurityContextHolder; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.core.web.domain.AjaxResult; +import com.op.quality.domain.QcDefectType; +import com.op.quality.mapper.QcDefectTypeMapper; +import com.op.quality.service.IQcDefectTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.text.SimpleDateFormat; +import java.util.List; + +import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; + +/** + * 不良类型维护Service业务层处理 + * + * @author wws + * @date 2023-10-12 + */ +@Service +public class QcDefectTypeServiceImpl implements IQcDefectTypeService { + @Autowired + private QcDefectTypeMapper qcDefectTypeMapper; + + /** + * 查询不良类型维护 + * + * @param defectId 不良类型维护主键 + * @return 不良类型维护 + */ + @Override + @DS("#header.poolName") + public QcDefectType selectQcDefectTypeByDefectId(String defectId) { + return qcDefectTypeMapper.selectQcDefectTypeByDefectId(defectId); + } + + /** + * 查询不良类型维护列表 + * + * @param qcDefectType 不良类型维护 + * @return 不良类型维护 + */ + @Override + @DS("#header.poolName") + public List selectQcDefectTypeList(QcDefectType qcDefectType) { + if (qcDefectType.getCreateTimeArray() != null) { + // 设置创建日期开始和结束值 + if (qcDefectType.getCreateTimeArray().size() == 2) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + qcDefectType.setCreateTimeStart(formatter.format(qcDefectType.getCreateTimeArray().get(0))); + qcDefectType.setCreateTimeEnd(formatter.format(qcDefectType.getCreateTimeArray().get(1))); + } + } + if (qcDefectType.getUpdateTimeArray() != null) { + // 设置更新日期开始和结束 + if (qcDefectType.getUpdateTimeArray().size() == 2) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + qcDefectType.setUpdateTimeStart(formatter.format(qcDefectType.getUpdateTimeArray().get(0))); + qcDefectType.setUpdateTimeEnd(formatter.format(qcDefectType.getUpdateTimeArray().get(1))); + } + } + return qcDefectTypeMapper.selectQcDefectTypeList(qcDefectType); + } + + /** + * 新增不良类型维护 + * + * @param qcDefectType 不良类型维护 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public AjaxResult insertQcDefectType(QcDefectType qcDefectType) { + + // 检验 + QcDefectType checkQuery = new QcDefectType(); + checkQuery.setDefectType(qcDefectType.getDefectType()); + checkQuery.setDefectSubclass(qcDefectType.getDefectSubclass()); + List check = qcDefectTypeMapper.selectQcDefectTypeList(checkQuery); + if (check.size() > 0) { + return error(500,"不良子类已存在!不可添加!"); + } + + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String str = request.getHeader(key.substring(8)); + int index = str.indexOf("_"); + String factory = str.substring(index + 1); + + // 获取检查项流水号 + String serialNum = String.format("%03d", qcDefectTypeMapper.selectSerialNumber()); + + // 处理不良信息 + qcDefectType.setDefectId(IdUtils.fastSimpleUUID()); + qcDefectType.setDefectCode(DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + serialNum); + qcDefectType.setFactoryCode(factory); + qcDefectType.setCreateBy(SecurityContextHolder.getUserName()); + qcDefectType.setCreateTime(DateUtils.getNowDate()); + qcDefectType.setUpdateBy(SecurityContextHolder.getUserName()); + qcDefectType.setUpdateTime(DateUtils.getNowDate()); + + // 插入数据库 + qcDefectTypeMapper.insertQcDefectType(qcDefectType); + + return success(); + } + + /** + * 修改不良类型维护 + * + * @param qcDefectType 不良类型维护 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public AjaxResult updateQcDefectType(QcDefectType qcDefectType) { + + // 检验 + QcDefectType checkQuery = new QcDefectType(); + checkQuery.setDefectType(qcDefectType.getDefectType()); + checkQuery.setDefectSubclass(qcDefectType.getDefectSubclass()); + List check = qcDefectTypeMapper.selectQcDefectTypeList(checkQuery); + if (check.size() > 0) { + if (!check.get(0).equals(qcDefectType.getDefectCode())) { + return error(500,"不良子类已存在!修改失败!"); + } + } + qcDefectType.setUpdateBy(SecurityContextHolder.getUserName()); + qcDefectType.setUpdateTime(DateUtils.getNowDate()); + // 插入数据库 + qcDefectTypeMapper.updateQcDefectType(qcDefectType); + + return success("修改成功"); + } + + /** + * 批量删除不良类型维护 + * + * @param defectIds 需要删除的不良类型维护主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcDefectTypeByDefectIds(String[] defectIds) { + return qcDefectTypeMapper.deleteQcDefectTypeByDefectIds(defectIds); + } + + /** + * 删除不良类型维护信息 + * + * @param defectId 不良类型维护主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcDefectTypeByDefectId(String defectId) { + return qcDefectTypeMapper.deleteQcDefectTypeByDefectId(defectId); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupDetailServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupDetailServiceImpl.java similarity index 97% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupDetailServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupDetailServiceImpl.java index 5867ad430..0d8325da1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupDetailServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupDetailServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.List; @@ -18,7 +18,7 @@ import javax.servlet.http.HttpServletRequest; /** * 物料组成员Service业务层处理 - * + * * @author Open Platform * @date 2023-10-18 */ @@ -29,7 +29,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 查询物料组成员 - * + * * @param id 物料组成员主键 * @return 物料组成员 */ @@ -41,7 +41,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 查询物料组成员列表 - * + * * @param qcMaterialGroupDetail 物料组成员 * @return 物料组成员 */ @@ -53,7 +53,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 新增物料组成员 - * + * * @param qcMaterialGroupDetail 物料组成员 * @return 结果 */ @@ -71,7 +71,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 修改物料组成员 - * + * * @param qcMaterialGroupDetail 物料组成员 * @return 结果 */ @@ -84,7 +84,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 批量删除物料组成员 - * + * * @param ids 需要删除的物料组成员主键 * @return 结果 */ @@ -96,7 +96,7 @@ public class QcMaterialGroupDetailServiceImpl implements IQcMaterialGroupDetailS /** * 删除物料组成员信息 - * + * * @param id 物料组成员主键 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java similarity index 85% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java index 4307a3bc3..08c509b49 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcMaterialGroupServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcMaterialGroupServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.ArrayList; import java.util.Iterator; @@ -7,13 +7,17 @@ import java.util.Map; import java.util.stream.Collectors; import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.SpringUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.datascope.annotation.DataScope; import com.op.common.security.utils.SecurityUtils; +import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.vo.TreeSelect; +import com.op.quality.mapper.QcCheckTypeProjectMapper; +import com.op.system.api.domain.SysDictData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcMaterialGroupMapper; @@ -26,7 +30,7 @@ import javax.servlet.http.HttpServletRequest; /** * 物料组Service业务层处理 - * + * * @author materialGroup * @date 2023-10-16 */ @@ -34,10 +38,12 @@ import javax.servlet.http.HttpServletRequest; public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { @Autowired private QcMaterialGroupMapper qcMaterialGroupMapper; + @Autowired + private QcCheckTypeProjectMapper qcCheckTypeProjectMapper; /** * 查询物料组 - * + * * @param id 物料组主键 * @return 物料组 */ @@ -46,7 +52,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { return qcMaterialGroupMapper.selectQcMaterialGroupById(id); } @Override - @DataScope(deptAlias = "d") + //@DataScope(deptAlias = "d") @DS("#header.poolName") public List selectQcMaterialGroupList(QcMaterialGroup qcMaterialGroup) { return qcMaterialGroupMapper.selectQcMaterialGroupList(qcMaterialGroup); @@ -54,7 +60,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 查询物料树列表 - * + * * @param qcMaterialGroup 物料组 * @return 物料组 */ @@ -119,7 +125,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 新增物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -137,7 +143,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 修改物料组 - * + * * @param qcMaterialGroup 物料组 * @return 结果 */ @@ -151,7 +157,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 批量删除物料组 - * + * * @param ids 需要删除的物料组主键 * @return 结果 */ @@ -163,7 +169,7 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { /** * 删除物料组信息 - * + * * @param id 物料组主键 * @return 结果 */ @@ -179,6 +185,21 @@ public class QcMaterialGroupServiceImpl implements IQcMaterialGroupService { return qcMaterialGroupMapper.validationData(id).size() > 0; } + @Override + public List getCheckTypeProjectList(QcCheckTypeProject qcCheckTypeProject) { + List dtos = qcCheckTypeProjectMapper.getCheckTypeProjectList(qcCheckTypeProject); + DynamicDataSourceContextHolder.push("master"); + SysDictData sData = new SysDictData(); + sData.setDictType("unit"); + Map dictMap = qcCheckTypeProjectMapper.getDictMap(sData); + if(dictMap != null){ + for(QcCheckTypeProject dto:dtos){ + dto.setUint(dictMap.get(dto.getUint()).getDictLabel()); + } + } + return dtos; + } + private boolean hasChild(List list, QcMaterialGroup t) { return getChildList(list, t).size() > 0 ? true : false; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java similarity index 81% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java index 037557f32..12f7129a1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java @@ -1,5 +1,6 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.BaseFileData; import com.op.common.core.domain.R; @@ -8,11 +9,13 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.QcCheckTaskDetail; +import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcCheckTypeProject; import com.op.quality.domain.QcProCheck; import com.op.quality.mapper.QcCheckTaskIncomeMapper; import com.op.quality.mapper.QcProCheckMapper; import com.op.quality.service.QcProCheckService; +import com.op.system.api.domain.SysDictData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -114,4 +117,22 @@ public class QcProCheckServiceImpl implements QcProCheckService { return qcProCheckMapper.getDictList(qcProCheck); } + @Override + public List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskIncome.getFactoryCode()); + return qcProCheckMapper.getCheckTaskList(qcCheckTaskIncome); + } + + @Override + public List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { + DynamicDataSourceContextHolder.push("ds_"+qcCheckTaskDetail.getFactoryCode()); + return qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + } + + @Override + @DS("master") + public List getQcUnitList(SysDictData sysDictData) { + return qcCheckTaskIncomeMapper.getQcUnitList(sysDictData); + } + } 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 cd5db0569..a1f9e4d86 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 @@ -6,6 +6,7 @@ import java.util.Map; import com.baomidou.dynamic.datasource.annotation.DS; import com.op.common.core.utils.DateUtils; +import com.op.system.api.domain.quality.FactoryDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcStaticTableMapper; @@ -76,7 +77,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { //批次合格率 if(tabledto.getBatchs() != 0){ BigDecimal noOkBatchRate = new BigDecimal(tabledto.getNoOkBatchs()).multiply(new BigDecimal("100.00")) - .divide(new BigDecimal(tabledto.getBatchs())) + .divide(new BigDecimal(tabledto.getBatchs()),BigDecimal.ROUND_CEILING) .setScale(2,BigDecimal.ROUND_HALF_UP); tabledto.setNoOkBatchRate(noOkBatchRate.toString()+"%"); }else{ @@ -93,7 +94,7 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { //数量不良率 if(tabledto.getNums() != 0){ BigDecimal noOkNumRate = new BigDecimal(tabledto.getNoOkNums()).multiply(new BigDecimal("100.00")) - .divide(new BigDecimal(tabledto.getNums())) + .divide(new BigDecimal(tabledto.getNums()),BigDecimal.ROUND_CEILING) .setScale(2,BigDecimal.ROUND_HALF_UP); tabledto.setNoOkNumRate(noOkNumRate.toString()+"%"); }else{ @@ -104,4 +105,36 @@ public class QcStaticTableServiceImpl implements IQcStaticTableService { return tabledtos; } + /** + * 不良率 = (A类*1+B类*0.65+C类*0.35)/抽样总数 + * @param qcStaticTable + * @return + */ + @Override + @DS("#header.poolName") + public Map getProduceChartData(QcStaticTable qcStaticTable) { + Map dtos = qcStaticTableMapper.getProduceChartData(qcStaticTable); + return dtos; + } + + @Override + @DS("#header.poolName") + public List getProduceNames(QcStaticTable qcStaticTable) { + return qcStaticTableMapper.getProduceNames(qcStaticTable); + } + + @Override + @DS("#header.poolName") + public Map getProduceChartDataYM(QcStaticTable qcStaticTable) { + Map dtos = qcStaticTableMapper.getProduceChartDataYM(qcStaticTable); + return dtos; + } + + @Override + @DS("#header.poolName") + public List getWorkcenterList(FactoryDto factoryDto) { + return qcStaticTableMapper.getWorkcenterList(factoryDto); + } + + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcUserMaterialServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java similarity index 98% rename from op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcUserMaterialServiceImpl.java rename to op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java index 1e4a33797..016f5a277 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/serviceImpl/QcUserMaterialServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcUserMaterialServiceImpl.java @@ -1,4 +1,4 @@ -package com.op.quality.service.serviceImpl; +package com.op.quality.service.impl; import java.util.Date; import java.util.List; @@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest; /** * 人员物料绑定Service业务层处理 - * + * * @author Open Platform * @date 2023-10-09 */ @@ -35,7 +35,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 查询人员物料绑定 - * + * * @param userCode 人员物料绑定主键 * @return 人员物料绑定 */ @@ -53,7 +53,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 查询人员物料绑定列表 - * + * * @param qcUserMaterial 人员物料绑定 * @return 人员物料绑定 */ @@ -65,7 +65,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 新增人员物料绑定 - * + * * @param qcUserMaterial 人员物料绑定 * @return 结果 */ @@ -105,7 +105,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 修改人员物料绑定 - * + * * @param qcUserMaterial 人员物料绑定 * @return 结果 */ @@ -118,7 +118,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 批量删除人员物料绑定 - * + * * @param userCodes 需要删除的人员物料绑定主键 * @return 结果 */ @@ -130,7 +130,7 @@ public class QcUserMaterialServiceImpl implements IQcUserMaterialService { /** * 删除人员物料绑定信息 - * + * * @param qcUserMaterial 人员物料绑定 * @return 结果 */ diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml index d218245c9..9b3b47838 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskDetailMapper.xml @@ -166,6 +166,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time = #{updateTime}, factory_code = #{factoryCode}, del_flag = #{delFlag}, + defect_code = #{defectCode}, where record_id = #{recordId} 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 bb18a8d59..01fc97674 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 @@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -40,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select record_id, check_no, income_batch_no, order_no, material_code, material_name, quality, unit, supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by, - create_time, update_by, update_time, factory_code, del_flag , check_type + create_time, update_by, update_time, factory_code, del_flag , check_type,noOk_quality from qc_check_task @@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit, qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status, - qct.create_by,qct.create_time, qct.update_by, qct.update_time,qct.check_type, + qct.create_by,qct.create_time, qct.update_by, qct.update_time,qct.check_type,qct.noOk_quality, q.type_code from qc_check_task qct left join qc_check_type q on q.id = qct.check_type @@ -130,15 +131,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" td.create_time createTime, td.update_by updateBy, td.update_time updateTime, + td.belong_to belongTo, qctp.upper_diff upperDiff, qctp.down_diff downDiff, qctp.sample from qc_check_task_detail td left join qc_check_type_project qctp on td.type_project_id = qctp.id - where td.belong_to = #{belongTo} + where td.belong_to = #{belongTo} and td.del_flag='0' and qctp.del_flag = '0' + + - + insert into qc_check_task record_id, @@ -148,6 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code, material_name, quality, + noOk_quality, unit, supplier_code, supplier_name, @@ -179,6 +189,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{materialCode}, #{materialName}, #{quality}, + #{noOkQuality}, #{unit}, #{supplierCode}, #{supplierName}, @@ -213,6 +224,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code = #{materialCode}, material_name = #{materialName}, quality = #{quality}, + noOk_quality = #{noOkQuality}, unit = #{unit}, supplier_code = #{supplierCode}, supplier_name = #{supplierName}, @@ -238,6 +250,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where record_id = #{recordId} + + update qc_check_task + set + check_status = #{checkStatus}, + check_time = #{checkTime}, + check_result = #{checkResult}, + update_by = #{updateBy}, + update_time = #{updateTime} + where record_id = #{recordId} + + + + update qc_check_task_detail + set + actual_value = #{item.actualValue}, + status = #{item.status}, + update_by = #{item.updateBy}, + update_time = #{item.updateTime} + where + record_id = #{item.recordId} + + delete from qc_check_task where record_id = #{recordId} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 627e7d626..7ff9ec49a 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -12,6 +12,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -41,7 +43,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" quality, unit, supplier_code, supplier_name, income_time, check_loc, check_status, check_man_code, check_man_name, check_time, check_result, status, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, - factory_code, del_flag , check_type + factory_code, del_flag , check_type,sample_quality,noOk_quality, + aNoOkquality,bNoOkquality,cNoOkquality from qc_check_task @@ -50,7 +53,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.order_no, qct.material_code, qct.material_name, qct.quality, qct.unit, qct.supplier_code, qct.supplier_name, qct.income_time, qct.check_loc, qct.check_status, qct.check_man_code, qct.check_man_name,qct.check_time, qct.check_result, qct.status, - qct.create_by,qct.create_time, qct.update_by, qct.update_time,qct.check_type, + qct.create_by,qct.create_time, qct.update_by, qct.update_time, + qct.check_type,qct.sample_quality,qct.noOk_quality, + qct.aNoOkquality,qct.bNoOkquality,qct.cNoOkquality, q.type_code from qc_check_task qct left join qc_check_type q on q.id = qct.check_type @@ -113,6 +118,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code, material_name, quality, + sample_quality, + noOk_quality, + aNoOkquality, + bNoOkquality, + cNoOkquality, unit, supplier_code, supplier_name, @@ -144,6 +154,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{materialCode}, #{materialName}, #{quality}, + #{sampleQuality}, + #{noOkQuality}, + #{aNoOkquality}, + #{bNoOkquality}, + #{cNoOkquality}, #{unit}, #{supplierCode}, #{supplierName}, @@ -178,6 +193,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" material_code = #{materialCode}, material_name = #{materialName}, quality = #{quality}, + sample_quality = #{sampleQuality}, + noOk_quality = #{noOkQuality}, + aNoOkquality = #{aNoOkquality}, + bNoOkquality = #{bNoOkquality}, + cNoOkquality = #{cNoOkquality}, unit = #{unit}, supplier_code = #{supplierCode}, supplier_name = #{supplierName}, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml index fd1a4aa94..ef7216b69 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -20,27 +20,49 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, order_code, check_name, type_code, type_name, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_check_type + select id, order_code, check_name, type_code, type_name, attr1, create_by, + create_time, update_by, update_time, factory_code, del_flag from qc_check_type - + - + + + insert into qc_check_type @@ -101,4 +123,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} - \ No newline at end of file + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml index dc43d312e..231ccdbcf 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeProjectMapper.xml @@ -26,7 +26,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, project_id, type_id, standard_value, upper_diff, down_diff, sample, status, attr1, create_by, create_time, update_by, update_time, factory_code, del_flag, group_id, material_code, sample_num from qc_check_type_project + select id, project_id, type_id, standard_value, upper_diff, down_diff, sample, status, attr1, + create_by, create_time, update_by, update_time, factory_code, del_flag, group_id, material_code, sample_num + from qc_check_type_project - + + insert into qc_check_type_project diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index ff946001e..193c42aaa 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -67,8 +67,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join qc_check_type qtn on qtn.id = qct.check_type where qcu.id = #{id} + - + insert into qc_check_unqualified id, diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcDefectTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcDefectTypeMapper.xml new file mode 100644 index 000000000..9bc55f475 --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcDefectTypeMapper.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + select defect_id, defect_code, defect_type, defect_subclass, defect_remark, + factory_code, attr1, attr2, attr3, + del_flag, create_by, create_time, update_by, update_time + from qc_defect_type + + + + + + + + + + insert into qc_defect_type + + defect_id, + defect_code, + defect_type, + defect_subclass, + defect_remark, + factory_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + + + #{defectId}, + #{defectCode}, + #{defectType}, + #{defectSubclass}, + #{defectRemark}, + #{factoryCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update qc_defect_type + + defect_code = #{defectCode}, + defect_type = #{defectType}, + defect_subclass = #{defectSubclass}, + defect_remark = #{defectRemark}, + factory_code = #{factoryCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where defect_id = #{defectId} and del_flag = '0' + + + + delete qc_defect_type set del_flag = '1' where defect_id = #{defectId} + + + + update qc_defect_type set del_flag = '1' where defect_id in + + #{defectId} + + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index a41e49872..6d96fc3a9 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -35,7 +35,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id,rfid,factory_id,factory_code,order_id,machine_id,bad_meg,product_id,isqua,file_id,attr1,attr2, attr3,attr4,create_by,create_time,update_by,update_time,order_code,machine_code, @@ -212,4 +243,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_dict_data where dict_type = #{equipmentTypeCode} + 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 d1622890d..861aa428b 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 @@ -56,5 +56,58 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by qct.supplier_code,qct.supplier_name - + + + + diff --git a/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java b/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java index 64c2614cb..a3b98f669 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/config/DestinationManager.java @@ -67,7 +67,6 @@ public class DestinationManager { properties.store(fos, "for test only!"); } catch (Exception e) { // TODO: handle exception -// System.out.println("Create Data file fault,error msg:" + e.toString()); throw new RuntimeException("无法创建目标文件" + cfg.getName()); } } 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 802bb59ae..cdc632b12 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 @@ -2,7 +2,6 @@ package com.op.sap.controller; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.domain.R; -import com.op.common.core.utils.DateUtils; import com.op.common.core.web.controller.BaseController; import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; @@ -53,16 +52,8 @@ public class SapController extends BaseController { @Autowired private SapBomMapper sapBomMapper; - /** - * 订单同步接口 - * @return - */ - @PostMapping("/shopOrderSync") - @Log(title = "同步SAP订单", businessType = BusinessType.SAP) - public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder){ - return sapOrderService.shopOrderSync(sapProOrder); - } + /**====================主数据相关===================================================================================*/ /** * 物料同步接口 * @param @@ -79,29 +70,31 @@ public class SapController extends BaseController { R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); List> dateSources = dateSources0.getData(); dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++product同步开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + if(!"ds_999".equals(dateSource.get("poolName"))){ + logger.info("++++++++++++" + dateSource.get("poolName") + "++++product同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key - Date maxTime0 = sapBomMapper.getProductMaxTime(); - if(maxTime0 != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setLaeda(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } + Date maxTime0 = sapBomMapper.getProductMaxTime(); + if(maxTime0 != null){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + qo.setLaeda(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } - R r = sapItemSyncService.itemSync(qo); - if(r.getCode()!=200){ - logger.error("++++++++++++" + dateSource.get("poolName")+"同步product失败,错误信息:"+ r.getMsg()); + R r = sapItemSyncService.itemSync(qo); + if(r.getCode()!=200){ + logger.error("++++++++++++" + dateSource.get("poolName")+"同步product失败,错误信息:"+ r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++product同步结束++++++++++"); } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++product同步结束++++++++++"); }); return R.ok(); } /** - * 物料清单同步接口 + * 物料清单BOM同步接口 * @return */ @PostMapping("/bomSync") @@ -115,29 +108,30 @@ public class SapController extends BaseController { R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); List> dateSources = dateSources0.getData(); dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + if(!"ds_999".equals(dateSource.get("poolName"))) { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++bom同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key - Date maxTime0 = sapBomMapper.getProductMaxTime(); - if(maxTime0 != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } + Date maxTime0 = sapBomMapper.getProductMaxTime(); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } - R r = sapBomService.bomSync(qo); - if(r.getCode()!=200){ - logger.error("++++++++++++" + dateSource.get("poolName")+"同步bom失败,错误信息:"+ r.getMsg()); + R r = sapBomService.bomSync(qo); + if (r.getCode() != 200) { + logger.error("++++++++++++" + dateSource.get("poolName") + "同步bom失败,错误信息:" + r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++bom同步结束++++++++++"); } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++bom同步结束++++++++++"); }); return R.ok(); } - /** * 工艺路线同步 * @return @@ -152,83 +146,30 @@ public class SapController extends BaseController { R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); List> dateSources = dateSources0.getData(); dateSources.forEach(dateSource -> { - logger.info("++++++++++++" + dateSource.get("poolName") + "++++工艺同步开始++++++++++"); - DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key + if(!"ds_999".equals(dateSource.get("poolName"))) { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++工艺同步开始++++++++++"); + DynamicDataSourceContextHolder.push(dateSource.get("poolName"));// 这是数据源的key - Date maxTime0 = sapBomMapper.getRouteMaxTime(); - if(maxTime0 != null){ - Calendar calendar = Calendar.getInstance(); - calendar.setTime(maxTime0); - calendar.add(Calendar.DAY_OF_YEAR, 1); - Date maxTime = calendar.getTime(); - qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 - } - qo.setWerks(dateSource.get("poolName").replace("ds_",""));//工厂 + Date maxTime0 = sapBomMapper.getRouteMaxTime(); + if (maxTime0 != null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(maxTime0); + calendar.add(Calendar.DAY_OF_YEAR, 1); + Date maxTime = calendar.getTime(); + // qo.setAedat(DateFormatUtils.format(maxTime, "yyyyMMdd"));//修改日期20230923 + } + qo.setWerks(dateSource.get("poolName").replace("ds_", ""));//工厂 - R r = sapRouterService.sapRouterSync(qo); - if(r.getCode()!=200){ - logger.error("++++++++++++" + dateSource.get("poolName")+"同步工艺失败,错误信息:"+ r.getMsg()); + R r = sapRouterService.sapRouterSync(qo); + if (r.getCode() != 200) { + logger.error("++++++++++++" + dateSource.get("poolName") + "同步工艺失败,错误信息:" + r.getMsg()); + } + logger.error("++++++++++++" + dateSource.get("poolName") + "++++工艺同步结束++++++++++"); } - logger.error("++++++++++++" + dateSource.get("poolName") + "++++工艺同步结束++++++++++"); }); return R.ok(); - } - /** - * 生产订单备料单接口 - * @param shopOrder - * @return - */ - - @PostMapping("/materialPreparation") - @Log(title = "生产订单备料单接口", businessType = BusinessType.SAP) - public R> materialPreparation(@RequestParam("shopOrder") String shopOrder){ - return sapMaterialPreparationService.MaterialPreparation(shopOrder); - } - - @PostMapping("/sapMaterialPosting") - @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A)", businessType = BusinessType.SAP) - public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ - return sapItemSyncService.sapMaterialPosting(sapMaterialPosting); - } - - - /** - * 生产订单创建接口 - * @param sapCreateOrderList - * @return - */ - - @PostMapping("/sapCreateOrder") - @Log(title = "生产订单创建接口", businessType = BusinessType.SAP) - public R> SapCreateOrder(@RequestBody List sapCreateOrderList){ - return sapOrderService.SapCreateOrder(sapCreateOrderList); - } - - /** - * 生产订单关闭接口 - * @param shopOrder - * @return - */ - @PostMapping("/sapCloseOrder") - @Log(title = "生产订单关闭接口", businessType = BusinessType.SAP) - public R sapCloseOrder(@RequestParam("shopOrder") String shopOrder){ - return sapOrderService.sapCloseOrder(shopOrder); - } - - /** - * 报工 - * @param sapRFW - * @return - */ - @PostMapping("/sapRFWOrder") - @Log(title = "生产订单报工接口", businessType = BusinessType.SAP) - public R sapRFWOrder(@RequestBody SapRFW sapRFW){ - return sapOrderService.sapRFWOrder(sapRFW); - } - - /** * 工作中心 * @return @@ -353,5 +294,106 @@ public class SapController extends BaseController { } + /**==================================生产订单相关============================================================================*/ + + /** + * 订单同步接口 + * @return + */ + @PostMapping("/shopOrderSync") + @Log(title = "同步SAP订单", businessType = BusinessType.SAP) + public R> shopOrderSync(@RequestBody SapShopOrderQuery sapProOrder){ + return sapOrderService.shopOrderSync(sapProOrder); + } + /** + * 生产订单创建接口 + * @param sapCreateOrderList + * @return + */ + + @PostMapping("/sapCreateOrder") + @Log(title = "生产订单创建接口", businessType = BusinessType.SAP) + public R>> SapCreateOrder(@RequestBody List sapCreateOrderList){ + return sapOrderService.SapCreateOrder(sapCreateOrderList); + } + /** + * SAP订单修改接口 + * 传递母订单号和母订单数量 + */ + @PostMapping("/shopUpdateSync") + @Log(title = "修改SAP订单", businessType = BusinessType.SAP) + public R shopUpdateSync(@RequestBody SapShopOrderQuery sapProOrder){ + return sapOrderService.shopUpdateSync(sapProOrder); + } + + + /** + * 报工 + * @param sapRFW + * @return + */ + @PostMapping("/sapRFWOrder") + @Log(title = "生产订单报工接口", businessType = BusinessType.SAP) + public R sapRFWOrder(@RequestBody SapRFW sapRFW){ + return sapOrderService.sapRFWOrder(sapRFW); + } + + /** + * 生产订单关闭接口 + * 传母订单号即可 + * @param sapCloseOrderQuery + * @return + */ + @PostMapping("/sapCloseOrder") + @Log(title = "生产订单关闭接口", businessType = BusinessType.SAP) + public R sapCloseOrder(@RequestBody SapCloseOrderQuery sapCloseOrderQuery){ + return sapOrderService.sapCloseOrder(sapCloseOrderQuery); + } + + + + /** + * 生产订单备料单接口 + * @param shopOrder + * @return + */ + + @PostMapping("/materialPreparation") + @Log(title = "生产订单备料单接口", businessType = BusinessType.SAP) + public R> materialPreparation(@RequestParam("shopOrder") String shopOrder){ + return sapMaterialPreparationService.MaterialPreparation(shopOrder); + } + + /** + * 反冲物料领料过账接口 + * ***与包材领料分开过账 + * @param sapBackflushMPQueryList + * @return + */ + @PostMapping("/sapBackflushMP") + @Log(title = "", businessType = BusinessType.SAP) + public R sapBackflushMP(@RequestBody List sapBackflushMPQueryList){ + return sapItemSyncService.sapBackflushMP(sapBackflushMPQueryList); + } + + + @PostMapping("/sapMaterialPosting") + @Log(title = "订单物料领料过账、原材料补料、订单物料退料过账接口(MB1A)", businessType = BusinessType.SAP) + public R sapMaterialPosting(@RequestBody SapMaterialPosting sapMaterialPosting){ + return sapItemSyncService.sapMaterialPosting(sapMaterialPosting); + } + + + /** + * 采购订单接口 + */ + + @PostMapping("/sapPurchaseOrderSync") + @Log(title = "获取采购订单", businessType = BusinessType.SAP) + public R sapPurchaseOrderSync(@RequestBody SapPurchaseOrderQuery sapPurchaseOrderQuery){ + return sapOrderService.sapPurchaseOrderSync(sapPurchaseOrderQuery); + } + + } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapBackflushMPQuery.java b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapBackflushMPQuery.java new file mode 100644 index 000000000..7cc1e30b8 --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapBackflushMPQuery.java @@ -0,0 +1,117 @@ +package com.op.sap.domain.vo; + +/** + * 反冲类型的领料过账接口 + * auth YangWL + * + * MATNR CHAR 18 0 物料号 必填 + * PLANT CHAR 4 0 工厂 必填 + * GR_RCPT CHAR 12 0 收货方/运达方 选填 + * LGORT CHAR 4 0 库存地点 必填 + * UMLGO CHAR 4 0 收货/发货库存地点 选填 + * QUANTITY QUAN 13 3 数量 必填 + * MEINS UNIT 3 0 条目单位 必填 + * BATCH CHAR 10 0 批号 必填 + * MOVE_BATCH CHAR 10 0 收货/发货批量 选填 + */ + + +public class SapBackflushMPQuery { + + private String matnr; + private String plant; + private String gr_rcpt; + private String lgort; + private String umlgo; + private String quantity; + private String meins; + private String batch; + private String move_batch; + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getPlant() { + return plant; + } + + public void setPlant(String plant) { + this.plant = plant; + } + + public String getGr_rcpt() { + return gr_rcpt; + } + + public void setGr_rcpt(String gr_rcpt) { + this.gr_rcpt = gr_rcpt; + } + + public String getLgort() { + return lgort; + } + + public void setLgort(String lgort) { + this.lgort = lgort; + } + + public String getUmlgo() { + return umlgo; + } + + public void setUmlgo(String umlgo) { + this.umlgo = umlgo; + } + + public String getQuantity() { + return quantity; + } + + public void setQuantity(String quantity) { + this.quantity = quantity; + } + + public String getMeins() { + return meins; + } + + public void setMeins(String meins) { + this.meins = meins; + } + + public String getBatch() { + return batch; + } + + public void setBatch(String batch) { + this.batch = batch; + } + + public String getMove_batch() { + return move_batch; + } + + public void setMove_batch(String move_batch) { + this.move_batch = move_batch; + } + + @Override + public String toString() { + return "SapBackflushMPQuery{" + + "matnr='" + matnr + '\'' + + ", plant='" + plant + '\'' + + ", gr_rcpt='" + gr_rcpt + '\'' + + ", lgort='" + lgort + '\'' + + ", umlgo='" + umlgo + '\'' + + ", quantity='" + quantity + '\'' + + ", meins='" + meins + '\'' + + ", batch='" + batch + '\'' + + ", move_batch='" + move_batch + '\'' + + '}'; + } +} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java new file mode 100644 index 000000000..01c2c742f --- /dev/null +++ b/op-modules/op-sap/src/main/java/com/op/sap/domain/vo/SapPurchaseOrderQuery.java @@ -0,0 +1,48 @@ +package com.op.sap.domain.vo; + + +public class SapPurchaseOrderQuery { + /** + * S_EBELN 采购订单号 + * S_EBELP 行项目 + * S_MATNR 物料号 + * S_PWERK 工厂 + */ + private String ebeln; + private String ebelp; + private String matnr; + private String pwerk; + + + public String getEbeln() { + return ebeln; + } + + public void setEbeln(String ebeln) { + this.ebeln = ebeln; + } + + public String getEbelp() { + return ebelp; + } + + public void setEbelp(String ebelp) { + this.ebelp = ebelp; + } + + public String getMatnr() { + return matnr; + } + + public void setMatnr(String matnr) { + this.matnr = matnr; + } + + public String getPwerk() { + return pwerk; + } + + public void setPwerk(String pwerk) { + this.pwerk = pwerk; + } +} diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java index 5f7975d60..2e3152bb8 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapItemSyncService.java @@ -1,6 +1,7 @@ package com.op.sap.service; import com.op.common.core.domain.R; +import com.op.sap.domain.vo.SapBackflushMPQuery; import com.op.sap.domain.vo.SapItemQuery; import com.op.sap.domain.vo.SapMaterialPosting; import com.op.system.api.domain.sap.SapBaseProduct; @@ -25,4 +26,6 @@ public interface SapItemSyncService { */ R sapMaterialPosting(SapMaterialPosting sapMaterialPosting); + + R sapBackflushMP(List sapBackflushMPQueryList); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java index 8ace5efb4..945ab3e66 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java @@ -1,14 +1,16 @@ package com.op.sap.service; import com.op.common.core.domain.R; -import com.op.common.core.web.domain.AjaxResult; +import com.op.sap.domain.vo.SapPurchaseOrderQuery; +import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.domain.sap.SapShopOrderQuery; import com.op.system.api.model.SapProOrder; import java.util.List; +import java.util.Map; /** * 杨万里 2023年8月 @@ -27,15 +29,15 @@ public interface SapOrderService { * @param sapCreateOrderList * @return */ - R> SapCreateOrder(List sapCreateOrderList); + R>> SapCreateOrder(List sapCreateOrderList); /** * 订单关闭 - * @param shopOrder + * @param sapCloseOrderQuery * @return */ - R sapCloseOrder(String shopOrder); + R sapCloseOrder(SapCloseOrderQuery sapCloseOrderQuery); /** * 订单报工 @@ -44,4 +46,8 @@ public interface SapOrderService { */ R sapRFWOrder(SapRFW sapRFW); + + R sapPurchaseOrderSync(SapPurchaseOrderQuery sapPurchaseOrderQuery); + + R shopUpdateSync(SapShopOrderQuery sapProOrder); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java index 79bff835a..08a1e329a 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapBomServiceImpl.java @@ -23,12 +23,14 @@ import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; +@Component @Service public class SapBomServiceImpl implements SapBomService { private static final String END_DATE="99991231"; @@ -41,13 +43,16 @@ public class SapBomServiceImpl implements SapBomService { @Autowired private SqlSessionFactory sqlSessionFactory; + @Autowired + private JCoDestination dest; + @Override public R bomSync(SapBomQuery sapBomQuery) { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + //JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_BOM"); if (func == null) { 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 a501a668e..812d87a03 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 @@ -8,6 +8,7 @@ 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.security.utils.SecurityUtils; +import com.op.sap.domain.vo.SapBackflushMPQuery; import com.op.sap.domain.vo.SapItemQuery; import com.op.sap.domain.vo.SapMaterialPosting; import com.op.sap.mapper.SapBaseProductMapper; @@ -20,6 +21,7 @@ import com.sap.conn.jco.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import javax.validation.Validator; @@ -28,6 +30,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +@Component @Service public class SapItemSyncImpl implements SapItemSyncService { @@ -41,15 +44,19 @@ public class SapItemSyncImpl implements SapItemSyncService { @Autowired protected Validator validator; + @Autowired + private JCoDestination dest; + private static final Logger log = LoggerFactory.getLogger(SapItemSyncImpl.class); @Override public R itemSync(SapItemQuery sapItemQuery) { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMMR_MES_MAT_GET"); + if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } @@ -92,13 +99,6 @@ public class SapItemSyncImpl implements SapItemSyncService { S_LAEDA.setValue("HIGH", END_DATE); } - - - - - - - // 获取调用 RFC 函数对象 func.execute(dest); // 获取 内表 - ZMES_PRO @@ -186,6 +186,7 @@ public class SapItemSyncImpl implements SapItemSyncService { baseProduct.setUpdateBy(SecurityUtils.getUsername()); sapBaseProductList.add(baseProduct); } + //this.importProducts(sapBaseProductList) return R.ok(this.importProducts(sapBaseProductList)); }catch (Exception e){ return R.fail(e.getMessage()); @@ -198,7 +199,7 @@ public class SapItemSyncImpl implements SapItemSyncService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_GOODSMVT_CREATE"); // 配置传入参数 @@ -290,6 +291,68 @@ public class SapItemSyncImpl implements SapItemSyncService { } } + /** + * 反冲物料领料过账 + * @param sapBackflushMPQueryList + * @return + */ + + @Override + public R sapBackflushMP(List sapBackflushMPQueryList) { + try { + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZPPR_MES_GOODSMVT_CREATE_B"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + JCoTable L_ITEM = func.getTableParameterList().getTable("L_ITEM"); + + System.out.println(L_ITEM); + +// +// int successNum = 0; +// int failureNum = 0; +// StringBuilder successMsg = new StringBuilder(); +// StringBuilder failureMsg = new StringBuilder(); +// log.info("反冲物料开始过账----------------------------------------"); + +// for (int i = 0; i < sapBackflushMPQueryList.size(); i++) { +// L_ITEM.setRow(i); +// L_ITEM.appendRow(); +// L_ITEM.setValue("MATNR",sfp.getMatnr()); +// } + for (SapBackflushMPQuery sfp:sapBackflushMPQueryList){ +// if (StringUtils.isEmpty(sfp.getMatnr())){ +// return R.fail("物料号为空!"); +// } +// if (StringUtils.isEmpty(sfp.getPlant())){ +// +// } + L_ITEM.appendRow(); + L_ITEM.setValue("MATNR",sfp.getMatnr()); + L_ITEM.setValue("PLANT",sfp.getPlant()); + L_ITEM.setValue("GR_RCPT",sfp.getGr_rcpt()); + L_ITEM.setValue("LGORT",sfp.getLgort()); + L_ITEM.setValue("UMLGO",sfp.getUmlgo()); + L_ITEM.setValue("QUANTITY",sfp.getQuantity()); + L_ITEM.setValue("MEINS",sfp.getMeins()); + L_ITEM.setValue("BATCH",sfp.getBatch()); + L_ITEM.setValue("MOVE_BATCH",sfp.getMove_batch()); + + } + return R.ok(); + + }catch (Exception e){ + return R.fail(e.getMessage()); + } + + } + + public static void main(String[] args) { + SapBackflushMPQuery sapBackflushMPQuery=new SapBackflushMPQuery(); + System.out.println(sapBackflushMPQuery.toString()); + } + public String importProducts(List sapBaseProductList){ if (StringUtils.isNull(sapBaseProductList) || sapBaseProductList.size() == 0) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java index b0b1d752e..4c4a80dba 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapMaterialPreparationServiceImpl.java @@ -9,17 +9,22 @@ import com.op.sap.util.SAPConnUtils; import com.op.system.api.domain.sap.SapMaterialPreparation; import com.sap.conn.jco.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +@Component @Service public class SapMaterialPreparationServiceImpl implements SapMaterialPreparationService { @Autowired SapMaterialPreparationMapper sapMaterialPreparationMapper; + @Autowired + private JCoDestination dest; + @Override public R> MaterialPreparation(String shopOrder) { // 连接 @@ -27,7 +32,7 @@ public class SapMaterialPreparationServiceImpl implements SapMaterialPreparation try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_MATERIAL_PREPARATION"); if (func == null) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index d466164a5..d81cd2c5f 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -1,30 +1,40 @@ package com.op.sap.service.impl; +import com.alibaba.fastjson2.JSONObject; import com.op.common.core.constant.Constants; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; +import com.op.sap.domain.vo.SapPurchaseOrderQuery; import com.op.sap.service.SapOrderService; import com.op.sap.util.SAPConnUtils; +import com.op.system.api.domain.sap.SapCloseOrderQuery; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.domain.sap.SapShopOrderQuery; import com.op.system.api.model.SapProOrder; import com.sap.conn.jco.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; +@Component @Service public class SapOrderServiceImpl implements SapOrderService { private static final String END_DATE="99991231"; + @Autowired + private JCoDestination dest; @Override public R> shopOrderSync(SapShopOrderQuery sapShopOrderQuery) { @@ -32,7 +42,7 @@ public class SapOrderServiceImpl implements SapOrderService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + //JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRO_TO"); if (func == null) { @@ -141,11 +151,11 @@ public class SapOrderServiceImpl implements SapOrderService { } @Override - public R> SapCreateOrder(List sapCreateOrderList) { + public R>> SapCreateOrder(List sapCreateOrderList) { String L_MSG=null; try { //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CREATE"); if (func == null) { @@ -154,9 +164,9 @@ public class SapOrderServiceImpl implements SapOrderService { // 配置传入参数 JCoParameterList jCoParameterList = func.getImportParameterList(); - List LV_ORDER_NUM_List=new ArrayList<>(); if (sapCreateOrderList!=null && sapCreateOrderList.size()>0){ + List> LV_ORDER_NUM_List=new ArrayList<>(); for (SapCreateOrder sapCreateOrder:sapCreateOrderList){ jCoParameterList.setValue("P_WERKS",sapCreateOrder.getWerks()); jCoParameterList.setValue("P_AUFPAR",sapCreateOrder.getAufpar()); @@ -169,17 +179,24 @@ public class SapOrderServiceImpl implements SapOrderService { System.out.println(J); L_MSG= func.getExportParameterList().getString("L_MSG"); String LV_ORDER_NUMBER= func.getExportParameterList().getString("LV_ORDER_NUMBER"); - if (!StringUtils.isEmpty(LV_ORDER_NUMBER)){ - LV_ORDER_NUM_List.add(LV_ORDER_NUMBER); - }else { - return R.fail(L_MSG); + + JCoTable LT_ZGD=func.getTableParameterList().getTable("LT_ZGD"); + System.out.println(LT_ZGD); + //DynamicDataSourceContextHolder.push("ds_1000");//controller已经完成切换 + for (int i = 0; i sapProRouteProcessList = sapProRouteProcessMapper.selectProRouteProcessList(sapProRouteProcess); - if (sapProRouteProcessList .size()==0) { - //增加工艺路线和工序的关系 - sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID()); - sapProRouteProcess.setRouteId(sapProRoute.getRouteId()); - sapProRouteProcess.setProcessId(operation.getProcessId()); - sapProRouteProcess.setProcessCode(operation.getProcessCode()); - sapProRouteProcess.setProcessName(operation.getProcessName()); - sapProRouteProcess.setOrderNum(1); - sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); - sapProRouteProcess.setCreateBy(ANNAM); - sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess); - } - //验证是否存在工艺路线和物料的关系 - SapProRouteProduct sapProRouteProduct = new SapProRouteProduct(); - sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); - sapProRouteProduct.setItemCode(MATNR); - List sapProRouteProductList = sapProRouteProductMapper.selectProRouteProductList(sapProRouteProduct); - if (sapProRouteProductList .size()==0) { - sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID()); - sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); - sapProRouteProduct.setItemId(sapBaseProduct.getProductId()); - sapProRouteProduct.setItemCode(MATNR); - sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh()); - sapProRouteProduct.setCreateBy(ANNAM); - sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); - sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct); - } - } + //机器 + sapProRoute.setTecMachine(VGW01); + sapProRoute.setTecMachineUnit(VGE01); + //人工 + sapProRoute.setTecMan(VGW02); + sapProRoute.setTecManUnit(VGE02); + //折旧 + sapProRoute.setTecDepreciation(VGW03); + sapProRoute.setTecDepreciationUnit(VGE03); + //其它 + sapProRoute.setTecOther(VGW04); + sapProRoute.setTecOtherUnit(VGE04); + sapProRoute.setUpdateBy(ANNAM); + sapProRoute.setUpdateTime(DateUtils.getNowDate()); + sapProRouteMapper.updateProRoute(sapProRoute); } +// else{ +// //验证是否存在工序 +// sapProProcess.setProcessName(LTXA1); +// SapProProcess operation = sapProProcessMapper.selectProProcessByProcessName(sapProProcess); +// //验证产品是否存在 +// SapBaseProduct sapBaseProduct=new SapBaseProduct(); +// sapBaseProduct.setProductCode(MATNR); +// sapBaseProduct = sapBaseProductMapper.selectBaseProductByProductCode(sapBaseProduct); +// if (StringUtils.isNull(operation)){ +// failureNum++; +// failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的工序【" + LTXA1 + "】不存在!"); +// } +// else if (StringUtils.isNull(sapBaseProduct)){ +// failureNum++; +// failureMsg.append(failureNum+"、工艺路线【" + PLNNR + "】下的物料【" + MATNR + "】不存在!"); +// } +// else if(!StringUtils.isNull(operation) && !StringUtils.isNull(sapBaseProduct)) { +// //验证是否存在工艺路线和工序的关系 +// SapProRouteProcess sapProRouteProcess = new SapProRouteProcess(); +// sapProRouteProcess.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProcess.setProcessId(operation.getProcessId()); +// List sapProRouteProcessList = sapProRouteProcessMapper.selectProRouteProcessList(sapProRouteProcess); +// if (sapProRouteProcessList .size()==0) { +// //增加工艺路线和工序的关系 +// sapProRouteProcess.setRecordId(IdUtils.fastSimpleUUID()); +// sapProRouteProcess.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProcess.setProcessId(operation.getProcessId()); +// sapProRouteProcess.setProcessCode(operation.getProcessCode()); +// sapProRouteProcess.setProcessName(operation.getProcessName()); +// sapProRouteProcess.setOrderNum(1); +// sapProRouteProcess.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); +// sapProRouteProcess.setCreateBy(ANNAM); +// sapProRouteProcessMapper.insertProRouteProcess(sapProRouteProcess); +// } +// //验证是否存在工艺路线和物料的关系 +// SapProRouteProduct sapProRouteProduct = new SapProRouteProduct(); +// sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProduct.setItemCode(MATNR); +// List sapProRouteProductList = sapProRouteProductMapper.selectProRouteProductList(sapProRouteProduct); +// if (sapProRouteProductList .size()==0) { +// sapProRouteProduct.setRecordId(IdUtils.fastSimpleUUID()); +// sapProRouteProduct.setRouteId(sapProRoute.getRouteId()); +// sapProRouteProduct.setItemId(sapBaseProduct.getProductId()); +// sapProRouteProduct.setItemCode(MATNR); +// sapProRouteProduct.setItemName(sapBaseProduct.getProductDescZh()); +// sapProRouteProduct.setCreateBy(ANNAM); +// sapProRouteProduct.setCreateTime(DateUtils.dateTime("yyyy-MM-dd", ANDAT)); +// sapProRouteProductMapper.insertProRouteProduct(sapProRouteProduct); +// } +// } +// } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java index 69784f2a1..c4e07dcd6 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapWorkCenterServiceImpl.java @@ -14,6 +14,7 @@ import com.op.system.api.domain.sap.SapSupplier; import com.op.system.api.domain.sap.SapWorkCenter; import com.sap.conn.jco.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -22,19 +23,22 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; +@Component @Service public class SapWorkCenterServiceImpl implements SapWorkCenterService { private static final String END_DATE="99991231"; @Autowired private SapBomMapper sapBomMapper; + @Autowired + private JCoDestination dest; @Override public R sapWorkCenterSync(SapWorkCenterQuery sapWorkCenterQuery) { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_GET_ARBPL"); if (func == null) { @@ -111,7 +115,7 @@ public class SapWorkCenterServiceImpl implements SapWorkCenterService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_GET_LFB1"); if (func == null) { @@ -188,7 +192,7 @@ public class SapWorkCenterServiceImpl implements SapWorkCenterService { try { // 获取调用 RFC 函数对象 //获取连接 - JCoDestination dest = SAPConnUtils.connect(); + // JCoDestination dest = SAPConnUtils.connect(); JCoRepository repository = dest.getRepository(); JCoFunction func = repository.getFunction("ZMES_GET_KNA1"); if (func == null) { diff --git a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java index 2d704d44e..e04eeef83 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/util/SAPConnUtils.java @@ -4,20 +4,32 @@ package com.op.sap.util; import com.sap.conn.jco.JCoDestination; import com.sap.conn.jco.JCoDestinationManager; import com.sap.conn.jco.JCoException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.DependsOn; +import org.springframework.stereotype.Component; +@Component public class SAPConnUtils { + + protected Logger logger = LoggerFactory.getLogger(getClass()); private static final String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL"; - public static JCoDestination connect() { + + @Bean + @DependsOn("CreateABAP") + public JCoDestination connect() { JCoDestination destination = null; try { destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED); -// System.out.println(destination.getAttributes()); + if (destination!=null){ + logger.info("连接SAP成功"); + System.err.println("连接SAP成功"); + } } catch (JCoException e) { - // TODO: handle exception + logger.info("连接SAP失败,错误: " + e.toString()); throw new RuntimeException("连接SAP失败,错误: " + e.toString()); -// System.out.println("连接SAP失败,错误: " + e.toString()); } return destination; } - } diff --git a/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml b/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml index df6cebe2c..e81879f85 100644 --- a/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml +++ b/op-modules/op-sap/src/main/resources/mapper/sap/SapProRouteMapper.xml @@ -97,6 +97,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time, route_version, need_check, + tec_man, + tec_man_unit, + tec_machine, + tec_machine_unit, + tec_depreciation, + tec_depreciation_unit, + tec_other, + tec_ohter_unit, @@ -116,6 +124,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateTime}, #{routeVersion}, #{needCheck}, + #{tecMan}, + #{tecManUnit}, + #{tecMachine}, + #{tecMachineUnit}, + #{tecDepreciation}, + #{tecDepreciationUnit}, + #{tecOther}, + #{tecOtherUnit}, @@ -128,6 +144,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" route_desc = #{routeDesc}, enable_flag = #{enableFlag}, remark = #{remark}, + tec_man = #{tecMan}, + tec_man_unit = #{tecManUnit}, + tec_machine = #{tecMachine}, + tec_machine_unit = #{tecMachineUnit}, + tec_depreciation = #{tecDepreciation}, + tec_depreciation_unit = #{tecDepreciationUnit}, + tec_other = #{tecOther}, + tec_ohter_unit = #{tecOtherUnit}, attr1 = #{attr1}, attr2 = #{attr2}, attr3 = #{attr3}, diff --git a/op-modules/op-wms/pom.xml b/op-modules/op-wms/pom.xml index afb24d8b5..386e5f958 100644 --- a/op-modules/op-wms/pom.xml +++ b/op-modules/op-wms/pom.xml @@ -82,6 +82,12 @@ com.op op-common-swagger + + com.op + op-modules-device + 0.0.1 + compile + diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java index 5cfb982f0..1ee831377 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/BaseEquipmentController.java @@ -1,7 +1,20 @@ package com.op.wms.controller; +import java.io.IOException; +import java.util.ArrayList; import java.util.List; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; + +import com.op.common.core.domain.ExcelCol; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.poi.ExcelMapUtil; +import com.op.common.security.utils.SecurityUtils; +import com.op.system.api.domain.SysUser; +import com.op.wms.domain.EquSpareEquipment; +import com.op.wms.domain.WmsSparePartsLedger; +import com.op.wms.service.IBaseEquipmentService; +import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -15,11 +28,11 @@ import com.op.common.log.annotation.Log; import com.op.common.log.enums.BusinessType; import com.op.common.security.annotation.RequiresPermissions; import com.op.wms.domain.BaseEquipment; -import com.op.wms.service.IBaseEquipmentService; 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; +import org.springframework.web.multipart.MultipartFile; /** * 设备管理Controller @@ -104,11 +117,117 @@ public class BaseEquipmentController extends BaseController { /** * 查询设备类型 */ -// @RequiresPermissions("wms:equipment:getEquipmentTypeList") @GetMapping("/getEquipmentTypeList") public TableDataInfo getEquipmentTypeList(BaseEquipment baseEquipment) { List list = baseEquipmentService.getEquipmentTypeList(baseEquipment); return getDataTable(list); } + /** + * 查询设备备件 + */ + @GetMapping("/getSparePartsList") + public TableDataInfo getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger) { + List list = baseEquipmentService.getSparePartsList(wmsSparePartsLedger); + return getDataTable(list); + } + + /** + * 查询设备备件右侧列表 + */ + @GetMapping("/getRightSparePartsList") + public TableDataInfo getRightSparePartsList(BaseEquipment baseEquipment) { + List list = baseEquipmentService.getRightSparePartsList(baseEquipment); + return getDataTable(list); + } + + /** + * 生成设备信息模板 + * + * @param response + * @throws IOException + */ + @PostMapping("/importTemplate") + @Log(title = "生成设备基础信息模板", businessType = BusinessType.EXPORT) + public void importTemplate(HttpServletResponse response) throws IOException { + + ArrayList excelCols = new ArrayList<>(); + excelCols.add(new ExcelCol("设备编码","equipmentCode",20)); + excelCols.add(new ExcelCol("设备名称","equipmentName",20)); + excelCols.add(new ExcelCol("品牌","equipmentBrand",20)); + excelCols.add(new ExcelCol("规格型号","equipmentSpec",20)); + excelCols.add(new ExcelCol("设备类型编码","equipmentTypeCode",20)); + + excelCols.add(new ExcelCol("设备类型名称","equipmentTypeName",20)); + excelCols.add(new ExcelCol("所属工作中心编码","workshopCode",20)); + excelCols.add(new ExcelCol("所属工作中心名称","workshopName",20)); + excelCols.add(new ExcelCol("工段","workshopSection",20)); + excelCols.add(new ExcelCol("设备位置","equipmentLocation",20)); + + excelCols.add(new ExcelCol("工时单价","hourlyUnitPrice",20)); + excelCols.add(new ExcelCol("生产厂商","manufacturer",20)); + excelCols.add(new ExcelCol("供应商","supplier",20)); + excelCols.add(new ExcelCol("使用寿命","useLife",20)); +// excelCols.add(new ExcelCol("购买时间","buyTime",20)); + + excelCols.add(new ExcelCol("资产原值","assetOriginalValue",20)); + excelCols.add(new ExcelCol("资产净值","netAssetValue",20)); + excelCols.add(new ExcelCol("资产负责人","assetHead",20)); + excelCols.add(new ExcelCol("固定资产编码","fixedAssetCode",20)); + excelCols.add(new ExcelCol("部门","department",20)); + + excelCols.add(new ExcelCol("单台能力工时","unitWorkingHours",20)); + excelCols.add(new ExcelCol("PLCIP","plcIp",20)); + excelCols.add(new ExcelCol("PLC端口","plcPort",20)); + excelCols.add(new ExcelCol("SAP资产号","sapAsset",20)); + excelCols.add(new ExcelCol("设备负责人","equipmentHead",20)); + + String titleName = "设备基础信息导入"; + SXSSFWorkbook workbook = null; + try { + //设置响应头 + response.setHeader("Content-disposition", + "attachment; filename="+ titleName); + response.setContentType("application/octet-stream;charset=UTF-8"); + ServletOutputStream outputStream = response.getOutputStream(); + //调用工具类 + workbook = ExcelMapUtil.initWorkbook(titleName, titleName, excelCols, null); + workbook.write(outputStream); + } catch (Exception e) { + e.printStackTrace(); + }finally { + if (workbook!=null){ + workbook.dispose(); + } + } + } + + /** + * 导入设备基本信息接口 + * + * @param file + * @return + * @throws Exception + */ + @Log(title = "导入设备基本信息", businessType = BusinessType.IMPORT) + @PostMapping("/importFile") + @RequiresPermissions("wms:equipment:import") + public AjaxResult importFile(MultipartFile file) throws Exception { + // 创建接收对象 + ExcelUtil util = new ExcelUtil<>(BaseEquipment.class); + // 接收表格信息 + List orderList = util.importExcel(file.getInputStream()); + return baseEquipmentService.importFile(orderList); + } + + /** + * 状态修改 + */ + @RequiresPermissions("wms:equipment:edit") + @Log(title = "修改设备状态", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public AjaxResult changeStatus(@RequestBody BaseEquipment baseEquipment) { + return toAjax(baseEquipmentService.updateBaseEquipmentStatus(baseEquipment)); + } + } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java index f9d7c4fed..3aab7b213 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/BaseEquipment.java @@ -1,10 +1,13 @@ package com.op.wms.domain; +import com.op.common.core.domain.BaseFileData; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.op.common.core.annotation.Excel; import com.op.common.core.web.domain.BaseEntity; +import java.util.List; + /** * 设备管理对象 base_equipment * @@ -17,12 +20,12 @@ public class BaseEquipment extends BaseEntity { /** 设备类型ID */ private Long equipmentId; - /** 设备类型编码 */ - @Excel(name = "设备类型编码") + /** 设备编码 */ + @Excel(name = "设备编码") private String equipmentCode; - /** 设备类型名称 */ - @Excel(name = "设备类型名称") + /** 设备名称 */ + @Excel(name = "设备名称") private String equipmentName; /** 品牌 */ @@ -58,7 +61,7 @@ public class BaseEquipment extends BaseEntity { private String workshopName; /** 设备状态 */ - @Excel(name = "设备状态") + @Excel(name = "设备是否启用") private String status; /** 预留字段1 */ @@ -146,6 +149,146 @@ public class BaseEquipment extends BaseEntity { @Excel(name = "端口号") private String plcPort; + + /** SAP资产号 */ + @Excel(name = "SAP资产号") + private String sapAsset; + + + /** 设备条码 */ + @Excel(name = "设备条码") + private String equipmentBarcode; + + /** 设备条码图片 */ + @Excel(name = "设备条码图片") + private String equipmentBarcodeImage; + + /** 生产厂商 */ + @Excel(name = "生产厂商") + private String manufacturer; + + /** 供应商 */ + @Excel(name = "供应商") + private String supplier; + + /** 使用寿命 */ + @Excel(name = "使用寿命") + private String useLife; + + /** 购买时间 */ + @Excel(name = "购买时间", width = 30, dateFormat = "yyyy-MM-dd") + private String buyTime; + + /** 资产原值 */ + @Excel(name = "资产原值") + private String assetOriginalValue; + + /** 资产净值 */ + @Excel(name = "资产净值") + private String netAssetValue; + + /** 资产负责人 */ + @Excel(name = "资产负责人") + private String assetHead; + + /** 固定资产编码 */ + @Excel(name = "固定资产编码") + private String fixedAssetCode; + + /** 部门 */ + @Excel(name = "部门") + private String department; + + /** 负责人工号 */ + @Excel(name = "负责人工号") + private String equipmentHead; + + /** 工厂号 */ + @Excel(name = "工厂号") + private String factoryCode; + + /** 设备状态 */ + @Excel(name = "设备状态") + private String equipmentStatus; + + private String imageFileList; + + private String barCodeFileList; + + private String qrFileList; + + private List qrFiles; + + private List barCodeFiles; + + private List imageFiles; + + //右侧绑定备件 + private List rightData; + + //返回已经绑定备件列表 + private List selectedData; + + public void setSelectedData(List selectedData) { + this.selectedData = selectedData; + } + + public List getSelectedData() { + return selectedData; + } + + public String getImageFileList() { + return imageFileList; + } + + public void setImageFileList(String imageFileList) { + this.imageFileList = imageFileList; + } + + public String getBarCodeFileList() { + return barCodeFileList; + } + + public void setBarCodeFileList(String barCodeFileList) { + this.barCodeFileList = barCodeFileList; + } + + public String getQrFileList() { + return qrFileList; + } + + public void setQrFileList(String qrFileList) { + this.qrFileList = qrFileList; + } + + public List getQrFiles() { + return qrFiles; + } + public void setQrFiles(List qrFiles) { + this.qrFiles = qrFiles; + } + + public void setBarCodeFiles(List barCodeFiles) { + this.barCodeFiles = barCodeFiles; + } + public List getBarCodeFiles() { + return barCodeFiles; + } + + public void setImageFiles(List imageFiles) { + this.imageFiles = imageFiles; + } + public List getImageFiles() { + return imageFiles; + } + + public void setEquipmentHead(String equipmentHead) { + this.equipmentHead = equipmentHead; + } + public String getEquipmentHead() { + return equipmentHead; + } + public void setPlcIp(String plcIp) { this.plcIp = plcIp; } @@ -378,6 +521,116 @@ public class BaseEquipment extends BaseEntity { return hourlyUnitPrice; } + public void setEquipmentBarcode(String equipmentBarcode) { + this.equipmentBarcode = equipmentBarcode; + } + + public String getEquipmentBarcode() { + return equipmentBarcode; + } + public void setEquipmentBarcodeImage(String equipmentBarcodeImage) { + this.equipmentBarcodeImage = equipmentBarcodeImage; + } + + public String getEquipmentBarcodeImage() { + return equipmentBarcodeImage; + } + public void setManufacturer(String manufacturer) { + this.manufacturer = manufacturer; + } + + public String getManufacturer() { + return manufacturer; + } + public void setSupplier(String supplier) { + this.supplier = supplier; + } + + public String getSupplier() { + return supplier; + } + public void setUseLife(String useLife) { + this.useLife = useLife; + } + + public String getUseLife() { + return useLife; + } + public void setBuyTime(String buyTime) { + this.buyTime = buyTime; + } + + public String getBuyTime() { + return buyTime; + } + public void setAssetOriginalValue(String assetOriginalValue) { + this.assetOriginalValue = assetOriginalValue; + } + + public String getAssetOriginalValue() { + return assetOriginalValue; + } + public void setNetAssetValue(String netAssetValue) { + this.netAssetValue = netAssetValue; + } + + public String getNetAssetValue() { + return netAssetValue; + } + public void setAssetHead(String assetHead) { + this.assetHead = assetHead; + } + + public String getAssetHead() { + return assetHead; + } + public void setFixedAssetCode(String fixedAssetCode) { + this.fixedAssetCode = fixedAssetCode; + } + + public String getFixedAssetCode() { + return fixedAssetCode; + } + public void setDepartment(String department) { + this.department = department; + } + + public String getDepartment() { + return department; + } + + public void setSapAsset(String sapAsset) { + this.sapAsset = sapAsset; + } + + public String getSapAsset() { + return sapAsset; + } + + //右侧的绑定备件 + public void setRightData(List rightData) { + this.rightData = rightData; + } + public List getRightData() { + return rightData; + } + + //工厂号 + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + public String getFactoryCode() { + return factoryCode; + } + + //设备状态 + public void setEquipmentStatus(String equipmentStatus) { + this.equipmentStatus = equipmentStatus; + } + public String getEquipmentStatus() { + return equipmentStatus; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/EquSpareEquipment.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/EquSpareEquipment.java new file mode 100644 index 000000000..08035fae7 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/EquSpareEquipment.java @@ -0,0 +1,169 @@ +package com.op.wms.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +import java.util.List; + +/** + * 备件设备关联对象 equ_spare_equipment + * + * @author Open Platform + * @date 2023-10-24 + */ +public class EquSpareEquipment extends BaseEntity { + private static final long serialVersionUID = 1L; + + + private String id; + + /** 备件编码 */ + @Excel(name = "备件编码") + private String spareCode; + + /** 备件类型 */ + @Excel(name = "备件类型") + private String spareType; + + /** 备件名称 */ + @Excel(name = "备件名称") + private String spareName; + + /** 设备名称 */ + @Excel(name = "设备名称") + private String equipmentName; + + /** 设备编码 */ + @Excel(name = "设备编码") + private String equipmentCode; + + /** 备用字段1 */ + @Excel(name = "备用字段1") + private String attr1; + + /** 备用字段2 */ + @Excel(name = "备用字段2") + private String attr2; + + /** 备用字段3 */ + @Excel(name = "备用字段3") + private String attr3; + + /** 删除字段 */ + private String delFlag; + + /** 工厂号 */ + @Excel(name = "工厂号") + private String factoryCode; + + private List rightData; + + public void setRightData(List rightData) { + this.rightData = rightData; + } + + public List getRightData() { + return rightData; + } + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + public void setSpareCode(String spareCode) { + this.spareCode = spareCode; + } + + public String getSpareCode() { + return spareCode; + } + public void setSpareType(String spareType) { + this.spareType = spareType; + } + + public String getSpareType() { + return spareType; + } + public void setSpareName(String spareName) { + this.spareName = spareName; + } + + public String getSpareName() { + return spareName; + } + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentName() { + return equipmentName; + } + public void setEquipmentCode(String equipmentCode) { + this.equipmentCode = equipmentCode; + } + + public String getEquipmentCode() { + return equipmentCode; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("spareCode", getSpareCode()) + .append("spareType", getSpareType()) + .append("spareName", getSpareName()) + .append("equipmentName", getEquipmentName()) + .append("equipmentCode", getEquipmentCode()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("delFlag", getDelFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .toString(); + } +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSparePartsLedger.java b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSparePartsLedger.java new file mode 100644 index 000000000..f117114e5 --- /dev/null +++ b/op-modules/op-wms/src/main/java/com/op/wms/domain/WmsSparePartsLedger.java @@ -0,0 +1,569 @@ +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; + +/** + * 备品备件台账管理对象 wms_ods_mate_storage_news + * + * @author Open Platform + * @date 2023-10-13 + */ +public class WmsSparePartsLedger extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 唯一序列 */ + @Excel(name = "唯一序列") + private String storageId; + + /** 仓库编码 */ + @Excel(name = "仓库编码") + private String whCode; + + /** 区域编号 */ + @Excel(name = "区域编号") + private String regionCode; + + /** 库区编码 */ + @Excel(name = "库区编码") + private String waCode; + + /** 库存类型:BC-包材 */ + @Excel(name = "库存类型:BC-包材") + private String storageType; + + /** 库位编码 */ + @Excel(name = "库位编码") + private String wlCode; + + /** 物料号 */ + @Excel(name = "物料号") + private String materialCode; + + /** 物料描述 */ + @Excel(name = "物料描述") + private String materialDesc; + + /** 总数量 */ + @Excel(name = "总数量") + private BigDecimal amount; + + /** 冻结数量(预留) */ + @Excel(name = "冻结数量", readConverterExp = "预=留") + private BigDecimal storageAmount; + + /** 占用数量 */ + @Excel(name = "占用数量") + private BigDecimal occupyAmount; + + /** LPN(预留) */ + @Excel(name = "LPN", readConverterExp = "预=留") + private String lpn; + + /** 入库批次号(预留) */ + @Excel(name = "入库批次号", readConverterExp = "预=留") + private String productBatch; + + /** 入库时间x(预留) */ + @Excel(name = "入库时间x", readConverterExp = "预=留") + private Date receiveDate; + + /** 生产时间(预留) */ + @Excel(name = "生产时间", readConverterExp = "预=留") + private Date productDate; + + /** 单位 */ + @Excel(name = "单位") + private String userDefined1; + + /** SAP库位 */ + @Excel(name = "SAP库位") + private String userDefined2; + + /** 备用3 */ + @Excel(name = "备用3") + private String userDefined3; + + /** 备用4 */ + @Excel(name = "备用4") + private String userDefined4; + + /** 备用5 */ + @Excel(name = "备用5") + private String userDefined5; + + /** 备用6 */ + @Excel(name = "备用6") + private String userDefined6; + + /** 备用7 */ + @Excel(name = "备用7") + private String userDefined7; + + /** 备用8 */ + @Excel(name = "备用8") + private String userDefined8; + + /** 备用9 */ + @Excel(name = "备用9") + private String userDefined9; + + /** 备用10 */ + @Excel(name = "备用10") + private String userDefined10; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date gmtCreate; + + /** 最后更新人 */ + @Excel(name = "最后更新人") + private String lastModifiedBy; + + /** 最后更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date gmtModified; + + /** 有效标记 */ + @Excel(name = "有效标记") + private String activeFlag; + + /** 工厂号 */ + @Excel(name = "工厂号") + private String factoryCode; + + /** SAP工厂号 */ + @Excel(name = "SAP工厂号") + private String sapFactoryCode; + + /** 库位名称 */ + @Excel(name = "库位名称") + private String wlName; + + /** 0存在 */ + private String delFlag; + + /** 使用寿命(备件用) */ + @Excel(name = "使用寿命", readConverterExp = "备=件用") + private String spareUseLife; + + /** 备件名称(备件用) */ + @Excel(name = "备件名称", readConverterExp = "备=件用") + private String spareName; + + /** 规格型号(备件用) */ + @Excel(name = "规格型号", readConverterExp = "备=件用") + private String spareMode; + + /** 生产厂商(备件用) */ + @Excel(name = "生产厂商", readConverterExp = "备=件用") + private String spareManufacturer; + + /** 供应商(备件用) */ + @Excel(name = "供应商", readConverterExp = "备=件用") + private String spareSupplier; + + /** 循环周期(备件用) */ + @Excel(name = "循环周期", readConverterExp = "备=件用") + private String spareReplacementCycle; + + /** 计量单位(备件用) */ + @Excel(name = "计量单位", readConverterExp = "备=件用") + private String spareMeasurementUnit; + + /** 换算单位(备件用) */ + @Excel(name = "换算单位", readConverterExp = "备=件用") + private String spareConversionUnit; + + /** 换算比例(备件用) */ + @Excel(name = "换算比例", readConverterExp = "备=件用") + private String spareConversionRatio; + + /** 库存上限(备件用) */ + @Excel(name = "库存上限", readConverterExp = "备=件用") + private String spareInventoryFloor; + + /** 库存下限(备件用) */ + @Excel(name = "库存下限", readConverterExp = "备=件用") + private String spareInventoryUpper; + + /** 备件类型 */ + @Excel(name = "备件类型", readConverterExp = "备=件用") + private String spareType; + + public void setSpareType(String spareType) { + this.spareType = spareType; + } + + public String getSpareType() { + return spareType; + } + + public void setStorageId(String storageId) { + this.storageId = storageId; + } + + public String getStorageId() { + return storageId; + } + public void setWhCode(String whCode) { + this.whCode = whCode; + } + + public String getWhCode() { + return whCode; + } + public void setRegionCode(String regionCode) { + this.regionCode = regionCode; + } + + public String getRegionCode() { + return regionCode; + } + public void setWaCode(String waCode) { + this.waCode = waCode; + } + + public String getWaCode() { + return waCode; + } + public void setStorageType(String storageType) { + this.storageType = storageType; + } + + public String getStorageType() { + return storageType; + } + public void setWlCode(String wlCode) { + this.wlCode = wlCode; + } + + public String getWlCode() { + return wlCode; + } + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialCode() { + return materialCode; + } + public void setMaterialDesc(String materialDesc) { + this.materialDesc = materialDesc; + } + + public String getMaterialDesc() { + return materialDesc; + } + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + public BigDecimal getAmount() { + return amount; + } + public void setStorageAmount(BigDecimal storageAmount) { + this.storageAmount = storageAmount; + } + + public BigDecimal getStorageAmount() { + return storageAmount; + } + public void setOccupyAmount(BigDecimal occupyAmount) { + this.occupyAmount = occupyAmount; + } + + public BigDecimal getOccupyAmount() { + return occupyAmount; + } + public void setLpn(String lpn) { + this.lpn = lpn; + } + + public String getLpn() { + return lpn; + } + public void setProductBatch(String productBatch) { + this.productBatch = productBatch; + } + + public String getProductBatch() { + return productBatch; + } + public void setReceiveDate(Date receiveDate) { + this.receiveDate = receiveDate; + } + + public Date getReceiveDate() { + return receiveDate; + } + public void setProductDate(Date productDate) { + this.productDate = productDate; + } + + public Date getProductDate() { + return productDate; + } + public void setUserDefined1(String userDefined1) { + this.userDefined1 = userDefined1; + } + + public String getUserDefined1() { + return userDefined1; + } + public void setUserDefined2(String userDefined2) { + this.userDefined2 = userDefined2; + } + + public String getUserDefined2() { + return userDefined2; + } + public void setUserDefined3(String userDefined3) { + this.userDefined3 = userDefined3; + } + + public String getUserDefined3() { + return userDefined3; + } + public void setUserDefined4(String userDefined4) { + this.userDefined4 = userDefined4; + } + + public String getUserDefined4() { + return userDefined4; + } + public void setUserDefined5(String userDefined5) { + this.userDefined5 = userDefined5; + } + + public String getUserDefined5() { + return userDefined5; + } + public void setUserDefined6(String userDefined6) { + this.userDefined6 = userDefined6; + } + + public String getUserDefined6() { + return userDefined6; + } + public void setUserDefined7(String userDefined7) { + this.userDefined7 = userDefined7; + } + + public String getUserDefined7() { + return userDefined7; + } + public void setUserDefined8(String userDefined8) { + this.userDefined8 = userDefined8; + } + + public String getUserDefined8() { + return userDefined8; + } + public void setUserDefined9(String userDefined9) { + this.userDefined9 = userDefined9; + } + + public String getUserDefined9() { + return userDefined9; + } + public void setUserDefined10(String userDefined10) { + this.userDefined10 = userDefined10; + } + + public String getUserDefined10() { + return userDefined10; + } + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public Date getGmtCreate() { + return gmtCreate; + } + public void setLastModifiedBy(String lastModifiedBy) { + this.lastModifiedBy = lastModifiedBy; + } + + public String getLastModifiedBy() { + return lastModifiedBy; + } + public void setGmtModified(Date gmtModified) { + this.gmtModified = gmtModified; + } + + public Date getGmtModified() { + return gmtModified; + } + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public String getActiveFlag() { + return activeFlag; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setSapFactoryCode(String sapFactoryCode) { + this.sapFactoryCode = sapFactoryCode; + } + + public String getSapFactoryCode() { + return sapFactoryCode; + } + public void setWlName(String wlName) { + this.wlName = wlName; + } + + public String getWlName() { + return wlName; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + public void setSpareUseLife(String spareUseLife) { + this.spareUseLife = spareUseLife; + } + + public String getSpareUseLife() { + return spareUseLife; + } + public void setSpareName(String spareName) { + this.spareName = spareName; + } + + public String getSpareName() { + return spareName; + } + public void setSpareMode(String spareMode) { + this.spareMode = spareMode; + } + + public String getSpareMode() { + return spareMode; + } + public void setSpareManufacturer(String spareManufacturer) { + this.spareManufacturer = spareManufacturer; + } + + public String getSpareManufacturer() { + return spareManufacturer; + } + public void setSpareSupplier(String spareSupplier) { + this.spareSupplier = spareSupplier; + } + + public String getSpareSupplier() { + return spareSupplier; + } + public void setSpareReplacementCycle(String spareReplacementCycle) { + this.spareReplacementCycle = spareReplacementCycle; + } + + public String getSpareReplacementCycle() { + return spareReplacementCycle; + } + public void setSpareMeasurementUnit(String spareMeasurementUnit) { + this.spareMeasurementUnit = spareMeasurementUnit; + } + + public String getSpareMeasurementUnit() { + return spareMeasurementUnit; + } + public void setSpareConversionUnit(String spareConversionUnit) { + this.spareConversionUnit = spareConversionUnit; + } + + public String getSpareConversionUnit() { + return spareConversionUnit; + } + public void setSpareConversionRatio(String spareConversionRatio) { + this.spareConversionRatio = spareConversionRatio; + } + + public String getSpareConversionRatio() { + return spareConversionRatio; + } + public void setSpareInventoryFloor(String spareInventoryFloor) { + this.spareInventoryFloor = spareInventoryFloor; + } + + public String getSpareInventoryFloor() { + return spareInventoryFloor; + } + public void setSpareInventoryUpper(String spareInventoryUpper) { + this.spareInventoryUpper = spareInventoryUpper; + } + + public String getSpareInventoryUpper() { + return spareInventoryUpper; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("storageId", getStorageId()) + .append("whCode", getWhCode()) + .append("regionCode", getRegionCode()) + .append("waCode", getWaCode()) + .append("storageType", getStorageType()) + .append("wlCode", getWlCode()) + .append("materialCode", getMaterialCode()) + .append("materialDesc", getMaterialDesc()) + .append("amount", getAmount()) + .append("storageAmount", getStorageAmount()) + .append("occupyAmount", getOccupyAmount()) + .append("lpn", getLpn()) + .append("productBatch", getProductBatch()) + .append("receiveDate", getReceiveDate()) + .append("productDate", getProductDate()) + .append("userDefined1", getUserDefined1()) + .append("userDefined2", getUserDefined2()) + .append("userDefined3", getUserDefined3()) + .append("userDefined4", getUserDefined4()) + .append("userDefined5", getUserDefined5()) + .append("userDefined6", getUserDefined6()) + .append("userDefined7", getUserDefined7()) + .append("userDefined8", getUserDefined8()) + .append("userDefined9", getUserDefined9()) + .append("userDefined10", getUserDefined10()) + .append("createBy", getCreateBy()) + .append("gmtCreate", getGmtCreate()) + .append("lastModifiedBy", getLastModifiedBy()) + .append("gmtModified", getGmtModified()) + .append("activeFlag", getActiveFlag()) + .append("factoryCode", getFactoryCode()) + .append("sapFactoryCode", getSapFactoryCode()) + .append("wlName", getWlName()) + .append("delFlag", getDelFlag()) + .append("spareUseLife", getSpareUseLife()) + .append("spareName", getSpareName()) + .append("spareMode", getSpareMode()) + .append("spareManufacturer", getSpareManufacturer()) + .append("spareSupplier", getSpareSupplier()) + .append("spareReplacementCycle", getSpareReplacementCycle()) + .append("spareMeasurementUnit", getSpareMeasurementUnit()) + .append("spareConversionUnit", getSpareConversionUnit()) + .append("spareConversionRatio", getSpareConversionRatio()) + .append("spareInventoryFloor", getSpareInventoryFloor()) + .append("spareInventoryUpper", getSpareInventoryUpper()) + .toString(); + } +} diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java index 4165f6926..a2132e720 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/BaseEquipmentMapper.java @@ -1,9 +1,14 @@ package com.op.wms.mapper; +import java.util.Date; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.domain.BaseFileData; import com.op.wms.domain.BaseEquipment; +import com.op.wms.domain.EquSpareEquipment; +import com.op.wms.domain.WmsSparePartsLedger; +import org.apache.ibatis.annotations.Param; /** * 设备管理Mapper接口 @@ -73,4 +78,36 @@ public interface BaseEquipmentMapper { //查询设备类型 List getEquipmentTypeList(BaseEquipment baseEquipment); + Long getEquipmentId(String equipmentCode); + + //查询备件 + List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger); + + //绑定备品备件 + public int bindSpareParts(EquSpareEquipment equSpareEquipment); + + //查询备件右侧 + List getRightSparePartsList(BaseEquipment baseEquipment); + + //批量新增文件 + Boolean insertBaseFileBatch(@Param("baseFiles") List baseFiles); + + //批量删除文件 + void deleteBaseFileBySourceId(String equipmentId); + + //查询不同类型 + List getImageFileBatch(@Param("sourceId")String sourceId, @Param("imageType")String imageType); + List getQrFileBatch(@Param("sourceId")String sourceId, @Param("imageType")String imageType); + List getBarcodeFileBatch(@Param("sourceId")String sourceId, @Param("imageType")String imageType); + + //根据code删除 + void deleteEquSpareEquipmentByCode(String equipmentCode); + //返回已经绑定备件列表 + List getSpareCodeList(EquSpareEquipment equSpareEquipment); + + //设备 + BaseEquipment selectExistByEquipmentCode(String equipmentCode); + + //更新设备状态 + Integer updateBaseEquipmentStatus(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java index 532f156bb..a8562b48c 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IBaseEquipmentService.java @@ -1,7 +1,11 @@ package com.op.wms.service; import java.util.List; + +import com.op.common.core.web.domain.AjaxResult; import com.op.wms.domain.BaseEquipment; +import com.op.wms.domain.EquSpareEquipment; +import com.op.wms.domain.WmsSparePartsLedger; /** * 设备管理Service接口 @@ -63,4 +67,16 @@ public interface IBaseEquipmentService { //查询设备类型 List getEquipmentTypeList(BaseEquipment baseEquipment); + + //查询设备备品备件 + List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger); + + //查询设备备品备件右侧列表 + public List getRightSparePartsList(BaseEquipment baseEquipment); + + //导入设备基础数据文件 + AjaxResult importFile(List equipmentList); + + //更改设备状态 + int updateBaseEquipmentStatus(BaseEquipment baseEquipment); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java index 18b9b81a8..472f40a9a 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/BaseEquipmentServiceImpl.java @@ -1,15 +1,36 @@ package com.op.wms.service.impl; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.domain.BaseFileData; import com.op.common.core.utils.DateUtils; -import com.op.wms.domain.BaseArea; +import com.op.common.core.utils.ServletUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.security.utils.SecurityUtils; +import com.op.wms.domain.*; +import com.op.wms.service.IBaseEquipmentService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.wms.mapper.BaseEquipmentMapper; -import com.op.wms.domain.BaseEquipment; -import com.op.wms.service.IBaseEquipmentService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; + +import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; /** * 设备管理Service业务层处理 @@ -19,6 +40,7 @@ import com.op.wms.service.IBaseEquipmentService; */ @Service public class BaseEquipmentServiceImpl implements IBaseEquipmentService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private BaseEquipmentMapper baseEquipmentMapper; @@ -63,7 +85,26 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { } } } -// } + String sourceId = equipmentId +""; + //获得设备图片 + List imageFiles = baseEquipmentMapper.getImageFileBatch(sourceId,"2"); + if (!CollectionUtils.isEmpty(imageFiles)) { + list.setImageFiles(imageFiles); + } + List qrFiles = baseEquipmentMapper.getQrFileBatch(sourceId,"1"); + if (!CollectionUtils.isEmpty(qrFiles)) { + list.setQrFiles(qrFiles); + } + List barcodeFiles = baseEquipmentMapper.getBarcodeFileBatch(sourceId,"0"); + if (!CollectionUtils.isEmpty(barcodeFiles)) { + list.setBarCodeFiles(barcodeFiles); + } + + //查询备品备件列表 + EquSpareEquipment equSpareEquipment = new EquSpareEquipment(); + equSpareEquipment.setEquipmentCode(list.getEquipmentCode()); + List spareCodeList = baseEquipmentMapper.getSpareCodeList(equSpareEquipment); + list.setSelectedData(spareCodeList); return list; } @@ -88,12 +129,83 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { @Override @DS("#header.poolName") public int insertBaseEquipment(BaseEquipment baseEquipment) { - baseEquipment.setCreateTime(DateUtils.getNowDate()); + Date createTime = DateUtils.getNowDate(); + baseEquipment.setCreateTime(createTime); String equipmentTypeName = baseEquipmentMapper.getEquipmentTypeName(baseEquipment); String workCenterName = baseEquipmentMapper.getWorkCenterName(baseEquipment); baseEquipment.setWorkshopName(workCenterName); baseEquipment.setEquipmentTypeName(equipmentTypeName); - return baseEquipmentMapper.insertBaseEquipment(baseEquipment); + Integer list = baseEquipmentMapper.insertBaseEquipment(baseEquipment); + Long equId = baseEquipmentMapper.getEquipmentId(baseEquipment.getEquipmentCode()); + //上传设备图片 + if (StringUtils.isNotEmpty(baseEquipment.getImageFileList())) { + String[] ids1 = baseEquipment.getImageFileList().split(","); + List files1 = new ArrayList<>(); + BaseFileData file1 = null; + for (String id1 : ids1) { + file1 = new BaseFileData(); + file1.setFileId(IdUtils.fastSimpleUUID()); + file1.setFileName(id1.split("&fileName=")[1]); + file1.setFileAddress(id1); + file1.setSourceId(equId+""); + file1.setCreateBy(SecurityUtils.getUsername()); + file1.setCreateTime(new Date()); + file1.setImageType("2"); + files1.add(file1); + } + baseEquipmentMapper.insertBaseFileBatch(files1); + } + //上传设备条码图片 + if (StringUtils.isNotEmpty(baseEquipment.getBarCodeFileList())) { + String[] ids2 = baseEquipment.getBarCodeFileList().split(","); + List files2 = new ArrayList<>(); + BaseFileData file2 = null; + for (String id2 : ids2) { + file2 = new BaseFileData(); + file2.setFileId(IdUtils.fastSimpleUUID()); + file2.setFileName(id2.split("&fileName=")[1]); + file2.setFileAddress(id2); + file2.setSourceId(equId+""); + file2.setCreateBy(SecurityUtils.getUsername()); + file2.setCreateTime(new Date()); + file2.setImageType("0"); + files2.add(file2); + } + baseEquipmentMapper.insertBaseFileBatch(files2); + } + //上传设备二维码图片 + if (StringUtils.isNotEmpty(baseEquipment.getQrFileList())) { + String[] ids3 = baseEquipment.getQrFileList().split(","); + List files3 = new ArrayList<>(); + BaseFileData file3 = null; + for (String id3 : ids3) { + file3 = new BaseFileData(); + file3.setFileId(IdUtils.fastSimpleUUID()); + file3.setFileName(id3.split("&fileName=")[1]); + file3.setFileAddress(id3); + file3.setSourceId(equId+""); + file3.setCreateBy(SecurityUtils.getUsername()); + file3.setCreateTime(new Date()); + file3.setImageType("1"); + files3.add(file3); + } + baseEquipmentMapper.insertBaseFileBatch(files3); + } + + if(baseEquipment.getRightData().size() >0 ){ + List rightSparePartsCodeList = baseEquipment.getRightData(); + for(String code :rightSparePartsCodeList){ + EquSpareEquipment equSpareEquipment = new EquSpareEquipment(); + equSpareEquipment.setSpareCode(code); + equSpareEquipment.setEquipmentCode(baseEquipment.getEquipmentCode()); + equSpareEquipment.setCreateBy(SecurityUtils.getUsername()); + equSpareEquipment.setCreateTime(DateUtils.getNowDate()); + equSpareEquipment.setId(IdUtils.fastSimpleUUID()); + equSpareEquipment.setEquipmentName(baseEquipment.getEquipmentName()); + baseEquipmentMapper.bindSpareParts(equSpareEquipment); + } + } + return list; } /** @@ -105,12 +217,89 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { @Override @DS("#header.poolName") public int updateBaseEquipment(BaseEquipment baseEquipment) { - baseEquipment.setUpdateTime(DateUtils.getNowDate()); - String equipmentTypeName = baseEquipmentMapper.getEquipmentTypeName(baseEquipment); - String workCenterName = baseEquipmentMapper.getWorkCenterName(baseEquipment); - baseEquipment.setWorkshopName(workCenterName); - baseEquipment.setEquipmentTypeName(equipmentTypeName); - return baseEquipmentMapper.updateBaseEquipment(baseEquipment); + + baseEquipment.setUpdateTime(DateUtils.getNowDate()); + String equipmentTypeName = baseEquipmentMapper.getEquipmentTypeName(baseEquipment); + String workCenterName = baseEquipmentMapper.getWorkCenterName(baseEquipment); + baseEquipment.setWorkshopName(workCenterName); + baseEquipment.setEquipmentTypeName(equipmentTypeName); + Integer list = baseEquipmentMapper.updateBaseEquipment(baseEquipment); + Long equId = baseEquipmentMapper.getEquipmentId(baseEquipment.getEquipmentCode()); + + baseEquipmentMapper.deleteBaseFileBySourceId(equId.toString()); + //设备上传二维码照片 + if (StringUtils.isNotEmpty(baseEquipment.getQrFileList())) { + String[] ids1 = baseEquipment.getQrFileList().split(","); + List files1 = new ArrayList<>(); + BaseFileData file1 = null; + for (String id1 : ids1) { + file1 = new BaseFileData(); + file1.setFileId(IdUtils.fastSimpleUUID()); + file1.setFileAddress(id1); + file1.setFileName(id1.split("&fileName=")[1]); + file1.setSourceId(equId+""); + file1.setCreateBy(SecurityUtils.getUsername()); + file1.setCreateTime(new Date()); + file1.setImageType("1"); + files1.add(file1); + } + baseEquipmentMapper.insertBaseFileBatch(files1); + } + + //设备上传设备照片 + if (StringUtils.isNotEmpty(baseEquipment.getImageFileList())) { + String[] ids2 = baseEquipment.getImageFileList().split(","); + List files2 = new ArrayList<>(); + BaseFileData file2 = null; + for (String id2 : ids2) { + file2 = new BaseFileData(); + file2.setFileId(IdUtils.fastSimpleUUID()); + file2.setFileAddress(id2); + file2.setFileName(id2.split("&fileName=")[1]); + file2.setSourceId(equId+""); + file2.setCreateBy(SecurityUtils.getUsername()); + file2.setImageType("2"); + file2.setCreateTime(new Date()); + files2.add(file2); + } + baseEquipmentMapper.insertBaseFileBatch(files2); + } + + //设备上传设备条码照片 + if (StringUtils.isNotEmpty(baseEquipment.getBarCodeFileList())) { + String[] ids3 = baseEquipment.getBarCodeFileList().split(","); + List files3 = new ArrayList<>(); + BaseFileData file3 = null; + for (String id3 : ids3) { + file3 = new BaseFileData(); + file3.setFileId(IdUtils.fastSimpleUUID()); + file3.setFileAddress(id3); + file3.setFileName(id3.split("&fileName=")[1]); + file3.setSourceId(equId+""); + file3.setCreateBy(SecurityUtils.getUsername()); + file3.setImageType("0"); + file3.setCreateTime(new Date()); + files3.add(file3); + } + baseEquipmentMapper.insertBaseFileBatch(files3); + } + //绑定 + //先删除,后绑定 + baseEquipmentMapper.deleteEquSpareEquipmentByCode(baseEquipment.getEquipmentCode()); + if(baseEquipment.getRightData().size() > 0 ){ + List rightSparePartsCodeList = baseEquipment.getRightData(); + for(String code :rightSparePartsCodeList){ + EquSpareEquipment equSpareEquipment = new EquSpareEquipment(); + equSpareEquipment.setSpareCode(code); + equSpareEquipment.setEquipmentCode(baseEquipment.getEquipmentCode()); + equSpareEquipment.setCreateBy(SecurityUtils.getUsername()); + equSpareEquipment.setCreateTime(DateUtils.getNowDate()); + equSpareEquipment.setId(IdUtils.fastSimpleUUID()); + equSpareEquipment.setEquipmentName(baseEquipment.getEquipmentName()); + baseEquipmentMapper.bindSpareParts(equSpareEquipment); + } + } + return list; } /** @@ -177,4 +366,134 @@ public class BaseEquipmentServiceImpl implements IBaseEquipmentService { public List getEquipmentTypeList(BaseEquipment baseEquipment) { return baseEquipmentMapper.getEquipmentTypeList(baseEquipment); } + + /** + * 查询左侧备品备件列表 + */ + @Override + @DS("#header.poolName") + public List getSparePartsList(WmsSparePartsLedger wmsSparePartsLedger) { + return baseEquipmentMapper.getSparePartsList(wmsSparePartsLedger); + } + + /** + * 查询右侧备品备件列表 + */ + @Override + @DS("#header.poolName") + public List getRightSparePartsList(BaseEquipment baseEquipment){ + return baseEquipmentMapper.getRightSparePartsList(baseEquipment); + } + + /** + * 处理设备基础信息 + * + * @param baseEquipment + * @return + */ + @Override + @DS("#header.poolName") + @Transactional + public AjaxResult importFile(List baseEquipment) { + BaseEquipment example = null; + for(BaseEquipment table:baseEquipment){ + //工厂号 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + table.setFactoryCode(request.getHeader(key.substring(8)).replace("ds_","")); + table.setCreateBy(SecurityUtils.getUsername()); + table.setCreateTime(DateUtils.getNowDate()); + //设备状态 1启用 0停用 + table.setStatus("1"); + } + + // 数据校验 + AjaxResult checkResult = checkImportFile(baseEquipment); + + // 如果数据校验成功 + if (checkResult.isSuccess()) { + String info = syncImportFunc(baseEquipment); + return success("信息导入完成。其中导入失败订单:"+info); + } + // 校验失败 + return checkResult; + } + + /** + * 校验导入设备基础信息 + * + * @param baseEquipment + */ + public AjaxResult checkImportFile(List baseEquipment) { + + // 传入对象不能为空 + if (baseEquipment.size() == 0 || StringUtils.isNull(baseEquipment)) { + return error(500, "导入的设备信息不能为空!信息导入失败!"); + } + + // 循环遍历校验数据是否为空 + for (BaseEquipment table : baseEquipment) { + // 设备编码 + if (table.getEquipmentCode().isEmpty() || table.getEquipmentCode() == null) { + return error(500, "设备编码不能为空!信息导入失败!"); + } + // 订单号 + if (table.getEquipmentName().isEmpty() || table.getEquipmentName() == null) { + return error(500, "设备名称不能为空!信息导入失败!"); + } + // 物料号 + if (table.getEquipmentTypeCode().isEmpty() || table.getEquipmentTypeCode() == null) { + return error(500, "设备类型编码不能为空!信息导入失败!"); + } + // 物料名称 + if (table.getEquipmentTypeName().isEmpty() || table.getEquipmentTypeName() == null) { + return error(500, "设备类型名称不能为空!信息导入失败!"); + } + //购买时间 + } + return success(); + } + + public String syncImportFunc(List baseEquipment){ + String failEquipment = ""; + for (BaseEquipment table:baseEquipment) { + String msg = syncFunc(table); + if(StringUtils.isNotBlank(msg)){ + failEquipment += msg+","; + } + } + return failEquipment; + } + + @Transactional(rollbackFor = Exception.class) + public String syncFunc(BaseEquipment table){ + String failEquipment = ""; + BaseEquipment equipmentExist = baseEquipmentMapper.selectExistByEquipmentCode(table.getEquipmentCode()); + //不存在就插入 + if (equipmentExist == null) { + baseEquipmentMapper.insertBaseEquipment(table); + logger.info("=======设备"+ table.getEquipmentCode() + "=======导入成功"); + //存在,不允许插入 + } else { + failEquipment = table.getEquipmentCode(); + logger.info("=======设备"+ failEquipment + "=======导入失败"); + } + return failEquipment; + } + + /** + * 修改设备管理 + * + * @param baseEquipment 设备管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateBaseEquipmentStatus(BaseEquipment baseEquipment) { + baseEquipment.setUpdateBy(SecurityUtils.getUsername()); + baseEquipment.setUpdateTime(DateUtils.getNowDate()); + Integer list = baseEquipmentMapper.updateBaseEquipmentStatus(baseEquipment); + return list; + } + } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml index 800e37b90..97f14bfed 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/BaseEquipmentMapper.xml @@ -26,17 +26,144 @@ + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select file_id, file_name, file_address, source_id, remark, attr1, + attr2, attr3, attr4, create_by, create_time, update_by, + update_time,image_type from base_file + + - select equipment_id, equipment_code, equipment_name, equipment_brand, equipment_spec, equipment_type_id, equipment_type_code, equipment_type_name, workshop_id, workshop_code, workshop_name, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, workshop_section, equipment_location, hourly_unit_price,unit_working_hours,del_flag,plc_ip,plc_port from base_equipment + select + equipment_id, + equipment_code, + equipment_name, + equipment_brand, + equipment_spec, + equipment_type_id, + equipment_type_code, + equipment_type_name, + workshop_id, + workshop_code, + workshop_name, + status, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + workshop_section, + equipment_location, + hourly_unit_price, + unit_working_hours, + del_flag, + plc_ip, + plc_port, + sap_asset, + equipment_barcode, + equipment_barcode_image, + manufacturer, + supplier, + use_life, + buy_time, + asset_original_value, + net_asset_value, + asset_head, + fixed_asset_code, + department, + equipment_head, + factory_code, + equipment_status + from base_equipment @@ -102,6 +244,21 @@ hourly_unit_price, plc_ip, plc_port, + equipment_barcode, + equipment_barcode_image, + manufacturer, + supplier, + use_life, + buy_time, + asset_original_value, + net_asset_value, + asset_head, + fixed_asset_code, + department, + sap_asset, + equipment_head, + factory_code, + equipment_status, #{equipmentCode}, @@ -130,6 +287,21 @@ #{hourlyUnitPrice}, #{plcIp}, #{plcPort}, + #{equipmentBarcode}, + #{equipmentBarcodeImage}, + #{manufacturer}, + #{supplier}, + #{useLife}, + #{buyTime}, + #{assetOriginalValue}, + #{netAssetValue}, + #{assetHead}, + #{fixedAssetCode}, + #{department}, + #{sapAsset}, + #{equipmentHead}, + #{factoryCode}, + equipmentStatus, @@ -162,6 +334,21 @@ hourly_unit_price = #{hourlyUnitPrice}, plc_ip = #{plcIp}, plc_port = #{plcPort}, + equipment_barcode = #{equipmentBarcode}, + equipment_barcode_image = #{equipmentBarcodeImage}, + manufacturer = #{manufacturer}, + supplier = #{supplier}, + use_life = #{useLife}, + buy_time = #{buyTime}, + asset_original_value = #{assetOriginalValue}, + net_asset_value = #{netAssetValue}, + asset_head = #{assetHead}, + fixed_asset_code = #{fixedAssetCode}, + department = #{department}, + sap_asset = #{sapAsset}, + equipment_head = #{equipmentHead}, + factory_code = #{factoryCode}, + equipment_status = #{equipmentStatus}, where equipment_id = #{equipmentId} @@ -223,4 +410,123 @@ group by equipment_type_code,equipment_type_name + + + + + + + + insert into equ_spare_equipment + + id, + spare_code, + spare_type, + spare_name, + equipment_name, + equipment_code, + del_flag, + create_by, + create_time, + update_by, + update_time, + factory_code, + + + #{id}, + #{spareCode}, + #{spareType}, + #{spareName}, + #{equipmentName}, + #{equipmentCode}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + + + + + INSERT INTO base_file(file_id, file_name, file_address, source_id, remark, create_by, create_time,image_type) + VALUES + + ( + #{baseFile.fileId}, + #{baseFile.fileName}, + #{baseFile.fileAddress}, + #{baseFile.sourceId}, + #{baseFile.remark}, + #{baseFile.createBy}, + #{baseFile.createTime}, + #{baseFile.imageType} + ) + + + + + + + + + + + delete from base_file where source_id = #{sourceId} + + + + delete from equ_spare_equipment where equipment_code = #{equipmentCode} + + + + + + + + update base_equipment + + status = #{status}, + + where equipment_id = #{equipmentId} + + \ No newline at end of file diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/EquSpareEquipmentMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/EquSpareEquipmentMapper.xml new file mode 100644 index 000000000..af34ca4c4 --- /dev/null +++ b/op-modules/op-wms/src/main/resources/mapper/wms/EquSpareEquipmentMapper.xml @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + select id, spare_code, spare_type, spare_name, equipment_name, equipment_code, attr1, attr2, attr3, del_flag, create_by, create_time, update_by, update_time, factory_code from equ_spare_equipment + + + + + + + + insert into equ_spare_equipment + + id, + spare_code, + spare_type, + spare_name, + equipment_name, + equipment_code, + attr1, + attr2, + attr3, + del_flag, + create_by, + create_time, + update_by, + update_time, + factory_code, + + + #{id}, + #{spareCode}, + #{spareType}, + #{spareName}, + #{equipmentName}, + #{equipmentCode}, + #{attr1}, + #{attr2}, + #{attr3}, + #{delFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + + + + + update equ_spare_equipment + + spare_code = #{spareCode}, + spare_type = #{spareType}, + spare_name = #{spareName}, + equipment_name = #{equipmentName}, + equipment_code = #{equipmentCode}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + del_flag = #{delFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + + where id = #{id} + + + + delete from equ_spare_equipment where id = #{id} + + + + delete from equ_spare_equipment where id in + + #{id} + + + \ No newline at end of file