diff --git a/acs/nladmin-system/pom.xml b/acs/nladmin-system/pom.xml
index 207ff62..e597909 100644
--- a/acs/nladmin-system/pom.xml
+++ b/acs/nladmin-system/pom.xml
@@ -46,7 +46,7 @@
2.8.0
-
+
org.openscada.utgard
org.openscada.opc.lib
diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java
index a49dd33..a8d4936 100644
--- a/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/service/impl/GenCodeServiceImpl.java
@@ -14,6 +14,8 @@ import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.WqlUtil;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
@@ -96,78 +98,79 @@ public class GenCodeServiceImpl implements GenCodeService {
}
@Override
- public synchronized String codeDemo(Map form) {
+ @Transactional(propagation=Propagation.REQUIRES_NEW)
+ public String codeDemo(Map form) {
String code = (String) form.get("code");
- String id = this.queryIdByCode(code);
- //如果flag=1就执行更新数据库的操作
- String flag = (String) form.get("flag");
- WQLObject wo = WQLObject.getWQLObject("sys_code_rule_detail");
- JSONArray ja = wo.query("code_rule_id = '" + id + "'", " sort_num").getResultJSONArray(0);
- String demo = "";
- boolean is_same = true;
- for (int i = 0; i < ja.size(); i++) {
- String value = "";
- JSONObject jo = ja.getJSONObject(i);
- //固定直接取值
- if (jo.getString("type").equals("01")) {
- value = jo.getString("init_value");
- }
- //日期判断数据库的值与当前值是否相同来决定顺序的值
- if (jo.getString("type").equals("02")) {
- String current_value = jo.getString("current_value");
- Date date = DateUtil.date();
- String format = jo.getString("format");
- String now_date = DateUtil.format(date, format);
- if (!now_date.equals(current_value)) {
- is_same = false;
+ String id = this.queryIdByCode(code);
+ //如果flag=1就执行更新数据库的操作
+ String flag = (String) form.get("flag");
+ WQLObject wo = WQLObject.getWQLObject("sys_code_rule_detail");
+ JSONArray ja = wo.query("code_rule_id = '" + id + "'", " sort_num").getResultJSONArray(0);
+ String demo = "";
+ boolean is_same = true;
+ for (int i = 0; i < ja.size(); i++) {
+ String value = "";
+ JSONObject jo = ja.getJSONObject(i);
+ //固定直接取值
+ if (jo.getString("type").equals("01")) {
+ value = jo.getString("init_value");
}
- if (flag.equals("1")) {
- jo.put("init_value", now_date);
- jo.put("current_value", now_date);
+ //日期判断数据库的值与当前值是否相同来决定顺序的值
+ if (jo.getString("type").equals("02")) {
+ String current_value = jo.getString("current_value");
+ Date date = DateUtil.date();
+ String format = jo.getString("format");
+ String now_date = DateUtil.format(date, format);
+ if (!now_date.equals(current_value)) {
+ is_same = false;
+ }
+ if (flag.equals("1")) {
+ jo.put("init_value", now_date);
+ jo.put("current_value", now_date);
+ }
+ value = now_date;
}
- value = now_date;
- }
- //顺序的值:如果日期一样就+步长,等于最大值就归为初始值;日期不一样就归为初始值
- if (jo.getString("type").equals("03")) {
- String num_value = "";
- int step = jo.getInteger("step");
- Long max_value = jo.getLong("max_value");
- if (!is_same || (jo.getLongValue("current_value") + step > max_value)) {
- num_value = jo.getString("init_value");
- } else {
- num_value = (jo.getInteger("current_value") + step) + "";
- }
- int size = num_value.length();
- int length = jo.getInteger("length");
- String fillchar = jo.getString("fillchar");
- for (int m = 0; m < (length - size); m++) {
- value += fillchar;
- }
- value += num_value;
- if (flag.equals("1")) {
- if (!is_same) {
- int init_value = jo.getInteger("init_value");
- if (StrUtil.isEmpty((init_value + ""))) {
- throw new BadRequestException("请完善编码数值的初始值!");
- }
- jo.put("current_value", init_value + "");
+ //顺序的值:如果日期一样就+步长,等于最大值就归为初始值;日期不一样就归为初始值
+ if (jo.getString("type").equals("03")) {
+ String num_value = "";
+ int step = jo.getInteger("step");
+ Long max_value = jo.getLong("max_value");
+ if (!is_same || (jo.getLongValue("current_value") + step > max_value)) {
+ num_value = jo.getString("init_value");
} else {
- int num_curr = jo.getInteger("current_value");
- if (num_curr >= max_value) {
- num_curr = jo.getInteger("init_value");
- jo.put("current_value", num_curr + "");
- }else{
- jo.put("current_value", (num_curr + step) + "");
+ num_value = (jo.getInteger("current_value") + step) + "";
+ }
+ int size = num_value.length();
+ int length = jo.getInteger("length");
+ String fillchar = jo.getString("fillchar");
+ for (int m = 0; m < (length - size); m++) {
+ value += fillchar;
+ }
+ value += num_value;
+ if (flag.equals("1")) {
+ if (!is_same) {
+ int init_value = jo.getInteger("init_value");
+ if (StrUtil.isEmpty((init_value + ""))) {
+ throw new BadRequestException("请完善编码数值的初始值!");
+ }
+ jo.put("current_value", init_value + "");
+ } else {
+ int num_curr = jo.getInteger("current_value");
+ if (num_curr >= max_value) {
+ num_curr = jo.getInteger("init_value");
+ jo.put("current_value", num_curr + "");
+ }else{
+ jo.put("current_value", (num_curr + step) + "");
+ }
}
}
}
+ demo += value;
+ if (flag.equals("1")) {
+ wo.update(jo,"id = '"+jo.getString("id")+"'");
+ }
}
- demo += value;
- if (flag.equals("1")) {
- wo.update(jo,"id = '"+jo.getString("id")+"'");
- }
- }
- return demo;
+ return demo;
}
@Override
diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java b/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java
index 1c12c85..d0863a2 100644
--- a/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java
+++ b/lms/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java
@@ -8,11 +8,14 @@ import java.util.HashMap;
public class CodeUtil {
public static String getNewCode(String ruleCode){
- String flag = "1";
- HashMap map = new HashMap<>();
- map.put("flag",flag);
- map.put("code",ruleCode);
- return SpringContextHolder.getBean(GenCodeService.class).codeDemo(map);
+ synchronized (ruleCode){
+ String flag = "1";
+ HashMap map = new HashMap<>();
+ map.put("flag",flag);
+ map.put("code",ruleCode);
+ return SpringContextHolder.getBean(GenCodeService.class).codeDemo(map);
+ }
+
}
}
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java
index e27edd4..17a0f34 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java
@@ -57,7 +57,10 @@ public class AcsToWmsController {
@Log("二次申请任务")
@ApiOperation("二次申请任务")
@SaIgnore
- public ResponseEntity