Merge remote-tracking branch 'origin/master'

master
wanghao 3 months ago
commit 3716895495

@ -178,7 +178,8 @@ sa-token:
is-share: false
# jwt秘钥
jwt-secret-key: abcdefghijklmnopqrstuvwxyz
# 设置Token有效期1小时单位
timeout: 3600
# MyBatisPlus配置
# https://baomidou.com/config/
mybatis-plus:

@ -1,5 +1,7 @@
package org.dromara.mes.api;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.mes.api.model.BaseMaterialInfo;
import org.dromara.mes.api.model.bo.BaseMaterialInfoBo;
import java.util.List;
@ -18,4 +20,5 @@ public interface RemoteMaterialInfoService {
*/
Boolean remoteInsertBaseMaterialInfo(List<BaseMaterialInfoBo> bos);
}

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hwmom-api-pda</artifactId>
<description>
hwmom-api-pda PDA接口模块
</description>
<dependencies>
<!-- RuoYi Common Core-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-excel</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

@ -0,0 +1,20 @@
package org.dromara.pda.api;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.pda.api.model.BaseMaterial;
import java.util.List;
import java.util.Map;
public interface RemotePdaMesApiService {
/**
*
* @param materialCode
* @param tenantId
* @return
* @throws UserException
*/
BaseMaterial remoteQueryByMaterialCode(String materialCode , String tenantId) throws UserException;
}

@ -0,0 +1,19 @@
package org.dromara.pda.api;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
import java.util.List;
public interface RemotePdaQmsApiService {
/**
*
* @param defectType
* @param tenantId
* @return
* @throws UserException
*/
List<RemoteDefectVo> remoteQueryDefectList(String defectType , String tenantId) throws UserException;
}

@ -0,0 +1,267 @@
package org.dromara.pda.api.model;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
@Data
@NoArgsConstructor
public class BaseMaterial implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private Long materialId;
/**
* ERP
*/
private String erpId;
/**
*
*/
private String materialCode;
/**
*
*/
private String oldMaterialCode;
/**
*
*/
private String materialName;
/**
* ID
*/
private Long materialTypeId;
/**
* (1 2 3)
*/
private String materialCategories;
/**
*
*/
private String materialSubclass;
/**
* (0 1)
*/
private String batchFlag;
/**
*
*/
private Long batchAmount;
/**
* ID
*/
private Long materialUnitId;
/**
*
*/
private String materialUnit;
/**
*
*/
private String materialMatkl;
/**
*
*/
private String materialSpec;
/**
*
*/
private Long netWeight;
/**
*
*/
private Long grossWeight;
/**
* (1 0)
*/
private String alwaysFlag;
/**
*
*/
private Long factoryId;
/**
*
*/
private Long createOrgId;
/**
* 使
*/
private Long useOrgId;
/**
* 线
*/
private Long prodLineId;
/**
* 1 0
*/
private String activeFlag;
/**
* (0 1)
*/
private String deletedFlag;
/**
*
*/
private Long purchasePriceUnitId;
/**
*
*/
private Date approveDate;
/**
* erp
*/
private Date erpModifyDate;
/**
*
*/
private Long maxStockAmount;
/**
*
*/
private Long minStockAmount;
/**
*
*/
private Long safeStockAmount;
/**
* (1 0)
*/
private String applyFlag;
/**
* 1ERP 2 3MES
*/
private String materialClassfication;
/**
* (1 0)
*/
private String autoOutstockFlag;
/**
* (1 0)
*/
private String accessoriesFlag;
/**
* (1 0)
*/
private String lowValueConsumableFlag;
/**
*
*/
private String brand;
/**
*
*/
private String plyrating;
/**
*
*/
private String pattern;
/**
*
*/
private String speedLevel;
/**
*
*/
private String load;
/**
* 1 2 3
*/
private String tireMarkings;
/**
*
*/
private Long minParkingTime;
/**
*
*/
private Long maxParkingTime;
/**
*
*/
private Long standardWeight;
/**
*
*/
private Long weightUpperLimit;
/**
*
*/
private Long weightLowerLimit;
/**
* (0 1)
*/
private String innerTubeFlag;
/**
* (0 1)
*/
private String saleType;
/**
*
*/
private String remark;
/**
*
*/
private String factoryName; //映射字段
/**
*
*/
private String matrialTypeName;//映射字段
}

@ -0,0 +1,104 @@
package org.dromara.pda.api.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import java.io.Serial;
import java.io.Serializable;
@Data
@NoArgsConstructor
public class RemoteDefectVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键标识")
private String defectDetailId;
/**
*
*/
@ExcelProperty(value = "病疵编码")
private Long defectCode;
/**
*
*/
@ExcelProperty(value = "病疵描述")
private String defectDesc;
/**
*
*/
@ExcelProperty(value = "病疵类型")
private String defectType;
/**
*
*/
@ExcelProperty(value = "排序")
private String sort;
/**
*
*/
@ExcelProperty(value = "工序")
private String operation;
/**
*
*/
@ExcelProperty(value = "层级")
private String defectLevel;
/**
* 0 1
*/
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0=正常,1=停用")
private String status;
/**
* 1 0
*/
@ExcelProperty(value = "是否删除", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=是,0=否")
private String isFlag;
/**
*
*/
@ExcelProperty(value = "预留字段")
private String attr1;
/**
*
*/
@ExcelProperty(value = "预留字段")
private String attr2;
/**
*
*/
@ExcelProperty(value = "预留字段")
private String attr3;
/**
*
*/
@ExcelProperty(value = "预留字段")
private String attr4;
/**
*
*/
private String remark;
}

