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) {
@@ -666,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
@@ -854,5 +892,9 @@
        }
    }
    public static String getRandomNumberBetween(double min, double max) {
        return String.format("%.1f",min + (Math.random() * (max - min)));
    }
}