From 736706fb6254b43b16b285e2f40880c21c41cd57 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期五, 02 十二月 2022 07:59:54 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/model/RgvSlave.java | 24 ++--
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 224 +++++++++++++++++++++++++++++++++++--
src/main/java/com/zy/asrs/entity/WrkMast.java | 21 +++
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java | 8 +
src/main/resources/mapper/WrkMastMapper.xml | 15 ++
src/main/java/com/zy/core/MainProcess.java | 2
src/main/resources/application.yml | 28 ++++
7 files changed, 293 insertions(+), 29 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index e896efc..0000091 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -67,6 +67,13 @@
@TableField("crn_no")
private Integer crnNo;
+ /**
+ * RGV鍙�
+ */
+ @ApiModelProperty(value= "RGV")
+ @TableField("rgv_no")
+ private Integer rgvNo;
+
@ApiModelProperty(value= "")
@TableField("sheet_no")
private String sheetNo;
@@ -110,6 +117,20 @@
@TableField("source_loc_no")
private String sourceLocNo;
+ /**
+ * RGV婧愮珯
+ */
+ @ApiModelProperty(value= "RGV婧愮珯")
+ @TableField("rgv_ssta_no")
+ private Integer rgvSstaNo;
+
+ /**
+ * RGV鐩爣绔�
+ */
+ @ApiModelProperty(value= "RGV鐩爣绔�")
+ @TableField("rgv_dsta_no")
+ private Integer rgvDstaNo;
+
@ApiModelProperty(value= "")
@TableField("loc_sts")
private String locSts;
diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 6bfd8f0..c1d08a1 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -109,5 +109,11 @@
Integer selectExistInEmpty();
-
+ /**
+ * 鏌ユ壘宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓旇揣鐗╁湪RGV鍏ュ簱鎺ラ┏绔欑殑鍏ュ簱宸ヤ綔妗�,鏌ユ壘鏈�澶�2绗�
+ * @param rgvNo
+ * @param staNos
+ * @return
+ */
+ List<WrkMast> selectRgvInStep1(@Param("rgvNo")Integer rgvNo, @Param("staNos")List<Integer> staNos);
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 531405e..701cd6c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -26,17 +26,16 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
-import com.zy.core.model.CrnSlave;
-import com.zy.core.model.DevpSlave;
-import com.zy.core.model.LedSlave;
-import com.zy.core.model.Task;
+import com.zy.core.model.*;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.LedCommand;
import com.zy.core.model.protocol.CrnProtocol;
+import com.zy.core.model.protocol.RgvProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.BarcodeThread;
import com.zy.core.thread.LedThread;
+import com.zy.core.thread.RgvThread;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -46,10 +45,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -79,6 +75,8 @@
private StaDescService staDescService;
@Autowired
private BasCrnpService basCrnpService;
+ @Autowired
+ private BasRgvService basRgvService;
@Autowired
private BasDevpService basDevpService;
@Autowired
@@ -532,11 +530,6 @@
continue;
}
-// //鍫嗗灈鏈哄洖鍘熺偣浠诲姟涓�
-// if(crnThread.isBackHpFlag()){
-// continue;
-// }
-
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
if (crnProtocol.getStatusType() == CrnStatusType.IDLE
&& crnProtocol.getTaskNo() == 0
@@ -568,6 +561,53 @@
this.locToLoc(crn, crnProtocol);
// this.crnRebackHp(crnProtocol, crnThread);
+ }
+ }
+
+ /**
+ * 鍏ュ嚭搴� ===>> RGV鍏ュ嚭搴撲綔涓氫笅鍙�
+ */
+ public synchronized void rgvIoExecute() {
+ for (RgvSlave rgv : slaveProperties.getRgv()) {
+ // 鑾峰彇RGV淇℃伅
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgv.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgv.getId());
+ continue;
+ }
+
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�, 骞朵笖鏃犱换鍔°�佹棤鐗╂椂鎵嶇户缁墽琛�
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0
+ && rgvProtocol.getLoaded1() == 0 && rgvProtocol.getLoaded2() == 0
+ ) {
+ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+ if (rgvProtocol.getLastIo().equals("I")) {
+ if (basRgv.getInEnable().equals("Y")) {
+// this.rgvInStnToLoc(rgv, rgvProtocol); // 鍏ュ簱
+ rgvProtocol.setLastIo("O");
+ } else if (basRgv.getOutEnable().equals("Y")) {
+// this.locToCrnStn(rgv, crnProtocol); // 鍑哄簱
+ rgvProtocol.setLastIo("I");
+ }
+ }
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+ else if (rgvProtocol.getLastIo().equals("O")) {
+ if (basRgv.getOutEnable().equals("Y")) {
+// this.locToCrnStn(rgv, crnProtocol); // 鍑哄簱
+ rgvProtocol.setLastIo("I");
+ } else if (basRgv.getInEnable().equals("Y")) {
+// this.rgvInStnToLoc(rgv, rgvProtocol); // 鍏ュ簱
+ rgvProtocol.setLastIo("O");
+ }
+ }
+ }
}
}
@@ -1015,6 +1055,164 @@
// }
/**
+ * 鍏ュ簱 ===>> RGV鍏ュ簱绔欏埌绔�
+ */
+ public synchronized void rgvInStn(RgvSlave slave, RgvProtocol rgvProtocol) {
+ // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級,涓旇揣鐗╁湪RGV鍏ュ簱鎺ラ┏绔欑殑鍏ュ簱宸ヤ綔妗�,鏌ユ壘鏈�澶�2绗�
+ List<Integer> staNos = new ArrayList<>();
+ for (RgvSlave.RgvStn rgvStn : slave.getRgvInStn()) {
+ staNos.add(rgvStn.getStaNo());
+ }
+ List<WrkMast> wrkMasts1 = new ArrayList<>();
+ List<WrkMast> wrkMasts = wrkMastMapper.selectRgvInStep1(slave.getId(), staNos);
+ for(WrkMast wrkMast : wrkMasts){
+ Integer plcId = 0;
+ for (RgvSlave.RgvStn rgvStn : slave.getRgvInStn()) {
+ if(rgvStn.getStaNo() == wrkMast.getRgvSstaNo()){
+ plcId = rgvStn.getDevpPlcId();
+ break;
+ }
+ }
+
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, plcId);
+ StaProtocol staProtocol = devpThread.getStation().get(wrkMast.getRgvSstaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ }
+
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
+// for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
+// boolean flag = false;
+// // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
+// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
+// StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
+// if (staProtocol == null) {
+// continue;
+// } else {
+// staProtocol = staProtocol.clone();
+// }
+// // 鏌ヨ绔欑偣璇︾粏淇℃伅
+// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
+// if (staDetl == null) {
+// log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+// continue;
+// }
+// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
+// && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
+// flag = true;
+// }
+// if (!flag) {
+// continue;
+// }
+// // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
+// WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
+// if (null == wrkMast) {
+//// log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
+// continue;
+// }
+// // 鑾峰彇搴撲綅淇℃伅
+// LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+// if (locMast == null) {
+// log.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+// continue;
+// }
+// if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
+// log.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+// continue;
+// }
+//
+// // 鍫嗗灈鏈烘帶鍒惰繃婊�
+// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+// continue;
+// }
+//
+// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+// if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+// continue;
+// }
+//
+// // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+// if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
+// String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
+// LocMast shallowLoc = locMastService.selectById(shallowLocNo);
+// // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
+// if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// if (null == waitWrkMast) {
+// log.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+// } else {
+// waitWrkMast.setIoPri(15D);
+// waitWrkMast.setModiTime(new Date());
+// if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+// log.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+// }
+// continue;
+// }
+//
+// } else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
+// // 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
+// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
+// wrkMast.setUpdMk("Y");
+// wrkMast.setIoPri(14D);
+// wrkMastMapper.updateById(wrkMast);
+// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+// moveLocForDeepLoc(slave, shallowLoc);
+// // 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
+//// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
+// }
+// continue;
+// } else if (shallowLoc.getLocSts().equals("Q")) {
+// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+// if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
+// continue;
+// }
+// }
+// }
+//
+// // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+// CrnCommand crnCommand = new CrnCommand();
+// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
+// crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+// crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
+// crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
+// crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
+// crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
+// crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
+// crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+// if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+// log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+// } else {
+//
+//// long startTime = System.currentTimeMillis();
+//// while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
+////
+//// if (true) {
+//// break;
+//// }
+////
+//// try{
+//// Thread.sleep(500);
+//// }catch(Exception ignore){}
+//// }
+//
+// // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+// Date now = new Date();
+// wrkMast.setWrkSts(3L);
+// wrkMast.setCrnStrTime(now);
+// wrkMast.setModiTime(now);
+// if (wrkMastMapper.updateById(wrkMast) == 0) {
+// log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+// }
+// }
+// }
+ }
+
+ /**
* 搴撲綅绉昏浆
*/
public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol) {
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index bd5826d..e62ae2a 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -56,6 +56,8 @@
mainService.crnStnToOutStn();
// 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂
mainService.crnIoExecute();
+ // 鍏ュ嚭搴� ===>> RGV鍏ュ嚭搴撲綔涓氫笅鍙�
+ mainService.rgvIoExecute();
// 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
// mainService.crnIoWrkMast();
// 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
diff --git a/src/main/java/com/zy/core/model/RgvSlave.java b/src/main/java/com/zy/core/model/RgvSlave.java
index 33d9e14..6f182af 100644
--- a/src/main/java/com/zy/core/model/RgvSlave.java
+++ b/src/main/java/com/zy/core/model/RgvSlave.java
@@ -23,28 +23,28 @@
private Boolean demo;
// 鍫嗗灈鏈哄叆搴撶珯鐐�
- private List<CrnStn> rgvInStn = new ArrayList<>();
+ private List<RgvStn> rgvInStn = new ArrayList<>();
// 鍫嗗灈鏈哄嚭搴撶珯鐐�
- private List<CrnStn> rgvOutStn = new ArrayList<>();
+ private List<RgvStn> rgvOutStn = new ArrayList<>();
@Data
- public static class CrnStn {
+ public static class RgvStn {
// 杈撻�佺嚎plc缂栧彿
private Integer devpPlcId;
- // 鍫嗗灈鏈虹珯鐐圭紪鍙�
+ // RGV绔欑偣缂栧彿
private Integer staNo;
- // 鎺�
- private Integer row;
-
- // 鍒�
- private Integer bay;
-
- // 灞�
- private Integer lev;
+// // 鎺�
+// private Integer row;
+//
+// // 鍒�
+// private Integer bay;
+//
+// // 灞�
+// private Integer lev;
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 1e7a087..d2130f1 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,7 +8,7 @@
name: @pom.build.finalName@
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://10.10.10.100:1433;databasename=stasrs
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=xjhsasrs
username: sa
password: sa@123
mvc:
@@ -21,8 +21,10 @@
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
-# global-config:
-# field-strategy: 0
+ global-config:
+ field-strategy: 0
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
logging:
path: /stock/out/@pom.build.finalName@/logs
@@ -148,6 +150,18 @@
port: 502
rack: 0
slot: 0
+ rgvInStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 101
+ rgvInStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 102
+ rgvOutStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 110
+ rgvOutStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 112
# RGV绌挎杞�2
rgv[1]:
id: 2
@@ -155,6 +169,14 @@
port: 502
rack: 0
slot: 0
+ rgvInStn[0]:
+ staNo: 101
+ rgvInStn[1]:
+ staNo: 102
+ rgvOutStn[0]:
+ staNo: 110
+ rgvOutStn[1]:
+ staNo: 112
# 杈撻�佺嚎
devp[0]:
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 8e22381..2715f0c 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -12,6 +12,7 @@
<result column="wrk_sts" property="wrkSts" />
<result column="io_type" property="ioType" />
<result column="crn_no" property="crnNo" />
+ <result column="rgv_no" property="rgvNo" />
<result column="sheet_no" property="sheetNo" />
<result column="io_pri" property="ioPri" />
<result column="wrk_date" property="wrkDate" />
@@ -19,6 +20,8 @@
<result column="sta_no" property="staNo" />
<result column="source_sta_no" property="sourceStaNo" />
<result column="source_loc_no" property="sourceLocNo" />
+ <result column="rgv_ssta_no" property="rgvSstaNo" />
+ <result column="rgv_dsta_no" property="rgvDstaNo" />
<result column="loc_sts" property="locSts" />
<result column="picking" property="picking" />
<result column="link_mis" property="linkMis" />
@@ -185,4 +188,16 @@
<select id="selectExistInEmpty" resultType="java.lang.Integer">
SELECT COUNT(*) FROM dbo.asr_wrk_mast Where io_type = 10 and wrk_sts in (1,2,3)
</select>
+
+ <!-- RGV璋冨害鍏ュ嚭搴撶浉鍏� -->
+ <select id="selectRgvInStep1" resultMap="BaseResultMap">
+ select * from dbo.asr_wrk_mast
+ where rgv_no=#{rgvNo} and rgv_ssta_no in
+ <foreach item="item" collection="staNos" index="index" separator="," open="(" close=")">
+ #{item}
+ </foreach>
+ and wrk_sts=2 and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57)
+ order by io_pri desc,io_time,wrk_no asc
+ </select>
+
</mapper>
--
Gitblit v1.9.1