@ -14,6 +14,7 @@
<module>ruoyi-api-resource</module>
<module>ruoyi-api-workflow</module>
<module>hwmom-api-mes</module>
<module>hwmom-api-pda</module>
</modules>
<artifactId>ruoyi-api</artifactId>

@ -14,7 +14,6 @@
<description>
ruoyi-common-core 核心模块
</description>
<dependencies>
<!-- Spring框架基本的核心工具 -->
<dependency>

@ -0,0 +1,14 @@
package org.dromara.common.core.exception.pda;
import org.dromara.common.core.exception.base.BaseException;
import java.io.Serial;
public class PdaServiceException extends BaseException {
@Serial
private static final long serialVersionUID = 1L;
public PdaServiceException(String code, Object... args) {
super("materialCode", code, args, null);
}
}

@ -59,3 +59,6 @@ tenant.number.not.blank=租户编号不能为空
tenant.not.exists=对不起, 您的租户不存在,请联系管理员
tenant.blocked=对不起,您的租户已禁用,请联系管理员
tenant.expired=对不起,您的租户已过期,请联系管理员
##PDA
materialCode.not.exit=对不起,物料编码不存在
defect.type.not.blank=缺陷类型不能为空

@ -120,12 +120,16 @@
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>hwmom-api-pda</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-job</artifactId>
</dependency>
</dependencies>
<build>

@ -4,7 +4,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.api.service.IBaseMaterialInfoApiService;
import org.dromara.mes.api.RemoteMaterialInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.dromara.common.web.core.BaseController;

@ -0,0 +1,42 @@
package org.dromara.api.controller;
import jakarta.validation.constraints.NotBlank;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.api.service.IPdaApiService;
import org.dromara.common.core.domain.R;
import org.dromara.pda.api.model.BaseMaterial;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* 访:/mes/prodPlanDetailApi
*
* @author Yangwl
* @date 2025-01-02
*/
@Slf4j
@RequiredArgsConstructor
@RestController
@RequestMapping("/pdaApi")
public class PdaApiController {
@Autowired
private final IPdaApiService iPdaApiService;
/**
* PDA
*/
@GetMapping(value = {"/getMaterialInfo/{MaterialCode}"})
public BaseMaterial getMaterialInfo(@PathVariable(value = "MaterialCode", required = false) String MaterialCode) {
return iPdaApiService.getMaterialInfo(MaterialCode);
}
@GetMapping("/getDefectDetail")
public List<RemoteDefectVo> getDefectDetail(@NotBlank(message = "{defect.type.not.blank}") String defectType) {
return iPdaApiService.getDefectDetail(defectType);
}
}

@ -0,0 +1,282 @@
package org.dromara.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
import java.util.Date;
/**
* base_material_info
*
* @author zangch
* @date 2025-01-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("base_material_info")
public class BaseMaterialInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "material_id", type = IdType.AUTO)
private Long materialId;
/**
* ERP
*/
private String erpId;
/**
*
*/
private String materialCode;
/**
*
*/
private String oldMaterialCode;
/**
*
*/
private String materialName;
/**
* ID
*/
private Long materialTypeId;
/**
* (1 2 3)
*/
private String materialCategories;
/**
*
*/
private String materialSubclass;
/**
* (0 1)
*/
private String batchFlag;
/**
*
*/
private Long batchAmount;
/**
* ID
*/
private Long materialUnitId;
/**
*
*/
private String materialUnit;
/**
*
*/
private String materialMatkl;
/**
*
*/
private String materialSpec;
/**
*
*/
private Long netWeight;
/**
*
*/
private Long grossWeight;
/**
* (1 0)
*/
private String alwaysFlag;
/**
*
*/
private Long factoryId;
/**
*
*/
private Long createOrgId;
/**
* 使
*/
private Long useOrgId;
/**
* 线
*/
private Long prodLineId;
/**
* 1 0
*/
private String activeFlag;
/**
* (0 1)
*/
private String deletedFlag;
/**
*
*/
private Long purchasePriceUnitId;
/**
*
*/
private Date approveDate;
/**
* erp
*/
private Date erpModifyDate;
/**
*
*/
private Long maxStockAmount;
/**
*
*/
private Long minStockAmount;
/**
*
*/
private Long safeStockAmount;
/**
* (1 0)
*/
private String applyFlag;
/**
* 1ERP 2 3MES
*/
private String materialClassfication;
/**
* (1 0)
*/
private String autoOutstockFlag;
/**
* (1 0)
*/
private String accessoriesFlag;
/**
* (1 0)
*/
private String lowValueConsumableFlag;
/**
*
*/
private String brand;
/**
*
*/
private String plyrating;
/**
*
*/
private String pattern;
/**
*
*/
private String speedLevel;
/**
*
*/
private String load;
/**
* 1 2 3
*/
private String tireMarkings;
/**
*
*/
private Long minParkingTime;
/**
*
*/
private Long maxParkingTime;
/**
*
*/
private Long standardWeight;
/**
*
*/
private Long weightUpperLimit;
/**
*
*/
private Long weightLowerLimit;
/**
* (0 1)
*/
private String innerTubeFlag;
/**
* (0 1)
*/
private String saleType;
/**
*
*/
private String remark;
/**
*
*/
@TableField(exist = false)
private String factoryName; //映射字段
/**
*
*/
@TableField(exist = false)
private String matrialTypeName;//映射字段
}

