Browse Source

update

tags/v0
zhaohe 9 months ago
parent
commit
fcc1fa9d87
  1. 5
      pom.xml
  2. 136
      src/main/java/a8k/controler/AppSettingControler.java
  3. 18
      src/main/java/a8k/controler/UsrControler.java
  4. 70
      src/main/java/a8k/service/app/appsetting/AppSettingsMgrService.java
  5. 8
      src/main/java/a8k/service/app/background/TemperatureCtrlService.java
  6. 5
      src/main/java/a8k/service/db/AppSettingDBService.java
  7. 41
      src/main/java/a8k/service/db/type/AppSetting.java
  8. 7
      src/main/java/a8k/type/appret/AppRetV1.java
  9. 2
      src/main/java/a8k/type/appret/AppRetV2.java
  10. 4
      src/main/java/a8k/type/ecode/AppCodeError.java

5
pom.xml

@ -81,6 +81,11 @@
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
</dependencies>
<build>

136
src/main/java/a8k/controler/AppSettingControler.java

@ -0,0 +1,136 @@
package a8k.controler;
import a8k.service.app.appsetting.AppSettingsMgrService;
import a8k.service.db.type.AppSetting;
import a8k.service.db.type.appsetting.settingenum.*;
import a8k.type.appret.AppRetV2;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Tag(name = "系统设置", description = "")
@Slf4j
@Controller
@RequestMapping(value = "/api/v1/app/AppSetting/")
@ResponseBody
public class AppSettingControler {
@Resource
AppSettingsMgrService appSettingsMgrService;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// EXT FUNC
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@Operation(summary = "获取系统设置")
@PostMapping("/getAppSettings")
public AppRetV2<AppSetting> getAppSettings() {
return AppRetV2.success(appSettingsMgrService.getAppSettings());
}
@Operation(summary = "设置语言")
@PostMapping("/setLanguage")
public AppRetV2<Void> setLanguage(@NotNull LanguageType val) {
appSettingsMgrService.setLanguage(val);
return AppRetV2.success();
}
@Operation(summary = "设置自动打印报告")
@PostMapping("/setAutoPrint")
public AppRetV2<Void> setAutoPrint(@NotNull Boolean val) {
appSettingsMgrService.setAutoPrint(val);
return AppRetV2.success();
}
@Operation(summary = "设置自动登出")
@PostMapping("/setAutoLogout")
public AppRetV2<Void> setAutoLogout(@NotNull Boolean val) {
appSettingsMgrService.setAutoLogout(val);
return AppRetV2.success();
}
@Operation(summary = "设置LIS类型")
@PostMapping("/setLISType")
public AppRetV2<Void> setLISType(@NotNull LISTypeEnum val) {
appSettingsMgrService.setLISType(val);
return AppRetV2.success();
}
@Operation(summary = "设置LIS协议")
@PostMapping("/setLISProtocol")
public AppRetV2<Void> setLISProtocol(@NotNull LISProtocolEnum val) {
appSettingsMgrService.setLISProtocol(val);
return AppRetV2.success();
}
@Operation(summary = "设置LIS接口")
@PostMapping("/setLIFIf")
public AppRetV2<Void> setLIFIf(@NotNull LISIFType val) {
appSettingsMgrService.setLIFIf(val);
return AppRetV2.success();
}
@Operation(summary = "设置LIS是否自动上报报告")
@PostMapping("/setLISAutoExport")
public AppRetV2<Void> setLISAutoExport( @NotNull Boolean val) {
appSettingsMgrService.setLISAutoExport(val);
return AppRetV2.success();
}
@Operation(summary = "设置LIS串口波特率")
@PostMapping("/setLISSerialBaudrate")
public AppRetV2<Void> setLISSerialBaudrate(@NotNull LISSerialBaudrateType val) {
appSettingsMgrService.setLISSerialBaudrate(val);
return AppRetV2.success();
}
@Operation(summary = "设置LISIP")
@PostMapping("/setLISNetIp")
public AppRetV2<Void> setLISNetIp(@NotNull String val) {
appSettingsMgrService.setLISNetIp(val);
return AppRetV2.success();
}
@Operation(summary = "设置LIS端口")
@PostMapping("/setLISNetPort")
public AppRetV2<Void> setLISNetPort(@NotNull Integer val) {
appSettingsMgrService.setLISNetPort(val);
return AppRetV2.success();
}
@Operation(summary = "设置设备温度")
@PostMapping("/setTemperature")
public AppRetV2<Void> setTemperature(Integer val) {
log.info("setTemperature:{}", val);
appSettingsMgrService.setTemperature(val);
return AppRetV2.success();
}
}

