From 5030f3d30ccc1bd16db371c6970a48103aff9191 Mon Sep 17 00:00:00 2001 From: yyt <306727702@qq.com> Date: 星期一, 03 六月 2024 13:56:57 +0800 Subject: [PATCH] 380新产品,优化 --- jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java | 66 + jcdm-ui/src/views/main/cfkb/connectingRod/index.vue | 119 +- jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/controller/DaTileMatchMiddlewareController.java | 160 ++++ jcdm-ui/src/views/main/da/tileMatchMiddleware/index.vue | 336 +++++++++ jcdm-ui/src/views/main/cfkb/connectingRodUp/index.vue | 28 jcdm-admin/src/main/resources/application.yml | 4 jcdm-ui/src/views/main/cfkb/BalanceShaft/index.vue | 81 - jcdm-ui/src/views/main/cfkb/crankshaftUp/cs1.vue | 83 ++ jcdm-ui/src/views/main/cfkb/crankshaftUp/cs7.vue | 93 ++ jcdm-ui/src/views/main/cfkb/crankshaftUp/cs5.vue | 16 jcdm-ui/src/views/main/cfkb/crankshaftUp/index.vue | 40 + jcdm-ui/src/api/main/bs/tileMatchRules/tileMatchRules.js | 8 jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml | 4 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/impl/DaTileMatchMiddlewareServiceImpl.java | 93 ++ jcdm-ui/src/api/main/da/tileMatchMiddleware/tileMatchMiddleware.js | 60 + jcdm-ui/src/views/main/bs/orderScheduling/index.vue | 42 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/IDaTileMatchMiddlewareService.java | 61 + jcdm-ui/src/views/main/cfkb/crankshaftUp/cs2.vue | 65 + jcdm-ui/src/views/main/cfkb/crankshaftUp/cs6.vue | 91 ++ jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml | 18 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/domain/DaTileMatchMiddleware.java | 135 +++ jcdm-ui/src/api/main/da/opcuaconfig/opcuaconfig.js | 7 jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java | 49 + jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/mapper/DaTileMatchMiddlewareMapper.java | 61 + jcdm-ui/src/views/main/cfkb/crankshaftUp/cs3.vue | 30 jcdm-ui/src/views/main/cfkb/tileMatchKb/index.vue | 25 jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java | 54 + jcdm-ui/src/views/main/cfkb/crankshaft/index.vue | 87 +- jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 19 jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java | 28 jcdm-main/src/main/resources/mapper/da/tileMatchMiddleware/DaTileMatchMiddlewareMapper.xml | 87 ++ 31 files changed, 1,843 insertions(+), 207 deletions(-) diff --git a/jcdm-admin/src/main/resources/application.yml b/jcdm-admin/src/main/resources/application.yml index 1a67159..03bb932 100644 --- a/jcdm-admin/src/main/resources/application.yml +++ b/jcdm-admin/src/main/resources/application.yml @@ -138,8 +138,8 @@ default: endpoint: opc.tcp://127.0.0.1:49320 security-policy: none -#websocketUrl: 'ws://10.10.12.100:8081/websocket/' -websocketUrl: 'ws://127.0.0.1:8081/websocket/' +websocketUrl: 'ws://10.10.12.100:8081/websocket/' +#websocketUrl: 'ws://127.0.0.1:8081/websocket/' # mybatis-plus #mybatis-plus: diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java index f17d9a4..8578039 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/controller/DaOpcuaConfigController.java @@ -1,14 +1,20 @@ package com.jcdm.main.da.opcuaconfig.controller; import java.util.List; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; +import cn.hutool.core.collection.CollUtil; import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig; import com.jcdm.main.da.opcuaconfig.domain.NodeEntity; import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; +import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware; +import com.jcdm.main.da.tileMatchMiddleware.service.IDaTileMatchMiddlewareService; +import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules; +import com.jcdm.main.da.tileMatchRules.service.IDaTileMatchRulesService; import com.jcdm.main.plcserver.sub.OPCUaSubscription; import com.kangaroohy.milo.model.ReadWriteEntity; import org.springframework.security.access.prepost.PreAuthorize; @@ -42,7 +48,12 @@ { @Autowired private IDaOpcuaConfigService daOpcuaConfigService; + @Autowired private IDaParamCollectionService daParamCollectionService; + @Autowired + private IDaTileMatchRulesService daTileMatchRulesService; + @Autowired + private IDaTileMatchMiddlewareService daTileMatchMiddlewareService; /** * 鏌ヨ浜や簰淇″彿閰嶇疆鍒楄〃 @@ -132,15 +143,16 @@ * 閰嶇摝鎵爜 */ @PreAuthorize("@ss.hasPermi('da:opcuaconfig:query')") - @GetMapping(value = "/barcode/{barcode}/{locationCode}") - public AjaxResult setBarcode(@PathVariable("barcode") String barcode,@PathVariable("locationCode") String locationCode) { - Boolean out= true; + @GetMapping(value = "/barcode1") + public DaParamCollection setBarcode1(String barcode,String locationCode) { + Boolean out = true; + DaParamCollection xParamCollection = null; try { - Object SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+".Code1").getValue(); - if (null == SNCodeObject){ - SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+ ".Code").getValue(); + Object SNCodeObject = miloService.readFromOpcUa("CFL4HX." + locationCode + ".Code1").getValue(); + if (null == SNCodeObject) { + SNCodeObject = miloService.readFromOpcUa("CFL4HX." + locationCode + ".Code").getValue(); } - if (null != SNCodeObject){ + if (null != SNCodeObject) { String SNCode = SNCodeObject.toString(); //鎻掑叆鏁版嵁 DaParamCollection saveData = new DaParamCollection(); @@ -148,12 +160,36 @@ saveData.setParamValue(barcode); saveData.setLocationCode(locationCode); saveData.setParamCode("CZM"); - saveData.setParamName("鏇茶酱鐮�"); + saveData.setParamName("鏇茶酱"); daParamCollectionService.insertDaParamCollection(saveData); + + DaTileMatchRules TileMatchRules = new DaTileMatchRules(); + TileMatchRules.setProductSeries("380Y"); + TileMatchRules.setScanObject1("杩炴潌"); + TileMatchRules.setScanObject2("鏇茶酱"); + daTileMatchRulesService.selectDaTileMatchRulesList(TileMatchRules); + + for (int i = 1; i <= 3; i++) { + DaTileMatchMiddleware TileMatchMiddleware = new DaTileMatchMiddleware(); + TileMatchMiddleware.setSfcCode(SNCode); + TileMatchMiddleware.setCrankshaftNo(barcode); + TileMatchMiddleware.setCylinder((long) i); + TileMatchMiddleware.setState(1L); + daTileMatchMiddlewareService.insertDaTileMatchMiddleware(TileMatchMiddleware); + } + + DaParamCollection ParamCollection = new DaParamCollection(); + ParamCollection.setSfcCode(SNCode); + ParamCollection.setParamName("绠变綋"); + List<DaParamCollection> DaParamCollectionlist = daParamCollectionService.selectDaParamCollectionList(ParamCollection); + List<DaParamCollection> XTParamCollection = DaParamCollectionlist.stream().filter(x -> "绠变綋".equals(x.getParamName())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(XTParamCollection)) { + xParamCollection = XTParamCollection.get(0); + } } } catch (Exception e) { throw new RuntimeException(e); } - return toAjax(out); + return xParamCollection; } } diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/controller/DaTileMatchMiddlewareController.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/controller/DaTileMatchMiddlewareController.java new file mode 100644 index 0000000..1e7d0d6 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/controller/DaTileMatchMiddlewareController.java @@ -0,0 +1,160 @@ +package com.jcdm.main.da.tileMatchMiddleware.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.jcdm.main.da.paramCollection.domain.DaParamCollection; +import com.jcdm.main.da.tileMatchRules.domain.DaTileMatchRules; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.jcdm.common.annotation.Log; +import com.jcdm.common.core.controller.BaseController; +import com.jcdm.common.core.domain.AjaxResult; +import com.jcdm.common.enums.BusinessType; +import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware; +import com.jcdm.main.da.tileMatchMiddleware.service.IDaTileMatchMiddlewareService; +import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.common.core.page.TableDataInfo; + +import static com.jcdm.main.plcserver.sub.OPCUaSubscription.miloService; + +/** + * 娲诲杩炴潌閰嶇摝涓棿Controller + * + * @author yyt + * @date 2024-05-28 + */ +@RestController +@RequestMapping("/da/tileMatchMiddleware") +public class DaTileMatchMiddlewareController extends BaseController +{ + @Autowired + private IDaTileMatchMiddlewareService daTileMatchMiddlewareService; + + /** + * 鏌ヨ娲诲杩炴潌閰嶇摝涓棿鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:list')") + @GetMapping("/list") + public TableDataInfo list(DaTileMatchMiddleware daTileMatchMiddleware) + { + startPage(); + List<DaTileMatchMiddleware> list = daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(daTileMatchMiddleware); + return getDataTable(list); + } + + /** + * 瀵煎嚭娲诲杩炴潌閰嶇摝涓棿鍒楄〃 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:export')") + @Log(title = "娲诲杩炴潌閰嶇摝涓棿", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, DaTileMatchMiddleware daTileMatchMiddleware) + { + List<DaTileMatchMiddleware> list = daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(daTileMatchMiddleware); + ExcelUtil<DaTileMatchMiddleware> util = new ExcelUtil<DaTileMatchMiddleware>(DaTileMatchMiddleware.class); + util.exportExcel(response, list, "娲诲杩炴潌閰嶇摝涓棿鏁版嵁"); + } + + /** + * 鑾峰彇娲诲杩炴潌閰嶇摝涓棿璇︾粏淇℃伅 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(daTileMatchMiddlewareService.selectDaTileMatchMiddlewareById(id)); + } + + /** + * 鏂板娲诲杩炴潌閰嶇摝涓棿 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:add')") + @Log(title = "娲诲杩炴潌閰嶇摝涓棿", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody DaTileMatchMiddleware daTileMatchMiddleware) + { + return toAjax(daTileMatchMiddlewareService.insertDaTileMatchMiddleware(daTileMatchMiddleware)); + } + + /** + * 淇敼娲诲杩炴潌閰嶇摝涓棿 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:edit')") + @Log(title = "娲诲杩炴潌閰嶇摝涓棿", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody DaTileMatchMiddleware daTileMatchMiddleware) + { + return toAjax(daTileMatchMiddlewareService.updateDaTileMatchMiddleware(daTileMatchMiddleware)); + } + + /** + * 鍒犻櫎娲诲杩炴潌閰嶇摝涓棿 + */ + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:remove')") + @Log(title = "娲诲杩炴潌閰嶇摝涓棿", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(daTileMatchMiddlewareService.deleteDaTileMatchMiddlewareByIds(ids)); + } + + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:query')") + @GetMapping(value = "/barcodeup") + public DaTileMatchMiddleware setBarcodeup(String barcode,String locationCode) { + DaTileMatchMiddleware rMiddleware=null; + try { + //Object SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+".Code1").getValue(); + Object SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP050.Code1").getValue(); + if (null == SNCodeObject){ + //SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+ ".Code").getValue(); + SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP050.Code").getValue(); + } + if (null != SNCodeObject){ + String SNCode = SNCodeObject.toString(); + + DaTileMatchMiddleware TileMatchMiddleware=new DaTileMatchMiddleware(); + TileMatchMiddleware.setSfcCode(SNCode); + TileMatchMiddleware.setPalletNo(barcode); + TileMatchMiddleware.setState(2L); + List<DaTileMatchMiddleware> TileMatchMiddlewareList=daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(TileMatchMiddleware); + if(TileMatchMiddlewareList.size()>0){ + for(int i=0;i<TileMatchMiddlewareList.size();i++){ + DaTileMatchMiddleware Middleware=TileMatchMiddlewareList.get(i); + Middleware.setState(3L); + daTileMatchMiddlewareService.updateDaTileMatchMiddleware(Middleware); + } + rMiddleware=TileMatchMiddlewareList.get(0); + } + } + + } catch (Exception e) { + throw new RuntimeException(e); + } + return rMiddleware; + } + + @PreAuthorize("@ss.hasPermi('da:tileMatchMiddleware:query')") + @GetMapping(value = "/barcode") + public DaTileMatchMiddleware setBarcode(String barcode,String locationCode) { + DaTileMatchMiddleware rMiddleware=new DaTileMatchMiddleware();; + rMiddleware.setState(1L); + List<DaTileMatchMiddleware> TileMatchMiddlewareList=daTileMatchMiddlewareService.selectDaTileMatchMiddlewareList(rMiddleware); + if(TileMatchMiddlewareList.size()>0){ + rMiddleware=TileMatchMiddlewareList.get(0); + rMiddleware.setPalletNo(locationCode); + rMiddleware.setConnectingrodNo(barcode); + rMiddleware.setState(2L); + daTileMatchMiddlewareService.updateDaTileMatchMiddleware(rMiddleware); + } + return rMiddleware; + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/domain/DaTileMatchMiddleware.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/domain/DaTileMatchMiddleware.java new file mode 100644 index 0000000..47f23bc --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/domain/DaTileMatchMiddleware.java @@ -0,0 +1,135 @@ +package com.jcdm.main.da.tileMatchMiddleware.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.jcdm.common.annotation.Excel; +import com.jcdm.common.core.domain.BaseEntity; + +/** + * 娲诲杩炴潌閰嶇摝涓棿瀵硅薄 da_tile_match_middleware + * + * @author yyt + * @date 2024-05-28 + */ +public class DaTileMatchMiddleware extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** ID */ + private Long id; + + /** 浜у搧SN鍙� */ + @Excel(name = "浜у搧SN鍙�") + private String sfcCode; + + /** 鎵樼洏鍙� */ + @Excel(name = "鎵樼洏鍙�") + private String palletNo; + + /** 鏇茶酱鐮� */ + @Excel(name = "鏇茶酱鐮�") + private String crankshaftNo; + + /** 鐘舵�� */ + @Excel(name = "鐘舵��") + private Long state; + + /** 澶囨敞 */ + @Excel(name = "澶囨敞") + private String remarks; + + /** 杩炴潌鐮� */ + @Excel(name = "杩炴潌鐮�") + private String connectingrodNo; + + /** 姘旂几缂栧彿 */ + @Excel(name = "姘旂几缂栧彿") + private Long cylinder; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setSfcCode(String sfcCode) + { + this.sfcCode = sfcCode; + } + + public String getSfcCode() + { + return sfcCode; + } + public void setPalletNo(String palletNo) + { + this.palletNo = palletNo; + } + + public String getPalletNo() + { + return palletNo; + } + public void setCrankshaftNo(String crankshaftNo) + { + this.crankshaftNo = crankshaftNo; + } + + public String getCrankshaftNo() + { + return crankshaftNo; + } + public void setState(Long state) + { + this.state = state; + } + + public Long getState() + { + return state; + } + public void setRemarks(String remarks) + { + this.remarks = remarks; + } + + public String getRemarks() + { + return remarks; + } + public void setConnectingrodNo(String connectingrodNo) + { + this.connectingrodNo = connectingrodNo; + } + + public String getConnectingrodNo() + { + return connectingrodNo; + } + public void setCylinder(Long cylinder) + { + this.cylinder = cylinder; + } + + public Long getCylinder() + { + return cylinder; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("sfcCode", getSfcCode()) + .append("palletNo", getPalletNo()) + .append("crankshaftNo", getCrankshaftNo()) + .append("state", getState()) + .append("remarks", getRemarks()) + .append("connectingrodNo", getConnectingrodNo()) + .append("cylinder", getCylinder()) + .toString(); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/mapper/DaTileMatchMiddlewareMapper.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/mapper/DaTileMatchMiddlewareMapper.java new file mode 100644 index 0000000..8bd3b62 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/mapper/DaTileMatchMiddlewareMapper.java @@ -0,0 +1,61 @@ +package com.jcdm.main.da.tileMatchMiddleware.mapper; + +import java.util.List; +import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware; + +/** + * 娲诲杩炴潌閰嶇摝涓棿Mapper鎺ュ彛 + * + * @author yyt + * @date 2024-05-28 + */ +public interface DaTileMatchMiddlewareMapper +{ + /** + * 鏌ヨ娲诲杩炴潌閰嶇摝涓棿 + * + * @param id 娲诲杩炴潌閰嶇摝涓棿涓婚敭 + * @return 娲诲杩炴潌閰嶇摝涓棿 + */ + public DaTileMatchMiddleware selectDaTileMatchMiddlewareById(Long id); + + /** + * 鏌ヨ娲诲杩炴潌閰嶇摝涓棿鍒楄〃 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 娲诲杩炴潌閰嶇摝涓棿闆嗗悎 + */ + public List<DaTileMatchMiddleware> selectDaTileMatchMiddlewareList(DaTileMatchMiddleware daTileMatchMiddleware); + + /** + * 鏂板娲诲杩炴潌閰嶇摝涓棿 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 缁撴灉 + */ + public int insertDaTileMatchMiddleware(DaTileMatchMiddleware daTileMatchMiddleware); + + /** + * 淇敼娲诲杩炴潌閰嶇摝涓棿 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 缁撴灉 + */ + public int updateDaTileMatchMiddleware(DaTileMatchMiddleware daTileMatchMiddleware); + + /** + * 鍒犻櫎娲诲杩炴潌閰嶇摝涓棿 + * + * @param id 娲诲杩炴潌閰嶇摝涓棿涓婚敭 + * @return 缁撴灉 + */ + public int deleteDaTileMatchMiddlewareById(Long id); + + /** + * 鎵归噺鍒犻櫎娲诲杩炴潌閰嶇摝涓棿 + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteDaTileMatchMiddlewareByIds(Long[] ids); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/IDaTileMatchMiddlewareService.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/IDaTileMatchMiddlewareService.java new file mode 100644 index 0000000..78d0001 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/IDaTileMatchMiddlewareService.java @@ -0,0 +1,61 @@ +package com.jcdm.main.da.tileMatchMiddleware.service; + +import java.util.List; +import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware; + +/** + * 娲诲杩炴潌閰嶇摝涓棿Service鎺ュ彛 + * + * @author yyt + * @date 2024-05-28 + */ +public interface IDaTileMatchMiddlewareService +{ + /** + * 鏌ヨ娲诲杩炴潌閰嶇摝涓棿 + * + * @param id 娲诲杩炴潌閰嶇摝涓棿涓婚敭 + * @return 娲诲杩炴潌閰嶇摝涓棿 + */ + public DaTileMatchMiddleware selectDaTileMatchMiddlewareById(Long id); + + /** + * 鏌ヨ娲诲杩炴潌閰嶇摝涓棿鍒楄〃 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 娲诲杩炴潌閰嶇摝涓棿闆嗗悎 + */ + public List<DaTileMatchMiddleware> selectDaTileMatchMiddlewareList(DaTileMatchMiddleware daTileMatchMiddleware); + + /** + * 鏂板娲诲杩炴潌閰嶇摝涓棿 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 缁撴灉 + */ + public int insertDaTileMatchMiddleware(DaTileMatchMiddleware daTileMatchMiddleware); + + /** + * 淇敼娲诲杩炴潌閰嶇摝涓棿 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 缁撴灉 + */ + public int updateDaTileMatchMiddleware(DaTileMatchMiddleware daTileMatchMiddleware); + + /** + * 鎵归噺鍒犻櫎娲诲杩炴潌閰嶇摝涓棿 + * + * @param ids 闇�瑕佸垹闄ょ殑娲诲杩炴潌閰嶇摝涓棿涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteDaTileMatchMiddlewareByIds(Long[] ids); + + /** + * 鍒犻櫎娲诲杩炴潌閰嶇摝涓棿淇℃伅 + * + * @param id 娲诲杩炴潌閰嶇摝涓棿涓婚敭 + * @return 缁撴灉 + */ + public int deleteDaTileMatchMiddlewareById(Long id); +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/impl/DaTileMatchMiddlewareServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/impl/DaTileMatchMiddlewareServiceImpl.java new file mode 100644 index 0000000..47cac73 --- /dev/null +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchMiddleware/service/impl/DaTileMatchMiddlewareServiceImpl.java @@ -0,0 +1,93 @@ +package com.jcdm.main.da.tileMatchMiddleware.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.jcdm.main.da.tileMatchMiddleware.mapper.DaTileMatchMiddlewareMapper; +import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware; +import com.jcdm.main.da.tileMatchMiddleware.service.IDaTileMatchMiddlewareService; + +/** + * 娲诲杩炴潌閰嶇摝涓棿Service涓氬姟灞傚鐞� + * + * @author yyt + * @date 2024-05-28 + */ +@Service +public class DaTileMatchMiddlewareServiceImpl implements IDaTileMatchMiddlewareService +{ + @Autowired + private DaTileMatchMiddlewareMapper daTileMatchMiddlewareMapper; + + /** + * 鏌ヨ娲诲杩炴潌閰嶇摝涓棿 + * + * @param id 娲诲杩炴潌閰嶇摝涓棿涓婚敭 + * @return 娲诲杩炴潌閰嶇摝涓棿 + */ + @Override + public DaTileMatchMiddleware selectDaTileMatchMiddlewareById(Long id) + { + return daTileMatchMiddlewareMapper.selectDaTileMatchMiddlewareById(id); + } + + /** + * 鏌ヨ娲诲杩炴潌閰嶇摝涓棿鍒楄〃 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 娲诲杩炴潌閰嶇摝涓棿 + */ + @Override + public List<DaTileMatchMiddleware> selectDaTileMatchMiddlewareList(DaTileMatchMiddleware daTileMatchMiddleware) + { + return daTileMatchMiddlewareMapper.selectDaTileMatchMiddlewareList(daTileMatchMiddleware); + } + + /** + * 鏂板娲诲杩炴潌閰嶇摝涓棿 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 缁撴灉 + */ + @Override + public int insertDaTileMatchMiddleware(DaTileMatchMiddleware daTileMatchMiddleware) + { + return daTileMatchMiddlewareMapper.insertDaTileMatchMiddleware(daTileMatchMiddleware); + } + + /** + * 淇敼娲诲杩炴潌閰嶇摝涓棿 + * + * @param daTileMatchMiddleware 娲诲杩炴潌閰嶇摝涓棿 + * @return 缁撴灉 + */ + @Override + public int updateDaTileMatchMiddleware(DaTileMatchMiddleware daTileMatchMiddleware) + { + return daTileMatchMiddlewareMapper.updateDaTileMatchMiddleware(daTileMatchMiddleware); + } + + /** + * 鎵归噺鍒犻櫎娲诲杩炴潌閰嶇摝涓棿 + * + * @param ids 闇�瑕佸垹闄ょ殑娲诲杩炴潌閰嶇摝涓棿涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteDaTileMatchMiddlewareByIds(Long[] ids) + { + return daTileMatchMiddlewareMapper.deleteDaTileMatchMiddlewareByIds(ids); + } + + /** + * 鍒犻櫎娲诲杩炴潌閰嶇摝涓棿淇℃伅 + * + * @param id 娲诲杩炴潌閰嶇摝涓棿涓婚敭 + * @return 缁撴灉 + */ + @Override + public int deleteDaTileMatchMiddlewareById(Long id) + { + return daTileMatchMiddlewareMapper.deleteDaTileMatchMiddlewareById(id); + } +} diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java index 5b2b18a..8b410f7 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/tileMatchRules/controller/DaTileMatchRulesController.java @@ -1,7 +1,13 @@ package com.jcdm.main.da.tileMatchRules.controller; import java.util.List; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; + +import cn.hutool.core.collection.CollUtil; +import com.jcdm.main.da.paramCollection.domain.DaParamCollection; +import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; +import com.jcdm.main.da.tileMatchMiddleware.domain.DaTileMatchMiddleware; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -21,6 +27,8 @@ import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.common.core.page.TableDataInfo; +import static com.jcdm.main.plcserver.sub.OPCUaSubscription.miloService; + /** * 閰嶇摝瑙勫垯Controller * @@ -33,6 +41,9 @@ { @Autowired private IDaTileMatchRulesService daTileMatchRulesService; + + @Autowired + public IDaParamCollectionService daParamCollectionService; /** * 鏌ヨ閰嶇摝瑙勫垯鍒楄〃() @@ -137,4 +148,42 @@ { return toAjax(daTileMatchRulesService.deleteDaTileMatchRulesByIds(ids)); } + + @PreAuthorize("@ss.hasPermi('da:tileMatchRules:query')") + @GetMapping(value = "/barcode") + public String setBarcode(String barcode,String locationCode) { + String XT=""; + try { + //Object SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+".Code1").getValue(); + Object SNCodeObject = miloService.readFromOpcUa("CFL4HX.HOP040.Code1").getValue(); + if (null == SNCodeObject){ + //SNCodeObject = miloService.readFromOpcUa("CFL4HX."+locationCode+ ".Code").getValue(); + SNCodeObject = miloService.readFromOpcUa("CFL4HX.HOP040.Code").getValue(); + } + if (null != SNCodeObject){ + String SNCode = SNCodeObject.toString(); + + //鎻掑叆鏁版嵁 + DaParamCollection saveData = new DaParamCollection(); + saveData.setSfcCode(SNCode); + saveData.setParamValue(barcode); + saveData.setLocationCode(locationCode); + saveData.setParamCode("CZM"); + saveData.setParamName("鏇茶酱"); + daParamCollectionService.insertDaParamCollection(saveData); + + DaParamCollection ParamCollection = new DaParamCollection(); + ParamCollection.setSfcCode(SNCode); + List<DaParamCollection> DaParamCollectionlist=daParamCollectionService.selectDaParamCollectionList(ParamCollection); + List<DaParamCollection> XTParamCollection = DaParamCollectionlist.stream().filter(x -> "绠变綋".equals(x.getParamName())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(XTParamCollection)){ + DaParamCollection lastOne = XTParamCollection.get(0); + XT = lastOne.getParamValue(); + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return XT; + } } diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java index 1db0ce5..49742b7 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java @@ -105,8 +105,23 @@ SNCodeObject = miloService.readFromOpcUa("CFL4HX.OP060.Code").getValue(); } if (null != SNCodeObject){ + String XT=""; + String CZ=""; String SNCode = SNCodeObject.toString(); - passingStationCollectionServiceImpl.sendMessage("P0SQ0-01FZ01-1000;T231224116;DBBBBA*P0SQ0-041000-1002;T2312020675;DAABBA;S500003","OP060"); + DaParamCollection ParamCollection = new DaParamCollection(); + ParamCollection.setSfcCode(SNCode); + List<DaParamCollection> DaParamCollectionlist=daParamCollectionService.selectDaParamCollectionList(ParamCollection); + List<DaParamCollection> XTParamCollection = DaParamCollectionlist.stream().filter(x -> "绠变綋".equals(x.getParamName())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(XTParamCollection)){ + DaParamCollection lastOne = XTParamCollection.get(0); + XT = lastOne.getParamValue(); + } + List<DaParamCollection> CZParamCollection = DaParamCollectionlist.stream().filter(x -> "鏇茶酱".equals(x.getParamName())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(CZParamCollection)){ + DaParamCollection lastOne = CZParamCollection.get(0); + CZ = lastOne.getParamValue(); + } + passingStationCollectionServiceImpl.sendMessage(XT+"*"+CZ,"OP060"); } } } @@ -187,7 +202,7 @@ if (StrUtil.isNotBlank(a)){ int input = Integer.parseInt(a); ReadWriteEntity entity = new ReadWriteEntity(parts[0]+"."+parts[1]+".CodeCheckFeed", input); - logger.info("-------鐩戝惉鍒�,{}鐨凜odeCheck鐨勪俊鍙�",Node); + logger.info("鍙戝姩鏈哄彿锛歿},鐩戝惉鍒皗}鐨凜odeCheck鐨勪俊鍙�",SNCode,Node); miloService.writeToOpcByte(entity); logger.info("鐩戝惉鍒拌繑鍥瀋odecheckfeed淇″彿锛寋}",entity); //棣栫珯浼犺緭璁㈠崟鍙� diff --git a/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java b/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java index e0c7c4a..4230b84 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java +++ b/jcdm-main/src/main/java/com/jcdm/main/webservice/service/ReceivingServices.java @@ -210,6 +210,34 @@ .getAsJsonObject("ET_DATA"); return etData.toString(); } + /** + * 鏂瑰紡--璐� + * 浣跨敤hutool宸ュ叿鍖呬腑鐨勫伐鍏疯浆鍖� + * @param xmlStr + * @return + */ + public static String xmlToJSON1(String xmlStr){ + String status = ""; + if(xmlStr.contains("EV_MESSAGE")){ + JSONObject jsonObject1 = cn.hutool.json.XML.toJSONObject(xmlStr, true); + + ObjectMapper objectMapper = new ObjectMapper(); + JsonNode rootNode = null; + try { + rootNode = objectMapper.readTree(String.valueOf(jsonObject1)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + String evStatus = rootNode + .path("SOAP:Envelope") + .path("SOAP:Body") + .path("n0:ZPP_BC_001.Response") + .path("EV_MESSAGE") + .asText(); + status = evStatus; + } + return status; + } /** * 鏂瑰紡--璐� diff --git a/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml b/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml index c6bcddd..9ccd8f1 100644 --- a/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml +++ b/jcdm-main/src/main/resources/mapper/bs/orderScheduling/BsOrderSchedulingMapper.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper -PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" -"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper"> - + <resultMap type="BsOrderScheduling" id="BsOrderSchedulingResult"> <result property="id" column="id" /> <result property="orderNo" column="order_no" /> @@ -47,7 +47,7 @@ <select id="selectBsOrderSchedulingList" parameterType="BsOrderScheduling" resultMap="BsOrderSchedulingResult"> <include refid="selectBsOrderSchedulingVo"/> - <where> + <where> <if test="orderNo != null and orderNo != ''"> and order_no = #{orderNo}</if> <if test="engineNo != null and engineNo != ''"> and engine_no = #{engineNo}</if> <if test="productType != null and productType != ''"> and product_type = #{productType}</if> @@ -64,8 +64,8 @@ <if test="operator != null and operator != ''"> and operator = #{operator}</if> <if test="operateTime != null and operateTime != ''"> and operate_time = #{operateTime}</if> <if test="status != null and status != ''"> and status = #{status}</if> - <if test="spareField1 != null and spareField1 != ''"> and spare_field_1 = #{spareField1}</if> - <if test="spareField2 != null and spareField2 != ''"> and spare_field_2 = #{spareField2}</if> + <if test="spareField1 != null and spareField1 != ''"> and isnull(spare_field_1,'') != #{spareField1}</if> + <if test="spareField2 != null and spareField2 != ''"> and isnull(spare_field_2,'') != #{spareField2}</if> <if test="spareField3 != null and spareField3 != ''"> and spare_field_3 = #{spareField3}</if> <if test="spareField4 != null and spareField4 != ''"> and spare_field_4 = #{spareField4}</if> <if test="createUser != null and createUser != ''"> and create_user = #{createUser}</if> @@ -146,7 +146,7 @@ </where> order by create_time DESC </select> - + <select id="selectBsOrderSchedulingById" parameterType="Long" resultMap="BsOrderSchedulingResult"> <include refid="selectBsOrderSchedulingVo"/> where id = #{id} @@ -209,7 +209,7 @@ <if test="finalAssemblyOfflineTime != null">final_assembly_offline_time,</if> <if test="cvtLaunchTime != null">cvt_launch_time,</if> <if test="cvtOfflineTime != null">cvt_offline_time,</if> - </trim> + </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="orderNo != null">#{orderNo},</if> <if test="engineNo != null">#{engineNo},</if> @@ -292,7 +292,7 @@ </delete> <delete id="deleteBsOrderSchedulingByIds" parameterType="String"> - delete from bs_order_scheduling where id in + delete from bs_order_scheduling where id in <foreach item="id" collection="array" open="(" separator="," close=")"> #{id} </foreach> diff --git a/jcdm-main/src/main/resources/mapper/da/tileMatchMiddleware/DaTileMatchMiddlewareMapper.xml b/jcdm-main/src/main/resources/mapper/da/tileMatchMiddleware/DaTileMatchMiddlewareMapper.xml new file mode 100644 index 0000000..2c3253e --- /dev/null +++ b/jcdm-main/src/main/resources/mapper/da/tileMatchMiddleware/DaTileMatchMiddlewareMapper.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.jcdm.main.da.tileMatchMiddleware.mapper.DaTileMatchMiddlewareMapper"> + <resultMap type="DaTileMatchMiddleware" id="DaTileMatchMiddlewareResult"> + <result property="id" column="id" /> + <result property="sfcCode" column="sfc_code" /> + <result property="palletNo" column="Pallet_no" /> + <result property="crankshaftNo" column="crankshaft_no" /> + <result property="state" column="state" /> + <result property="remarks" column="remarks" /> + <result property="connectingrodNo" column="connectingRod_no" /> + <result property="cylinder" column="cylinder" /> + </resultMap> + + <sql id="selectDaTileMatchMiddlewareVo"> + select id, sfc_code, Pallet_no, crankshaft_no, state, remarks, connectingRod_no, cylinder from da_tile_match_middleware + </sql> + + <select id="selectDaTileMatchMiddlewareList" parameterType="DaTileMatchMiddleware" resultMap="DaTileMatchMiddlewareResult"> + <include refid="selectDaTileMatchMiddlewareVo"/> + <where> + <if test="sfcCode != null and sfcCode != ''"> and sfc_code = #{sfcCode}</if> + <if test="palletNo != null and palletNo != ''"> and Pallet_no = #{palletNo}</if> + <if test="crankshaftNo != null and crankshaftNo != ''"> and crankshaft_no = #{crankshaftNo}</if> + <if test="state != null "> and state = #{state}</if> + <if test="remarks != null and remarks != ''"> and remarks = #{remarks}</if> + <if test="connectingrodNo != null and connectingrodNo != ''"> and connectingRod_no = #{connectingrodNo}</if> + <if test="cylinder != null "> and cylinder = #{cylinder}</if> + </where> + </select> + + <select id="selectDaTileMatchMiddlewareById" parameterType="Long" resultMap="DaTileMatchMiddlewareResult"> + <include refid="selectDaTileMatchMiddlewareVo"/> + where id = #{id} + </select> + + <insert id="insertDaTileMatchMiddleware" parameterType="DaTileMatchMiddleware"> + insert into da_tile_match_middleware + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null">id,</if> + <if test="sfcCode != null">sfc_code,</if> + <if test="palletNo != null">Pallet_no,</if> + <if test="crankshaftNo != null">crankshaft_no,</if> + <if test="state != null">state,</if> + <if test="remarks != null">remarks,</if> + <if test="connectingrodNo != null">connectingRod_no,</if> + <if test="cylinder != null">cylinder,</if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null">#{id},</if> + <if test="sfcCode != null">#{sfcCode},</if> + <if test="palletNo != null">#{palletNo},</if> + <if test="crankshaftNo != null">#{crankshaftNo},</if> + <if test="state != null">#{state},</if> + <if test="remarks != null">#{remarks},</if> + <if test="connectingrodNo != null">#{connectingrodNo},</if> + <if test="cylinder != null">#{cylinder},</if> + </trim> + </insert> + + <update id="updateDaTileMatchMiddleware" parameterType="DaTileMatchMiddleware"> + update da_tile_match_middleware + <trim prefix="SET" suffixOverrides=","> + <if test="sfcCode != null">sfc_code = #{sfcCode},</if> + <if test="palletNo != null">Pallet_no = #{palletNo},</if> + <if test="crankshaftNo != null">crankshaft_no = #{crankshaftNo},</if> + <if test="state != null">state = #{state},</if> + <if test="remarks != null">remarks = #{remarks},</if> + <if test="connectingrodNo != null">connectingRod_no = #{connectingrodNo},</if> + <if test="cylinder != null">cylinder = #{cylinder},</if> + </trim> + where id = #{id} + </update> + + <delete id="deleteDaTileMatchMiddlewareById" parameterType="Long"> + delete from da_tile_match_middleware where id = #{id} + </delete> + + <delete id="deleteDaTileMatchMiddlewareByIds" parameterType="String"> + delete from da_tile_match_middleware where id in + <foreach item="id" collection="array" open="(" separator="," close=")"> + #{id} + </foreach> + </delete> +</mapper> \ No newline at end of file diff --git a/jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml b/jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml index 8061641..e36a211 100644 --- a/jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml +++ b/jcdm-main/src/main/resources/mapper/da/tileMatchRules/DaTileMatchRulesMapper.xml @@ -39,8 +39,8 @@ <if test="tileName != null and tileName != ''"> and tile_name like concat('%', #{tileName}, '%')</if> <if test="axisParameterNoPosition != null "> and axis_parameter_no_position = #{axisParameterNoPosition}</if> <if test="neckParameterPosition != null "> and neck_parameter_position = #{neckParameterPosition}</if> - <if test="axisValue != null and axisValue != ''"> and axis_value = SUBSTRING(#{axisValue}, axis_parameter_no_position, 1)</if> - <if test="neckValue != null and neckValue != ''"> and neck_value = SUBSTRING(#{neckValue}, neck_parameter_position, 1)</if> + <if test="axisValue != null and axisValue != ''"> and axis_value = SUBSTRING(#{axisValue}, axis_parameter_no_position+1, 1)</if> + <if test="neckValue != null and neckValue != ''"> and neck_value = SUBSTRING(#{neckValue}, neck_parameter_position+1, 1)</if> <if test="tileColor != null and tileColor != ''"> and tile_color = #{tileColor}</if> <if test="createUser != null and createUser != ''"> and create_user = #{createUser}</if> <if test="updateUser != null and updateUser != ''"> and update_user = #{updateUser}</if> diff --git a/jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java b/jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java index 6a15961..c9f410a 100644 --- a/jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java +++ b/jcdm-quartz/src/main/java/com/jcdm/quartz/task/RyTask.java @@ -52,14 +52,38 @@ BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); bsOrderScheduling.setReport10("0"); List<BsOrderScheduling> bsOrderSchedulings = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling); + String status=""; + String ev_meassage=""; for (BsOrderScheduling orderScheduling : bsOrderSchedulings) { - String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0010")); - String status = ReceivingServices.xmlToJSON3(xmlResult); - if(status.equals("1")){ + try { + String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0010")); + ev_meassage=ReceivingServices.xmlToJSON1(xmlResult); + status = ReceivingServices.xmlToJSON3(xmlResult); + } catch (Exception e) { + status="3"; + } + if(status.equals("1")) { orderScheduling.setReport10("1"); int i = bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling); - System.out.println("鏇存柊鐘舵�佹垚鍔�"); - //logger.info("{}鍚堢鎶ュ伐鎴愬姛",orderScheduling.getOrderNo()); + logger.info("{}鍚堢鎶ュ伐鎴愬姛",orderScheduling.getOrderNo()); + }else { + if(StringUtils.isEmpty(orderScheduling.getSpareField1())){ + orderScheduling.setSpareField1("1"); + bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling); + }else{ + if(Integer.valueOf(orderScheduling.getSpareField1())+1>=3) { + //绱鎶ュ伐寮傚父瓒呰繃3娆� + orderScheduling.setReport10("3"); + orderScheduling.setSpareField1(String.valueOf(Integer.valueOf(orderScheduling.getSpareField1()) + 1)); + }else { + orderScheduling.setSpareField1(String.valueOf(Integer.valueOf(orderScheduling.getSpareField1()) + 1)); + } + bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling); + } + if(status.equals("3")) + logger.info("{}鍚堢鎶ュ伐鍥犱负缃戠粶鍘熷洜锛屾姤宸ュけ璐ワ紒",orderScheduling.getOrderNo()); + else + logger.info("{}鍚堢鎶ュ伐澶辫触,鍘熷洜锛歿}",orderScheduling.getOrderNo(),ev_meassage); } } } @@ -68,14 +92,38 @@ BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); bsOrderScheduling.setReport20("0"); List<BsOrderScheduling> bsOrderSchedulings = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling); + String status=""; + String ev_meassage=""; for (BsOrderScheduling orderScheduling : bsOrderSchedulings) { - String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0020")); - String status = ReceivingServices.xmlToJSON3(xmlResult); + try { + String xmlResult = ReceivingServices.getInterfaceInformationXml(url, getProductionPlanInformationXml(orderScheduling.getOrderNo(), "0020")); + ev_meassage=ReceivingServices.xmlToJSON1(xmlResult); + status = ReceivingServices.xmlToJSON3(xmlResult); + } catch (Exception e) { + status="3"; + } if(status.equals("1")){ orderScheduling.setReport20("1"); int i = bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling); - System.out.println("鏇存柊鐘舵�佹垚鍔�"); - //logger.info("{}鎬昏鎶ュ伐鎴愬姛",orderScheduling.getOrderNo()); + logger.info("{}鎬昏鎶ュ伐鎴愬姛",orderScheduling.getOrderNo()); + }else { + if(StringUtils.isEmpty(orderScheduling.getSpareField2())){ + orderScheduling.setSpareField2("1"); + bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling); + }else{ + if(Integer.valueOf(orderScheduling.getSpareField2())+1>=3) { + //绱鎶ュ伐寮傚父瓒呰繃3娆� + orderScheduling.setReport20("3"); + orderScheduling.setSpareField2(String.valueOf(Integer.valueOf(orderScheduling.getSpareField2()) + 1)); + }else{ + orderScheduling.setSpareField2(String.valueOf(Integer.valueOf(orderScheduling.getSpareField2()) + 1)); + } + bsOrderSchedulingService.updateBsOrderScheduling(orderScheduling); + if(status.equals("3")) + logger.info("{}鎬昏鎶ュ伐鍥犱负缃戠粶鍘熷洜锛屾姤宸ュけ璐ワ紒",orderScheduling.getOrderNo()); + else + logger.info("{}鎬昏鎶ュ伐澶辫触,鍘熷洜锛歿}",orderScheduling.getOrderNo(),ev_meassage); + } } } } diff --git a/jcdm-ui/src/api/main/bs/tileMatchRules/tileMatchRules.js b/jcdm-ui/src/api/main/bs/tileMatchRules/tileMatchRules.js index 6baf4e4..050732f 100644 --- a/jcdm-ui/src/api/main/bs/tileMatchRules/tileMatchRules.js +++ b/jcdm-ui/src/api/main/bs/tileMatchRules/tileMatchRules.js @@ -42,3 +42,11 @@ method: 'delete' }) } + +export function setBarcode(param) { + return request({ + url: '/da/tileMatchRules/barcode', + method: 'get', + params: param + }) +} diff --git a/jcdm-ui/src/api/main/da/opcuaconfig/opcuaconfig.js b/jcdm-ui/src/api/main/da/opcuaconfig/opcuaconfig.js index e8ceb38..5f30fe2 100644 --- a/jcdm-ui/src/api/main/da/opcuaconfig/opcuaconfig.js +++ b/jcdm-ui/src/api/main/da/opcuaconfig/opcuaconfig.js @@ -18,10 +18,11 @@ } // 鏌ヨ浜や簰淇″彿閰嶇疆璇︾粏 -export function setBarcode(barcode,locationCode) { +export function setBarcode1(param) { return request({ - url: '/da/opcuaconfig/barcode/' + barcode+'/'+locationCode, - method: 'get' + url: '/da/opcuaconfig/barcode1', + method: 'get', + params: param }) } diff --git a/jcdm-ui/src/api/main/da/tileMatchMiddleware/tileMatchMiddleware.js b/jcdm-ui/src/api/main/da/tileMatchMiddleware/tileMatchMiddleware.js new file mode 100644 index 0000000..b4159a7 --- /dev/null +++ b/jcdm-ui/src/api/main/da/tileMatchMiddleware/tileMatchMiddleware.js @@ -0,0 +1,60 @@ +import request from '@/utils/request' + +// 鏌ヨ娲诲杩炴潌閰嶇摝涓棿鍒楄〃 +export function listTileMatchMiddleware(query) { + return request({ + url: '/da/tileMatchMiddleware/list', + method: 'get', + params: query + }) +} + +// 鏌ヨ娲诲杩炴潌閰嶇摝涓棿璇︾粏 +export function getTileMatchMiddleware(id) { + return request({ + url: '/da/tileMatchMiddleware/' + id, + method: 'get' + }) +} + +// 鏂板娲诲杩炴潌閰嶇摝涓棿 +export function addTileMatchMiddleware(data) { + return request({ + url: '/da/tileMatchMiddleware', + method: 'post', + data: data + }) +} + +// 淇敼娲诲杩炴潌閰嶇摝涓棿 +export function updateTileMatchMiddleware(data) { + return request({ + url: '/da/tileMatchMiddleware', + method: 'put', + data: data + }) +} + +// 鍒犻櫎娲诲杩炴潌閰嶇摝涓棿 +export function delTileMatchMiddleware(id) { + return request({ + url: '/da/tileMatchMiddleware/' + id, + method: 'delete' + }) +} + +export function setBarcodeup(param) { + return request({ + url: '/da/tileMatchMiddleware/barcodeup', + method: 'get', + params: param + }) +} + +export function setBarcode(param) { + return request({ + url: '/da/tileMatchMiddleware/barcode', + method: 'get', + params: param + }) +} diff --git a/jcdm-ui/src/views/main/bs/orderScheduling/index.vue b/jcdm-ui/src/views/main/bs/orderScheduling/index.vue index 4fb42a3..52ebbac 100644 --- a/jcdm-ui/src/views/main/bs/orderScheduling/index.vue +++ b/jcdm-ui/src/views/main/bs/orderScheduling/index.vue @@ -62,20 +62,33 @@ </el-form-item> <br/> <el-form-item label="鍚堢鎶ュ伐" prop="report10"> - <el-input + <el-select v-model="queryParams.report10" placeholder="璇疯緭鍏ュ悎绠辨姤宸�" clearable - @keyup.enter.native="handleQuery" - /> + @keyup.enter.native="handleQuery"> + <el-option + v-for="dict in dict.type.workreportingstatus" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> </el-form-item> <el-form-item label="鎬昏鎶ュ伐" prop="report20"> - <el-input + <el-select v-model="queryParams.report20" placeholder="璇疯緭鍏ユ�昏鎶ュ伐" clearable - @keyup.enter.native="handleQuery" - /> + @keyup.enter.native="handleQuery"> + + <el-option + v-for="dict in dict.type.workreportingstatus" + :key="dict.value" + :label="dict.label" + :value="dict.value" + /> + </el-select> </el-form-item> <el-form-item label="CVT鎶ュ伐" prop="report30"> <el-input @@ -195,14 +208,23 @@ </template> </el-table-column> <el-table-column label="鍚堢鎶ュ伐" align="center" prop="report10"> - + <template slot-scope="scope"> + <dict-tag :options="dict.type.workreportingstatus" :value="scope.row.report10"/> + </template> </el-table-column> + <el-table-column label="鎬昏鎶ュ伐" align="center" prop="report20"> - + <template slot-scope="scope"> + <dict-tag :options="dict.type.workreportingstatus" :value="scope.row.report20"/> + </template> </el-table-column> + <el-table-column label="CVT鎶ュ伐" align="center" prop="report30"> - </el-table-column> + + <el-table-column label="鎶ュ伐寮傚父" align="center" prop="report30"> + </el-table-column> + <el-table-column label="鍚堢涓婄嚎鏃堕棿" align="center" prop="boxClosingOnlineTime" width="160"> <template slot-scope="scope"> <span>{{ parseTime(scope.row.boxClosingOnlineTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span> @@ -321,7 +343,7 @@ export default { name: "OrderScheduling", - dicts: ['order_scheduling_produce_status','quality_status','print_status','material_type'], + dicts: ['order_scheduling_produce_status','quality_status','print_status','material_type','workreportingstatus'], data() { return { // 閬僵灞� diff --git a/jcdm-ui/src/views/main/cfkb/BalanceShaft/index.vue b/jcdm-ui/src/views/main/cfkb/BalanceShaft/index.vue index b929b8c..25d3719 100644 --- a/jcdm-ui/src/views/main/cfkb/BalanceShaft/index.vue +++ b/jcdm-ui/src/views/main/cfkb/BalanceShaft/index.vue @@ -3,16 +3,6 @@ <div style="width: 100%"> <el-card class="box-card" > <el-form :model="from" size="large" :inline="true" label-width="68px" @submit.native.prevent> -<!-- <el-form-item label="绠变綋鐮�:" prop="scanObject1" >--> -<!-- <el-input--> -<!-- style="width: 350px"--> -<!-- v-model="from.scanObject1"--> -<!-- placeholder="璇疯緭鍏ョ浣撶爜"--> -<!-- clearable--> -<!-- @keyup.enter.native="handleQuery"--> -<!-- @input="handleQuery"--> -<!-- />--> -<!-- </el-form-item>--> <el-form-item label-width="200" label="骞宠 杞寸爜" :prop="from.scanObject2" style="align-content: center"> <input v-model="from.scanObject2" ref="inputdata" @@ -30,29 +20,6 @@ :key="dict.value" :label="dict.label" :value="dict.value" - @keyup.enter.native="handleQuery" - /> - </el-select> - </el-form-item> - <el-form-item label="杞村悕绉�:" prop="axisName" > - <el-select v-model="from.axisName" placeholder="" clearable style="width: 125px"> - <el-option - v-for="dict in dict.type.axisname" - :key="dict.value" - :label="dict.label" - :value="dict.value" - @keyup.enter.native="handleQuery" - /> - </el-select> - </el-form-item> - <el-form-item label="棰堝悕绉�:" prop="neckName" > - <el-select v-model="from.neckName" placeholder="" clearable style="width: 125px"> - <el-option - v-for="dict in dict.type.neckname" - :key="dict.value" - :label="dict.label" - :value="dict.value" - @keyup.enter.native="handleQuery" /> </el-select> </el-form-item> @@ -63,7 +30,6 @@ :key="dict.value" :label="dict.label" :value="dict.value" - @keyup.enter.native="handleQuery" /> </el-select> </el-form-item> @@ -86,17 +52,11 @@ <el-descriptions-item label="骞宠 杞寸爜"> <span>{{queryParams.scanObject2}}</span> </el-descriptions-item> - <el-descriptions-item label="杞村悕绉�"> - <span>{{queryParams.axisName}}</span> - </el-descriptions-item> - <el-descriptions-item label="棰堝悕绉�"> - <span>{{queryParams.neckName}}</span> - </el-descriptions-item> <el-descriptions-item label="鐡﹀悕绉�"> <span>{{queryParams.tileName}}</span> </el-descriptions-item> <el-descriptions-item label="閰嶇摝棰滆壊"> - <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.tileColor}}</span> + <span v-for="(word, index) in queryParams.words" :key="index" :style="{ backgroundColor: queryParams.colors[index],fontSize: '30px',}">{{ word }}</span> </el-descriptions-item> </el-descriptions> <el-divider></el-divider> @@ -108,6 +68,7 @@ <script> import VueQr from 'vue-qr' import { listTileMatchRules, getTileMatchRules, delTileMatchRules, addTileMatchRules, updateTileMatchRules } from "@/api/main/bs/tileMatchRules/tileMatchRules"; +import {setBarcode} from "@/api/main/bs/tileMatchRules/tileMatchRules"; export default { name: "index", dicts: ['colour_hex','productseries','axisname','neckname','tilename'], @@ -124,13 +85,12 @@ from:{ pageNum: 1, pageSize: 10, - productSeries: null, - //scanObject1: null, - //scanObject1: 'P0SQ0-01FZ01-1000;T231224116;DBBBBA', - scanObject2: '', + productSeries: '380Y', + scanObject1: null, + scanObject2: 'P0NYK0410001000;T231107031;D2222232;S500003', axisName: null, neckName: null, - tileName: null, + tileName: '骞宠 杞寸摝', axisParameterNoPosition: null, neckParameterPosition: null, axisValue: null, @@ -146,11 +106,12 @@ pageSize: 10, productSeries: null, scanObject1: null, - // scanObject1: 'P0SQ0-01FZ01-1000;T231224116;DBBBBA', - scanObject2: null, + scanObject2: 'P0NYK0410001000;T231107031;D2222232;S500003', axisName: null, neckName: null, tileName: null, + words: ['------', '------', ], + colors: ['#FFFFFF', '#FFFFFF'], axisParameterNoPosition: null, neckParameterPosition: null, axisValue: null, @@ -192,6 +153,14 @@ this.scannerFlag = true console.log('鏉$爜锛�',this.from.scanObject2) //鎵弿瀹屾垚 + if (typeof this.from.scanObject2 !== 'undefined') { + console.log('鏉$爜锛�',this.from.scanObject2,'HOP040') + setBarcode({barcode:this.from.scanObject2,locationCode:'HOP040'}).then(res =>{ + console.log('res',res) + this.from.scanObject1=res + }) + } + this.handleQuery() } }, /** 鎼滅储鎸夐挳鎿嶄綔 */ @@ -199,9 +168,9 @@ this.clear(); if(this.from.scanObject1 !== null && this.from.scanObject2 !== null - && this.from.axisName !== null && this.from.axisName !== "" - && this.from.neckName !== null && this.from.neckName !== "" - && this.from.tileName !== null && this.from.tileName !== "" + // && this.from.axisName !== null && this.from.axisName !== "" + // && this.from.neckName !== null && this.from.neckName !== "" + // && this.from.tileName !== null && this.from.tileName !== "" && this.from.productSeries !== null && this.from.productSeries !== "") { this.axisValueextracted(); @@ -224,6 +193,7 @@ } } else{ + console.log("鎼滅储鏉′欢",this.from.scanObject1 ,this.from.scanObject2) const h = this.$createElement; this.$message({ message: h('p',null, [ @@ -269,7 +239,14 @@ } console.log(queryParams) listTileMatchRules(queryParams).then(response => { - this.queryParams.tileColor = response.rows[0].tileColor; + // this.queryParams.tileColor = response.rows[0].tileColor; + this.queryParams.words= ['------', '------'] + this.queryParams.colors= ['#FFFFFF', '#FFFFFF'] + for (var i=0;i<response.rows.length;i++){ + this.queryParams.colors[i]=response.rows[i].tileColor; + this.queryParams.words[i]=response.rows[i].tileName; + } + console.log('棰滆壊锛�',response) }); }, clear(){ diff --git a/jcdm-ui/src/views/main/cfkb/connectingRod/index.vue b/jcdm-ui/src/views/main/cfkb/connectingRod/index.vue index b0d7ff5..80351c2 100644 --- a/jcdm-ui/src/views/main/cfkb/connectingRod/index.vue +++ b/jcdm-ui/src/views/main/cfkb/connectingRod/index.vue @@ -2,7 +2,7 @@ <div class="app-container"> <div style="width: 100%"> <el-card class="box-card" > - <el-form :model="from" ref="queryForm" :inline="true" > + <el-form :model="from" size="large" :inline="true" label-width="68px" @submit.native.prevent> <el-form-item label="鎵樼洏鐮�:" prop="scanObject1" > <el-input style="width: 350px" @@ -13,14 +13,11 @@ @input="handleQuery" /> </el-form-item> - <el-form-item label="杩炴潌鐮�:" prop="scanObject2" > - <el-input - style="width: 350px" - v-model="from.scanObject2" - placeholder="璇疯緭鍏ヨ繛鏉嗙爜" - clearable - @keyup.enter.native="handleQuery" - @input="handleQuery" + <el-form-item label-width="200" label="杩炴潌鐮�" :prop="from.scanObject2" style="align-content: center"> + <input v-model="from.scanObject2" + ref="inputdata" + style="height: 39px; width: 300px" + placeholder="璇疯緭鍏ヨ繛鏉嗙爜" /> </el-form-item> </el-form> @@ -30,28 +27,6 @@ <el-option v-for="dict in dict.type.productseries" - :key="dict.value" - :label="dict.label" - :value="dict.value" - @keyup.enter.native="handleQuery" - /> - </el-select> - </el-form-item> - <el-form-item label="杞村悕绉�:" prop="axisName" > - <el-select v-model="from.axisName" placeholder="" clearable style="width: 125px"> - <el-option - v-for="dict in dict.type.axisname" - :key="dict.value" - :label="dict.label" - :value="dict.value" - @keyup.enter.native="handleQuery" - /> - </el-select> - </el-form-item> - <el-form-item label="棰堝悕绉�:" prop="neckName" > - <el-select v-model="from.neckName" placeholder="" clearable style="width: 125px"> - <el-option - v-for="dict in dict.type.neckname" :key="dict.value" :label="dict.label" :value="dict.value" @@ -83,23 +58,17 @@ <el-descriptions-item label="鏈哄瀷"> <span>{{queryParams.productSeries}}</span> </el-descriptions-item> - <el-descriptions-item label="绠变綋鐮�"> + <el-descriptions-item label="鏇茶酱鐮�"> <span>{{queryParams.scanObject1}}</span> </el-descriptions-item> - <el-descriptions-item label="鏇茶酱鐮�"> + <el-descriptions-item label="杩炴潌鐮�"> <span>{{queryParams.scanObject2}}</span> - </el-descriptions-item> - <el-descriptions-item label="杞村悕绉�"> - <span>{{queryParams.axisName}}</span> - </el-descriptions-item> - <el-descriptions-item label="棰堝悕绉�"> - <span>{{queryParams.neckName}}</span> </el-descriptions-item> <el-descriptions-item label="鐡﹀悕绉�"> <span>{{queryParams.tileName}}</span> </el-descriptions-item> - <el-descriptions-item label="閲嶉噺"> - <span>{{queryParams.weight}}</span> + <el-descriptions-item label="杩炴潌鐮�"> + <span>{{queryParams.axisName}}</span> </el-descriptions-item> <el-descriptions-item label="閰嶇摝棰滆壊"> <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.tileColor}}</span> @@ -113,7 +82,8 @@ </template> <script> import VueQr from 'vue-qr' -import { listTileMatchRules, getTileMatchRules, delTileMatchRules, addTileMatchRules, updateTileMatchRules } from "@/api/main/bs/tileMatchRules/tileMatchRules"; +import {setBarcode} from "@/api/main/da/tileMatchMiddleware/tileMatchMiddleware"; +import {listTileMatchRules, getTileMatchRules, delTileMatchRules, addTileMatchRules, updateTileMatchRules} from "@/api/main/bs/tileMatchRules/tileMatchRules"; export default { name: "index", dicts: ['colour_hex','productseries','axisname','neckname','tilename'], @@ -122,6 +92,7 @@ }, data(){ return{ + scannerFlag: false, loading: true, tileMatchKbList: [], qrCode: '', @@ -129,13 +100,12 @@ from:{ pageNum: 1, pageSize: 10, - productSeries: null, + productSeries:'380Y', scanObject1: null, - //scanObject1: 'P0SQ0-01FZ01-1000;T231224116;DBBBBA', - scanObject2: 'P0SQ0-041000-1002;T2312020675;DAABBA;S500003', + scanObject2: null, axisName: null, neckName: null, - tileName: null, + tileName: '杩炴潌鐡�', axisParameterNoPosition: null, neckParameterPosition: null, axisValue: null, @@ -151,7 +121,6 @@ pageSize: 10, productSeries: null, scanObject1: null, - // scanObject1: 'P0SQ0-01FZ01-1000;T231224116;DBBBBA', scanObject2: null, axisName: null, neckName: null, @@ -168,15 +137,55 @@ }, } }, + mounted() { + this.setFocus() + this.$refs.inputdata.addEventListener('keydown',this.handleScannerInput) + }, + beforeDestroy() { + this.$refs.inputdata.removeEventListener('keydown',this.handleScannerInput) + }, methods:{ + refresh() { + location.reload(); + }, + setFocus(){ + this.$nextTick(()=>{ + this.$refs.inputdata.focus() + }) + }, + handleScannerInput(event){ + if (this.scannerFlag){ + this.from.scanObject2 = '' + this.$refs.inputdata.value = '' + this.scannerFlag = false + } + const input = event.target + const inputValue = input.value + this.from.scanObject2 = inputValue + if (event.key === 'Enter'){ + this.scannerFlag = true + //console.log('鏉$爜锛�',this.from.scanObject2) + //鎵弿瀹屾垚 + if (typeof this.from.scanObject2 !== 'undefined') { + setBarcode({barcode:this.from.scanObject2,locationCode:'HOP040'}).then(res =>{ + console.log('res',res) + this.queryParams.productSeries=res.sfcCode; + this.queryParams.scanObject1=res.crankshaftNo; + this.queryParams.axisName=res.cylinder; + this.from.scanObject1=this.queryParams.scanObject1 + this.queryParams.tileName=this.from.tileName; + this.queryParams.scanObject2=this.from.scanObject2; + //this.from.scanObject1=res + }) + } + this.handleQuery() + } + }, /** 鎼滅储鎸夐挳鎿嶄綔 */ handleQuery() { this.clear(); if(this.from.scanObject1 !== null && this.from.scanObject2 !== null - && this.from.axisName !== null && this.from.axisName !== "" - && this.from.neckName !== null && this.from.neckName !== "" - && this.from.tileName !== null && this.from.tileName !== "" && this.from.productSeries !== null && this.from.productSeries !== "") { this.axisValueextracted(); @@ -214,7 +223,7 @@ // 鍙栫浣撶爜绗笁娈典负閰嶇摝鍊� axisValueextracted() { - const parts1 = this.from.scanObject1.split(";"); + const parts1 = this.from.scanObject2.split(";"); if (parts1.length >= 3) { //const axisValueextracted = parts1[2].substring(3,4); const axisValueextracted = parts1[2]; @@ -225,7 +234,7 @@ //鍙栨洸杞寸爜绗笁娈典负閰嶇摝鍊� neckValueextracted() { - const parts2 = this.from.scanObject2.split(";"); + const parts2 = this.from.scanObject1.split(";"); if (parts2.length >= 3) { //const neckValueextracted = parts2[2].substring(3,4); const neckValueextracted = parts2[2]; @@ -237,12 +246,12 @@ let queryParams = { productSeries : this.queryParams.productSeries, axisName : this.queryParams.axisName, - neckName : this.queryParams.neckName, + // neckName : this.queryParams.neckName, tileName : this.queryParams.tileName, axisValue: this.queryParams.axisValue, neckValue: this.queryParams.neckValue, } - console.log(queryParams) + console.log('鍙傛暟锛�',queryParams) listTileMatchRules(queryParams).then(response => { this.queryParams.tileColor = response.rows[0].tileColor; }); @@ -253,7 +262,7 @@ }, insetFromToQueryParams(){ this.queryParams.productSeries=this.from.productSeries; - this.queryParams.axisName=this.from.axisName; + //this.queryParams.axisName=this.from.axisName; this.queryParams.neckName=this.from.neckName; this.queryParams.tileName=this.from.tileName; this.queryParams.scanObject1=this.from.scanObject1; diff --git a/jcdm-ui/src/views/main/cfkb/connectingRodUp/index.vue b/jcdm-ui/src/views/main/cfkb/connectingRodUp/index.vue index cc4f3c9..6961117 100644 --- a/jcdm-ui/src/views/main/cfkb/connectingRodUp/index.vue +++ b/jcdm-ui/src/views/main/cfkb/connectingRodUp/index.vue @@ -57,7 +57,7 @@ <span>{{queryParams.scanObject2}}</span> </el-descriptions-item> <el-descriptions-item label="缁撴灉"> - <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.tileColor}}</span> + <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.words}}</span> </el-descriptions-item> </el-descriptions> <el-divider></el-divider> @@ -70,6 +70,7 @@ import VueQr from 'vue-qr' import { listTileMatchRules, getTileMatchRules, delTileMatchRules, addTileMatchRules, updateTileMatchRules } from "@/api/main/bs/tileMatchRules/tileMatchRules"; import {listStationConf,getIp} from "@/api/main/sc/stationConf"; +import {setBarcodeup} from "@/api/main/da/tileMatchMiddleware/tileMatchMiddleware"; export default { name: "index", dicts: ['colour_hex','productseries','axisname','neckname','tilename'], @@ -91,7 +92,7 @@ productSeries: null, scanObject1: null, //scanObject1: 'P0SQ0-01FZ01-1000;T231224116;DBBBBA', - scanObject2: "", + scanObject2: null, axisName: null, neckName: null, tileName: null, @@ -119,6 +120,7 @@ neckParameterPosition: null, axisValue: null, neckValue: null, + words:"", tileColor: null, createUser: null, updateUser: null, @@ -156,8 +158,28 @@ this.from.scanObject2 = inputValue if (event.key === 'Enter'){ this.scannerFlag = true - console.log('鏉$爜锛�',this.from.scanObject2) //鎵弿瀹屾垚 + if (typeof this.from.scanObject2 !== 'undefined'&& typeof this.locationCode !== 'undefined' ) { + setBarcodeup({barcode:this.from.scanObject2,locationCode:this.locationCode}).then(res => { + if (res===''){ + this.$message({ + message:res.msg, + type:'warning' + }) + }else { + this.$message({ + message:'鎿嶄綔鎴愬姛', + type:'success' + }) + console.log('杩斿洖锛�',res) + this.queryParams.productSeries=res.sfcCode; + this.queryParams.scanObject1=res.connectingRodNo; + this.queryParams.scanObject2=res.PalletNo; + this.queryParams.words="鎵爜鎴愬姛"; + this.queryParams.tileColor='#00FF00'; + } + }) + } } }, diff --git a/jcdm-ui/src/views/main/cfkb/crankshaft/index.vue b/jcdm-ui/src/views/main/cfkb/crankshaft/index.vue index 023ed95..7bd506f 100644 --- a/jcdm-ui/src/views/main/cfkb/crankshaft/index.vue +++ b/jcdm-ui/src/views/main/cfkb/crankshaft/index.vue @@ -37,28 +37,28 @@ /> </el-select> </el-form-item> - <el-form-item label="杞村悕绉�:" prop="axisName" > - <el-select v-model="from.axisName" placeholder="" clearable style="width: 125px"> - <el-option - v-for="dict in dict.type.axisname" - :key="dict.value" - :label="dict.label" - :value="dict.value" - @keyup.enter.native="handleQuery" - /> - </el-select> - </el-form-item> - <el-form-item label="棰堝悕绉�:" prop="neckName" > - <el-select v-model="from.neckName" placeholder="" clearable style="width: 125px"> - <el-option - v-for="dict in dict.type.neckname" - :key="dict.value" - :label="dict.label" - :value="dict.value" - @keyup.enter.native="handleQuery" - /> - </el-select> - </el-form-item> +<!-- <el-form-item label="杞村悕绉�:" prop="axisName" >--> +<!-- <el-select v-model="from.axisName" placeholder="" clearable style="width: 125px">--> +<!-- <el-option--> +<!-- v-for="dict in dict.type.axisname"--> +<!-- :key="dict.value"--> +<!-- :label="dict.label"--> +<!-- :value="dict.value"--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-select>--> +<!-- </el-form-item>--> +<!-- <el-form-item label="棰堝悕绉�:" prop="neckName" >--> +<!-- <el-select v-model="from.neckName" placeholder="" clearable style="width: 125px">--> +<!-- <el-option--> +<!-- v-for="dict in dict.type.neckname"--> +<!-- :key="dict.value"--> +<!-- :label="dict.label"--> +<!-- :value="dict.value"--> +<!-- @keyup.enter.native="handleQuery"--> +<!-- />--> +<!-- </el-select>--> +<!-- </el-form-item>--> <el-form-item label="鐡﹀悕绉�:" prop="tileName" > <el-select v-model="from.tileName" placeholder="" clearable style="width: 125px" > <el-option @@ -89,20 +89,20 @@ <el-descriptions-item label="鏇茶酱鐮�"> <span>{{queryParams.scanObject2}}</span> </el-descriptions-item> - <el-descriptions-item label="杞村悕绉�"> - <span>{{queryParams.axisName}}</span> - </el-descriptions-item> - <el-descriptions-item label="棰堝悕绉�"> - <span>{{queryParams.neckName}}</span> - </el-descriptions-item> +<!-- <el-descriptions-item label="杞村悕绉�">--> +<!-- <span>{{queryParams.axisName}}</span>--> +<!-- </el-descriptions-item>--> +<!-- <el-descriptions-item label="棰堝悕绉�">--> +<!-- <span>{{queryParams.neckName}}</span>--> +<!-- </el-descriptions-item>--> <el-descriptions-item label="鐡﹀悕绉�"> <span>{{queryParams.tileName}}</span> </el-descriptions-item> - <el-descriptions-item label="閲嶉噺"> - <span>{{queryParams.weight}}</span> - </el-descriptions-item> +<!-- <el-descriptions-item label="閲嶉噺">--> +<!-- <span>{{queryParams.weight}}</span>--> +<!-- </el-descriptions-item>--> <el-descriptions-item label="閰嶇摝棰滆壊"> - <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.tileColor}}</span> + <span v-for="(word, index) in queryParams.words" :key="index" :style="{ backgroundColor: queryParams.colors[index],fontSize: '30px',}">{{ word }}</span> </el-descriptions-item> </el-descriptions> <el-divider></el-divider> @@ -133,13 +133,14 @@ from:{ pageNum: 1, pageSize: 10, - productSeries: null, - //scanObject1: null, + productSeries: '380Y', + // scanObject1: 'ONYL01FZ0120003023123;1206B0026;D2212BA', + // scanObject2: 'P0NYK0410001000;T231107031;D2222232;S500003', scanObject1: null, scanObject2: null, axisName: null, neckName: null, - tileName: null, + tileName: '涓昏酱鐡�', axisParameterNoPosition: null, neckParameterPosition: null, axisValue: null, @@ -164,6 +165,8 @@ axisValue: null, neckValue: null, tileColor: null, + words: ['------', '------', '------', '------'], + colors: ['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF'], createUser: null, updateUser: null, state: null, @@ -223,9 +226,9 @@ this.clear(); if(this.from.scanObject1 !== null && this.from.scanObject2 !== null - && this.from.axisName !== null && this.from.axisName !== "" - && this.from.neckName !== null && this.from.neckName !== "" - && this.from.tileName !== null && this.from.tileName !== "" + // && this.from.axisName !== null && this.from.axisName !== "" + // && this.from.neckName !== null && this.from.neckName !== "" + // && this.from.tileName !== null && this.from.tileName !== "" && this.from.productSeries !== null && this.from.productSeries !== "") { this.axisValueextracted(); @@ -293,7 +296,13 @@ } console.log(queryParams) listTileMatchRules(queryParams).then(response => { - this.queryParams.tileColor = response.rows[0].tileColor; + this.queryParams.words= ['------', '------', '------', '------'] + this.queryParams.colors= ['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF'] + for (var i=0;i<response.rows.length;i++){ + this.queryParams.colors[i]=response.rows[i].tileColor; + this.queryParams.words[i]=response.rows[i].tileName; + } + console.log('棰滆壊锛�',response) }); }, clear(){ diff --git a/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs1.vue b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs1.vue new file mode 100644 index 0000000..9e98dd8 --- /dev/null +++ b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs1.vue @@ -0,0 +1,83 @@ +<template> + <el-input + 慰nkeyup="this.value=this.value.replace(/\D|/g,'')" + clearable + maxlength="116" + v-model="codeValue" + placeholder="璇疯緭鍏ユ潯褰㈢爜" + /> +</template> +<script> +export default { + data(){ + return { + codeValue: "", + code: "", + lastTime: "", + nextTime: "", + lastCode: "", + nextCode: "", + dtmainId: "", + }; + }, + created() { + window.document.onkeypress = (e) => { + if (window.event) { + // IE + this.nextCode = e.keyCode; + } else if (e.which) { + // Netscape/Firefox/Opera + this.nextCode = e.which; + } + if (e.which === 13) { + // 閿洏鍥炶溅浜嬩欢 + if (this.code.length < 3) return; // 鎵爜鏋殑閫熷害寰堝揩锛屾墜鍔ㄨ緭鍏ョ殑鏃堕棿涓嶄細璁ヽode鐨勯暱搴﹀ぇ浜�2锛屾墍浠ヨ繖閲屼笉浼氬鎵爜鏋湁鏁� + + //console.log("鎵爜缁撴潫銆�"); + //console.log("鏉″舰鐮侊細", this.code); + this.parseQRCode(this.code); // 鑾峰彇鍒版壂鐮佹灙杈撳叆鐨勫唴瀹癸紝鍋氬埆鐨勬搷浣� + this.lastCode = ""; + this.lastTime = ""; + return; + } + this.nextTime = new Date().getTime(); + if (!this.lastTime && !this.lastCode) { + this.code = ""; // 娓呯┖涓婃鐨勬潯褰㈢爜 + this.code += e.key; + //console.log("鎵爜寮�濮�---", this.code); + } + if (this.lastCode && this.lastTime && this.nextTime - this.lastTime > 500) { + // 褰撴壂鐮佸墠鏈塳eypress浜嬩欢鏃�,闃叉棣栧瓧缂哄け + this.code = e.key; + //console.log("闃叉棣栧瓧缂哄け銆傘�傘��", this.code); + } else if (this.lastCode && this.lastTime) { + this.code += e.key; + //console.log("鎵爜涓�傘�傘��", this.code); + } + this.lastCode = this.nextCode; + this.lastTime = this.nextTime; + }; + }, + methods: { + parseQRCode(code) { + // if (code.length === 16) { + // console.log(code); + // } else if (code.length === 0) { + // console.log("璇疯緭鍏ユ潯鐮侊紒"); + // } else { + // alert("鏉$爜涓嶅悎娉曪細" + code); + // } + this.codeValue = code; + // 鍙戦�佺綉缁滆姹� + }, + }, +} +</script> +<style scoped lang="scss"> + +</style> + + + + + diff --git a/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs2.vue b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs2.vue new file mode 100644 index 0000000..24f8f13 --- /dev/null +++ b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs2.vue @@ -0,0 +1,65 @@ +<template> + <div style="height: 100%;width: 100%"> + <el-card class="box-card"> + <el-form size="large" :inline="true" label-width="68px" @submit.native.prevent> + <el-form-item label-width="200" label="绠变綋鐮�" :prop="barcode" style="align-content: center"> + <input v-model="barcode" + ref="inputdata" + style="height: 39px; width: 300px" + placeholder="璇锋壂鎻忕浣撶爜" + /> + </el-form-item> + </el-form> + </el-card> + </div> +</template> +<script> +export default { + data(){ + return { + scannerFlag: false, + barcode: "", + }; + }, + + mounted() { + this.setFocus() + this.$refs.inputdata.addEventListener('keydown',this.handleScannerInput) + }, + beforeDestroy() { + this.$refs.inputdata.removeEventListener('keydown',this.handleScannerInput) + }, + methods: { + refresh() { + location.reload(); + }, + setFocus(){ + this.$nextTick(()=>{ + this.$refs.inputdata.focus() + }) + }, + handleScannerInput(event){ + if (this.scannerFlag){ + this.barcode = '' + this.$refs.inputdata.value = '' + this.scannerFlag = false + } + const input = event.target + const inputValue = input.value + this.barcode = inputValue + if (event.key === 'Enter'){ + this.scannerFlag = true + console.log('鏉$爜锛�',this.barcode) + //鎵弿瀹屾垚 + } + }, + }, +} +</script> +<style scoped lang="scss"> +</style> + + + + + diff --git a/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs3.vue b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs3.vue new file mode 100644 index 0000000..9d6554a --- /dev/null +++ b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs3.vue @@ -0,0 +1,30 @@ +<!--鍦╒ue涓紝浣犲彲浠ヤ娇鐢╲-model鏉ョ粦瀹氬涓緭鍏ュ瓧娈靛埌鍚屼竴涓暟鎹ā鍨嬬殑涓嶅悓灞炴�т笂銆備互涓嬫槸涓�涓畝鍗曠殑渚嬪瓙锛屽睍绀轰簡濡備綍杩炵画鎵弿澶氫釜灞炴�х殑鏉$爜锛�--> +<template> + <div> + <input v-model="scannedCode.partNumber" @input="handleScan" placeholder="Part Number"> + <input v-model="scannedCode.serialNumber" @input="handleScan" placeholder="Serial Number"> + <input v-model="scannedCode.batchCode" @input="handleScan" placeholder="Batch Code"> + </div> +</template> + +<script> +export default { + data() { + return { + scannedCode: { + partNumber: '', + serialNumber: '', + batchCode: '' + } + }; + }, + methods: { + handleScan() { + // 鎵弿澶勭悊閫昏緫 + console.log('Scanned code:', this.scannedCode); + // 鏍规嵁瀹為檯闇�姹傦紝杩欓噷鍙互娣诲姞鎵弿澶勭悊閫昏緫锛屼緥濡傚彂閫佹暟鎹埌鏈嶅姟鍣ㄧ瓑 + } + } +}; +</script> +<!--鍦ㄨ繖涓緥瀛愪腑锛屾垜浠湁涓変釜杈撳叆瀛楁缁戝畾鍒皊cannedCode瀵硅薄鐨勪笉鍚屽睘鎬т笂銆傛瘡褰撶敤鎴疯緭鍏ユ椂锛宧andleScan鏂规硶浼氳璋冪敤锛屼綘鍙互鍦ㄨ繖涓柟娉曚腑娣诲姞鎵弿澶勭悊鐨勯�昏緫銆傝繖涓緥瀛愬亣璁炬壂鎻忓鐞嗗彧鏄畝鍗曞湴鍦ㄦ帶鍒跺彴杈撳嚭鎵弿鐨勪唬鐮佷俊鎭紱鍦ㄥ疄闄呭簲鐢ㄤ腑锛屼綘鍙兘闇�瑕佽繘琛屾洿澶嶆潅鐨勫鐞嗭紝姣斿楠岃瘉鏁版嵁鎴栧彂閫佸埌鏈嶅姟鍣ㄣ��--> diff --git a/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs5.vue b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs5.vue new file mode 100644 index 0000000..d47eea5 --- /dev/null +++ b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs5.vue @@ -0,0 +1,16 @@ +<template> + <div> + <span v-for="(word, index) in words" :key="index" :style="{ color: colors[index] }">{{ word }}</span> + </div> +</template> + +<script> +export default { + data() { + return { + words: ['涓�妗� .', '浜屾。 .', '涓夋。 .', '鍥涙。 .'], + colors: ['#FF0000', '#00FF00', '#0000FF', '#FFFF00'] + }; + } +}; +</script> diff --git a/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs6.vue b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs6.vue new file mode 100644 index 0000000..e1fdc2c --- /dev/null +++ b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs6.vue @@ -0,0 +1,91 @@ +<template> + <el-form size="large" :inline="true" label-width="68px" @submit.native.prevent> + <el-form-item v-for="(item, index) in scanList" + :key="index" + label-width="200" + label="绠变綋鐮�" + :prop="item.value" + style="align-content: center" + @focus="handleFocus(index)"> + <input v-model="item.value" + ref="scanInput${index}" + style="height: 39px; width: 300px" + placeholder="璇锋壂鎻忕浣撶爜" + /> + </el-form-item> + </el-form> +</template> + +<script> +export default { + data() { + return { + scannerFlag: false, + scanList: [ + { value: '' }, + { value: '' }, + // 鍙互鏍规嵁闇�瑕佸鍔犳洿澶氱殑椤� + ], + focusedIndex: 0, // 褰撳墠鑱氱劍鐨刬nput绱㈠紩 + }; + }, + mounted() { + this.focusScanInput(this.focusedIndex); + this.setFocus() + this.$refs.scanInput$index.addEventListener('keydown',this.handleScannerInput) + }, + beforeDestroy() { + this.$refs.scanInput$index.removeEventListener('keydown',this.handleScannerInput) + }, + watch: { + // 鐩戝惉scanList鐨勫彉鍖栵紝濡傛灉鍙戠幇鐒︾偣绱㈠紩瓒呭嚭鑼冨洿锛屽垯鑷姩鑱氱劍鍒版渶鍚庝竴涓緭鍏ユ + scanList: { + deep: true, + handler(newList) { + if (this.focusedIndex >= newList.length) { + this.focusedIndex = newList.length - 1; + this.$nextTick(() => { + this.focusScanInput(this.focusedIndex); + }); + } + }, + }, + }, + + methods: { + refresh() { + location.reload(); + }, + setFocus(){ + this.$nextTick(()=>{ + this.$refs.inputdata.focus() + }) + }, + handleScannerInput(event){ + if (this.scannerFlag){ + this.barcode = '' + this.$refs.inputdata.value = '' + this.scannerFlag = false + } + const input = event.target + const inputValue = input.value + this.item.value = inputValue + if (event.key === 'Enter'){ + this.scannerFlag = true + console.log('鏉$爜锛�',this.item.value) + //鎵弿瀹屾垚 + } + }, + + handleFocus(index) { + this.focusedIndex = index; + }, + focusScanInput(index) { + this.$refs[`scanInput${index}`][0].focus(); + }, + }, +}; +</script> +<!--鍦ㄨ繖涓緥瀛愪腑锛屾垜浠娇鐢ㄤ簡涓�涓暟缁剆canList鏉ュ姩鎬佺敓鎴愬涓緭鍏ユ銆傞�氳繃handleFocus鏂规硶鏇存柊褰撳墠鑱氱劍鐨勮緭鍏ユ绱㈠紩锛� +骞堕�氳繃watch鏉ョ洃鍚瑂canList鐨勫彉鍖栵紝浠ョ‘淇濆鏋滄柊娣诲姞鐨勮緭鍏ユ瓒呭嚭浜嗗師鏈夌殑绱㈠紩鑼冨洿锛� +鎴戜滑鍙互鑷姩鑱氱劍鍒版渶鍚庝竴涓緭鍏ユ涓娿�俧ocusScanInput鏂规硶鐢ㄤ簬璁剧疆鐪熷疄DOM鐨勭劍鐐广��--> diff --git a/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs7.vue b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs7.vue new file mode 100644 index 0000000..193ccad --- /dev/null +++ b/jcdm-ui/src/views/main/cfkb/crankshaftUp/cs7.vue @@ -0,0 +1,93 @@ +<template> + <div style="height: 100%;width: 100%"> + <el-card class="box-card"> + <el-form size="large" :inline="true" label-width="68px" @submit.native.prevent> + <el-form-item label-width="200" label="绠变綋鐮�" :prop="barcode1" style="align-content: center"> + <input v-model="barcode1" + ref="inputdata1" + style="height: 39px; width: 300px" + placeholder="璇锋壂鎻忕浣撶爜" + /> + </el-form-item> + + <el-form-item label-width="200" label="瀹濈爜" :prop="barcode2" style="align-content: center"> + <input v-model="barcode2" + ref="inputdata2" + style="height: 39px; width: 300px" + placeholder="璇锋壂鎻忓疂鐮�" + /> + </el-form-item> + </el-form> + </el-card> + </div> +</template> +<script> +export default { + data(){ + return { + scannerFlag: false, + barcode1: "", + barcode2: "", + }; + }, + + mounted() { + this.setFocus() + this.$refs.inputdata1.addEventListener('keydown',this.handleScannerInput1) + this.$refs.inputdata2.addEventListener('keydown',this.handleScannerInput2) + }, + beforeDestroy() { + this.$refs.inputdata1.removeEventListener('keydown',this.handleScannerInput1) + this.$refs.inputdata2.removeEventListener('keydown',this.handleScannerInput2) + }, + methods: { + refresh() { + location.reload(); + }, + setFocus(){ + this.$nextTick(()=>{ + this.$refs.inputdata1.focus() + }) + }, + handleScannerInput1(event){ + if (this.scannerFlag){ + this.barcode1 = '' + this.$refs.inputdata1.value = '' + this.scannerFlag = false + } + const input = event.target + const inputValue = input.value + this.barcode1 = inputValue + if (event.key === 'Enter'){ + this.scannerFlag = true + console.log('鏉$爜1锛�',this.barcode1) + this.$refs.inputdata2.focus(); + //鎵弿瀹屾垚 + } + }, + handleScannerInput2(event){ + if (this.scannerFlag){ + this.barcode2 = '' + this.$refs.inputdata2.value = '' + this.scannerFlag = false + } + const input = event.target + const inputValue = input.value + this.barcode2 = inputValue + if (event.key === 'Enter'){ + this.scannerFlag = true + console.log('鏉$爜2锛�',this.barcode2) + this.$refs.inputdata1.focus(); + //鎵弿瀹屾垚 + } + }, + }, +} +</script> +<style scoped lang="scss"> +</style> + + + + + diff --git a/jcdm-ui/src/views/main/cfkb/crankshaftUp/index.vue b/jcdm-ui/src/views/main/cfkb/crankshaftUp/index.vue index 180fe9b..e8fb564 100644 --- a/jcdm-ui/src/views/main/cfkb/crankshaftUp/index.vue +++ b/jcdm-ui/src/views/main/cfkb/crankshaftUp/index.vue @@ -57,7 +57,7 @@ <span>{{queryParams.scanObject2}}</span> </el-descriptions-item> <el-descriptions-item label="缁撴灉"> - <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.tileColor}}</span> + <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.words}}</span> </el-descriptions-item> </el-descriptions> <el-divider></el-divider> @@ -70,6 +70,7 @@ import VueQr from 'vue-qr' import { listTileMatchRules, getTileMatchRules, delTileMatchRules, addTileMatchRules, updateTileMatchRules } from "@/api/main/bs/tileMatchRules/tileMatchRules"; import {listStationConf,getIp} from "@/api/main/sc/stationConf"; +import {setBarcode1} from "@/api/main/da/opcuaconfig/opcuaconfig"; export default { name: "index", dicts: ['colour_hex','productseries','axisname','neckname','tilename'], @@ -119,6 +120,7 @@ neckParameterPosition: null, axisValue: null, neckValue: null, + words:"", tileColor: null, createUser: null, updateUser: null, @@ -153,11 +155,41 @@ } const input = event.target const inputValue = input.value - this.from.scanObject2 = inputValue + //this.from.scanObject2 = inputValue if (event.key === 'Enter'){ this.scannerFlag = true - console.log('鏉$爜锛�',this.from.scanObject2) - //鎵弿瀹屾垚 + this.from.scanObject2 = inputValue + //console.log('鏉$爜锛�',this.from.scanObject2,this.locationCode) + if (typeof this.from.scanObject2 !== 'undefined'&& typeof this.locationCode !== 'undefined' ) { + console.log('鏉$爜锛�',this.from.scanObject2,this.locationCode) + setBarcode1({barcode:this.from.scanObject2,locationCode:this.locationCode}).then(res => { + if (res.data===500){ + this.$message({ + message:res.msg, + type:'warning' + }) + }else { + this.$message({ + message:'鎿嶄綔鎴愬姛', + type:'success' + }) + console.log('杩斿洖锛�',res) + this.queryParams.productSeries=res.sfcCode + this.queryParams.scanObject1=res.paramValue + this.queryParams.scanObject2=this.from.scanObject2 + this.queryParams.words="鎵爜鎴愬姛"; + this.queryParams.tileColor='#00FF00'; + + } + }) + + } + //setBarcode({barcode:'1111',locationCode:'555555'}) + // //鎵弿瀹屾垚 + // if(this.form.scanObject2 !== null && this.form.scanObject2 !== undefined){ + // console.log('鏉$爜锛�',this.from.scanObject2,this.locationCode) + // //setBarcode(this.form.scanObject2,this.locationCode) + // } } }, diff --git a/jcdm-ui/src/views/main/cfkb/tileMatchKb/index.vue b/jcdm-ui/src/views/main/cfkb/tileMatchKb/index.vue index d3e8197..75e4bcd 100644 --- a/jcdm-ui/src/views/main/cfkb/tileMatchKb/index.vue +++ b/jcdm-ui/src/views/main/cfkb/tileMatchKb/index.vue @@ -144,7 +144,8 @@ <span>{{queryParams.weight}}</span> </el-descriptions-item> <el-descriptions-item label="閰嶇摝棰滆壊"> - <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.tileColor}}</span> +<!-- <span style="color: #FFFFFF;" :style="{ backgroundColor: queryParams.tileColor }">{{queryParams.tileColor}}</span>--> + <span v-for="(word, index) in queryParams.words" :key="index" :style="{ backgroundColor: queryParams.colors[index],fontSize: '30px',}">{{ word }}</span> </el-descriptions-item> </el-descriptions> <el-divider></el-divider> @@ -173,8 +174,8 @@ pageSize: 10, productSeries: null, //scanObject1: null, - scanObject1: 'P0SQ0-01FZ01-1000;T231224116;DBBBBA', - scanObject2: 'P0SQ0-041000-1002;T2312020675;DAABBA;S500003', + scanObject1: 'ONYL01FZ0120003023123;1206B0026;D2212BA', + scanObject2: 'P0NYK0410001000;T231107031;D2222232;S500003', axisName: null, neckName: null, tileName: null, @@ -202,7 +203,9 @@ neckParameterPosition: null, axisValue: null, neckValue: null, - tileColor: null, + tileColor: "", + words: ['涓�妗� .', '浜屾。 .', '涓夋。 .', '鍥涙。 .'], + colors: ['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF'], createUser: null, updateUser: null, state: null, @@ -216,9 +219,9 @@ this.clear(); if(this.from.scanObject1 !== null && this.from.scanObject2 !== null - && this.from.axisName !== null && this.from.axisName !== "" - && this.from.neckName !== null && this.from.neckName !== "" - && this.from.tileName !== null && this.from.tileName !== "" + // && this.from.axisName !== null && this.from.axisName !== "" + // && this.from.neckName !== null && this.from.neckName !== "" + // && this.from.tileName !== null && this.from.tileName !== "" && this.from.productSeries !== null && this.from.productSeries !== "") { this.axisValueextracted(); @@ -286,7 +289,13 @@ } console.log(queryParams) listTileMatchRules(queryParams).then(response => { - this.queryParams.tileColor = response.rows[0].tileColor; + this.queryParams.words= ['------', '------', '------', '------'] + this.queryParams.colors= ['#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF'] + for (var i=0;i<response.rows.length;i++){ + this.queryParams.colors[i]=response.rows[i].tileColor; + this.queryParams.words[i]=response.rows[i].tileName; + } + console.log('棰滆壊锛�',response) }); }, clear(){ diff --git a/jcdm-ui/src/views/main/da/tileMatchMiddleware/index.vue b/jcdm-ui/src/views/main/da/tileMatchMiddleware/index.vue new file mode 100644 index 0000000..e78118d --- /dev/null +++ b/jcdm-ui/src/views/main/da/tileMatchMiddleware/index.vue @@ -0,0 +1,336 @@ +<template> + <div class="app-container"> + <el-card class="box-card"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> + <el-form-item label="浜у搧SN鍙�" prop="sfcCode"> + <el-input + v-model="queryParams.sfcCode" + placeholder="璇疯緭鍏ヤ骇鍝丼N鍙�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鎵樼洏鍙�" prop="palletNo"> + <el-input + v-model="queryParams.palletNo" + placeholder="璇疯緭鍏ユ墭鐩樺彿" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鏇茶酱鐮�" prop="crankshaftNo"> + <el-input + v-model="queryParams.crankshaftNo" + placeholder="璇疯緭鍏ユ洸杞寸爜" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="鐘舵��" prop="state"> + <el-input + v-model="queryParams.state" + placeholder="璇疯緭鍏ョ姸鎬�" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="杩炴潌鐮�" prop="connectingrodNo"> + <el-input + v-model="queryParams.connectingrodNo" + placeholder="璇疯緭鍏ヨ繛鏉嗙爜" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item style="float: right"> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button> + </el-form-item> + </el-form> + </el-card> + + <el-card style="margin-top: 10px" class="box-card"> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['da:tileMatchMiddleware:add']" + >鏂板</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['da:tileMatchMiddleware:edit']" + >淇敼</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['da:tileMatchMiddleware:remove']" + >鍒犻櫎</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['da:tileMatchMiddleware:export']" + >瀵煎嚭</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table border v-loading="loading" :data="tileMatchMiddlewareList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column label="ID" align="center" prop="id" /> + <el-table-column label="浜у搧SN鍙�" align="center" prop="sfcCode"> + </el-table-column> + <el-table-column label="鎵樼洏鍙�" align="center" prop="palletNo"> + </el-table-column> + <el-table-column label="鏇茶酱鐮�" align="center" prop="crankshaftNo"> + </el-table-column> + <el-table-column label="鐘舵��" align="center" prop="state"> + </el-table-column> + <el-table-column label="澶囨敞" align="center" prop="remarks"> + </el-table-column> + <el-table-column label="杩炴潌鐮�" align="center" prop="connectingrodNo"> + </el-table-column> + <el-table-column label="姘旂几缂栧彿" align="center" prop="cylinder"> + </el-table-column> + <el-table-column fixed="right" width="200" label="鎿嶄綔" align="center" class-name="small-padding fixed-width"> + <template slot-scope="scope"> + <el-button + size="mini" + type="success" + plain + style="width: 72px" + icon="el-icon-edit" + @click="handleUpdate(scope.row)" + v-hasPermi="['da:tileMatchMiddleware:edit']" + >淇敼</el-button> + <el-button + size="mini" + type="danger" + plain + style="width: 72px" + icon="el-icon-delete" + @click="handleDelete(scope.row)" + v-hasPermi="['da:tileMatchMiddleware:remove']" + >鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-card> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 娣诲姞鎴栦慨鏀规椿濉炶繛鏉嗛厤鐡︿腑闂村璇濇 --> + <el-dialog v-dialogpop-up :title="title" :visible.sync="open" width="500px" append-to-body> + <span slot="title"> + <i class="el-icon-s-order"></i> + {{titleName}} + </span> + <el-form ref="form" :model="form" :rules="rules" label-width="80px"> + <el-form-item label="浜у搧SN鍙�" prop="sfcCode"> + <el-input v-model="form.sfcCode" placeholder="璇疯緭鍏ヤ骇鍝丼N鍙�" /> + </el-form-item> + <el-form-item label="鎵樼洏鍙�" prop="palletNo"> + <el-input v-model="form.palletNo" placeholder="璇疯緭鍏ユ墭鐩樺彿" /> + </el-form-item> + <el-form-item label="鏇茶酱鐮�" prop="crankshaftNo"> + <el-input v-model="form.crankshaftNo" placeholder="璇疯緭鍏ユ洸杞寸爜" /> + </el-form-item> + <el-form-item label="鐘舵��" prop="state"> + <el-input v-model="form.state" placeholder="璇疯緭鍏ョ姸鎬�" /> + </el-form-item> + <el-form-item label="澶囨敞" prop="remarks"> + <el-input v-model="form.remarks" placeholder="璇疯緭鍏ュ娉�" /> + </el-form-item> + <el-form-item label="杩炴潌鐮�" prop="connectingrodNo"> + <el-input v-model="form.connectingrodNo" placeholder="璇疯緭鍏ヨ繛鏉嗙爜" /> + </el-form-item> + <el-form-item label="姘旂几缂栧彿" prop="cylinder"> + <el-input v-model="form.cylinder" placeholder="璇疯緭鍏ユ皵缂哥紪鍙�" /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭� 瀹�</el-button> + <el-button @click="cancel">鍙� 娑�</el-button> + </div> + </el-dialog> + </div> +</template> + +<script> +import { listTileMatchMiddleware, getTileMatchMiddleware, delTileMatchMiddleware, addTileMatchMiddleware, updateTileMatchMiddleware } from "@/api/main/da/tileMatchMiddleware/tileMatchMiddleware"; + +export default { + name: "TileMatchMiddleware", + data() { + return { + // 閬僵灞� + loading: true, + titleName: "", + // 閫変腑鏁扮粍 + ids: [], + // 闈炲崟涓鐢� + single: true, + // 闈炲涓鐢� + multiple: true, + // 鏄剧ず鎼滅储鏉′欢 + showSearch: true, + // 鎬绘潯鏁� + total: 0, + // 娲诲杩炴潌閰嶇摝涓棿琛ㄦ牸鏁版嵁 + tileMatchMiddlewareList: [], + // 寮瑰嚭灞傛爣棰� + title: "", + // 鏄惁鏄剧ず寮瑰嚭灞� + open: false, + // 鏌ヨ鍙傛暟 + queryParams: { + pageNum: 1, + pageSize: 10, + sfcCode: null, + palletNo: null, + crankshaftNo: null, + state: null, + remarks: null, + connectingrodNo: null, + cylinder: null + }, + // 琛ㄥ崟鍙傛暟 + form: {}, + // 琛ㄥ崟鏍¢獙 + rules: { + id: [ + { required: true, message: "ID涓嶈兘涓虹┖", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + /** 鏌ヨ娲诲杩炴潌閰嶇摝涓棿鍒楄〃 */ + getList() { + this.loading = true; + listTileMatchMiddleware(this.queryParams).then(response => { + this.tileMatchMiddlewareList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 鍙栨秷鎸夐挳 + cancel() { + this.open = false; + this.reset(); + }, + // 琛ㄥ崟閲嶇疆 + reset() { + this.form = { + id: null, + sfcCode: null, + palletNo: null, + crankshaftNo: null, + state: null, + remarks: null, + connectingrodNo: null, + cylinder: null + }; + this.resetForm("form"); + }, + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 澶氶�夋閫変腑鏁版嵁 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.id) + this.single = selection.length!==1 + this.multiple = !selection.length + }, + /** 鏂板鎸夐挳鎿嶄綔 */ + handleAdd() { + this.reset(); + this.open = true; + this.titleName = "娣诲姞娲诲杩炴潌閰嶇摝涓棿"; + }, + /** 淇敼鎸夐挳鎿嶄綔 */ + handleUpdate(row) { + this.reset(); + const id = row.id || this.ids + getTileMatchMiddleware(id).then(response => { + this.form = response.data; + this.open = true; + this.titleName = "淇敼娲诲杩炴潌閰嶇摝涓棿"; + }); + }, + /** 鎻愪氦鎸夐挳 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.id != null) { + updateTileMatchMiddleware(this.form).then(response => { + this.$modal.msgSuccess("淇敼鎴愬姛"); + this.open = false; + this.getList(); + }); + } else { + addTileMatchMiddleware(this.form).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 鍒犻櫎鎸夐挳鎿嶄綔 */ + handleDelete(row) { + const ids = row.id || this.ids; + this.$modal.confirm('鏄惁纭鍒犻櫎娲诲杩炴潌閰嶇摝涓棿缂栧彿涓�"' + ids + '"鐨勬暟鎹」锛�').then(function() { + return delTileMatchMiddleware(ids); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("鍒犻櫎鎴愬姛"); + }).catch(() => {}); + }, + /** 瀵煎嚭鎸夐挳鎿嶄綔 */ + handleExport() { + this.download('da/tileMatchMiddleware/export', { + ...this.queryParams + }, `tileMatchMiddleware_${new Date().getTime()}.xlsx`) + } + } +}; +</script> -- Gitblit v1.9.3