From 04b8eff075a04db23e6f908855699b4d2954588c Mon Sep 17 00:00:00 2001 From: yyt <306727702@qq.com> Date: 星期四, 23 五月 2024 18:47:01 +0800 Subject: [PATCH] 380新产品,优化 --- jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java | 211 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 182 insertions(+), 29 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java index 8dee271..e20f269 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/controller/BsOrderSchedulingController.java @@ -1,45 +1,50 @@ package com.jcdm.main.bs.orderScheduling.controller; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; - import cn.hutool.core.collection.CollUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; -import com.jcdm.common.annotation.Excel; -import com.jcdm.common.core.domain.R; -import com.jcdm.common.core.domain.entity.SysDictData; -import com.jcdm.common.utils.DictUtils; -import com.jcdm.common.utils.StringUtils; -import com.jcdm.main.bs.orderScheduling.vo.FollowReportVO; -import com.jcdm.main.bs.orderScheduling.vo.LineChartVO; -import com.jcdm.main.da.paramCollection.domain.DaParamCollection; -import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; -import com.jcdm.system.service.ISysDictDataService; -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.core.domain.R; +import com.jcdm.common.core.domain.entity.SysDictData; +import com.jcdm.common.core.page.TableDataInfo; import com.jcdm.common.enums.BusinessType; +import com.jcdm.common.utils.SecurityUtils; +import com.jcdm.common.utils.StringUtils; +import com.jcdm.common.utils.poi.ExcelUtil; +import com.jcdm.main.bs.orderScheduling.common.Constants; import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; -import com.jcdm.common.utils.poi.ExcelUtil; -import com.jcdm.common.core.page.TableDataInfo; +import com.jcdm.main.bs.orderScheduling.vo.FollowReportVO; +import com.jcdm.main.bs.orderScheduling.vo.LineChartVO; +import com.jcdm.main.bs.orderScheduling.vo.SumDataVO; +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.passingStationCollection.domain.DaPassingStationCollection; +import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo; +import com.jcdm.main.om.productionOrde.service.impl.OmProductionOrdeInfoServiceImpl; +import com.jcdm.main.plcserver.conf.OPCElement; +import com.jcdm.main.plcserver.sub.OPCUaSubscription; +import com.jcdm.system.service.ISysDictDataService; +import com.kangaroohy.milo.model.ReadWriteEntity; +import com.kangaroohy.milo.service.MiloService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * 璁㈠崟鎺掍骇Controller @@ -57,6 +62,29 @@ @Resource private ISysDictDataService iSysDictDataService; + + @Resource + private OmProductionOrdeInfoServiceImpl productionOrdeInfoService; + @Resource + private DaParamCollectionMapper daParamCollectionService; + + @Autowired + MiloService miloService; + + @Value("${websocketUrl}") + private String websocketUrl; + + @GetMapping("/forceUpload") + public void forceUpload() throws Exception { + ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP121_ZZ_CODE_CHECK, 1); + miloService.writeToOpcByte(entity); + } + + @GetMapping("/websocketUrl") + public String websocketName() { + return websocketUrl; + } + /** * 鏌ヨ璁㈠崟鎺掍骇鍒楄〃 @@ -168,6 +196,21 @@ return getDataTable(list); } + @GetMapping("/list3") + public TableDataInfo list3(BsOrderScheduling bsOrderScheduling) + { + startPage(); + List<BsOrderScheduling> list = new ArrayList<>(); + if (StringUtils.isNotEmpty(bsOrderScheduling.getOrderNo())){ + list = bsOrderSchedulingService.selectBsOrderSchedulingPage(bsOrderScheduling); + } + List<BsOrderScheduling> collect = list.stream().filter(x -> Constants.UN_QUALIFIED.equals(x.getQualityStatus())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect)){ + String.valueOf(collect.size()); + } + return getDataTable(list); + } + /** * 瀵煎嚭璁㈠崟鎺掍骇鍒楄〃 */ @@ -223,4 +266,114 @@ { return toAjax(bsOrderSchedulingService.deleteBsOrderSchedulingByIds(ids)); } + @GetMapping("/getSumData") + public R getSumData(BsOrderScheduling bsOrderScheduling){ + List<BsOrderScheduling> list = new ArrayList<>(); + int onlineNum = 0; + int finishNum = 0; + if (StringUtils.isNotEmpty(bsOrderScheduling.getOrderNo())){ + + list = bsOrderSchedulingService.selectBsOrderSchedulingPage(bsOrderScheduling); + List<BsOrderScheduling> onlineNumList = list.stream().filter(x -> Constants.ORDER_STATUS_ING.equals(x.getProductionStatus())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(onlineNumList)){ + onlineNum = onlineNumList.size(); + } + List<BsOrderScheduling> finishNumList = list.stream().filter(x -> Constants.FINISH_PRODUCTION.equals(x.getProductionStatus())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(finishNumList)){ + finishNum = finishNumList.size(); + } + } + List<BsOrderScheduling> collect = list.stream().filter(x -> Constants.UN_QUALIFIED.equals(x.getQualityStatus())).collect(Collectors.toList()); + String unqualified = "0"; + if (CollUtil.isNotEmpty(collect)){ + unqualified = String.valueOf(collect.size()); + } + SumDataVO vo = new SumDataVO(); + vo.setFinishNum(finishNum); + vo.setOnlineNum(onlineNum); + vo.setUnqualified(unqualified); + return R.ok(vo); + } + + /** + * 鏍¢獙鍙戝姩鏈哄彿鏄惁鍜屾満鍨嬪尮閰嶃�佹槸鍚﹂噸澶嶆壂鎻忋�佹槸鍚﹁秴鍑鸿鍒掓暟閲� + * @param engineNo 绠变綋鐮� + * @param model 鏈哄瀷 + * @return boolean + */ + @Transactional(rollbackFor = Exception.class) + @GetMapping("/engineNoIsInModel") + public R engineNoIsInModel(String engineNo,String model,String orderNo) throws Exception { + + if (StringUtils.isEmpty(engineNo)){ + return R.ok(500,"绠变綋鐮佷负绌烘垨宸插瓨鍦紝璇烽噸璇�"); + } + + BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); + bsOrderScheduling.setOrderNo(orderNo); + //bsOrderScheduling.setProductionStatus("1"); + List<BsOrderScheduling> allList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling); + List<BsOrderScheduling> dlist = allList.stream().filter(x->x.getProductionStatus().equals(Constants.WAIT_PRODUCTION)).collect(Collectors.toList()); + List<BsOrderScheduling> collect = allList.stream().filter(x -> x.getProductionStatus().equals(Constants.ORDER_STATUS_ING) + ||x.getProductionStatus().equals(Constants.FINISH_PRODUCTION)).collect(Collectors.toList()); + + BsOrderScheduling OrderScheduling=dlist.get(0); + + DaParamCollection daParamCollection = new DaParamCollection(); + daParamCollection.setParamValue(engineNo); + daParamCollection.setSfcCode("OP010"); + List<DaParamCollection> list = daParamCollectionService.selectDaParamCollectionList(daParamCollection); + if (CollUtil.isNotEmpty(list)){ + return R.ok(500,"宸插瓨鍦ㄦ绠变綋鐮侊紝璇峰嬁閲嶅鎵弿"); + } + + OmProductionOrdeInfo info = new OmProductionOrdeInfo(); + info.setWorkOrderNo(orderNo); + List<OmProductionOrdeInfo> omProductionOrdeInfos = productionOrdeInfoService.selectOmProductionOrdeInfoList(info); + if (CollUtil.isNotEmpty(omProductionOrdeInfos)){ + OmProductionOrdeInfo omProductionOrdeInfo = omProductionOrdeInfos.get(0); + Long planQty = omProductionOrdeInfo.getPlanQty(); + if (planQty<collect.size()){ + return R.ok(500,"瓒呭嚭璁″垝鏁伴噺锛岃妫�鏌ュ悗閲嶈瘯"); + } + } + //鎻掑叆鏁版嵁 + DaParamCollection saveData = new DaParamCollection(); + saveData.setSfcCode(OrderScheduling.getEngineNo()); + saveData.setParamValue(engineNo); + saveData.setLocationCode("OP010"); + saveData.setParamCode("XTM"); + saveData.setParamName("绠变綋鐮�"); + daParamCollectionService.insertDaParamCollection(saveData); + + //鏇存柊涓婄嚎鏁伴噺 + int onlineNum = 0; + List<BsOrderScheduling> onlineNumList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling) + .stream().filter(x -> Constants.ORDER_STATUS_ING.equals(x.getProductionStatus())||x.getProductionStatus().equals(Constants.FINISH_PRODUCTION)).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(onlineNumList)){ + onlineNum = onlineNumList.size(); + } + OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo(); + omProductionOrdeInfo.setWorkOrderNo(orderNo); + List<OmProductionOrdeInfo> omList = productionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo); + if (CollUtil.isNotEmpty(omList)){ + OmProductionOrdeInfo omInfo = omList.get(0); + String s = String.valueOf(onlineNum); + long l = Long.parseLong(s); + omInfo.setActualOnlineQty(l); + productionOrdeInfoService.updateOmProductionOrdeInfo(omInfo); + } + + //OPC鎿嶄綔 + ReadWriteEntity entity = new ReadWriteEntity("CFL4HX.HOP010.Code", OrderScheduling.getEngineNo()); + OPCUaSubscription.miloService.writeToOpcUa(entity);//鍐橲N + ReadWriteEntity entity2 = new ReadWriteEntity("CFL4HX.HOP010.SNDoor", 1); + OPCUaSubscription.miloService.writeToOpcByte(entity2);//鍐欏畬鎴� + + OrderScheduling.setProductionStatus("2"); + bsOrderSchedulingService.updateBsOrderScheduling(OrderScheduling); + return R.ok(); + } + + } -- Gitblit v1.9.3