18
src/main/java/a8k/controler/UsrControler.java

@ -27,58 +27,58 @@ public class UsrControler {
// EXT FUNC
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@Operation(description = "用户登录")
@Operation(summary = "用户登录")
@PostMapping("login")
public AppRetV2<AppUser> login(String account, String password) throws AppException {
return AppRetV2.success(appUserMgrService.login(account, password));
}
@Operation(description = "用户登出")
@Operation(summary = "用户登出")
@PostMapping("unlogin")
public AppRetV2<?> unlogin() {
return AppRetV2.success();
}
@Operation(description = "获取当前用户")
@Operation(summary = "获取当前用户")
@PostMapping("getLoginUsr")
public AppRetV2<AppUser> getLoginUsr() {
return AppRetV2.success(new AppUser());
}
@Operation(description = "获取用户列表")
@Operation(summary = "获取用户列表")
@PostMapping("getUsrlist")
public AppRetV2<List<AppUser>> getUsrlist() {
return AppRetV2.success(appUserMgrService.getUsrlist());
}
@Operation(description = "用户添加")
@Operation(summary = "用户添加")
@PostMapping("addUser")
public AppRetV2<List<AppUser>> addUser(String account, String password, UsrRole role) throws AppException {
return AppRetV2.success(appUserMgrService.addUser(account, password, role));
}
@Operation(description = "删除用户")
@Operation(summary = "删除用户")
@PostMapping("delUser")
public AppRetV2<List<AppUser>> delUser(String account) {
return AppRetV2.success(appUserMgrService.delUser(account));
}
@Operation(description = "修改用户密码")
@Operation(summary = "修改用户密码")
@PostMapping("modifyUsrPwd")
public AppRetV2<List<AppUser>> modifyUsrPwd(String account, String password) throws AppException {
return AppRetV2.success(appUserMgrService.modifyUsrPwd(account, password));
}
@Operation(description = "修改用户权限")
@Operation(summary = "修改用户权限")
@PostMapping("modifyUsrRole")
public AppRetV2<List<AppUser>> modifyUsrRole(String account, UsrRole usrRole) throws AppException {
return AppRetV2.success(appUserMgrService.modifyUsrRole(account, usrRole));
}
@Operation(description = "修改用户名称")
@Operation(summary = "修改用户名称")
@PostMapping("modifyUsrAccount")
public AppRetV2<List<AppUser>> modifyUsrAccount(String account, String newaccount) throws AppException {
return AppRetV2.success(appUserMgrService.modifyUsrAccount(account, newaccount));

70
src/main/java/a8k/service/app/appsetting/AppSettingsMgr.java → src/main/java/a8k/service/app/appsetting/AppSettingsMgrService.java

@ -15,24 +15,8 @@ import org.springframework.stereotype.Component;
@Component
@ExtApiTab(cfg = ExtApiTabConfig.AppSettingsMgr)
public class AppSettingsMgr {
Logger logger = org.slf4j.LoggerFactory.getLogger(AppSettingsMgr.class);
static class ORDER {
final static int getAppSetting = 1;
final static int setLanguage = 2;
final static int setAutoPrint = 3;
final static int setAutoLogout = 4;
final static int setLISType = 5;
final static int setLISProtocol = 6;
final static int setLIFIf = 7;
final static int setLISAutoExport = 8;
final static int setLISSerialBaudrate = 9;
final static int setLISNetIp = 10;
final static int setLISNetPort = 11;
final static int setTemperature = 12;
}
public class AppSettingsMgrService {
Logger logger = org.slf4j.LoggerFactory.getLogger(AppSettingsMgrService.class);
@Resource
AppSettingDBService appSettingDBService;
@ -51,110 +35,84 @@ public class AppSettingsMgr {
// EXT FUNC
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@ExtApiFn(name = "getAppSetting", group = "读取", order = ORDER.getAppSetting)
public AppSetting getAppSettings() {
return appSettingDBService.get();
}
@ExtApiFn(name = "getEnumRangeLanguageType", group = "枚举类型")
public LanguageType[] getEnumRangeLanguageType() {
return LanguageType.values();
}
@ExtApiFn(name = "getEnumRangeAppSettingType", group = "枚举类型")
public LISTypeEnum[] getEnumRangeLISTypeEnum() {
return LISTypeEnum.values();
}
@ExtApiFn(name = "getEnumRangeLISProtocolEnum", group = "枚举类型")
public LISProtocolEnum[] getEnumRangeLISProtocolEnum() {
return LISProtocolEnum.values();
}
@ExtApiFn(name = "getEnumRangeLISIFTypeEnum", group = "枚举类型")
public LISIFType[] getEnumRangeLISIFType() {
return LISIFType.values();
}
@ExtApiFn(name = "getEnumRangeLISSerialBaudrateType", group = "枚举类型")
public LISSerialBaudrateType[] getEnumRangeLISSerialBaudrateType() {
return LISSerialBaudrateType.values();
}
@ExtApiFn(name = "setLanguage", group = "设置", order = ORDER.setLanguage)
public void setLanguage(LanguageType val) {
AppSetting setting = appSettingDBService.get();
setting.language = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setAutoPrint", group = "设置", order = ORDER.setAutoPrint)
public void setAutoPrint(Boolean val) {
AppSetting setting = appSettingDBService.get();
setting.autoPrint = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setAutoLogout", group = "设置", order = ORDER.setAutoLogout)
public void setAutoLogout(Boolean val) {
AppSetting setting = appSettingDBService.get();
setting.autoLogout = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setLISType", group = "设置", order = ORDER.setLISType)
public void setLISType(LISTypeEnum val) {
AppSetting setting = appSettingDBService.get();
setting.LISType = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setLISProtocol", group = "设置", order = ORDER.setLISProtocol)
public void setLISProtocol(LISProtocolEnum val) {
AppSetting setting = appSettingDBService.get();
setting.LISProtocol = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setLIFIf", group = "设置", order = ORDER.setLIFIf)
public void setLIFIf(LISIFType val) {
AppSetting setting = appSettingDBService.get();
setting.LIFIf = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setLISAutoExport", group = "设置", order = ORDER.setLISAutoExport)
public void setLISAutoExport(Boolean val) {
AppSetting setting = appSettingDBService.get();
setting.LISAutoExport = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setLISSerialBaudrate", group = "设置", order = ORDER.setLISSerialBaudrate)
public void setLISSerialBaudrate(LISSerialBaudrateType val) {
AppSetting setting = appSettingDBService.get();
setting.LISSerialBaudrate = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setLISNetIp", group = "设置", order = ORDER.setLISNetIp)
public void setLISNetIp(String val) {
AppSetting setting = appSettingDBService.get();
setting.LISNetIp = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setLISNetPort", group = "设置", order = ORDER.setLISNetPort)
public void setLISNetPort(Integer val) {
AppSetting setting = appSettingDBService.get();
setting.LISNetPort = val;
appSettingDBService.update(setting);
}
@ExtApiFn(name = "setTemperature", group = "设置", order = ORDER.setTemperature)
public void setTemperature(Integer val) {
AppSetting setting = appSettingDBService.get();
setting.temperature = val;
setting.setTemperature(val);
appSettingDBService.update(setting);
}

8
src/main/java/a8k/service/app/background/TemperatureCtrlService.java

@ -1,7 +1,7 @@
package a8k.service.app.background;
import a8k.service.app.appsetting.AppSettingsMgr;
import a8k.service.app.appsetting.AppSettingsMgrService;
import a8k.service.app.devicectrl.driver.TemperatureControlDriver;
import a8k.service.db.type.AppSetting;
import a8k.service.test.state.VirtualDevice;
@ -22,7 +22,7 @@ public class TemperatureCtrlService {
VirtualDevice virtualDevice;
@Resource
AppSettingsMgr appSettingsMgr;
AppSettingsMgrService appSettingsMgrService;
Integer temperature = 0;
Thread temperatureCtrlThread = null;
@ -41,7 +41,7 @@ public class TemperatureCtrlService {
return;
}
AppSetting setting = appSettingsMgr.getAppSettings();
AppSetting setting = appSettingsMgrService.getAppSettings();
temperature = setting.getTemperature();
temperatureControlDriver.startCtrlTemperature(temperature.doubleValue());
@ -53,7 +53,7 @@ public class TemperatureCtrlService {
try {
Thread.sleep(1000);
Integer targetTemperature = appSettingsMgr.getAppSettings().getTemperature();
Integer targetTemperature = appSettingsMgrService.getAppSettings().getTemperature();
if (!targetTemperature.equals(temperature)) {
temperature = targetTemperature;
temperatureControlDriver.startCtrlTemperature(temperature.doubleValue());

5
src/main/java/a8k/service/db/AppSettingDBService.java

@ -6,11 +6,13 @@ import a8k.service.db.type.AppSetting;
import a8k.utils.ZSqliteJdbcHelper;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import lombok.SneakyThrows;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import java.sql.ResultSet;
import java.util.List;
@ -19,6 +21,7 @@ import java.util.List;
* ID卡数据库服务
*/
@Component
@Validated
public class AppSettingDBService {
private static final Logger logger = LoggerFactory.getLogger(AppSettingDBService.class);
private static final String tableName = "zapp_a8k_appsetting";
@ -53,7 +56,7 @@ public class AppSettingDBService {
return list.get(0);
}
public void update(AppSetting appSetting) {
public void update(@Valid AppSetting appSetting) {
ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, AppSetting.class, appSetting);
}

41
src/main/java/a8k/service/db/type/AppSetting.java

@ -1,20 +1,61 @@
package a8k.service.db.type;
import a8k.service.db.type.appsetting.settingenum.*;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@Data
@Schema(description = "AppSetting")
public class AppSetting {
public int id = 0;
@Schema(description = "语言")
@NotNull
public LanguageType language = LanguageType.zh_CN;
@Schema(description = "自动打印报告")
@NotNull
public Boolean autoPrint = false;
@Schema(description = "自动登出")
@NotNull
public Boolean autoLogout = false;
@Schema(description = "LIS类型")
@NotNull
public LISTypeEnum LISType = LISTypeEnum.SINGLE_TRACK;
@Schema(description = "LIS协议")
@NotNull
public LISProtocolEnum LISProtocol = LISProtocolEnum.Boditech;
@Schema(description = "LIS接口")
@NotNull
public LISIFType LIFIf = LISIFType.NETWORK;
@Schema(description = "LIS是否自动上报报告")
@NotNull
public Boolean LISAutoExport = true;
@Schema(description = "LIS串口波特率")
@NotNull
public LISSerialBaudrateType LISSerialBaudrate = LISSerialBaudrateType.B9600;
@Schema(description = "LISIP")
@NotNull
public String LISNetIp = "127.0.0.1";
@Schema(description = "LIS端口")
@NotNull
public Integer LISNetPort = 9973;
@Schema(description = "设备温度")
@NotNull
@Min(15)
@Max(35)
public Integer temperature = 25;
}

7
src/main/java/a8k/type/appret/AppRetV1.java

@ -4,7 +4,10 @@ import a8k.type.ecode.AppCodeError;
import a8k.type.ecode.AppError;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.type.exception.AppException;
import jakarta.validation.ConstraintViolationException;
import jakarta.validation.ValidationException;
import lombok.Getter;
import org.springframework.web.method.annotation.HandlerMethodValidationException;
public class AppRetV1 {
// 错误信息
@ -36,6 +39,10 @@ public class AppRetV1 {
AppRetV1 r = new AppRetV1();
if (e instanceof AppException hexcep) {
r.ecode = hexcep.error;
} else if (e instanceof ValidationException ex) {
r.ecode = new AppCodeError(A8kEcode.CODEERROR_PARAM_OUT_OF_RANGE, ex.getLocalizedMessage());
} else if (e instanceof HandlerMethodValidationException validationE) {
r.ecode = new AppCodeError(A8kEcode.CODEERROR_PARAM_OUT_OF_RANGE, validationE.getMessage());
} else {
r.ecode = new AppCodeError(e.getMessage());
}

2
src/main/java/a8k/type/appret/AppRetV2.java

@ -36,7 +36,7 @@ public class AppRetV2<T> {
return r;
}
public static AppRetV2<?> success() {
public static AppRetV2<Void> success() {
return new AppRetV2<>();
}

4
src/main/java/a8k/type/ecode/AppCodeError.java

@ -11,5 +11,9 @@ public class AppCodeError extends AppError {
this.exmsg = exmsg;
}
public AppCodeError(A8kEcode ecode, String exmsg) {
super(ecode);
this.exmsg = exmsg;
}
}
Loading…
Cancel
Save