From 97fd38f691e779bd2c9f4f7e400d0457391522ea Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 02 一月 2021 10:46:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 4 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 7 src/main/resources/mapper/LocMastMapper.xml | 9 src/main/webapp/views/console.html | 172 ++++++++-------- src/main/java/com/zy/common/model/LocTypeDto.java | 52 +++++ src/main/java/com/zy/core/enums/CrnModeType.java | 9 src/main/java/com/zy/core/properties/SlaveProperties.java | 6 src/main/java/com/zy/core/model/protocol/StaProtocol.java | 14 + src/main/java/com/zy/asrs/controller/ConsoleController.java | 1 src/main/java/com/zy/asrs/utils/Utils.java | 140 +++++++++++++ src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 2 src/main/webapp/static/css/console.css | 4 src/main/java/com/zy/asrs/service/LocMastService.java | 2 src/main/java/com/zy/common/service/CommonService.java | 132 +++++++++++-- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 9 src/main/resources/application.yml | 6 16 files changed, 436 insertions(+), 133 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java index ca5b3cb..4349ee5 100644 --- a/src/main/java/com/zy/asrs/controller/ConsoleController.java +++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java @@ -100,7 +100,6 @@ vo.setSiteId(String.valueOf(entry.getKey())); // 绔欑偣缂栧彿 vo.setWorkNo(staProtocol.getWorkNo()); // 宸ヤ綔鍙� vo.setSiteStatus(SiteStatusType.process(staProtocol)); // 鐘舵�� - vo.setNearbySta(String.valueOf(staProtocol.getPosition())); // 鍙拌溅浣嶇疆 vos.add(vo); } return R.ok().add(vos); diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java index fb6ed06..c7e3491 100644 --- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java @@ -13,7 +13,7 @@ @Repository public interface LocMastMapper extends BaseMapper<LocMast> { - LocMast queryFreeLocMast(@Param("row") Integer row); + LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1); @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}") List<String> queryGroupEmptyStock(Integer crnNo); diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java index 29dff9a..c1e1346 100644 --- a/src/main/java/com/zy/asrs/service/LocMastService.java +++ b/src/main/java/com/zy/asrs/service/LocMastService.java @@ -10,7 +10,7 @@ /** * 妫�绱㈠彲鐢ㄥ簱浣� */ - LocMast queryFreeLocMast(Integer row); + LocMast queryFreeLocMast(Integer row, Short locType1); /** * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅 diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java index 7a1e77c..6e39d53 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java @@ -13,8 +13,8 @@ public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService { @Override - public LocMast queryFreeLocMast(Integer row) { - return this.baseMapper.queryFreeLocMast(row); + public LocMast queryFreeLocMast(Integer row, Short locType1) { + return this.baseMapper.queryFreeLocMast(row, locType1); } @Override 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 79b66f7..bbcdbc3 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -12,6 +12,7 @@ import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.VersionUtils; +import com.zy.common.model.LocTypeDto; import com.zy.common.model.MatDto; import com.zy.common.model.StartupDto; import com.zy.common.service.CommonService; @@ -129,8 +130,9 @@ try { // 妫�绱㈠簱浣� + LocTypeDto locTypeDto = new LocTypeDto(staProtocol); List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList()); - StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos); + StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos, locTypeDto); // 宸ヤ綔鍙� int workNo = startupDto.getWorkNo(); // 鎻掑叆宸ヤ綔鏄庣粏妗� @@ -848,7 +850,8 @@ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) { // 妫�绱㈠簱浣� - StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null); + LocTypeDto locTypeDto = new LocTypeDto(staProtocol); + StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null, locTypeDto); // 宸ヤ綔鍙� int workNo = startupDto.getWorkNo(); diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index 31ebd6a..36a0324 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -1,9 +1,12 @@ package com.zy.asrs.utils; import com.core.common.Arith; +import com.core.common.Cools; +import com.zy.core.properties.SlaveProperties; -import java.math.BigDecimal; import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; /** * Created by vincent on 2020/8/27 @@ -33,5 +36,140 @@ } } + /** + * 鍒ゆ柇鏄惁涓烘繁搴撲綅 + */ + public static boolean isDeepLoc(SlaveProperties slaveProperties, String locNo){ + if (slaveProperties.isDoubleDeep()) { + int row = getRow(locNo); + return slaveProperties.getDoubleLocs().contains(row); + } else { + return false; + } + } + /** + * 鍒ゆ柇鏄惁涓烘繁搴撲綅 + */ + public static boolean isDeepLoc(SlaveProperties slaveProperties, Integer row){ + if (slaveProperties.isDoubleDeep()) { + return slaveProperties.getDoubleLocs().contains(row); + } else { + return false; + } + } + + /** + * 鍒ゆ柇鏄惁涓烘祬搴撲綅 + */ + public static boolean isShallowLoc(SlaveProperties slaveProperties, String locNo){ + if (slaveProperties.isDoubleDeep()) { + int row = getRow(locNo); + return !slaveProperties.getDoubleLocs().contains(row); + } else { + return false; + } + } + + /** + * 鍒ゆ柇鏄惁涓烘祬搴撲綅 + */ + public static boolean isShallowLoc(SlaveProperties slaveProperties, Integer row){ + if (slaveProperties.isDoubleDeep()) { + return !slaveProperties.getDoubleLocs().contains(row); + } else { + return false; + } + } + + /** + * 鑾峰彇 娣卞簱浣嶅搴旂殑娴呭簱浣嶅彿 + */ + public static String getShallowLoc(SlaveProperties slaveProperties, String deepLoc) { + int row = getRow(deepLoc); + int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); + int shallowRow = remainder == 1 ? (row + 1) : (row - 1); + return zerofill(String.valueOf(shallowRow), 2) + deepLoc.substring(2); + } + + /** + * 鑾峰彇 娣卞簱浣嶆帓瀵瑰簲鐨勬祬搴撲綅鎺� + */ + public static Integer getShallowRow(SlaveProperties slaveProperties, Integer deepRow) { + int remainder = (int) Arith.remainder(deepRow, slaveProperties.getGroupCount()); + return remainder == 1 ? (deepRow + 1) : (deepRow - 1); + } + + /** + * 鑾峰彇 娴呭簱浣嶅搴旂殑娣卞簱浣嶅彿 + */ + public static String getDeepLoc(SlaveProperties slaveProperties, String shallowLoc) { + int row = getRow(shallowLoc); + int remainder = (int) Arith.remainder(row, slaveProperties.getGroupCount()); + int targetRow; + if (remainder == 2) { + targetRow = row - 1; + } else if (remainder == 3) { + targetRow = row + 1; + } else { + throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); + } + return zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); + } + + /** + * 鑾峰彇 娴呭簱浣嶆帓瀵瑰簲鐨勬繁搴撲綅鎺� + */ + public static Integer getDeepRow(SlaveProperties slaveProperties, Integer shallowRow) { + int remainder = (int) Arith.remainder(shallowRow, slaveProperties.getGroupCount()); + int targetRow; + if (remainder == 2) { + targetRow = shallowRow - 1; + } else if (remainder == 3) { + targetRow = shallowRow + 1; + } else { + throw new RuntimeException(shallowRow + "涓嶆槸娴呭簱浣嶆帓锛岀郴缁熺箒蹇�"); + } + return targetRow; + } + + /** + * 閫氳繃搴撲綅鍙疯幏鍙� 鎺� + */ + public static int getRow(String locNo) { + if (!Cools.isEmpty(locNo)) { + return Integer.parseInt(locNo.substring(0, 2)); + } + throw new RuntimeException("搴撲綅瑙f瀽寮傚父"); + } + + /** + * 褰撴绱㈠埌鍙屾繁搴撲綅鐨勬祬搴撲綅鏃讹紝濡傛灉娣卞簱浣嶆棤璐э紝鍒欐斁鍏ュ搴旂殑娣卞簱浣� + */ + public static void toDeepIfEmptyByShallow(String shallowLoc) { + int row = getRow(shallowLoc); + int remainder = (int) Arith.remainder(row, 4); + int targetRow = 0; + if (remainder == 2) { + targetRow = row - 1; + } else if (remainder == 3) { + targetRow = row + 1; + } else { + throw new RuntimeException(shallowLoc + "涓嶆槸娴呭簱浣嶏紝绯荤粺绻佸繖"); + } + String targetLoc = zerofill(String.valueOf(targetRow), 2) + shallowLoc.substring(2); + + } + + public static void main(String[] args) { + SlaveProperties slaveProperties = new SlaveProperties(); + slaveProperties.setDoubleDeep(true); + List<Integer> list = new ArrayList<>(); + list.add(1);list.add(4);list.add(5);list.add(8);list.add(9);list.add(12); + slaveProperties.setDoubleLocs(list); + slaveProperties.setGroupCount(4); + Integer deepRow = getDeepRow(slaveProperties, 6); + System.out.println(deepRow); + + } } diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java new file mode 100644 index 0000000..ccd52fc --- /dev/null +++ b/src/main/java/com/zy/common/model/LocTypeDto.java @@ -0,0 +1,52 @@ +package com.zy.common.model; + +import com.core.exception.CoolException; +import com.zy.core.model.protocol.StaProtocol; +import lombok.Data; + +/** + * Created by vincent on 2020/10/19 + */ +@Data +public class LocTypeDto { + + // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿 + private Short locType1; + + // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿 + private Short locType2; + + // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿 + private Short locType3; + + public LocTypeDto() { + } + + public LocTypeDto(StaProtocol staProtocol) { + if (staProtocol.isHigh() == staProtocol.isLow()) { + throw new CoolException("plc楂樹綆妫�娴嬪紓甯�"); + } + if (staProtocol.isLow()) { + this.locType1 = 1; // 浣庡簱浣� + } else { + this.locType1 = 2; // 楂樺簱浣� + } + } + + /** + * 搴撲綅绫诲瀷瑙f瀽 + */ + public static LocTypeDto process(StaProtocol staProtocol) { + LocTypeDto dto = new LocTypeDto(); + if (staProtocol.isHigh() == staProtocol.isLow()) { + throw new CoolException("plc楂樹綆妫�娴嬪紓甯�"); + } + if (staProtocol.isLow()) { + dto.setLocType1((short) 1); // 浣庡簱浣� + } else { + dto.setLocType1((short) 2); // 楂樺簱浣� + } + return dto; + } + +} diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 3dd49c3..8b4c272 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -5,12 +5,16 @@ import com.core.common.Arith; import com.core.common.Cools; import com.core.exception.CoolException; -import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; +import com.zy.asrs.utils.Utils; +import com.zy.common.model.LocTypeDto; +import com.zy.common.model.Shelves; import com.zy.common.model.StartupDto; +import com.zy.core.properties.SlaveProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -35,10 +39,13 @@ private BasDevpService basDevpService; @Autowired private LocMastService locMastService; + @Autowired + private SlaveProperties slaveProperties; + @Autowired + private LocDetlService locDetlService; /** * 鐢熸垚宸ヤ綔鍙� - * @param wrkMk 0:鍏ュ簱 1 - 3000 ; 1:鎷f枡/骞舵澘/鐩樼偣 3001 - 6000 ; 2: 鍑哄簱 6001 -9000 ; 3:鍏朵粬 9001 -9999 * @return workNo(宸ヤ綔鍙�) */ public int getWorkNo(Integer wrkMk) { @@ -75,6 +82,7 @@ return workNo; } + /** * 妫�绱㈠簱浣嶅彿 * @param whsType 绫诲瀷 1:鍙屾繁寮忚揣鏋� @@ -83,15 +91,19 @@ * @param matNos 鐗╂枡鍙烽泦鍚� * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 */ - public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos) { + @Transactional + public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto) { StartupDto startupDto = new StartupDto(); - int workNo = getWorkNo(WorkNoType.getWorkNoType(staDescId)); - startupDto.setWorkNo(workNo); - if (sourceStaNo < 100) { + // 鐢熸垚宸ヤ綔鍙� + int workNo = getWorkNo(0); + if (sourceStaNo == 202) { + whsType = 2; + } else if (sourceStaNo == 205){ whsType = 1; } else { - whsType = 2; + throw new CoolException("搴撲綅鎺掑彿鍒嗛厤"); } + startupDto.setWorkNo(workNo); RowLastno rowLastno = rowLastnoService.selectById(whsType); if (Cools.isEmpty(rowLastno)) { throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); @@ -100,20 +112,85 @@ int curRow = rowLastno.getCurrentRow(); int sRow = rowLastno.getsRow(); int eRow = rowLastno.geteRow(); - - // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙� - curRow = curRow == sRow ? eRow : sRow; + int crn_qty = rowLastno.getCrnQty(); + int rowCount = eRow - sRow + 1; // 鐩爣鍫嗗灈鏈哄彿 - int crnNo; - switch (whsType) { - case 1: - crnNo = 1; - break; - case 2: - crnNo = 2; - break; - default: - throw new CoolException("妫�绱㈠簱浣� -- 妫�绱㈠爢鍨涙満鍙峰け璐�"); + int crnNo = 0; + // 鐩爣搴撲綅 + LocMast locMast = null; + + // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂� + if (!Cools.isEmpty(matNos)) { + List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0)); + for (String locNo : locNos) { + if (Utils.isShallowLoc(slaveProperties, locNo)) { + continue; + } + String shallowLocNo = Utils.getShallowLoc(slaveProperties, locNo); + // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣� + LocMast shallowLoc = locMastService.selectById(shallowLocNo); + if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { + locMast = shallowLoc; + crnNo = locMast.getCrnNo(); + break; + } + } + } + + // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 + if (staDescId == 10) { + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D")); + if (locMasts.size() > 0) { + for (LocMast loc : locMasts) { + if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) { + continue; + } + String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo()); + // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣� + LocMast shallowLoc = locMastService.selectById(shallowLocNo); + if (shallowLoc != null && shallowLoc.getLocSts().equals("O")) { + locMast = shallowLoc; + crnNo = locMast.getCrnNo(); + break; + } + } + } + } + + // 濡傛灉娌℃湁鐩歌繎鐗╂枡锛屽垯鎸夎鍒欒疆璇㈣揣鏋� + if (null == locMast) { + // 閲嶅簱浣� + if (whsType == 1) { + // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙� + Shelves shelves = new Shelves(rowCount, crn_qty); + curRow = shelves.start(curRow); + if (curRow < 0) { + throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); + } + for (List<Integer> node : shelves.nodes){ + if (node.contains(curRow)) { + crnNo = shelves.nodes.indexOf(node) + 1; + break; + } + } + // 杞诲簱浣� + } if (whsType == 2) { + // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙� + Shelves shelves = new Shelves(rowCount, crn_qty); + curRow = shelves.start(curRow - 4); + if (curRow < 0) { + throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); + } + for (List<Integer> node : shelves.nodes){ + if (node.contains(curRow)) { + crnNo = shelves.nodes.indexOf(node) + 1; + break; + } + } + // 鍋忕Щ閲忚ˉ鍋� + curRow = curRow + 4; + crnNo = crnNo + 1; + } } basCrnpService.checkSiteStatus(crnNo); @@ -130,8 +207,21 @@ int inQty = staNo.getInQty()==null?0:staNo.getInQty(); if (staNo.getAutoing().equals("Y") && inQty<2) { // 鏌ユ壘搴撲綅 - LocMast locMast = locMastService.queryFreeLocMast(curRow); + if (locMast == null) { + if (Utils.isShallowLoc(slaveProperties, curRow)) { + Integer deepRow = Utils.getDeepRow(slaveProperties, curRow); + locMast = locMastService.queryFreeLocMast(deepRow, locTypeDto.getLocType1()); + } + if (Cools.isEmpty(locMast)) { + locMast = locMastService.queryFreeLocMast(curRow, locTypeDto.getLocType1()); + } + } if (Cools.isEmpty(locMast)) { + // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠� + if (locTypeDto.getLocType1() == 1) { + locTypeDto.setLocType1((short) 2); + return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto); + } throw new CoolException("娌℃湁绌哄簱浣�"); } String locNo = locMast.getLocNo(); diff --git a/src/main/java/com/zy/core/enums/CrnModeType.java b/src/main/java/com/zy/core/enums/CrnModeType.java index a520095..0b75045 100644 --- a/src/main/java/com/zy/core/enums/CrnModeType.java +++ b/src/main/java/com/zy/core/enums/CrnModeType.java @@ -2,10 +2,11 @@ public enum CrnModeType { - STOP(0, "鍋滄満鐘舵��"), // 鍋滄満鐘舵�� - HAND(1, "鎵嬪姩妯″紡"), // 鎵嬪姩妯″紡涓� - HALF_AUTO(2, "鍗婅嚜鍔ㄦā寮�"), // 鍗婅嚜鍔ㄦā寮忎腑 - AUTO(3, "鐢佃剳妯″紡"), // 鐢佃剳妯″紡涓�/鑷姩妯″紡 + NONE(0, "鏈�夋嫨"), + AUTO(1, "鑷姩"), + HALF_AUTO(2, "鍗婅嚜鍔�"), + HAND(3, "鎵嬪姩"), + STOP(4, "缁翠慨"), ; public Integer id; diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java index 64e43af..358631e 100644 --- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java +++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java @@ -37,25 +37,31 @@ // 绌烘澘淇″彿 private boolean emptyMk; + // 楂� + private boolean high; + + // 浣� + private boolean low; + // 闇�姹�1 private boolean inreq1; // 閿佸畾鏍囪 private boolean pakMk = true; - // 鍙拌溅浣嶇疆 - private Short position; public BasDevp toSqlModel(){ BasDevp basDevp = new BasDevp(); basDevp.setDevNo(siteId); basDevp.setWrkNo(workNo.intValue()); - // 绔欑偣 todo:luxiaotao basDevp.setAutoing(autoing?"Y":"N"); basDevp.setLoading(loading?"Y":"N"); basDevp.setInEnable(inEnable?"Y":"N"); basDevp.setOutEnable(outEnable?"Y":"N"); - basDevp.setInreq1(inreq1?"Y":"N"); + basDevp.setLocType1((short) 0); // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿 + basDevp.setLocType2((short) 0); // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿 + basDevp.setLocType3((short) 0); // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿 + basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2); return basDevp; } diff --git a/src/main/java/com/zy/core/properties/SlaveProperties.java b/src/main/java/com/zy/core/properties/SlaveProperties.java index 1cf0514..4a60418 100644 --- a/src/main/java/com/zy/core/properties/SlaveProperties.java +++ b/src/main/java/com/zy/core/properties/SlaveProperties.java @@ -19,6 +19,12 @@ @ConfigurationProperties(prefix = "wcs-slave") public class SlaveProperties { + private boolean doubleDeep; + + private List<Integer> doubleLocs = new ArrayList<>(); + + private int groupCount; + private List<CrnSlave> crn = new ArrayList<>(); private List<DevpSlave> devp = new ArrayList<>(); diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index aaef15b..4dde49d 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -130,15 +130,6 @@ } } } - // 鍙拌溅浣嶇疆 - OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB100.48"); - if (result2.IsSuccess) { - StaProtocol staProtocol = station.get(8); - staProtocol.setPosition(result2.Content); - } else { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆�8鍙峰彴杞﹁幏鍙栧疄鏃朵綅缃け璐ワ紒锛侊紒", DateUtils.convert(new Date()))); - log.error("8鍙峰彴杞﹁幏鍙栧疄鏃朵綅缃け璐ワ紒锛侊紒"); - } if (result.IsSuccess && result1.IsSuccess) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 25fd543..f79abe9 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -35,6 +35,12 @@ # 涓嬩綅鏈洪厤缃� wcs-slave: + # 鍙屾繁 + doubleDeep: true + # 鍙屾繁搴撲綅鎺掑彿 + doubleLocs: 1,4,5,8 + # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� + groupCount: 4 # 鍫嗗灈鏈�1 crn[0]: id: 1 diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml index 2454472..62d7864 100644 --- a/src/main/resources/mapper/LocMastMapper.xml +++ b/src/main/resources/mapper/LocMastMapper.xml @@ -39,7 +39,14 @@ </resultMap> <select id="queryFreeLocMast" resultMap="BaseResultMap"> - select top 1 * from asr_loc_mast where row1=#{row} and loc_sts='O' order by loc_sts desc ,lev1 asc,bay1 asc + select top 1 * + from asr_loc_mast + where row1=#{row} + and loc_sts='O' + <if test="locType1 != null"> + and loc_type1 = #{locType1} + </if> + order by loc_sts desc ,lev1 asc,bay1 asc </select> <select id="queryDemoSourceLoc" resultMap="BaseResultMap"> diff --git a/src/main/webapp/static/css/console.css b/src/main/webapp/static/css/console.css index c82ff51..f15bfcd 100644 --- a/src/main/webapp/static/css/console.css +++ b/src/main/webapp/static/css/console.css @@ -218,7 +218,7 @@ .main-part { position: absolute; top: 100px; - left: 300px; + left: 500px; } .main-part .lane { /*margin-bottom: 30px;*/ @@ -358,7 +358,7 @@ position: absolute; background-color:#333!important; color: #333 !important; - width: 93%; + width: 72%; margin-top: 10px; } diff --git a/src/main/webapp/views/console.html b/src/main/webapp/views/console.html index 898b7fd..f86b70b 100644 --- a/src/main/webapp/views/console.html +++ b/src/main/webapp/views/console.html @@ -91,14 +91,6 @@ <!----------- 宸﹁緭閫佺嚎 ----------> - <!-- 鍙拌溅杞ㄩ亾 --> - <div id="car-track-1" class="car-track"> - <div></div> - </div> - - <!-- 鍙拌溅瀹炰緥 --> - <div id="site-8" class="site car">8</div> - <!-- 绗竴鍒楋紙瀹藉害 100px锛� --> <div class="site-row site-row-1"> <div id="site-7" class="site" style="height: 20px;line-height: 20px;margin-bottom: 20px">7</div> @@ -125,10 +117,10 @@ <div class="main-part"> <!--绗竴缁�--> <div class="lane"> - <span class="row-no">1#</span> + <span class="row-no">8#</span> <!-- 璐ф灦 --> <div class="stock-group"> - <div id="site-6" class="site" style="">6</div> + <div id="site-100" class="site" style="">100</div> <button class="item">1</button> <button class="item">2</button> <button class="item">3</button> @@ -161,8 +153,90 @@ <button class="item">30</button> <button class="item">31</button> <button class="item">32</button> - <button class="item">33</button> - <button class="item">34</button> + <div class="site site-none"> </div> + </div> + <!-- 鍫嗗灈鏈� --> + <div class="crn"> + <hr class="pathway"> + <div id="crn-2" class="machine"></div> + </div> + <!-- 璐ф灦 --> + <div class="stock-group"> + <div id="site-124" class="site" style="">124</div> + <button class="item">1</button> + <button class="item">2</button> + <button class="item">3</button> + <button class="item">4</button> + <button class="item">5</button> + <button class="item">6</button> + <button class="item">7</button> + <button class="item">8</button> + <button class="item">9</button> + <button class="item">10</button> + <button class="item">11</button> + <button class="item">12</button> + <button class="item">13</button> + <button class="item">14</button> + <button class="item">15</button> + <button class="item">16</button> + <button class="item">17</button> + <button class="item">18</button> + <button class="item">19</button> + <button class="item">20</button> + <button class="item">21</button> + <button class="item">22</button> + <button class="item">23</button> + <button class="item">24</button> + <button class="item">25</button> + <button class="item">26</button> + <button class="item">27</button> + <button class="item">28</button> + <button class="item">29</button> + <button class="item">30</button> + <button class="item">31</button> + <button class="item">32</button> + <div class="site site-none"> </div> + </div> + <span class="row-no">5#</span> + </div> + <!--绗簩缁�--> + <div class="lane"> + <span class="row-no">4#</span> + <!-- 璐ф灦 --> + <div class="stock-group"> + <div id="site-120" class="site" style="">120</div> + <button class="item">1</button> + <button class="item">2</button> + <button class="item">3</button> + <button class="item">4</button> + <button class="item">5</button> + <button class="item">6</button> + <button class="item">7</button> + <button class="item">8</button> + <button class="item">9</button> + <button class="item">10</button> + <button class="item">11</button> + <button class="item">12</button> + <button class="item">13</button> + <button class="item">14</button> + <button class="item">15</button> + <button class="item">16</button> + <button class="item">17</button> + <button class="item">18</button> + <button class="item">19</button> + <button class="item">20</button> + <button class="item">21</button> + <button class="item">22</button> + <button class="item">23</button> + <button class="item">24</button> + <button class="item">25</button> + <button class="item">26</button> + <button class="item">27</button> + <button class="item">28</button> + <button class="item">29</button> + <button class="item">30</button> + <button class="item">31</button> + <button class="item">32</button> <div class="site site-none"> </div> </div> <!-- 鍫嗗灈鏈� --> @@ -172,7 +246,7 @@ </div> <!-- 璐ф灦 --> <div class="stock-group"> - <div id="site-5" class="site" style="">5</div> + <div id="site-118" class="site" style="">118</div> <button class="item">1</button> <button class="item">2</button> <button class="item">3</button> @@ -205,79 +279,9 @@ <button class="item">30</button> <button class="item">31</button> <button class="item">32</button> - <button class="item">33</button> - <button class="item">34</button> <div class="site site-none"> </div> </div> - <span class="row-no">2#</span> - </div> - <!--绗簩缁�--> - <div class="lane" style="margin-left: 300px"> - <span class="row-no">3#</span> - <!-- 璐ф灦 --> - <div class="stock-group"> - <div id="site-101" class="site" style="">101</div> - <button class="item">2</button> - <button class="item">4</button> - <button class="item">6</button> - <button class="item">8</button> - <button class="item">10</button> - <button class="item">12</button> - <button class="item">14</button> - <button class="item">16</button> - <button class="item">18</button> - <button class="item">20</button> - <button class="item">22</button> - <button class="item">24</button> - <button class="item">26</button> - <button class="item">28</button> - <button class="item">30</button> - <button class="item">32</button> - <button class="item">34</button> - <button class="item">36</button> - <button class="item">38</button> - <button class="item">40</button> - <button class="item">42</button> - <button class="item">44</button> - <button class="item">46</button> - <button class="item">48</button> - <div class="site site-none"> </div> - </div> - <!-- 鍫嗗灈鏈� --> - <div class="crn"> - <hr class="pathway" style="width: 67.5%"> - <div id="crn-2" class="machine"></div> - </div> - <!-- 璐ф灦 --> - <div class="stock-group"> - <div id="site-107" class="site" style="">107</div> - <button class="item">2</button> - <button class="item">4</button> - <button class="item">6</button> - <button class="item">8</button> - <button class="item">10</button> - <button class="item">12</button> - <button class="item">14</button> - <button class="item">16</button> - <button class="item">18</button> - <button class="item">20</button> - <button class="item">22</button> - <button class="item">24</button> - <button class="item">26</button> - <button class="item">28</button> - <button class="item">30</button> - <button class="item">32</button> - <button class="item">34</button> - <button class="item">36</button> - <button class="item">38</button> - <button class="item">40</button> - <button class="item">42</button> - <button class="item">44</button> - <button class="item">46</button> - <button class="item">48</button> - <div class="site site-none"> </div> - </div> - <span class="row-no">4#</span> + <span class="row-no">1#</span> </div> </div> </main> -- Gitblit v1.9.1