@ -0,0 +1,382 @@
package org.dromara.api.domain.sap.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.api.domain.BaseMaterialInfo;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* base_material_info
*
* @author zangch
* @date 2025-01-07
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BaseMaterialInfo.class)
public class BaseMaterialInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键标识")
private Long materialId;
/**
*
*/
@ExcelProperty(value = "租户编号")
private String tenantId;
/**
* ERP
*/
@ExcelProperty(value = "ERP信息")
private String erpId;
/**
*
*/
@ExcelProperty(value = "物料编码")
private String materialCode;
/**
*
*/
@ExcelProperty(value = "旧物料编码")
private String oldMaterialCode;
/**
*
*/
@ExcelProperty(value = "物料名称")
private String materialName;
/**
* ID
*/
@ExcelProperty(value = "物料类型ID")
private Long materialTypeId;
/**
* (1 2 3)
*/
@ExcelProperty(value = "物料大类(1原材料 2半成品 3成品)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "mes_material_categories")
private String materialCategories;
/**
*
*/
@ExcelProperty(value = "物料小类")
private String materialSubclass;
/**
* (0 1)
*/
@ExcelProperty(value = "批次标识(0否 1是)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "mes_batch_flag")
private String batchFlag;
/**
*
*/
@ExcelProperty(value = "小批次数量")
private Long batchAmount;
/**
* ID
*/
@ExcelProperty(value = "计量单位ID")
private Long materialUnitId;
/**
*
*/
@ExcelProperty(value = "计量单位名称")
private String materialUnit;
/**
*
*/
@ExcelProperty(value = "物料组")
private String materialMatkl;
/**
*
*/
@ExcelProperty(value = "物料规格")
private String materialSpec;
/**
*
*/
@ExcelProperty(value = "净重")
private Long netWeight;
/**
*
*/
@ExcelProperty(value = "毛重")
private Long grossWeight;
/**
* (1 0)
*/
@ExcelProperty(value = "绑定标识(1是 0否)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "always_flag")
private String alwaysFlag;
/**
*
*/
@ExcelProperty(value = "所属工厂")
private Long factoryId;
/**
*
*/
@ExcelProperty(value = "创建组织")
private Long createOrgId;
/**
* 使
*/
@ExcelProperty(value = "使用组织")
private Long useOrgId;
/**
* 线
*/
@ExcelProperty(value = "所属产线")
private Long prodLineId;
/**
* 1 0
*/
@ExcelProperty(value = "激活标识", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "active_flag")
private String activeFlag;
/**
* (0 1)
*/
@ExcelProperty(value = "删除标识(0否 1是)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "deleted_flag")
private String deletedFlag;
/**
*
*/
@ExcelProperty(value = "采购计价单位")
private Long purchasePriceUnitId;
/**
*
*/
@ExcelProperty(value = "审核日期")
private Date approveDate;
/**
* erp
*/
@ExcelProperty(value = "erp最后更新日期")
private Date erpModifyDate;
/**
*
*/
@ExcelProperty(value = "最大库存数量")
private Long maxStockAmount;
/**
*
*/
@ExcelProperty(value = "最小库存数量")
private Long minStockAmount;
/**
*
*/
@ExcelProperty(value = "安全库存数量")
private Long safeStockAmount;
/**
* (1 0)
*/
@ExcelProperty(value = "申请标识(1是 0否)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "apply_flag")
private String applyFlag;
/**
* 1ERP 2 3MES
*/
@ExcelProperty(value = "物料分类", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "material_classfication")
private String materialClassfication;
/**
* (1 0)
*/
@ExcelProperty(value = "自动出库标识(1是 0否)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "auto_outstock_flag")
private String autoOutstockFlag;
/**
* (1 0)
*/
@ExcelProperty(value = "辅料标识(1是 0否)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "mes_accessories_flag")
private String accessoriesFlag;
/**
* (1 0)
*/
@ExcelProperty(value = "低值易耗品标识(1是 0否)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "mes_low_value_consumable_flag")
private String lowValueConsumableFlag;
/**
*
*/
@ExcelProperty(value = "品牌")
private String brand;
/**
*
*/
@ExcelProperty(value = "层级")
private String plyrating;
/**
*
*/
@ExcelProperty(value = "花纹")
private String pattern;
/**
*
*/
@ExcelProperty(value = "速度级别")
private String speedLevel;
/**
*
*/
@ExcelProperty(value = "负荷载重")
private String load;
/**
* 1 2 3
*/
@ExcelProperty(value = "轮胎标记", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "tire_markings")
private String tireMarkings;
/**
*
*/
@ExcelProperty(value = "最小停放时间", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "秒=")
private Long minParkingTime;
/**
*
*/
@ExcelProperty(value = "最大停放时间", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "秒=")
private Long maxParkingTime;
/**
*
*/
@ExcelProperty(value = "标准重量")
private Long standardWeight;
/**
*
*/
@ExcelProperty(value = "标准重量上限")
private Long weightUpperLimit;
/**
*
*/
@ExcelProperty(value = "标准重量下限")
private Long weightLowerLimit;
/**
* (0 1)
*/
@ExcelProperty(value = "内胎标记(0无 1有)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "inner_tube_flag")
private String innerTubeFlag;
/**
* (0 1)
*/
@ExcelProperty(value = "销售类型(0内销 1外销)", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sale_type")
private String saleType;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
/**
*
*/
@ExcelProperty(value = "创建部门")
private Long createDept;
/**
*
*/
@ExcelProperty(value = "创建人")
private Long createBy;
/**
*
*/
@ExcelProperty(value = "创建时间")
private Date createTime;
/**
*
*/
@ExcelProperty(value = "更新人")
private Long updateBy;
/**
*
*/
@ExcelProperty(value = "更新时间")
private Date updateTime;
/**
*
*/
@ExcelProperty(value = "所属工厂")
private String factoryName;//映射字段
/**
*
*/
@ExcelProperty(value = "物料类型名称")
private String matrialTypeName;//映射字段
}

@ -0,0 +1,20 @@
package org.dromara.api.service;
import org.dromara.common.core.domain.R;
import org.dromara.pda.api.model.BaseMaterial;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
import java.util.List;
/**
* APIService
*
* @author Yinq
* @date 2025-01-02
*/
public interface IPdaApiService {
BaseMaterial getMaterialInfo(String materialCode);
List<RemoteDefectVo> getDefectDetail(String defectType);
}

@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor;
import org.dromara.api.service.ICommonApiService;
import org.dromara.api.utils.SAPApiUtils;
import org.dromara.api.utils.SAPConstants;
import org.dromara.mes.api.RemoteMaterialInfoService;
import org.dromara.mes.api.model.bo.BaseMaterialInfoBo;
import org.springframework.beans.factory.annotation.Autowired;

@ -0,0 +1,32 @@
package org.dromara.api.service.impl;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.api.service.IPdaApiService;
import org.dromara.common.core.domain.R;
import org.dromara.pda.api.RemotePdaMesApiService;
import org.dromara.pda.api.RemotePdaQmsApiService;
import org.dromara.pda.api.model.BaseMaterial;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
import org.springframework.stereotype.Service;
import java.util.List;
@RequiredArgsConstructor
@Service
public class IPdaApiServiceImpl implements IPdaApiService {
@DubboReference
private final RemotePdaMesApiService remotePdaMesApiService;
@DubboReference
private final RemotePdaQmsApiService remotePdaQmsApiService;
@Override
public BaseMaterial getMaterialInfo(String materialCode) {
return remotePdaMesApiService.remoteQueryByMaterialCode(materialCode,"000000");
}
@Override
public List<RemoteDefectVo> getDefectDetail(String defectType) {
return remotePdaQmsApiService.remoteQueryDefectList(defectType,"000000");
}
}

@ -112,5 +112,27 @@ public class BaseAlarmRule extends TenantEntity {
*/
private String remark;
/**
*
*/
@TableField(exist = false)
private String alarmLevelName;
/**
*
*/
@TableField(exist = false)
private String alarmTypeName;
/**
*
*/
@TableField(exist = false)
private String ruleDeviceName;
/**
*
*/
@TableField(exist = false)
private String ruleDeviceModeName;
}

@ -34,13 +34,13 @@ public class BaseAlarmRuleBo extends BaseEntity {
/**
* hw_alarm_levelalarm_level_id
*/
@NotNull(message = "报警级别关联表hw_alarm_level字段alarm_level_id不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "报警级别", groups = {AddGroup.class, EditGroup.class})
private Long alarmLevelId;
/**
* hw_alarm_typealarm_type_id
*/
@NotNull(message = "报警类型关联表hw_alarm_type字段alarm_type_id不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "报警类型", groups = {AddGroup.class, EditGroup.class})
private Long alarmTypeId;
/**
@ -66,6 +66,7 @@ public class BaseAlarmRuleBo extends BaseEntity {
/**
* :{}>60 or {}<-88
*/
@NotBlank(message = "表达式不能为空", groups = {AddGroup.class, EditGroup.class})
private String triggerExpression;
/**

@ -141,5 +141,28 @@ public class BaseAlarmRuleVo implements Serializable {
@ExcelProperty(value = "描述")
private String remark;
/**
*
*/
@ExcelProperty(value = "报警级别名称")
private String alarmLevelName;
/**
*
*/
@ExcelProperty(value = "报警类型名称")
private String alarmTypeName;
/**
*
*/
@ExcelProperty(value = "设备名称")
private String ruleDeviceName;
/**
*
*/
@ExcelProperty(value = "设备模型名称")
private String ruleDeviceModeName;
}

@ -7,8 +7,10 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.dms.domain.BaseAlarmLevel;
import org.dromara.dms.domain.BaseAlarmType;
import org.dromara.dms.domain.DmsDeviceMode;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.BaseAlarmRuleBo;
import org.dromara.dms.domain.vo.BaseAlarmRuleVo;
@ -73,6 +75,12 @@ public class BaseAlarmRuleServiceImpl implements IBaseAlarmRuleService {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<BaseAlarmRule> lqw = JoinWrappers.lambda(BaseAlarmRule.class)
.selectAll(BaseAlarmRule.class)
.select(BaseAlarmLevel::getAlarmLevelName)
.select(BaseAlarmType::getAlarmTypeName)
.select(DmsDeviceMode::getDeviceModeName)
.leftJoin(BaseAlarmLevel.class, BaseAlarmLevel::getAlarmLevelId, BaseAlarmRule::getAlarmLevelId)
.leftJoin(BaseAlarmType.class, BaseAlarmType::getAlarmTypeId, BaseAlarmRule::getAlarmTypeId)
.leftJoin(DmsDeviceMode.class, DmsDeviceMode::getDeviceModeId, BaseAlarmRule::getRuleDeviceModeId)
.eq(bo.getAlarmRuleId() != null, BaseAlarmRule::getAlarmRuleId, bo.getAlarmRuleId())
.like(StringUtils.isNotBlank(bo.getAlarmRuleName()), BaseAlarmRule::getAlarmRuleName, bo.getAlarmRuleName())
.eq(bo.getAlarmLevelId() != null, BaseAlarmRule::getAlarmLevelId, bo.getAlarmLevelId())

@ -128,6 +128,12 @@
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>hwmom-api-pda</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
</dependencies>

@ -24,6 +24,7 @@ public class BaseDeviceType extends TenantEntity {
/**
* ID
*/
@TableId(value = "device_type_id", type = IdType.AUTO)
private Long deviceTypeId;
/**
@ -61,5 +62,11 @@ public class BaseDeviceType extends TenantEntity {
*/
private String remark;
/**
*
*/
@TableField(exist = false)
private String deviceCategoryName;//join映射字段
}

@ -50,17 +50,31 @@ public class BaseEqualMaterialInfo extends TenantEntity {
*/
private String remark;
/**
* ID
*/
private Long parentId;
/**
* BOM
*/
private String materialBomVersion;
/**
*
*/
@TableField(exist = false)
private String materialName;//映射字段
private String materialName;
/**
*
*/
@TableField(exist = false)
private String equalMaterialName;//映射字段
private String equalMaterialName;
/**
*
*/
@TableField(exist = false)
private String parentName;
}

@ -0,0 +1,53 @@
package org.dromara.mes.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
/**
* dms_device_mode
*
* @author Yinq
* @date 2025-03-11
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_device_mode")
public class ProdBaseDeviceMode extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
@TableId(value = "device_mode_id", type = IdType.AUTO)
private Long deviceModeId;
/**
*
*/
private String deviceModeName;
/**
* 19
*/
private String deviceModeStatus;
/**
*
*/
private String deviceModePic;
/**
*
*/
private String remark;
}

@ -77,9 +77,60 @@ public class ProdBaseMachineInfo extends TenantEntity {
*/
private Long workshopId;
/**
* dms_device_mode
*/
private Long deviceModeId;
/**
* IP
*/
private String machineIp;
/**
*
*/
private Long machinePort;
/**
*
*/
private String accessProtocol;
/**
*
*/
private String registerAddress;
/**
* 1bool2short3int4long5float6byte7ushort8uint9ulong10double11
*/
private String dataType;
/**
*
*/
private Long dataLength;
/**
* 1ASCII,2Unicode,3Unicode-big,4UTF-8,5UTF-32,6ANSI,7GB2312
*/
private String dataEncoding;
/**
*
*/
private Long requestInterval;
/**
*
*/
@TableField(exist = false)
private String workshopName;
/**
*
*/
@TableField(exist = false)
private String deviceModeName;
}

@ -23,25 +23,25 @@ public class BaseDeviceTypeBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "物料类型ID不能为空", groups = { AddGroup.class, EditGroup.class })
/* @NotNull(message = "物料类型ID不能为空", groups = { AddGroup.class, EditGroup.class })*/
private Long deviceTypeId;
/**
*
*/
@NotNull(message = "父级标识不能为空", groups = { AddGroup.class, EditGroup.class })
/* @NotNull(message = "父级标识不能为空", groups = { AddGroup.class, EditGroup.class })*/
private Long parentId;
/**
*
*/
@NotBlank(message = "设备类型编号不能为空", groups = { AddGroup.class, EditGroup.class })
/* @NotBlank(message = "设备类型编号不能为空", groups = { AddGroup.class, EditGroup.class })*/
private String deviceTypeCode;
/**
*
*/
@NotBlank(message = "设备类型名称不能为空", groups = { AddGroup.class, EditGroup.class })
/* @NotBlank(message = "设备类型名称不能为空", groups = { AddGroup.class, EditGroup.class })*/
private String deviceTypeName;
/**
@ -53,13 +53,13 @@ public class BaseDeviceTypeBo extends BaseEntity {
/**
* IDIDbase_categorycategory_type2
*/
@NotNull(message = "设备大类不能为空", groups = { AddGroup.class, EditGroup.class })
/* @NotNull(message = "设备大类不能为空", groups = { AddGroup.class, EditGroup.class })*/
private Long deviceCategoryId;
/**
* 1 0
*/
@NotBlank(message = "激活标识不能为空", groups = { AddGroup.class, EditGroup.class })
/* @NotBlank(message = "激活标识不能为空", groups = { AddGroup.class, EditGroup.class })*/
private String activeFlag;
/**
@ -68,5 +68,9 @@ public class BaseDeviceTypeBo extends BaseEntity {
/* @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })*/
private String remark;
/**
*
*/
private String deviceCategoryName;//join映射字段
}

@ -2,12 +2,9 @@ package org.dromara.mes.domain.bo;
import org.dromara.mes.domain.BaseEqualMaterialInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* base_equal_material_info
@ -45,5 +42,13 @@ public class BaseEqualMaterialInfoBo extends BaseEntity {
*/
private String remark;
/**
* ID
*/
private Long parentId;
/**
* BOM
*/
private String materialBomVersion;
}

@ -1,5 +1,6 @@
package org.dromara.mes.domain.bo;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.mes.domain.ProdBaseMachineInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
@ -85,5 +86,59 @@ public class ProdBaseMachineInfoBo extends BaseEntity {
*/
private Long workshopId;
/**
* dms_device_mode
*/
@ExcelProperty(value = "设备模型关联设备模型dms_device_mode")
private Long deviceModeId;
/**
* IP
*/
@ExcelProperty(value = "设备IP地址")
private String machineIp;
/**
*
*/
@ExcelProperty(value = "设备端口")
private Long machinePort;
/**
*
*/
@ExcelProperty(value = "设备协议")
private String accessProtocol;
/**
*
*/
@ExcelProperty(value = "寄存器地址")
private String registerAddress;
/**
* 1bool2short3int4long5float6byte7ushort8uint9ulong10double11
*/
@ExcelProperty(value = "数据类型")
private String dataType;
/**
*
*/
@ExcelProperty(value = "数据长度")
private Long dataLength;
/**
* 1ASCII,2Unicode,3Unicode-big,4UTF-8,5UTF-32,6ANSI,7GB2312
*/
@ExcelProperty(value = "数据编码格式")
private String dataEncoding;
/**
*
*/
@ExcelProperty(value = "请求间隔")
private Long requestInterval;
private List<ProdBaseMachineProcess> baseMachineProcessList;
}

@ -37,7 +37,7 @@ public class ProdBaseMouldInfoBo extends BaseEntity {
/**
* ID
*/
@NotNull(message = "所在机台ID不能为空", groups = {AddGroup.class, EditGroup.class})
/* @NotNull(message = "所在机台ID不能为空", groups = {AddGroup.class, EditGroup.class})*/
private Long machineId;
/**

@ -78,5 +78,9 @@ public class BaseDeviceTypeVo implements Serializable {
@ExcelProperty(value = "备注")
private String remark;
/**
*
*/
@ExcelProperty(value = "设备大类名称")
private String deviceCategoryName;//join映射字段
}

@ -13,7 +13,6 @@ import java.io.Serializable;
import java.util.Date;
/**
* base_equal_material_info
*
@ -109,4 +108,22 @@ public class BaseEqualMaterialInfoVo implements Serializable {
@ExcelProperty(value = "物料名称")
private String equalMaterialName;//映射字段
/**
* ID
*/
@ExcelProperty(value = "父物料ID")
private Long parentId;
/**
* BOM
*/
@ExcelProperty(value = "BOM版本")
private String materialBomVersion;
/**
*
*/
@ExcelProperty(value = "父物料名称")
private String parentName;
}

@ -1,6 +1,8 @@
package org.dromara.mes.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.util.List;
/**
@ -11,16 +13,19 @@ public class PlanMonitorVo {
/**
* ID
*/
@ExcelProperty(value = "机台ID")
private Long machineId;
/**
*
*/
@ExcelProperty(value = "机台名称")
private String machineName;
/**
*
*/
@ExcelProperty(value = "班次分组列表")
private List<ShiftGroupVo> shifts;
}

@ -131,12 +131,72 @@ public class ProdBaseMachineInfoVo implements Serializable {
*/
private Long workshopId;
/**
* dms_device_mode
*/
@ExcelProperty(value = "设备模型关联设备模型dms_device_mode")
private Long deviceModeId;
/**
* IP
*/
@ExcelProperty(value = "设备IP地址")
private String machineIp;
/**
*
*/
@ExcelProperty(value = "设备端口")
private Long machinePort;
/**
*
*/
@ExcelProperty(value = "设备协议")
private String accessProtocol;
/**
*
*/
@ExcelProperty(value = "寄存器地址")
private String registerAddress;
/**
* 1bool2short3int4long5float6byte7ushort8uint9ulong10double11
*/
@ExcelProperty(value = "数据类型")
private String dataType;
/**
*
*/
@ExcelProperty(value = "数据长度")
private Long dataLength;
/**
* 1ASCII,2Unicode,3Unicode-big,4UTF-8,5UTF-32,6ANSI,7GB2312
*/
@ExcelProperty(value = "数据编码格式")
private String dataEncoding;
/**
*
*/
@ExcelProperty(value = "请求间隔")
private Long requestInterval;
/**
*
*/
@ExcelProperty(value = "车间名称")
private String workshopName;
/**
*
*/
@ExcelProperty(value = "设备模型名称")
private String deviceModeName;
private List<ProdBaseMachineProcess> baseMachineProcessList;
}

@ -1,5 +1,6 @@
package org.dromara.mes.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.util.List;
@ -12,15 +13,18 @@ public class ShiftGroupVo {
/**
* ID
*/
@ExcelProperty(value = "班次ID")
private Long shiftId;
/**
*
*/
@ExcelProperty(value = "班次名称")
private String shiftName;
/**
*
*/
@ExcelProperty(value = "该班次下的物料计划列表")
private List<ProdPlanInfoVo> plans;
}

@ -1,11 +1,17 @@
package org.dromara.mes.dubbo;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.enums.UserStatus;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.mes.api.RemoteMaterialInfoService;
import org.dromara.mes.api.model.bo.BaseMaterialInfoBo;
import org.dromara.mes.domain.BaseMaterialInfo;
import org.dromara.mes.domain.vo.BaseMaterialInfoVo;
import org.dromara.mes.mapper.BaseMaterialInfoMapper;
import org.springframework.stereotype.Service;
@ -44,6 +50,4 @@ public class RemoteMaterialInfoServiceImpl implements RemoteMaterialInfoService
return materialInfoMapper.insertBatch(list);
}
}

@ -0,0 +1,43 @@
package org.dromara.mes.dubbo;
import cn.hutool.core.util.ObjectUtil;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.mes.mapper.BaseMaterialInfoMapper;
import org.dromara.pda.api.RemotePdaMesApiService;
import org.dromara.pda.api.model.BaseMaterial;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@RequiredArgsConstructor
@Service
@DubboService
public class RemoteQmsApiServiceImpl implements RemotePdaMesApiService {
private final BaseMaterialInfoMapper baseMaterialInfoMapper ;
@Override
public BaseMaterial remoteQueryByMaterialCode(String materialCode, String tenantId) throws UserException {
return TenantHelper.dynamic(tenantId, () -> {
BaseMaterial baseMaterial=baseMaterialInfoMapper.queryByMaterialCode(materialCode);
//BaseMaterialInfoVo sysUser = baseMaterialInfoMapper.selectVoOne(new LambdaQueryWrapper<BaseMaterialInfo>().eq(BaseMaterialInfo::getMaterialCode, materialCode));
if (ObjectUtil.isNull(baseMaterial)) {
throw new UserException("materialCode.not.exit", materialCode);
}
// if (UserStatus.DISABLE.getCode().equals(sysUser.getStatus())) {
// throw new UserException("user.blocked", username);
// }
return baseMaterial;
});
}
}

@ -3,6 +3,7 @@ package org.dromara.mes.mapper;
import org.dromara.mes.domain.BaseMaterialInfo;
import org.dromara.mes.domain.vo.BaseMaterialInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.pda.api.model.BaseMaterial;
/**
* Mapper
@ -12,4 +13,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
*/
public interface BaseMaterialInfoMapper extends BaseMapperPlus<BaseMaterialInfo, BaseMaterialInfoVo> {
BaseMaterial queryByMaterialCode(String materialCode);
}

@ -0,0 +1,14 @@
package org.dromara.mes.mapper;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.mes.domain.ProdBaseDeviceMode;
/**
* Mapper
*
* @author Yinq
* @date 2025-03-11
*/
public interface prodBaseDeviceModeMapper extends BaseMapperPlus<ProdBaseDeviceMode, ProdBaseDeviceMode> {
}

@ -1,5 +1,6 @@
package org.dromara.mes.service.impl;
import org.apache.commons.lang3.ObjectUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@ -9,6 +10,8 @@ import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.mes.domain.BaseDeviceCategory;
import org.dromara.mes.domain.vo.BaseMaterialTypeVo;
import org.springframework.stereotype.Service;
import org.dromara.mes.domain.bo.BaseDeviceTypeBo;
import org.dromara.mes.domain.vo.BaseDeviceTypeVo;
@ -73,6 +76,11 @@ public class BaseDeviceTypeServiceImpl implements IBaseDeviceTypeService {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<BaseDeviceType> lqw = JoinWrappers.lambda(BaseDeviceType.class)
.selectAll(BaseDeviceType.class)
// 关联查询设备大类信息
.select(BaseDeviceCategory::getDeviceCategoryName)
.leftJoin(BaseDeviceCategory.class,BaseDeviceCategory::getDeviceCategoryId,BaseDeviceType::getDeviceCategoryId)
.eq(bo.getDeviceTypeId() != null, BaseDeviceType::getDeviceTypeId, bo.getDeviceTypeId())
.eq(bo.getParentId() != null, BaseDeviceType::getParentId, bo.getParentId())
.eq(StringUtils.isNotBlank(bo.getDeviceTypeCode()), BaseDeviceType::getDeviceTypeCode, bo.getDeviceTypeCode())
@ -94,6 +102,15 @@ public class BaseDeviceTypeServiceImpl implements IBaseDeviceTypeService {
public Boolean insertByBo(BaseDeviceTypeBo bo) {
BaseDeviceType add = MapstructUtils.convert(bo, BaseDeviceType.class);
validEntityBeforeSave(add);
//获取父节点信息
BaseDeviceTypeVo query = baseMapper.selectVoById(bo.getParentId());
if (ObjectUtils.isNotEmpty(query)) {
//若父节点不为空则将父节点的ancestors拼接父节点id拼接成ancestors
add.setAncestors(query.getAncestors() + "," + bo.getParentId());
}else{
//若父节点为空则ancestors仅有父节点id
add.setAncestors(bo.getParentId().toString());
}
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDeviceTypeId(add.getDeviceTypeId());

@ -94,20 +94,23 @@ public class BaseEqualMaterialInfoServiceImpl implements IBaseEqualMaterialInfoS
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<BaseEqualMaterialInfo> lqw = JoinWrappers.lambda(BaseEqualMaterialInfo.class)
.selectAll(BaseEqualMaterialInfo.class)
// 关联查询物料名称
.select("material.material_name as material_name")
.leftJoin(BaseMaterialInfo.class, "material", on -> on
.eq(BaseMaterialInfo::getMaterialId, BaseEqualMaterialInfo::getMaterialId))
// 关联查询等同物料名称
.select("equal_material.material_name as equal_material_name")
.leftJoin(BaseMaterialInfo.class, "equal_material", on -> on
.eq(BaseMaterialInfo::getMaterialId, BaseEqualMaterialInfo::getEqualMaterialId))
// 关联查询父级物料名称
.select("parent_material.material_name as parent_name")
.leftJoin(BaseMaterialInfo.class, "parent_material", on -> on
.eq(BaseMaterialInfo::getMaterialId, BaseEqualMaterialInfo::getParentId))
.eq(bo.getEqualMaterialInfoId() != null, BaseEqualMaterialInfo::getEqualMaterialInfoId, bo.getEqualMaterialInfoId())
.eq(bo.getMaterialId() != null, BaseEqualMaterialInfo::getMaterialId, bo.getMaterialId())
.eq(bo.getEqualMaterialId() != null, BaseEqualMaterialInfo::getEqualMaterialId, bo.getEqualMaterialId())
.eq(bo.getParentId() != null, BaseEqualMaterialInfo::getParentId, bo.getParentId())
.eq(bo.getMaterialBomVersion() != null, BaseEqualMaterialInfo::getMaterialBomVersion, bo.getMaterialBomVersion())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseEqualMaterialInfo::getActiveFlag, bo.getActiveFlag())
.orderByDesc(BaseEqualMaterialInfo::getCreateTime);
return lqw;

@ -96,7 +96,9 @@ public class ProdBaseMachineInfoServiceImpl implements IProdBaseMachineInfoServi
MPJLambdaWrapper<ProdBaseMachineInfo> lqw = JoinWrappers.lambda(ProdBaseMachineInfo.class)
.selectAll(ProdBaseMachineInfo.class)
.select(ProdBaseWorkshopInfo::getWorkshopName)
.select(ProdBaseDeviceMode::getDeviceModeName)
.leftJoin(ProdBaseWorkshopInfo.class, ProdBaseWorkshopInfo::getWorkshopId, ProdBaseMachineInfo::getWorkshopId)
.leftJoin(ProdBaseDeviceMode.class, ProdBaseDeviceMode::getDeviceModeId, ProdBaseMachineInfo::getDeviceModeId)
.eq(bo.getMachineId() != null, ProdBaseMachineInfo::getMachineId, bo.getMachineId())
.like(StringUtils.isNotBlank(bo.getMachineCode()), ProdBaseMachineInfo::getMachineCode, bo.getMachineCode())
.like(StringUtils.isNotBlank(bo.getMachineName()), ProdBaseMachineInfo::getMachineName, bo.getMachineName())

@ -4,4 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.mes.mapper.BaseMaterialInfoMapper">
<select id="queryByMaterialCode" resultType="org.dromara.pda.api.model.BaseMaterial">
select material_code,material_name from base_material_info where material_code = #{materialCode}
</select>
</mapper>

@ -111,6 +111,12 @@
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>hwmom-api-pda</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.microsoft.sqlserver</groupId>-->
<!-- <artifactId>mssql-jdbc</artifactId>-->

@ -1,8 +1,10 @@
package org.dromara.qms;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@EnableDubbo
@SpringBootApplication
public class HwmomQmsApplication {

@ -26,6 +26,8 @@ public class QcDefectDetailBo extends BaseEntity {
private String defectDetailId;
private String tenantId;
/**
*
*/

@ -54,5 +54,4 @@ public class QcInspectionRulesBo extends BaseEntity {
*/
private String remark;
}

@ -0,0 +1,62 @@
package org.dromara.qms.dubbo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.pda.api.RemotePdaMesApiService;
import org.dromara.pda.api.RemotePdaQmsApiService;
import org.dromara.pda.api.model.BaseMaterial;
import org.dromara.pda.api.model.vo.RemoteDefectVo;
import org.dromara.qms.domain.QcDefectDetail;
import org.dromara.qms.domain.bo.QcDefectDetailBo;
import org.dromara.qms.domain.vo.QcDefectDetailVo;
import org.dromara.qms.mapper.QcDefectDetailMapper;
import org.dromara.qms.mapper.QcDefectInfoMapper;
import org.dromara.qms.service.IQcDefectDetailService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RequiredArgsConstructor
@Service
@DubboService
public class RemoteQmsApiServiceImpl implements RemotePdaQmsApiService {
private final QcDefectInfoMapper qcDefectInfoMapper;
private final QcDefectDetailMapper qcDefectDetailMapper;
private final IQcDefectDetailService iQcDefectDetailService;
/**
*
* @param defectType
* @param tenantId
* @return
* @throws UserException
*/
@Override
public List<RemoteDefectVo> remoteQueryDefectList(String defectType, String tenantId) throws UserException {
return TenantHelper.dynamic(tenantId, () -> {
QcDefectDetailBo bo=new QcDefectDetailBo();
bo.setDefectType(defectType);
bo.setTenantId("000000");
List<QcDefectDetailVo> DefectDetailVos = iQcDefectDetailService.queryList(bo);
RemoteDefectVo rem=new RemoteDefectVo();
List<RemoteDefectVo> remoteDefectVoList=new ArrayList<>();
for(QcDefectDetailVo qcDefectDetailVo:DefectDetailVos){
rem.setDefectCode(qcDefectDetailVo.getDefectCode());
rem.setDefectDesc(qcDefectDetailVo.getDefectDesc());
remoteDefectVoList.add(rem);
}
return remoteDefectVoList;
});
}
}
Loading…
Cancel
Save