Merge remote-tracking branch 'origin/master'
# Conflicts: # ruoyi-modules/pom.xmlmaster
commit
aa6ec6dde6
@ -0,0 +1,33 @@
|
||||
<?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-mes</artifactId>
|
||||
|
||||
<description>
|
||||
hwmom-api-mes MES接口模块
|
||||
</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>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,17 @@
|
||||
package org.dromara.system.api;
|
||||
|
||||
/**
|
||||
* 编码规则服务
|
||||
*
|
||||
* @author Yinq
|
||||
*/
|
||||
public interface RemoteCodeRuleService {
|
||||
|
||||
/**
|
||||
* 通过编码规则编码获取编码
|
||||
* @param codeRuleCode 编码规则编码
|
||||
* @return currentCode
|
||||
*/
|
||||
String selectCodeRuleCode(String codeRuleCode);
|
||||
|
||||
}
|
@ -0,0 +1,108 @@
|
||||
package org.dromara.auth.service.impl;
|
||||
|
||||
import cn.dev33.satoken.secure.BCrypt;
|
||||
import cn.dev33.satoken.stp.SaLoginModel;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.dromara.auth.domain.vo.LoginVo;
|
||||
import org.dromara.auth.form.PasswordLoginBody;
|
||||
import org.dromara.auth.properties.CaptchaProperties;
|
||||
import org.dromara.auth.service.IAuthStrategy;
|
||||
import org.dromara.auth.service.SysLoginService;
|
||||
import org.dromara.common.core.constant.Constants;
|
||||
import org.dromara.common.core.constant.GlobalConstants;
|
||||
import org.dromara.common.core.enums.LoginType;
|
||||
import org.dromara.common.core.exception.user.CaptchaException;
|
||||
import org.dromara.common.core.exception.user.CaptchaExpireException;
|
||||
import org.dromara.common.core.utils.MessageUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.core.utils.ValidatorUtils;
|
||||
import org.dromara.common.json.utils.JsonUtils;
|
||||
import org.dromara.common.redis.utils.RedisUtils;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.dromara.system.api.RemoteUserService;
|
||||
import org.dromara.system.api.domain.vo.RemoteClientVo;
|
||||
import org.dromara.system.api.model.LoginUser;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 密码认证策略
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
@Slf4j
|
||||
@Service("pdaAuthStrategy")
|
||||
@RequiredArgsConstructor
|
||||
public class PdaAuthStrategy implements IAuthStrategy {
|
||||
|
||||
private final CaptchaProperties captchaProperties;
|
||||
|
||||
private final SysLoginService loginService;
|
||||
|
||||
@DubboReference
|
||||
private RemoteUserService remoteUserService;
|
||||
|
||||
@Override
|
||||
public LoginVo login(String body, RemoteClientVo client) {
|
||||
System.out.println("PDA service");
|
||||
PasswordLoginBody loginBody = JsonUtils.parseObject(body, PasswordLoginBody.class);
|
||||
ValidatorUtils.validate(loginBody);
|
||||
String tenantId = loginBody.getTenantId();
|
||||
String username = loginBody.getUsername();
|
||||
String password = loginBody.getPassword();
|
||||
String code = loginBody.getCode();
|
||||
String uuid = loginBody.getUuid();
|
||||
|
||||
// 验证码开关
|
||||
// if (captchaProperties.getEnabled()) {
|
||||
// validateCaptcha(tenantId, username, code, uuid);
|
||||
// }
|
||||
LoginUser loginUser = TenantHelper.dynamic(tenantId, () -> {
|
||||
LoginUser user = remoteUserService.getUserInfo(username, tenantId);
|
||||
loginService.checkLogin(LoginType.PASSWORD, tenantId, username, () -> !BCrypt.checkpw(password, user.getPassword()));
|
||||
return user;
|
||||
});
|
||||
loginUser.setClientKey(client.getClientKey());
|
||||
loginUser.setDeviceType(client.getDeviceType());
|
||||
SaLoginModel model = new SaLoginModel();
|
||||
model.setDevice(client.getDeviceType());
|
||||
// 自定义分配 不同用户体系 不同 token 授权时间 不设置默认走全局 yml 配置
|
||||
// 例如: 后台用户30分钟过期 app用户1天过期
|
||||
model.setTimeout(client.getTimeout());
|
||||
model.setActiveTimeout(client.getActiveTimeout());
|
||||
model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
|
||||
// 生成token
|
||||
LoginHelper.login(loginUser, model);
|
||||
|
||||
LoginVo loginVo = new LoginVo();
|
||||
loginVo.setAccessToken(StpUtil.getTokenValue());
|
||||
loginVo.setExpireIn(StpUtil.getTokenTimeout());
|
||||
loginVo.setClientId(client.getClientId());
|
||||
return loginVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验验证码
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param code 验证码
|
||||
* @param uuid 唯一标识
|
||||
*/
|
||||
private void validateCaptcha(String tenantId, String username, String code, String uuid) {
|
||||
String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + StringUtils.blankToDefault(uuid, "");
|
||||
String captcha = RedisUtils.getCacheObject(verifyKey);
|
||||
RedisUtils.deleteObject(verifyKey);
|
||||
if (captcha == null) {
|
||||
loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"));
|
||||
throw new CaptchaExpireException();
|
||||
}
|
||||
if (!code.equalsIgnoreCase(captcha)) {
|
||||
loginService.recordLogininfor(tenantId, username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"));
|
||||
throw new CaptchaException();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
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-common</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hwmom-common-mom</artifactId>
|
||||
|
||||
<description>
|
||||
hwmom-common-mom 通用功能
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-satoken</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-json</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.dubbo</groupId>
|
||||
<artifactId>dubbo-spring-boot-starter</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,43 @@
|
||||
package org.dromara.common.annotation;
|
||||
|
||||
import org.dromara.common.enums.OperatorType;
|
||||
|
||||
import java.lang.annotation.*;
|
||||
|
||||
/**
|
||||
* 自定义数据同步记录注解
|
||||
*
|
||||
* @author xins
|
||||
*/
|
||||
@Target({ElementType.PARAMETER, ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface DataSyncPublish {
|
||||
/**
|
||||
* 数据库表名称
|
||||
*/
|
||||
String tableName() default "";
|
||||
|
||||
|
||||
/**
|
||||
* 操作类型
|
||||
*/
|
||||
OperatorType operatorType() default OperatorType.INSERT;
|
||||
|
||||
// /**
|
||||
// * 是否保存请求的参数
|
||||
// */
|
||||
// boolean isSaveRequestData() default true;
|
||||
//
|
||||
// /**
|
||||
// * 是否保存响应的参数
|
||||
// */
|
||||
// boolean isSaveResponseData() default true;
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 排除指定的请求参数
|
||||
// */
|
||||
// String[] excludeParamNames() default {};
|
||||
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package org.dromara.common.constant;
|
||||
|
||||
/**
|
||||
* 数据库常量信息
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
public interface DatabaseConstants {
|
||||
|
||||
/**
|
||||
* 生产计划表名前缀
|
||||
*/
|
||||
String TABLE_NAME_PROD_PLAN_INFO_PREFIX = "prod_plan_info";
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package org.dromara.common.enums;
|
||||
|
||||
/**
|
||||
* 操作类型
|
||||
*
|
||||
* @author xins
|
||||
*/
|
||||
public enum OperatorType {
|
||||
/**
|
||||
* 插入
|
||||
*/
|
||||
INSERT,
|
||||
|
||||
/**
|
||||
* 更新
|
||||
*/
|
||||
UPDATE,
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
DELETE
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package org.dromara.common.mapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.InsertProvider;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.common.provider.DynamicBaseSqlProvider;
|
||||
|
||||
@Mapper
|
||||
public interface DynamicBaseSqlMapper<T> extends BaseMapper<T> {
|
||||
// 自定义动态插入方法,接收表名和对象作为参数
|
||||
@InsertProvider(type = DynamicBaseSqlProvider.class, method = "dynamicInsert")
|
||||
int dynamicInsert(@Param("tableName") String tableName, @Param("tableNamePrefix") String tableNamePrefix,@Param("entity") T entity);
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package org.dromara.common.provider;
|
||||
|
||||
import org.apache.ibatis.jdbc.SQL;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public class DynamicBaseSqlProvider {
|
||||
public String dynamicInsert(Map<String, Object> params) {
|
||||
String tableName = (String) params.get("tableName");
|
||||
// Object entity = params.get("entity");
|
||||
String tableNamePrefix = (String) params.get("tableNamePrefix");
|
||||
|
||||
SQL sql = new SQL();
|
||||
sql.INSERT_INTO(tableName);
|
||||
switch(tableNamePrefix){
|
||||
case "prod_plan_info":
|
||||
sql.INTO_COLUMNS("plan_code", "material_id", "material_bom_id","plan_amount","dispatch_amount");
|
||||
sql.INTO_VALUES("#{entity.planCode}", "#{entity.materialId}", "#{entity.materialBomId}", "#{entity.planAmount}", "#{entity.dispatchAmount}");
|
||||
break;
|
||||
}
|
||||
return sql.toString();
|
||||
}
|
||||
|
||||
|
||||
public String selectByDynamicTableName(Map<String, Object> params) {
|
||||
String tableName = (String) params.get("tableName");
|
||||
return new SQL() {{
|
||||
SELECT("*");
|
||||
FROM(tableName);
|
||||
}}.toString();
|
||||
}
|
||||
}
|
@ -0,0 +1,2 @@
|
||||
org.dromara.common.aspect.DataSyncPublishAspect
|
||||
org.dromara.common.event.DataSyncPublishListener
|
@ -0,0 +1,149 @@
|
||||
<?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-modules</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>hwmom-api</artifactId>
|
||||
|
||||
<description>
|
||||
hwmom-api系统模块
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-nacos</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-sentinel</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Common Log -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-log</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-dict</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-doc</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-mybatis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-dubbo</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-seata</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-idempotent</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-tenant</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-security</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-translation</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-sensitive</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-encrypt</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- RuoYi Api System -->
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-api-system</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-api-resource</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.mysql</groupId>-->
|
||||
<!-- <artifactId>mysql-connector-j</artifactId>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>com.microsoft.sqlserver</groupId>
|
||||
<artifactId>mssql-jdbc</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>hwmom-api-mes</artifactId>
|
||||
<version>2.2.2</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dromara</groupId>
|
||||
<artifactId>ruoyi-common-job</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>${spring-boot.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@ -0,0 +1,22 @@
|
||||
package org.dromara.api;
|
||||
|
||||
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
|
||||
|
||||
/**
|
||||
* 系统模块
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
@EnableDubbo
|
||||
@SpringBootApplication
|
||||
public class HwMomApiApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication application = new SpringApplication(HwMomApiApplication.class);
|
||||
application.setApplicationStartup(new BufferingApplicationStartup(2048));
|
||||
application.run(args);
|
||||
System.out.println("(♥◠‿◠)ノ゙ HwApi启动成功 ლ(´ڡ`ლ)゙ ");
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package org.dromara.api.controller;
|
||||
|
||||
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;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
|
||||
/**
|
||||
* 车间信息
|
||||
* 前端访问路由地址为:/mes/baseWorkshopInfo
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-01-02
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/materialInfoApi")
|
||||
public class BaseMaterialInfoApiController extends BaseController {
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
private final IBaseMaterialInfoApiService materialInfoApiService;
|
||||
|
||||
|
||||
/**
|
||||
* 测试物料信息存储接口
|
||||
*/
|
||||
@PostMapping ("/test")
|
||||
public String test(String requestBody) {
|
||||
return materialInfoApiService.insertApi(requestBody);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package org.dromara.api.domain.sap;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
/**
|
||||
* @Author YinQ
|
||||
* @create 2023-09-26 14:46
|
||||
*/
|
||||
public class SAPPortDto {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@JsonProperty(value = "NDATE")
|
||||
private String startDate;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
@JsonProperty(value = "EDATE")
|
||||
private String endDate;
|
||||
|
||||
|
||||
/**
|
||||
* 工厂编号
|
||||
*/
|
||||
@JsonProperty(value = "WERKS")
|
||||
private WERKSDto factoryCodes;
|
||||
|
||||
|
||||
public String getStartDate() {
|
||||
return startDate;
|
||||
}
|
||||
|
||||
public void setStartDate(String startDate) {
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
public String getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
|
||||
public void setEndDate(String endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public WERKSDto getFactoryCodes() {
|
||||
return factoryCodes;
|
||||
}
|
||||
|
||||
public void setFactoryCodes(WERKSDto factoryCodes) {
|
||||
this.factoryCodes = factoryCodes;
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package org.dromara.api.domain.sap;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author YinQ
|
||||
* @create 2023-09-26 15:13
|
||||
*/
|
||||
public class WERKSDto {
|
||||
|
||||
|
||||
/**
|
||||
* 工厂请求Map
|
||||
*/
|
||||
List<HashMap<String, String>> item;
|
||||
|
||||
|
||||
public List<HashMap<String, String>> getItem() {
|
||||
return item;
|
||||
}
|
||||
|
||||
public void setItem(List<HashMap<String, String>> item) {
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "WERKSDto{" +
|
||||
"item=" + item +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package org.dromara.api.domain.sap.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import org.dromara.api.domain.sap.WERKSDto;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物料主数据
|
||||
*
|
||||
* @Author YinQ
|
||||
* @create 2023-09-27 13:37
|
||||
*/
|
||||
public class SAPResultVo {
|
||||
|
||||
@JsonProperty(value = "O_TAB")
|
||||
private HashMap<String, List<HashMap<String, String>>> O_TAB;
|
||||
|
||||
@JsonProperty(value = "WERKS")
|
||||
private WERKSDto WERKS;
|
||||
|
||||
@JsonProperty(value = "O_RETURN")
|
||||
private WERKSDto O_RETURN;
|
||||
|
||||
public HashMap<String, List<HashMap<String, String>>> getO_TAB() {
|
||||
return O_TAB;
|
||||
}
|
||||
|
||||
public void setO_TAB(HashMap<String, List<HashMap<String, String>>> o_TAB) {
|
||||
O_TAB = o_TAB;
|
||||
}
|
||||
|
||||
public WERKSDto getWERKS() {
|
||||
return WERKS;
|
||||
}
|
||||
|
||||
public void setWERKS(WERKSDto WERKS) {
|
||||
this.WERKS = WERKS;
|
||||
}
|
||||
|
||||
public WERKSDto getO_RETURN() {
|
||||
return O_RETURN;
|
||||
}
|
||||
|
||||
public void setO_RETURN(WERKSDto o_RETURN) {
|
||||
O_RETURN = o_RETURN;
|
||||
}
|
||||
|
||||
public SAPResultVo() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SAPResultVo{" +
|
||||
"O_TAB=" + O_TAB +
|
||||
", WERKS='" + WERKS + '\'' +
|
||||
", O_RETURN=" + O_RETURN +
|
||||
'}';
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package org.dromara.api.service;
|
||||
|
||||
|
||||
/**
|
||||
* API物料Service接口
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-01-02
|
||||
*/
|
||||
public interface IBaseMaterialInfoApiService {
|
||||
|
||||
String insertApi(String requestBody);
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package org.dromara.api.service;
|
||||
|
||||
import org.dromara.api.domain.sap.SAPPortDto;
|
||||
import org.dromara.mes.api.model.bo.BaseMaterialInfoBo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 通用APIService接口
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-01-02
|
||||
*/
|
||||
public interface ICommonApiService {
|
||||
|
||||
|
||||
String getSAPData(SAPPortDto sapPortDto);
|
||||
|
||||
|
||||
List<BaseMaterialInfoBo> convertSAPToMaterialEntity(String json);
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
package org.dromara.api.service.impl;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import org.dromara.api.domain.sap.SAPPortDto;
|
||||
import org.dromara.api.domain.sap.vo.SAPResultVo;
|
||||
import org.dromara.api.service.ICommonApiService;
|
||||
import org.dromara.api.utils.SAPApiUtils;
|
||||
import org.dromara.api.utils.SAPConstants;
|
||||
import org.dromara.mes.api.model.bo.BaseMaterialInfoBo;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 通用APIService接口
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-01-02
|
||||
*/
|
||||
@Service
|
||||
public class CommonApiServiceImpl implements ICommonApiService {
|
||||
|
||||
|
||||
@Override
|
||||
public String getSAPData(SAPPortDto sapPortDto) {
|
||||
String requestParam = null;
|
||||
String result = null;
|
||||
try {
|
||||
//获取物料API
|
||||
|
||||
// 创建ObjectMapper实例 对象转JSON字符串
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// 格式化输出
|
||||
objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
|
||||
requestParam = objectMapper.writeValueAsString(sapPortDto);
|
||||
result = SAPApiUtils.sendSAPHttpPost(SAPConstants.SAP_PREFIX_URL + SAPConstants.MATERIAL_URL, requestParam);
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BaseMaterialInfoBo> convertSAPToMaterialEntity(String json) {
|
||||
SAPResultVo resultVo = null;
|
||||
try {
|
||||
// 处理接口返回消息
|
||||
ObjectMapper resultMapper = new ObjectMapper();
|
||||
// 将 JSON 字符串 转换为 Java 对象
|
||||
resultVo = resultMapper.readValue(json, SAPResultVo.class);
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
List<BaseMaterialInfoBo> materialInfoArrayList = new ArrayList<>();
|
||||
assert resultVo != null;
|
||||
List<HashMap<String, String>> itemList = resultVo.getO_TAB().get("item");
|
||||
for (HashMap<String, String> map : itemList) {
|
||||
BaseMaterialInfoBo materialInfo = new BaseMaterialInfoBo();
|
||||
materialInfo.setMaterialCode(map.get("MATNR"));
|
||||
materialInfo.setMaterialName(map.get("MAKTX"));
|
||||
materialInfo.setMaterialUnit(map.get("MEINS"));
|
||||
materialInfo.setMaterialMatkl(map.get("MATKL"));
|
||||
materialInfoArrayList.add(materialInfo);
|
||||
}
|
||||
return materialInfoArrayList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package org.dromara.api.snailjob;
|
||||
|
||||
import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
|
||||
import com.aizuda.snailjob.client.job.core.dto.JobArgs;
|
||||
import com.aizuda.snailjob.client.model.ExecuteResult;
|
||||
import com.aizuda.snailjob.common.core.util.JsonUtil;
|
||||
import com.aizuda.snailjob.common.log.SnailJobLog;
|
||||
import org.dromara.api.service.IBaseMaterialInfoApiService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @author opensnail
|
||||
* @date 2024-05-17
|
||||
*/
|
||||
@Component
|
||||
@JobExecutor(name = "materialInfoJobExecutor")
|
||||
public class MaterialInfoJobExecutor {
|
||||
|
||||
@Autowired
|
||||
IBaseMaterialInfoApiService baseMaterialInfoApiService;
|
||||
|
||||
public ExecuteResult jobExecute(JobArgs jobArgs) {
|
||||
String jobParams = String.valueOf(jobArgs.getJobParams());
|
||||
String result = baseMaterialInfoApiService.insertApi(jobParams);
|
||||
SnailJobLog.LOCAL.info("materialInfoJobExecutor.jobArgs:{}", JsonUtil.toJsonString(jobArgs));
|
||||
return ExecuteResult.success(result);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package org.dromara.api.utils;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
|
||||
import java.util.Base64;
|
||||
|
||||
/**
|
||||
* @Author YinQ
|
||||
* @create 2023-10-12 10:52
|
||||
*/
|
||||
public class SAPApiUtils {
|
||||
|
||||
|
||||
/**
|
||||
* POST请求json格式
|
||||
* @param apiUrl
|
||||
* @param jsonData
|
||||
* @return
|
||||
*/
|
||||
public static String sendSAPHttpPost(String apiUrl, String jsonData) {
|
||||
try {
|
||||
// 构建POST请求
|
||||
HttpRequest request = HttpRequest.post(apiUrl)
|
||||
.header("Authorization", "Basic " + Base64.getUrlEncoder().
|
||||
encodeToString((SAPConstants.USER_NAME + ":" + SAPConstants.PASS_WORD).getBytes()))
|
||||
.body(jsonData) // 设置JSON格式的请求体
|
||||
.contentType("application/json") // 设置Content-Type为application/json
|
||||
.setConnectionTimeout(1000 * 10) // 设置请求连接超时时间
|
||||
;
|
||||
|
||||
// 发送POST请求
|
||||
HttpResponse httpResponse = request.execute();
|
||||
|
||||
// 获取响应内容
|
||||
return httpResponse.body();
|
||||
} catch (Exception e) {
|
||||
// 捕获异常并重新抛出自定义异常
|
||||
throw new RuntimeException("Failed to send SAP HTTP POST request: " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.api.utils;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @Author YinQ
|
||||
* @create 2023-09-26 15:39
|
||||
*/
|
||||
@Component
|
||||
public class SAPConstants {
|
||||
|
||||
|
||||
/**
|
||||
* SAP-URL前缀
|
||||
*/
|
||||
public static String SAP_PREFIX_URL;
|
||||
|
||||
/**
|
||||
* SAP-用户名
|
||||
*/
|
||||
public static String USER_NAME;
|
||||
|
||||
/**
|
||||
* SAP-密码
|
||||
*/
|
||||
public static String PASS_WORD;
|
||||
|
||||
/**
|
||||
* 获取物料主数据(MES2019)
|
||||
*/
|
||||
public static final String MATERIAL_URL = "/SdGetSB/SdSapGetMaterialToMesSvcRSProxy/merge";
|
||||
|
||||
/**
|
||||
* 获取生产工单(MES2019)
|
||||
*/
|
||||
public static final String PRODUCTION_ORDERS_URL = "/SdGetSB/SdSapGetPOToMesSvcRSProxy/merge";
|
||||
|
||||
/**
|
||||
* 获取设备模具信息(MES2019)
|
||||
*/
|
||||
public static final String EQUIPMENT_URL = "/SdGetSB/SdSapGetEQToMesSvcRSProxy/merge";
|
||||
|
||||
/**
|
||||
* 获取产品BOM信息(MES2019)
|
||||
*/
|
||||
public static final String PRODUCTS_BOM_URL = "/SdGetSB/SdSapGetBomToMesSvcRSProxy/merge";
|
||||
|
||||
/**
|
||||
* 工厂编号
|
||||
*/
|
||||
public static final String FACTORY_CODE = "1301";
|
||||
|
||||
|
||||
// @Value("${sap.prefix}")
|
||||
public void setPrefix(String value) {
|
||||
SAP_PREFIX_URL = value;
|
||||
}
|
||||
|
||||
// @Value("${sap.username}")
|
||||
public void setUserName(String value) {
|
||||
USER_NAME = value;
|
||||
}
|
||||
|
||||
// @Value("${sap.password}")
|
||||
public void setPassWord(String value) {
|
||||
PASS_WORD = value;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
# Tomcat
|
||||
server:
|
||||
port: 6016
|
||||
|
||||
# Spring
|
||||
spring:
|
||||
application:
|
||||
# 应用名称
|
||||
name: hwmom-api
|
||||
profiles:
|
||||
# 环境配置
|
||||
active: @profiles.active@
|
||||
|
||||
--- # nacos 配置
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
# nacos 服务地址
|
||||
server-addr: @nacos.server@
|
||||
username: @nacos.username@
|
||||
password: @nacos.password@
|
||||
discovery:
|
||||
# 注册组
|
||||
group: @nacos.discovery.group@
|
||||
namespace: ${spring.profiles.active}
|
||||
config:
|
||||
# 配置组
|
||||
group: @nacos.config.group@
|
||||
namespace: ${spring.profiles.active}
|
||||
config:
|
||||
import:
|
||||
- optional:nacos:application-common.yml
|
||||
- optional:nacos:datasource.yml
|
||||
- optional:nacos:${spring.application.name}.yml
|
@ -0,0 +1,8 @@
|
||||
Spring Boot Version: ${spring-boot.version}
|
||||
Spring Application Name: ${spring.application.name}
|
||||
__ _
|
||||
/ /_ _ ______ ___ ____ ____ ___ ____ _____ (_)
|
||||
/ __ \ | /| / / __ `__ \/ __ \/ __ `__ \______/ __ `/ __ \/ /
|
||||
/ / / / |/ |/ / / / / / / /_/ / / / / / /_____/ /_/ / /_/ / /
|
||||
/_/ /_/|__/|__/_/ /_/ /_/\____/_/ /_/ /_/ \__,_/ .___/_/
|
||||
/_/
|
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="logs/${project.artifactId}" />
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="console.log.pattern"
|
||||
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${console.log.pattern}</pattern>
|
||||
<charset>utf-8</charset>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<include resource="logback-common.xml" />
|
||||
|
||||
<include resource="logback-logstash.xml" />
|
||||
|
||||
<!-- 开启 skywalking 日志收集 -->
|
||||
<include resource="logback-skylog.xml" />
|
||||
|
||||
<!--系统操作日志-->
|
||||
<root level="info">
|
||||
<appender-ref ref="console" />
|
||||
</root>
|
||||
</configuration>
|
@ -0,0 +1,3 @@
|
||||
java包使用 `.` 分割 resource 目录使用 `/` 分割
|
||||
<br>
|
||||
此文件目的 防止文件夹粘连找不到 `xml` 文件
|
@ -0,0 +1,117 @@
|
||||
package org.dromara.mes.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mes.domain.vo.BaseStructureBomVo;
|
||||
import org.dromara.mes.domain.bo.BaseStructureBomBo;
|
||||
import org.dromara.mes.service.IBaseStructureBomService;
|
||||
|
||||
/**
|
||||
* 结构BOM信息
|
||||
* 前端访问路由地址为:/mes/baseStructureBom
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/baseStructureBom")
|
||||
public class BaseStructureBomController extends BaseController {
|
||||
|
||||
private final IBaseStructureBomService baseStructureBomService;
|
||||
|
||||
/**
|
||||
* 查询结构BOM信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:baseStructureBom:list")
|
||||
@GetMapping("/list")
|
||||
public R<List<BaseStructureBomVo>> list(BaseStructureBomBo bo) {
|
||||
List<BaseStructureBomVo> list = baseStructureBomService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出结构BOM信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:baseStructureBom:export")
|
||||
@Log(title = "结构BOM信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BaseStructureBomBo bo, HttpServletResponse response) {
|
||||
List<BaseStructureBomVo> list = baseStructureBomService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "结构BOM信息", BaseStructureBomVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结构BOM信息详细信息
|
||||
*
|
||||
* @param structureBomId 主键
|
||||
*/
|
||||
@SaCheckPermission("mes:baseStructureBom:query")
|
||||
@GetMapping("/{structureBomId}")
|
||||
public R<BaseStructureBomVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long structureBomId) {
|
||||
return R.ok(baseStructureBomService.queryById(structureBomId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增结构BOM信息
|
||||
*/
|
||||
@SaCheckPermission("mes:baseStructureBom:add")
|
||||
@Log(title = "结构BOM信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BaseStructureBomBo bo) {
|
||||
return toAjax(baseStructureBomService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改结构BOM信息
|
||||
*/
|
||||
@SaCheckPermission("mes:baseStructureBom:edit")
|
||||
@Log(title = "结构BOM信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BaseStructureBomBo bo) {
|
||||
return toAjax(baseStructureBomService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除结构BOM信息
|
||||
*
|
||||
* @param structureBomIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("mes:baseStructureBom:remove")
|
||||
@Log(title = "结构BOM信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{structureBomIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] structureBomIds) {
|
||||
return toAjax(baseStructureBomService.deleteWithValidByIds(List.of(structureBomIds), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 下拉框查询结构BOM信息列表
|
||||
*/
|
||||
|
||||
@GetMapping("getBaseStructureBomList")
|
||||
public R<List<BaseStructureBomVo>> getBaseStructureBomlist(BaseStructureBomBo bo) {
|
||||
List<BaseStructureBomVo> list = baseStructureBomService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
package org.dromara.mes.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mes.domain.vo.ProdBaseMachineInfoVo;
|
||||
import org.dromara.mes.domain.bo.ProdBaseMachineInfoBo;
|
||||
import org.dromara.mes.service.IProdBaseMachineInfoService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 机台信息
|
||||
* 前端访问路由地址为:/mes/prodBaseMachineInfo
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/prodBaseMachineInfo")
|
||||
public class ProdBaseMachineInfoController extends BaseController {
|
||||
|
||||
private final IProdBaseMachineInfoService prodBaseMachineInfoService;
|
||||
|
||||
/**
|
||||
* 查询机台信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseMachineInfo:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<ProdBaseMachineInfoVo> list(ProdBaseMachineInfoBo bo, PageQuery pageQuery) {
|
||||
return prodBaseMachineInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出机台信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseMachineInfo:export")
|
||||
@Log(title = "机台信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(ProdBaseMachineInfoBo bo, HttpServletResponse response) {
|
||||
List<ProdBaseMachineInfoVo> list = prodBaseMachineInfoService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "机台信息", ProdBaseMachineInfoVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取机台信息详细信息
|
||||
*
|
||||
* @param machineId 主键
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseMachineInfo:query")
|
||||
@GetMapping("/{machineId}")
|
||||
public R<ProdBaseMachineInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long machineId) {
|
||||
return R.ok(prodBaseMachineInfoService.queryById(machineId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增机台信息
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseMachineInfo:add")
|
||||
@Log(title = "机台信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProdBaseMachineInfoBo bo) {
|
||||
return toAjax(prodBaseMachineInfoService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改机台信息
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseMachineInfo:edit")
|
||||
@Log(title = "机台信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProdBaseMachineInfoBo bo) {
|
||||
return toAjax(prodBaseMachineInfoService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除机台信息
|
||||
*
|
||||
* @param machineIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseMachineInfo:remove")
|
||||
@Log(title = "机台信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{machineIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] machineIds) {
|
||||
return toAjax(prodBaseMachineInfoService.deleteWithValidByIds(List.of(machineIds), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 下拉框查询机台信息列表
|
||||
*/
|
||||
|
||||
@GetMapping("getProdBaseMachineInfoList")
|
||||
public R<List<ProdBaseMachineInfoVo>> getProdBaseMachineInfolist(ProdBaseMachineInfoBo bo) {
|
||||
List<ProdBaseMachineInfoVo> list = prodBaseMachineInfoService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
package org.dromara.mes.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mes.domain.vo.ProdBaseProcessProdLineVo;
|
||||
import org.dromara.mes.domain.bo.ProdBaseProcessProdLineBo;
|
||||
import org.dromara.mes.service.IProdBaseProcessProdLineService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 工序关联产线
|
||||
* 前端访问路由地址为:/mes/prodBaseProcessProdLine
|
||||
*
|
||||
* @author LionLi
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/prodBaseProcessProdLine")
|
||||
public class ProdBaseProcessProdLineController extends BaseController {
|
||||
|
||||
private final IProdBaseProcessProdLineService prodBaseProcessProdLineService;
|
||||
|
||||
/**
|
||||
* 查询工序关联产线列表
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessProdLine:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<ProdBaseProcessProdLineVo> list(ProdBaseProcessProdLineBo bo, PageQuery pageQuery) {
|
||||
return prodBaseProcessProdLineService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出工序关联产线列表
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessProdLine:export")
|
||||
@Log(title = "工序关联产线", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(ProdBaseProcessProdLineBo bo, HttpServletResponse response) {
|
||||
List<ProdBaseProcessProdLineVo> list = prodBaseProcessProdLineService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "工序关联产线", ProdBaseProcessProdLineVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工序关联产线详细信息
|
||||
*
|
||||
* @param processId 主键
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessProdLine:query")
|
||||
@GetMapping("/{processId}")
|
||||
public R<ProdBaseProcessProdLineVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long processId) {
|
||||
return R.ok(prodBaseProcessProdLineService.queryById(processId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增工序关联产线
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessProdLine:add")
|
||||
@Log(title = "工序关联产线", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProdBaseProcessProdLineBo bo) {
|
||||
return toAjax(prodBaseProcessProdLineService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改工序关联产线
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessProdLine:edit")
|
||||
@Log(title = "工序关联产线", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessProdLineBo bo) {
|
||||
return toAjax(prodBaseProcessProdLineService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除工序关联产线
|
||||
*
|
||||
* @param processIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessProdLine:remove")
|
||||
@Log(title = "工序关联产线", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{processIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] processIds) {
|
||||
return toAjax(prodBaseProcessProdLineService.deleteWithValidByIds(List.of(processIds), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 下拉框查询工序关联产线列表
|
||||
*/
|
||||
|
||||
@GetMapping("getProdBaseProcessProdLineList")
|
||||
public R<List<ProdBaseProcessProdLineVo>> getProdBaseProcessProdLinelist(ProdBaseProcessProdLineBo bo) {
|
||||
List<ProdBaseProcessProdLineVo> list = prodBaseProcessProdLineService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
package org.dromara.mes.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mes.domain.vo.ProdBaseProcessUserVo;
|
||||
import org.dromara.mes.domain.bo.ProdBaseProcessUserBo;
|
||||
import org.dromara.mes.service.IProdBaseProcessUserService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 工序关联人员
|
||||
* 前端访问路由地址为:/mes/prodBaseProcessUser
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/prodBaseProcessUser")
|
||||
public class ProdBaseProcessUserController extends BaseController {
|
||||
|
||||
private final IProdBaseProcessUserService prodBaseProcessUserService;
|
||||
|
||||
/**
|
||||
* 查询工序关联人员列表
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessUser:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<ProdBaseProcessUserVo> list(ProdBaseProcessUserBo bo, PageQuery pageQuery) {
|
||||
return prodBaseProcessUserService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出工序关联人员列表
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessUser:export")
|
||||
@Log(title = "工序关联人员", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(ProdBaseProcessUserBo bo, HttpServletResponse response) {
|
||||
List<ProdBaseProcessUserVo> list = prodBaseProcessUserService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "工序关联人员", ProdBaseProcessUserVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工序关联人员详细信息
|
||||
*
|
||||
* @param processId 主键
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessUser:query")
|
||||
@GetMapping("/{processId}")
|
||||
public R<ProdBaseProcessUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long processId) {
|
||||
return R.ok(prodBaseProcessUserService.queryById(processId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增工序关联人员
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessUser:add")
|
||||
@Log(title = "工序关联人员", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProdBaseProcessUserBo bo) {
|
||||
return toAjax(prodBaseProcessUserService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改工序关联人员
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessUser:edit")
|
||||
@Log(title = "工序关联人员", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProdBaseProcessUserBo bo) {
|
||||
return toAjax(prodBaseProcessUserService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除工序关联人员
|
||||
*
|
||||
* @param processIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("mes:prodBaseProcessUser:remove")
|
||||
@Log(title = "工序关联人员", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{processIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] processIds) {
|
||||
return toAjax(prodBaseProcessUserService.deleteWithValidByIds(List.of(processIds), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 下拉框查询工序关联人员列表
|
||||
*/
|
||||
|
||||
@GetMapping("getProdBaseProcessUserList")
|
||||
public R<List<ProdBaseProcessUserVo>> getProdBaseProcessUserlist(ProdBaseProcessUserBo bo) {
|
||||
List<ProdBaseProcessUserVo> list = prodBaseProcessUserService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
package org.dromara.mes.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mes.domain.vo.ProdTechnologyInfoVo;
|
||||
import org.dromara.mes.domain.bo.ProdTechnologyInfoBo;
|
||||
import org.dromara.mes.service.IProdTechnologyInfoService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 工序工艺信息
|
||||
* 前端访问路由地址为:/mes/technologyInfo
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-01-21
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/technologyInfo")
|
||||
public class ProdTechnologyInfoController extends BaseController {
|
||||
|
||||
private final IProdTechnologyInfoService prodTechnologyInfoService;
|
||||
|
||||
/**
|
||||
* 查询工序工艺信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyInfo:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<ProdTechnologyInfoVo> list(ProdTechnologyInfoBo bo, PageQuery pageQuery) {
|
||||
return prodTechnologyInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出工序工艺信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyInfo:export")
|
||||
@Log(title = "工序工艺信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(ProdTechnologyInfoBo bo, HttpServletResponse response) {
|
||||
List<ProdTechnologyInfoVo> list = prodTechnologyInfoService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "工序工艺信息", ProdTechnologyInfoVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工序工艺信息详细信息
|
||||
*
|
||||
* @param technologyId 主键
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyInfo:query")
|
||||
@GetMapping("/{technologyId}")
|
||||
public R<ProdTechnologyInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long technologyId) {
|
||||
return R.ok(prodTechnologyInfoService.queryById(technologyId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增工序工艺信息
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyInfo:add")
|
||||
@Log(title = "工序工艺信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProdTechnologyInfoBo bo) {
|
||||
return toAjax(prodTechnologyInfoService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改工序工艺信息
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyInfo:edit")
|
||||
@Log(title = "工序工艺信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProdTechnologyInfoBo bo) {
|
||||
return toAjax(prodTechnologyInfoService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除工序工艺信息
|
||||
*
|
||||
* @param technologyIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyInfo:remove")
|
||||
@Log(title = "工序工艺信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{technologyIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] technologyIds) {
|
||||
return toAjax(prodTechnologyInfoService.deleteWithValidByIds(List.of(technologyIds), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 下拉框查询工序工艺信息列表
|
||||
*/
|
||||
|
||||
@GetMapping("getProdTechnologyInfoList")
|
||||
public R<List<ProdTechnologyInfoVo>> getProdTechnologyInfolist(ProdTechnologyInfoBo bo) {
|
||||
List<ProdTechnologyInfoVo> list = prodTechnologyInfoService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
package org.dromara.mes.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.mes.domain.vo.ProdTechnologyStepInfoVo;
|
||||
import org.dromara.mes.domain.bo.ProdTechnologyStepInfoBo;
|
||||
import org.dromara.mes.service.IProdTechnologyStepInfoService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 工艺步序信息
|
||||
* 前端访问路由地址为:/mes/technologyStepInfo
|
||||
*
|
||||
* @author Yinq
|
||||
* @date 2025-01-21
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/technologyStepInfo")
|
||||
public class ProdTechnologyStepInfoController extends BaseController {
|
||||
|
||||
private final IProdTechnologyStepInfoService prodTechnologyStepInfoService;
|
||||
|
||||
/**
|
||||
* 查询工艺步序信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyStepInfo:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<ProdTechnologyStepInfoVo> list(ProdTechnologyStepInfoBo bo, PageQuery pageQuery) {
|
||||
return prodTechnologyStepInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出工艺步序信息列表
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyStepInfo:export")
|
||||
@Log(title = "工艺步序信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(ProdTechnologyStepInfoBo bo, HttpServletResponse response) {
|
||||
List<ProdTechnologyStepInfoVo> list = prodTechnologyStepInfoService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "工艺步序信息", ProdTechnologyStepInfoVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工艺步序信息详细信息
|
||||
*
|
||||
* @param stepId 主键
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyStepInfo:query")
|
||||
@GetMapping("/{stepId}")
|
||||
public R<ProdTechnologyStepInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long stepId) {
|
||||
return R.ok(prodTechnologyStepInfoService.queryById(stepId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增工艺步序信息
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyStepInfo:add")
|
||||
@Log(title = "工艺步序信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody ProdTechnologyStepInfoBo bo) {
|
||||
return toAjax(prodTechnologyStepInfoService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改工艺步序信息
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyStepInfo:edit")
|
||||
@Log(title = "工艺步序信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ProdTechnologyStepInfoBo bo) {
|
||||
return toAjax(prodTechnologyStepInfoService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除工艺步序信息
|
||||
*
|
||||
* @param stepIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("mes:technologyStepInfo:remove")
|
||||
@Log(title = "工艺步序信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{stepIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] stepIds) {
|
||||
return toAjax(prodTechnologyStepInfoService.deleteWithValidByIds(List.of(stepIds), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 下拉框查询工艺步序信息列表
|
||||
*/
|
||||
|
||||
@GetMapping("getProdTechnologyStepInfoList")
|
||||
public R<List<ProdTechnologyStepInfoVo>> getProdTechnologyStepInfolist(ProdTechnologyStepInfoBo bo) {
|
||||
List<ProdTechnologyStepInfoVo> list = prodTechnologyStepInfoService.queryList(bo);
|
||||
return R.ok(list);
|
||||
}
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
package org.dromara.mes.domain;
|
||||
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 机台信息对象 prod_base_machine_info
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("prod_base_machine_info")
|
||||
public class ProdBaseMachineInfo extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键标识
|
||||
*/
|
||||
@TableId(value = "machine_id", type = IdType.AUTO)
|
||||
private Long machineId;
|
||||
|
||||
/**
|
||||
* 机台编号
|
||||
*/
|
||||
private String machineCode;
|
||||
|
||||
/**
|
||||
* 机台名称
|
||||
*/
|
||||
private String machineName;
|
||||
|
||||
/**
|
||||
* 资产编号
|
||||
*/
|
||||
private String assetNumber;
|
||||
|
||||
/**
|
||||
* 机台位置
|
||||
*/
|
||||
private String machineLocation;
|
||||
|
||||
/**
|
||||
* 机台类型
|
||||
*/
|
||||
private String machineType;
|
||||
|
||||
/**
|
||||
* 机台规格
|
||||
*/
|
||||
private String machineSpec;
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
private String supplierId;
|
||||
|
||||
/**
|
||||
* 机台状态(0停用 1启用 2报废)
|
||||
*/
|
||||
private String machineStatus;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
package org.dromara.mes.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 工序关联产线对象 prod_base_process_prod_line
|
||||
*
|
||||
* @author LionLi
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode()
|
||||
@TableName("prod_base_process_prod_line")
|
||||
public class ProdBaseProcessProdLine {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 工序ID
|
||||
*/
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 所属产线ID
|
||||
*/
|
||||
private Long prodLineId;
|
||||
|
||||
|
||||
|
||||
/*删除继承BaseEntity*/
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> params = new HashMap<>();
|
||||
/**
|
||||
* 创建部门
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
private String tenantId;
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package org.dromara.mes.domain;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import org.dromara.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 工序关联人员对象 prod_base_process_user
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode()
|
||||
@TableName("prod_base_process_user")
|
||||
public class ProdBaseProcessUser {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 工序ID
|
||||
*/
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
|
||||
/*删除继承BaseEntity*/
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> params = new HashMap<>();
|
||||
/**
|
||||
* 创建部门
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
private String tenantId;
|
||||
}
|
@ -0,0 +1,80 @@
|
||||
package org.dromara.mes.domain.bo;
|
||||
|
||||
import org.dromara.mes.domain.ProdBaseMachineInfo;
|
||||
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.*;
|
||||
|
||||
/**
|
||||
* 机台信息业务对象 prod_base_machine_info
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ProdBaseMachineInfo.class, reverseConvertGenerate = false)
|
||||
public class ProdBaseMachineInfoBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键标识
|
||||
*/
|
||||
private Long machineId;
|
||||
|
||||
/**
|
||||
* 机台编号
|
||||
*/
|
||||
@NotBlank(message = "机台编号不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String machineCode;
|
||||
|
||||
/**
|
||||
* 机台名称
|
||||
*/
|
||||
@NotBlank(message = "机台名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String machineName;
|
||||
|
||||
/**
|
||||
* 资产编号
|
||||
*/
|
||||
private String assetNumber;
|
||||
|
||||
/**
|
||||
* 机台位置
|
||||
*/
|
||||
private String machineLocation;
|
||||
|
||||
/**
|
||||
* 机台类型
|
||||
*/
|
||||
private String machineType;
|
||||
|
||||
/**
|
||||
* 机台规格
|
||||
*/
|
||||
private String machineSpec;
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
private String supplierId;
|
||||
|
||||
/**
|
||||
* 机台状态(0停用 1启用 2报废)
|
||||
*/
|
||||
private String machineStatus;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 工序
|
||||
*/
|
||||
private Long processId;
|
||||
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
package org.dromara.mes.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import org.dromara.mes.domain.ProdBaseProcessProdLine;
|
||||
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.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 工序关联产线业务对象 prod_base_process_prod_line
|
||||
*
|
||||
* @author LionLi
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode()
|
||||
@AutoMapper(target = ProdBaseProcessProdLine.class, reverseConvertGenerate = false)
|
||||
public class ProdBaseProcessProdLineBo {
|
||||
|
||||
/**
|
||||
* 工序ID
|
||||
*/
|
||||
@NotNull(message = "工序ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 所属产线ID
|
||||
*/
|
||||
@NotNull(message = "所属产线ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long prodLineId;
|
||||
|
||||
|
||||
/**
|
||||
* 搜索值
|
||||
*/
|
||||
@JsonIgnore
|
||||
@TableField(exist = false)
|
||||
private String searchValue;
|
||||
|
||||
/**
|
||||
* 创建部门
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> params = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private String tenantId;
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package org.dromara.mes.domain.bo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import org.dromara.mes.domain.ProdBaseProcessUser;
|
||||
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.*;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 工序关联人员业务对象 prod_base_process_user
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode()
|
||||
@AutoMapper(target = ProdBaseProcessUser.class, reverseConvertGenerate = false)
|
||||
public class ProdBaseProcessUserBo {
|
||||
|
||||
/**
|
||||
* 工序ID
|
||||
*/
|
||||
@NotNull(message = "工序ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@NotNull(message = "用户ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 搜索值
|
||||
*/
|
||||
@JsonIgnore
|
||||
@TableField(exist = false)
|
||||
private String searchValue;
|
||||
|
||||
/**
|
||||
* 创建部门
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createDept;
|
||||
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Long createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> params = new HashMap<>();
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package org.dromara.mes.domain.vo;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import org.dromara.mes.domain.ProdPlanInfo;
|
||||
import org.dromara.mes.domain.bo.ProdPlanInfoBo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class MesProductPlanEditVo {
|
||||
//生产工单ID
|
||||
@NotBlank(message = "生产工单Id必须输入")
|
||||
private Long productOrderId;
|
||||
|
||||
//此次生产派工数量
|
||||
private Long dispatchAmount;
|
||||
|
||||
//保存的生产计划
|
||||
@NotBlank(message = "没有修改的生产派工提交")
|
||||
private List<ProdPlanInfoBo> mesProductPlanList;
|
||||
|
||||
//待删除的生产计划ID
|
||||
private Long[] toDeletedPlanIds;
|
||||
}
|
@ -0,0 +1,129 @@
|
||||
package org.dromara.mes.domain.vo;
|
||||
|
||||
import org.dromara.mes.domain.ProdBaseMachineInfo;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 机台信息视图对象 prod_base_machine_info
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-20
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ProdBaseMachineInfo.class)
|
||||
public class ProdBaseMachineInfoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键标识
|
||||
*/
|
||||
@ExcelProperty(value = "主键标识")
|
||||
private Long machineId;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
@ExcelProperty(value = "租户编号")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 机台编号
|
||||
*/
|
||||
@ExcelProperty(value = "机台编号")
|
||||
private String machineCode;
|
||||
|
||||
/**
|
||||
* 机台名称
|
||||
*/
|
||||
@ExcelProperty(value = "机台名称")
|
||||
private String machineName;
|
||||
|
||||
/**
|
||||
* 资产编号
|
||||
*/
|
||||
@ExcelProperty(value = "资产编号")
|
||||
private String assetNumber;
|
||||
|
||||
/**
|
||||
* 机台位置
|
||||
*/
|
||||
@ExcelProperty(value = "机台位置")
|
||||
private String machineLocation;
|
||||
|
||||
/**
|
||||
* 机台类型
|
||||
*/
|
||||
@ExcelProperty(value = "机台类型")
|
||||
private String machineType;
|
||||
|
||||
/**
|
||||
* 机台规格
|
||||
*/
|
||||
@ExcelProperty(value = "机台规格")
|
||||
private String machineSpec;
|
||||
|
||||
/**
|
||||
* 供应商
|
||||
*/
|
||||
@ExcelProperty(value = "供应商")
|
||||
private String supplierId;
|
||||
|
||||
/**
|
||||
* 机台状态(0停用 1启用 2报废)
|
||||
*/
|
||||
@ExcelProperty(value = "机台状态(0停用 1启用 2报废)", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "machine_status")
|
||||
private String machineStatus;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@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;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package org.dromara.mes.domain.vo;
|
||||
|
||||
import org.dromara.mes.domain.ProdBaseProcessProdLine;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 工序关联产线视图对象 prod_base_process_prod_line
|
||||
*
|
||||
* @author LionLi
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ProdBaseProcessProdLine.class)
|
||||
public class ProdBaseProcessProdLineVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 工序ID
|
||||
*/
|
||||
@ExcelProperty(value = "工序ID")
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 所属产线ID
|
||||
*/
|
||||
@ExcelProperty(value = "所属产线ID")
|
||||
private Long prodLineId;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
@ExcelProperty(value = "租户编号")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@ExcelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ExcelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package org.dromara.mes.domain.vo;
|
||||
|
||||
import org.dromara.mes.domain.ProdBaseProcessUser;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 工序关联人员视图对象 prod_base_process_user
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-09
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = ProdBaseProcessUser.class)
|
||||
public class ProdBaseProcessUserVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 工序ID
|
||||
*/
|
||||
@ExcelProperty(value = "工序ID")
|
||||
private Long processId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@ExcelProperty(value = "用户ID")
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
@ExcelProperty(value = "租户编号")
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
@ExcelProperty(value = "用户名称")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
@ExcelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@ExcelProperty(value = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.mes.mapper;
|
||||
|
||||
import org.dromara.mes.domain.BaseStructureBom;
|
||||
import org.dromara.mes.domain.vo.BaseStructureBomVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 结构BOM信息Mapper接口
|
||||
*
|
||||
* @author zangch
|
||||
* @date 2025-01-20
|
||||
*/
|
||||
public interface BaseStructureBomMapper extends BaseMapperPlus<BaseStructureBom, BaseStructureBomVo> {
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue