刘小明
2024-07-16 843c50e9c2b35196f5f4c150e33fdc6f6c2d6826
pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/assemblyStep/AssemblyStepSv.java
@@ -145,7 +145,7 @@
        });
        if (deviceList.isEmpty()) {
            throw new RuntimeException("设备号(" + params.deviceNo + ")均不属于当前任务计划");
            throw new RuntimeException("设备号(" + Arrays.toString(params.deviceNo) + ")均不属于当前任务计划");
        }
        if (deviceList.size() > 1) {
            throw new RuntimeException("设备号有且只能有一个属于当前任务计划");
@@ -192,11 +192,17 @@
    private StaDeviceLast buildDeviceLast(QueryVo params, StaAssemblyWorkLast workLast,String deviceNo) {
        //组装数据
        StaDeviceLast record = new StaDeviceLast();
        //pr_assembly_plan input_number +1  投入数加1
        PrAssemblyPlan assemblyPlan = assemblyPlanDao.selectByPrimaryKey(workLast.planId);
        StaDeviceLast preRecord = deviceLastDao.selectByDeviceNo(deviceNo);
        if (preRecord != null) {
            record.id = preRecord.id;
            record.inTime = preRecord.outTime;
            record.outLineTime = preRecord.outLineTime;
        }else{
            record.inTime = new Date();
            record.inLineTime = new Date();
            assemblyPlan.setInputNumber(assemblyPlan.getInputNumber() + 1);
        }
        record.outTime = new Date();
@@ -215,7 +221,15 @@
        if (node.isRecord) {
            record.deviceCycleContent = node.deviceCycleContent;
        }
        if(node.getIsEnd() && record.outLineTime == null){
            record.outLineTime = new Date();
            assemblyPlan.setOutputNumber(assemblyPlan.getOutputNumber() + 1);
        }
        assemblyPlanDao.updateByPrimaryKeySelective(assemblyPlan);
        record.status = getStatus(params.status, node.isEnd,workLast.workType.toString());
        if(record.status == null){
            record.status = preRecord.status;
        }
        return record;
    }
@@ -233,13 +247,13 @@
    }
    /**
     * 状态: 1:组装中,2:完成,3:维修,4:报废
     * 状态: 0:待生产,1:组装中,2:完成,3:维修,4:报废,5:测试不通过,6:品检不通过
     *
     * @param status    状态
     * @param isEndNode 是否结束节点
     * @return 状态
     */
    private int getStatus(String status, boolean isEndNode,String workType) {
    private Integer getStatus(String status, boolean isEndNode,String workType) {
        //组装,维修
        if (WORK_TYPE_ASSEMBLY.equals(workType)||WORK_TYPE_REPAIR.equals(workType)) {
            return switch (status) {
@@ -251,7 +265,7 @@
        //品检,测试
        }else if(WORK_TYPE_INSPECTION.equals(workType)||WORK_TYPE_TEST.equals(workType)){
            return switch (status) {
                case QrCodeConstant.MarkOk -> DeviceStatus.COMPLETED.getCode();
                case QrCodeConstant.MarkOk -> null;//DeviceStatus.COMPLETED.getCode();
                case QrCodeConstant.MarkUnqualified -> DeviceStatus.TEST_FAILED.getCode();
                case QrCodeConstant.MarkWaste -> DeviceStatus.WASTE.getCode();
                default -> throw new RuntimeException("状态错误");
@@ -408,14 +422,17 @@
    public Map<String,String> queryByDeviceNo(String deviceNo) {
        Map<String,String> map = new HashMap<>();
        map.put("deviceNo", deviceNo);
        map.put("proName", "-");
        map.put("proType", "-");
        map.put("proName", "");
        map.put("proType", "");
        PltProduct product = productDao.selectByCode(deviceNo.substring(3,6));
        if(product != null){
            map.put("proName", product.getName());
            map.put("proType", product.getType());
        }
        /*else{
            throw new RuntimeException("该编码("+deviceNo +")不是主要物料(系统中管控的其他设备)");
        }*/
        return map;
    }