From a68f64232c3f3ad22d27f9b5c89fe761c8a56280 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 28 四月 2026 13:16:13 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/service/CommonService.java | 425 +++++++++++++++++++++++++++++++++++-----------------
1 files changed, 283 insertions(+), 142 deletions(-)
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 3131f1a..642f3c5 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -9,6 +9,7 @@
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.result.FindLocNoAttributeVo;
import com.zy.asrs.entity.result.KeyValueVo;
+import com.zy.asrs.mapper.LocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.asrs.utils.VersionUtils;
@@ -53,6 +54,8 @@
private LocMastService locMastService;
@Autowired
private LocDetlService locDetlService;
+ @Autowired
+ private LocDetlMapper locDetlMapper;
@Autowired
private SlaveProperties slaveProperties;
@Autowired
@@ -134,9 +137,9 @@
*/
switch (rowLastnoType.getType()) {
case 1:
- return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0);
+ return getLocNoRunV3(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0);
case 2:
- return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0);
+ return getLocNoRunV3(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, 0, locTypeDto, 0);
case 3:
log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�", sourceStaNo);
break;
@@ -155,6 +158,32 @@
return null;
}
+
+ @Transactional
+ public StartupDto getLocNoV2(Integer staDescId, Integer sourceStaNo, WrkMast wrkMast, LocTypeDto locTypeDto) {
+ try {
+ Integer whsType = 1;
+ RowLastno rowLastno = rowLastnoService.selectById(whsType);
+ RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
+ /**
+ * 搴撳瀷 1: 鏍囧噯鍫嗗灈鏈哄簱 2: 鍚屽贩閬撴壘搴撲綅
+ */
+ switch (rowLastnoType.getType()) {
+ case 1:
+ return getLocNoRunV2(whsType, staDescId, sourceStaNo, wrkMast, 0, locTypeDto, 0);
+ case 2:
+ return getLocNoRunV2(whsType, staDescId, sourceStaNo, wrkMast, 0, locTypeDto, 0);
+ default:
+ log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�", sourceStaNo);
+ break;
+ }
+
+ } catch (Exception e) {
+ log.error("绔欑偣={} 鏈煡璇㈠埌瀵瑰簲鐨勮鍒�", sourceStaNo);
+ }
+ return null;
+ }
+
/**
* 妫�绱㈠簱浣嶅彿
*/
@@ -162,8 +191,8 @@
public StartupDto getLocNo1(Integer crnNo) {
LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
.eq("crn_no", crnNo)
- .eq("loc_sts","O")
- .eq("whs_type",1)
+ .eq("loc_sts", "O")
+ .eq("whs_type", 1)
.orderBy("lev1,bay1"));
if (Cools.isEmpty(locMast)) {
return null;
@@ -196,161 +225,53 @@
*/
@Transactional
public StartupDto getLocNoRun(Integer whsType, Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
+ StartupDto startupDto = new StartupDto();
// 鍒濆鍖栧弬鏁�
int crnNo = 0; //鍫嗗灈鏈哄彿
- int nearRow = 0; //鏈�娴呭簱浣嶆帓
- int curRow = 0; //鏈�娣卞簱浣嶆帓
- int rowCount = 0; //杞杞
LocMast locMast = null; // 鐩爣搴撲綅
-
- StartupDto startupDto = new StartupDto();
- RowLastno rowLastno = rowLastnoService.selectById(whsType);
- if (Cools.isEmpty(rowLastno)) {
- throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===>搴撲綅瑙勫垯鏈煡");
- }
- RowLastnoType rowLastnoType = rowLastnoTypeService.selectById(rowLastno.getTypeId());
- if (Cools.isEmpty(rowLastnoType)) {
- throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===銆嬪簱浣嶈鍒欑被鍨嬫湭鐭�");
- }
- int sRow = rowLastno.getsRow();
- int eRow = rowLastno.geteRow();
- int crnNumber = rowLastno.getCrnQty();
- int sCrnNo= rowLastno.getsCrnNo()!=null?rowLastno.getsCrnNo():1;
-
- // ===============>>>> 寮�濮嬫墽琛�
- curRow = rowLastno.getCurrentRow();
-
- if (!Cools.isEmpty(moveCrnNo) && moveCrnNo != 0) {
- crnNumber = moveCrnNo;
- if (times == 0) {
- curRow = moveCrnNo * 4 - 1;
- } else {
- curRow = moveCrnNo * 4 - 2;
+ RowLastno whsType1 = rowLastnoService.selectOne(new EntityWrapper<RowLastno>().eq("whs_type", 2));
+ crnNo = whsType1.getCrnQty();
+ if (basCrnpService.checkSiteError(crnNo, true)) {
+ BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("crn_no", basCrnp.getCrnNo())
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", 1)
+ .orderBy("lev1,bay1"));
+ if (!Cools.isEmpty(locMasts)) {
+ if (locMasts.size() > 15) {
+ locMast = locMasts.get(0);
+ }
}
}
- log.info("\ncurRow:\n{}",curRow);
- //姝ょ▼搴忕敤浜庝紭鍖栧爢鍨涙満寮傚父鏃剁殑杩愯鏃堕棿
- for (int i = times; i < crnNumber * 2; i++) {
- log.info("\ni:\n{}",i);
- log.info("\ntimes:\n{}",times);
- log.info("\ncrnNumber:\n{}",crnNumber);
- int[] locNecessaryParameters = Utils.LocNecessaryParameters(rowLastno, curRow, crnNumber);
- crnNo = locNecessaryParameters[2];
- log.info("\ncrnNo:\n{}",crnNo);
- if (basCrnpService.checkSiteError(crnNo, true)) {
- nearRow = locNecessaryParameters[3];
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
- .eq("row1", nearRow)
- .eq("loc_sts", "O")
- .eq("frozen", 0)
- .eq("deleted", 0)
- .eq("whs_type", rowLastnoType.getType().longValue()));
-// log.info("\nlocMasts:\n{}",locMasts);
- int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>()
- .eq("crn_no", crnNo).le("io_type", 100));
- if (locMasts.size() - crnCountO <= 2) {
- if(curRow+2==7){
-
- }
- log.error(crnNo + "鍙峰爢鍨涙満娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
- nearRow = 0;
- times++;
- continue;
- }
- break;
- } else {
-// curRow = crnNo +2;// crnNo=3 curRow=5
-// if (curRow == 9||curRow==10) {
-// curRow = 1;
-// }
-
- int nextCrnNo=crnNo + 1;//涓嬩竴涓爢鍨涙満鍙�
- if(nextCrnNo> sCrnNo+crnNumber-1){//涓嬩竴鍙板ぇ浜�
- nextCrnNo=sCrnNo;
- }
- if(nextCrnNo==sCrnNo){
- curRow=0;
- }else {
- curRow = sRow + (nextCrnNo - sCrnNo) * 4;
- }
- times++;
- }
+ int crnNo1 = crnNo + 1;
+ if (crnNo1> whsType1.geteCrnNo()) {
+ crnNo1 = whsType1.getsCrnNo();
}
- if (nearRow == 0) {
- throw new CoolException("鏃犲彲鐢ㄥ爢鍨涙満");
- }
+ whsType1.setCrnQty(crnNo1);
+ rowLastnoService.updateById(whsType1);
Wrapper<StaDesc> wrapper = null;
StaDesc staDesc = null;
- BasDevp staNo = null;
-
- if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
- int selectedCrnNo=crnNo;
- // 鑾峰彇鐩爣绔�
- wrapper = new EntityWrapper<StaDesc>()
- .eq("type_no", staDescId)
- .eq("stn_no", sourceStaNo)
- .eq("crn_no", crnNo);
- staDesc = staDescService.selectOne(wrapper);
- if (Cools.isEmpty(staDesc)) {
- log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
-// throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
- crnNo = 0;
- } else {
- staNo = basDevpService.selectById(staDesc.getCrnStn());
- if (!staNo.getAutoing().equals("Y")) {
- log.error("鐩爣绔�" + staDesc.getCrnStn() + "涓嶅彲鐢�");
-// throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
- crnNo = 0;
- }
- startupDto.setStaNo(staNo.getDevNo());
- }
- // 鏇存柊搴撲綅鎺掑彿
- if (Cools.isEmpty(locMast)) {
- int crnNoForRotation=crnNo!=0?crnNo:selectedCrnNo;
- int nextCrnNoAfterSuccess=(crnNoForRotation>=sCrnNo+crnNumber-1?sCrnNo:crnNoForRotation+1);
- int curRowToSave = (nextCrnNoAfterSuccess==sCrnNo)?0:sRow+(nextCrnNoAfterSuccess-sCrnNo)*4;
-
- rowLastno.setCurrentRow(curRowToSave);
- log.info("\ncurRowToSave:\n{}",curRowToSave);
- rowLastnoService.updateById(rowLastno);
- }
+ // 鑾峰彇鐩爣绔�
+ wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", staDescId)
+ .eq("stn_no", sourceStaNo)
+ .eq("crn_no", crnNo);
+ staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ log.error("鍏ュ簱璺緞涓嶅瓨鍦╰ype_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
}
-
- // 寮�濮嬫煡鎵惧簱浣� ==============================>>
-
- // 1.鎸夎鍒欐煡鎵惧簱浣�
- if (Cools.isEmpty(locMast) && crnNo != 0) {
- List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", crnNo).eq("whs_type", rowLastnoType.getType().longValue()).orderBy("lev1").orderBy("bay1"));
- if (!locMasts.isEmpty()) {
- for (LocMast locMast1 : locMasts) {
- if (basCrnpService.checkSiteError(crnNo, true)) {
- locMast = locMast1;
- break;
- }
- }
-
- }
- }
-
- if (!Cools.isEmpty(locMast) && !basCrnpService.checkSiteError(crnNo, true)) {
- locMast = null;
- }
-
// 閫掑綊鏌ヨ
if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
// 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
- if (times < rowCount * 2) {
+ if (times < 5) {
times = times + 1;
return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, moveCrnNo, locTypeDto, times);
}
-// // 2.搴撲綅褰撳墠鎵�灞炲昂瀵告棤绌哄簱浣嶆椂锛岃皟鏁村昂瀵稿弬鏁帮紝鍚戜笂鍏煎妫�绱㈠簱浣�
-// if (locTypeDto.getLocType1() < 2) {
-// int i = locTypeDto.getLocType1() + 1;
-// locTypeDto.setLocType1((short)i);
-// return getLocNo(1, staDescId, sourceStaNo, matnr,batch,grade, locTypeDto, 0);
-// }
log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
throw new CoolException("娌℃湁绌哄簱浣�");
}
@@ -363,6 +284,226 @@
startupDto.setCrnNo(crnNo);
startupDto.setSourceStaNo(sourceStaNo);
startupDto.setLocNo(locNo);
+ startupDto.setStaNo(staDesc.getCrnStn());
+ return startupDto;
+ }
+
+ @Transactional
+ public StartupDto getLocNoRunV3(Integer whsType, Integer staDescId, Integer sourceStaNo, FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
+ StartupDto startupDto = new StartupDto();
+
+ // 鍒濆鍖栧弬鏁�
+ int crnNo = 0; //鍫嗗灈鏈哄彿
+ LocMast locMast = null; // 鐩爣搴撲綅
+ RowLastno whsType1 = rowLastnoService.selectOne(new EntityWrapper<RowLastno>().eq("whs_type", 2));
+ crnNo = whsType1.getCrnQty();
+ String matnr = findLocNoAttributeVo == null ? null : findLocNoAttributeVo.getMatnr();
+ Integer chosenCrnNo = null;
+ Integer chosenCount = null;
+ LocMast chosenLocMast = null;
+ int sCrnNo = whsType1.getsCrnNo();
+ int eCrnNo = whsType1.geteCrnNo();
+ List<Integer> candidates = new ArrayList<>();
+ for (int i = crnNo; i <= eCrnNo; i++) {
+ candidates.add(i);
+ }
+ for (int i = sCrnNo; i < crnNo; i++) {
+ candidates.add(i);
+ }
+ if(staDescId != 10){
+ for (Integer candidate : candidates) {
+ if (!basCrnpService.checkSiteError(candidate, true)) {
+ continue;
+ }
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+ .eq("type_no", staDescId)
+ .eq("stn_no", sourceStaNo)
+ .eq("crn_no", candidate));
+ if (Cools.isEmpty(staDesc)) {
+ continue;
+ }
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("crn_no", candidate)
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", 1)
+ .orderBy("lev1,bay1"));
+ if (Cools.isEmpty(locMasts) || locMasts.size() <= 10) {
+ continue;
+ }
+ Integer count = null;
+ if (!Cools.isEmpty(matnr)) {
+ count = locDetlMapper.countMatnrByCrnNo(candidate, matnr);
+ }
+ if (count == null) {
+ count = 0;
+ }
+ if (chosenCrnNo == null || count < chosenCount) {
+ chosenCrnNo = candidate;
+ chosenCount = count;
+ chosenLocMast = locMasts.get(0);
+ }
+ }
+ }
+
+ if (chosenCrnNo != null) {
+ crnNo = chosenCrnNo;
+ locMast = chosenLocMast;
+ } else
+// else if (basCrnpService.checkSiteError(crnNo, true))
+ {//鑻ヨ疆璇㈡壘涓嶅埌鏁伴噺鏈�灏戠殑宸烽亾锛岄��鍥炲師鏉ユ柟娉�
+ BasCrnp basCrnp = basCrnpService.selectById(crnNo);
+ List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("crn_no", basCrnp.getCrnNo())
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", 1)
+ .orderBy("lev1,bay1"));
+ if (!Cools.isEmpty(locMasts)) {
+ if (locMasts.size() > 10) {
+ locMast = locMasts.get(0);
+ }
+ }
+ }
+ int crnNo1 = crnNo + 1;
+ if (crnNo1> whsType1.geteCrnNo()) {
+ crnNo1 = whsType1.getsCrnNo();
+ }
+ whsType1.setCrnQty(crnNo1);
+ rowLastnoService.updateById(whsType1);
+
+ Wrapper<StaDesc> wrapper = null;
+ StaDesc staDesc = null;
+ // 鑾峰彇鐩爣绔�
+ wrapper = new EntityWrapper<StaDesc>()
+ .eq("type_no", staDescId)
+ .eq("stn_no", sourceStaNo)
+ .eq("crn_no", crnNo);
+ staDesc = staDescService.selectOne(wrapper);
+ if (Cools.isEmpty(staDesc)) {
+ log.error("鍏ュ簱璺緞涓嶅瓨鍦╰ype_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
+ }
+ // 閫掑綊鏌ヨ
+ if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
+ // 褰撳墠宸烽亾鏃犵┖搴撲綅鏃讹紝閫掑綊璋冩暣鑷充笅涓�宸烽亾锛屾绱㈠叏閮ㄥ贩閬撴棤鏋滃悗锛岃烦鍑洪�掑綊
+ if (times < 5) {
+ times = times + 1;
+ return getLocNoRun(whsType, staDescId, sourceStaNo, findLocNoAttributeVo, moveCrnNo, locTypeDto, times);
+ }
+ log.error("绯荤粺娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
+ throw new CoolException("娌℃湁绌哄簱浣�");
+ }
+ String locNo = locMast.getLocNo();
+
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = getWorkNo(0);
+ // 杩斿洖dto
+ startupDto.setWorkNo(workNo);
+ startupDto.setCrnNo(crnNo);
+ startupDto.setSourceStaNo(sourceStaNo);
+ startupDto.setLocNo(locNo);
+ startupDto.setStaNo(staDesc.getCrnStn());
+ return startupDto;
+ }
+
+ /**
+ * 褰撳洖婧愬簱浣嶄笉鍦ㄦ湰宸烽亾鏃讹紝閲嶆柊妫�绱㈠贩閬撴牴鎹�1锛�2宸烽亾涔嬮棿鍒嗛厤锛�3锛�4宸烽亾鍏ㄥ眬鍒嗛厤瑙勫垯
+ */
+ @Transactional
+ public StartupDto getLocNoRunV2(Integer whsType, Integer staDescId, Integer sourceStaNo, WrkMast wrkMast, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
+ StartupDto startupDto = new StartupDto();
+ List<WrkDetl> wrkDetl = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ WrkDetl detl = null;
+ if(!wrkDetl.isEmpty()){
+ detl = wrkDetl.get(0);
+ }
+ String matnr = detl == null ? null : detl.getMatnr();
+ Integer sourceCrnNo = null;
+ if (moveCrnNo != null && moveCrnNo != 0) {
+ sourceCrnNo = moveCrnNo;
+ } else if (wrkMast != null && !Cools.isEmpty(wrkMast.getSourceLocNo())) {
+ LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
+ if (!Cools.isEmpty(sourceLoc) && sourceLoc.getCrnNo() != null) {
+ sourceCrnNo = sourceLoc.getCrnNo();
+ }
+ } else if (wrkMast != null && wrkMast.getCrnNo() != null) {
+ sourceCrnNo = wrkMast.getCrnNo();
+ }
+ int[] candidates = sourceCrnNo != null && sourceCrnNo < 3 ? new int[]{1, 2} : new int[]{1, 2, 3, 4};
+ Integer chosenCrnNo = null;
+ Integer chosenCount = null;
+ for (int candidate : candidates) {
+ if (sourceCrnNo != null && candidate == sourceCrnNo) {
+ continue;
+ }
+ //鍒ゆ柇璇ュ贩閬撴槸鍚﹀瓨鍦ㄧ┖浣�
+ LocMast candidateLoc = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("crn_no", candidate)
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", 1)
+ .orderBy("lev1,bay1"));
+ if (Cools.isEmpty(candidateLoc)) {
+ continue;
+ }
+ Integer count = null;
+ if (!Cools.isEmpty(matnr)) {
+ count = locDetlMapper.countMatnrByCrnNo(candidate, matnr); //璁$畻姣忎釜宸烽亾鐨勫搴旂墿鏂欏崰澶氬皯搴撲綅
+ }
+ if (count == null) {
+ count = 0;
+ }
+ if (chosenCrnNo == null || count < chosenCount) {
+ chosenCrnNo = candidate;
+ chosenCount = count;
+ }
+ }
+ LocMast locMast = null;
+ if (chosenCrnNo != null) {
+ locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("crn_no", chosenCrnNo)
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", 1)
+ .orderBy("lev1,bay1"));
+ }
+ if (Cools.isEmpty(locMast)) {
+ List<LocMast> anyLocs = locMastService.selectList(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "O")
+ .eq("frozen", 0)
+ .eq("deleted", 0)
+ .eq("whs_type", 1)
+ .orderBy("lev1,bay1"));
+ if (!Cools.isEmpty(anyLocs)) {
+ for (LocMast anyLoc : anyLocs) {
+ if (anyLoc == null || anyLoc.getCrnNo() == null) {
+ continue;
+ }
+ if (sourceCrnNo != null && sourceCrnNo.equals(anyLoc.getCrnNo())) {
+ continue;
+ }
+ if (!basCrnpService.checkSiteError(anyLoc.getCrnNo(), true)) {
+ continue;
+ }
+ chosenCrnNo = anyLoc.getCrnNo();
+ locMast = anyLoc;
+ break;
+ }
+ }
+ }
+
+ if (Cools.isEmpty(locMast)) {
+ throw new CoolException("娌℃湁绌哄簱浣�");
+ }
+ String locNo = locMast.getLocNo();
+ int workNo = getWorkNo(0);
+ startupDto.setWorkNo(workNo);
+ startupDto.setCrnNo(chosenCrnNo);
+ startupDto.setLocNo(locNo);
return startupDto;
}
--
Gitblit v1.9.1