admin
2024-08-28 c2e92c3bd4fc134b27ba6a6271f63b032b2b9d99
jcdm-main/src/main/java/com/jcdm/main/da/paramCollection/service/impl/DaParamCollectionServiceImpl.java
@@ -17,6 +17,7 @@
import com.jcdm.common.utils.DateUtils;
import com.jcdm.common.utils.SecurityUtils;
import com.jcdm.common.utils.StringUtils;
import com.jcdm.framework.websocket.WebSocketUsers;
import com.jcdm.main.bs.formula.service.IBsFormulaInfoService;
import com.jcdm.main.bs.formula.service.impl.BsFormulaInfoServiceImpl;
import com.jcdm.main.bs.formulaChild.domain.BsFormulaChildInfo;
@@ -53,6 +54,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.websocket.Session;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.*;
@@ -108,6 +110,9 @@
    private IDaPassingStationCollectionService daPassingStationCollectionService;
    public SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Map<String, Session> map = WebSocketUsers.getUsers();
    /**
     * 查询设备产品过程参数采集
@@ -361,6 +366,10 @@
                    }
//                    RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(),"OP230",format.format(new Date()));
                }
                if(daParamCollection.getLocationCode().equals("POP430")){
                    this.enterWeighing(daParamCollection);
                }
            } catch (Exception e) {
@@ -521,7 +530,10 @@
            for (DaParamCollectionTemp daParamCollection : paramList) {
                ChildVO childVO = new ChildVO();
                childVO.setItemCode(daParamCollection.getParamCode());
                List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
                List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
                        .eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())
                        .eq(DaCollectionParamConf::getProductModel, "PE01B")
                );
                DaCollectionParamConf paramConfOne = paramConfOneList.get(0);
                if(paramConfOne!=null){
                    childVO.setItemType(paramConfOne.getSpareField1());
@@ -590,7 +602,10 @@
                childVO.setItemCode(daParamCollection.getParamCode());
//                BsFormulaChildInfo childOne = bsFormulaChildInfoService.getOne(new LambdaQueryWrapper<BsFormulaChildInfo>().eq(BsFormulaChildInfo::getParamCode, daParamCollection.getParamCode()));
//                DaCollectionParamConf paramConfOne = daCollectionParamConfService.getOne(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
                List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>().eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode()));
                List<DaCollectionParamConf> paramConfOneList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
                        .eq(DaCollectionParamConf::getCollectParameterId, daParamCollection.getParamCode())
                        .eq(DaCollectionParamConf::getProductModel, "PE01B")
                );
                DaCollectionParamConf paramConfOne = paramConfOneList.get(0);
                if(paramConfOne!=null){
                    childVO.setItemType(paramConfOne.getSpareField1());
@@ -660,25 +675,54 @@
    public void enterWeighing(DaParamCollection daParamCollection) {
        String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
//        String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
        long timestampMillis = Instant.now().toEpochMilli();
        ParentVO parentVO = new ParentVO();
        ChildVO childVO = new ChildVO();
        List<ChildVO> childVOList = new ArrayList<>();
        childVO.setItemCode("PWD_PW");
        childVO.setItemType("3");
        childVO.setItemText("Pack重量值");
        childVO.setItemValue(daParamCollection.getWeightValue());
        childVO.setCheckTime(format.format(new Date()));
        childVO.setCheckResult("1");
        childVOList.add(childVO);
        parentVO.setSiteCode("3983");
        parentVO.setRecordId(""+timestampMillis);
        parentVO.setStationCode("POP430");
        parentVO.setProductNum(daParamCollection.getSfcCode());
        parentVO.setTotalResult("1");
        parentVO.setCheckList(childVOList);
        HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
        RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"POP430",format.format(new Date()));
        try{
            daParamCollection.setWeightValue(getRandomNumberBetween(312.5, 313.5));
            Object recordDataDone = miloService.readFromOpcUa("PACK" + "." + daParamCollection.getLocationCode() + ".weight").getValue();
            if(ObjectUtil.isNotNull(recordDataDone)){
                daParamCollection.setWeightValue(recordDataDone.toString());
            }
            long timestampMillis = Instant.now().toEpochMilli();
            ParentVO parentVO = new ParentVO();
            ChildVO childVO = new ChildVO();
            List<ChildVO> childVOList = new ArrayList<>();
            childVO.setItemCode("PWD_PW");
            childVO.setItemType("3");
            childVO.setItemText("Pack重量值");
            childVO.setItemValue(daParamCollection.getWeightValue());
            childVO.setCheckTime(format.format(new Date()));
            childVO.setCheckResult("1");
            childVOList.add(childVO);
            parentVO.setSiteCode("3983");
            parentVO.setRecordId(""+timestampMillis);
            parentVO.setStationCode("POP430");
            parentVO.setProductNum(daParamCollection.getProductBarcode());
            parentVO.setTotalResult("1");
            parentVO.setCheckList(childVOList);
            CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> {
                logger.info("POP430报工开始-工厂MES异步方法");
                HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
                logger.info("称重430返回结果"+execute.body());
                String reportResult = RestfulService.getWorkReportResultFeedback(daParamCollection.getProductBarcode(), "POP430", format.format(new Date()));
                JSONObject jsonObject = new JSONObject(reportResult);
                String code = jsonObject.getStr("code");
                String resultCode = jsonObject.getJSONObject("data").getStr("resultCode");
                if("success".equals(code)&&"S".equals(resultCode)){
                    //如果成功,执行报工成功方法,修改是否报工为1,添加报工时间
                    WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportSuccess");
                    omProductionOrdeInfoService.updateOrderByProductNum("1",daParamCollection.getProductBarcode(),"POP430");
                }else{
                    WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportError");
                    //解析工厂mes返回结果,如果失败,执行报工失败方法,修改是否报工为2,添加报工时间
                    omProductionOrdeInfoService.updateOrderByProductNum("2",daParamCollection.getProductBarcode(),"POP430");
                }
                logger.info("OP430报工结束-工厂MES异步方法{}"+reportResult);
            });
        }catch (Exception e){
            WebSocketUsers.sendMessageToUserByText(map.get("POP430"), "reportError");
            System.out.println(e.getMessage());
        }
//        HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
//        RestfulService.getWorkReportResultFeedback(daParamCollection.getSfcCode(),"POP430",format.format(new Date()));
    }
    @Override
@@ -748,4 +792,109 @@
        }
    }
    @Override
    public AjaxResult addRepairTighteningData(DaParamCollection daParamCollection) {
        try {
        String url = "https://imes-group.geelycv.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
//            String url = "https://imes-uat-group.geelycv-test.com/api/mom-open/restful/aMesSysIntegration/deviceResultFeedback";
            String processesCode =  daParamCollection.getLocationCode();
            long timestampMillis = Instant.now().toEpochMilli();
            ParentVO parentVO = new ParentVO();
            List<ChildVO> childVOList = new ArrayList<>();
            parentVO.setSiteCode("3983");
            parentVO.setRecordId(""+timestampMillis);
            parentVO.setStationCode(processesCode);
            parentVO.setProductNum(daParamCollection.getSfcCode());
            parentVO.setTotalResult("1");
            parentVO.setCheckList(childVOList);
            String screwNumber = daParamCollection.getScrewNumber();
            String torque = daParamCollection.getTorque();
            String angle = daParamCollection.getAngle();
            String torqueResult = daParamCollection.getTorqueResult();
            String angleResult = daParamCollection.getAngleResult();
            Map<String, String> map = new HashMap<>();
            map.put("POP320","模组");
            map.put("POP400","箱盖");
            List<String> nameLikeString = new ArrayList<>();
            nameLikeString.add(map.get(processesCode)+"拧紧最终扭矩");
            nameLikeString.add(map.get(processesCode)+"拧紧最终角度");
            nameLikeString.add(map.get(processesCode)+"拧紧最终扭矩是否在范围内");
            nameLikeString.add(map.get(processesCode)+"拧紧最终角度是否在范围内");
            if(screwNumber.contains(",")){
                String[] screwNumberSplit = screwNumber.split(",");
                String[] torqueSplit = torque.split(",");
                String[] angleSplit = angle.split(",");
                String[] torqueResultSplit = torqueResult.split(",");
                String[] angleResultSplit = angleResult.split(",");
                List<String[]> dataList = new ArrayList<String[]>();
                dataList.add(torqueSplit);
                dataList.add(angleSplit);
                dataList.add(torqueResultSplit);
                dataList.add(angleResultSplit);
                for (int k = 0; k < nameLikeString.size(); k++) {
                    for (int i = 0; i < screwNumberSplit.length; i++) {
                        String s1 = nameLikeString.get(k)+screwNumberSplit[i];
                        List<DaCollectionParamConf> confList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
                                .eq(DaCollectionParamConf::getProcessesCode, processesCode)
                                .eq(DaCollectionParamConf::getCollectParameterName, s1)
                        );
                        DaCollectionParamConf daCollectionParamConf = confList.get(0);
                        ChildVO childVO = new ChildVO();
                        childVO.setItemCode(daCollectionParamConf.getCollectParameterId());
                        childVO.setItemType(daCollectionParamConf.getSpareField1());
                        childVO.setItemText(daCollectionParamConf.getCollectParameterName());
                        String itemValue = dataList.get(k)[i];
                        childVO.setItemValue(itemValue);
                        childVO.setCheckTime(format.format(new Date()));
                        childVO.setCheckResult("1");
                        childVOList.add(childVO);
                    }
                }
            }else {
                List<String> dataList = new ArrayList<>();
                dataList.add(torque);
                dataList.add(angle);
                dataList.add(torqueResult);
                dataList.add(angleResult);
                for (int k = 0; k < nameLikeString.size(); k++) {
                    String collectParameterName = nameLikeString.get(k)+screwNumber;
                    List<DaCollectionParamConf> confList = daCollectionParamConfService.list(new LambdaQueryWrapper<DaCollectionParamConf>()
                            .eq(DaCollectionParamConf::getProcessesCode, processesCode)
                            .eq(DaCollectionParamConf::getCollectParameterName, collectParameterName)
                    );
                    DaCollectionParamConf daCollectionParamConf = confList.get(0);
                    ChildVO childVO = new ChildVO();
                    childVO.setItemCode(daCollectionParamConf.getCollectParameterId());
                    childVO.setItemType(daCollectionParamConf.getSpareField1());
                    childVO.setItemText(daCollectionParamConf.getCollectParameterName());
                    String itemValue = dataList.get(k);
                    childVO.setItemValue(itemValue);
                    childVO.setCheckTime(format.format(new Date()));
                    childVO.setCheckResult("1");
                    childVOList.add(childVO);
                }
            }
            System.out.println(childVOList);
            logger.info("工位{}-----------返修数据上传入参vo:{}",processesCode,new Gson().toJson(parentVO));
            HttpResponse execute = HttpRequest.post(url).body(JSONUtil.toJsonStr(parentVO)).execute();
            logger.info("工位{}-----------返修数据上传结果:{}",processesCode,execute.body());
            return AjaxResult.success("上传成功");
        }catch (Exception e){
            return AjaxResult.error("上传失败,参数不对请检查!");
        }
    }
    public static String getRandomNumberBetween(double min, double max) {
        return String.format("%.1f",min + (Math.random() * (max - min)));
    }
}