ZengTao
2024-10-24 22fb46f2db1714a6b450b353669d26908884653f
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import com.mes.common.config.Const;
import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
import com.mes.rawglassdetails.entity.request.RawGlassRequest;
@@ -17,6 +19,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -30,6 +33,9 @@
    @Autowired
    RawGlassStorageTaskService rawGlassStorageTaskService;
    @Autowired(required = false)
    MiloService miloService;
    @Override
    public boolean deleteRawGlassStorageDetails(String device_id) {
@@ -63,7 +69,11 @@
        }
        Integer shelf = shelfList.get(0);
        log.info("生成任务");
        generateTask(shelf, leftingStation, shelf, 0, Const.RAW_GLASS_TASK_TYPE_IN_REQUEST);
        try {
            generateTask(shelf, leftingStation, shelf, 0, Const.RAW_GLASS_TASK_TYPE_IN_REQUEST);
        } catch (Exception e) {
            return "fail";
        }
        //生成一条详情数据  仅记录架子状态
        RawGlassStorageDetails details = new RawGlassStorageDetails();
        details.setSlot(shelf);
@@ -81,7 +91,7 @@
        if (null == glassStorageDetails) {
            log.info("当前吊装位没有架子");
        }
        //todo:原片信息存入详情表
        //原片信息存入详情表
        BeanUtils.copyProperties(request, glassStorageDetails);
        log.info("覆盖后得到的工位详情信息为:{}", glassStorageDetails);
        updateById(glassStorageDetails);
@@ -135,7 +145,11 @@
                .eq(RawGlassStorageDetails::getSlot, details.getSlot())
                .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN)
                .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
        generateTask(leftingStation, details.getShelf(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT_REQUEST);
        try {
            generateTask(leftingStation, details.getShelf(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT_REQUEST);
        } catch (Exception e) {
            return "fail";
        }
        return "success";
    }
@@ -149,7 +163,7 @@
     * @return
     */
    @Override
    public boolean generateTask(int startSlot, int endSlot, int shelf, int patternQuantity, int taskType) {
    public boolean generateTask(int startSlot, int endSlot, int shelf, int patternQuantity, int taskType) throws Exception {
        RawGlassStorageTask task = RawGlassStorageTask.builder()
                .startSlot(startSlot)
                .endSlot(endSlot)
@@ -158,6 +172,22 @@
                .taskState(Const.RAW_GLASS_TASK_NEW)
                .shelf(shelf)
                .createTime(new Date()).build();
        return rawGlassStorageTaskService.save(task);
        rawGlassStorageTaskService.save(task);
        List<ReadWriteEntity> list = new ArrayList<>();
        list.add(generateReadWriteEntity("A01-CC.dev.taskWord", 1));
        list.add(generateReadWriteEntity("A01-CC.dev.taskSending", 1));
        list.add(generateReadWriteEntity("A01-CC.dev.startSlot", startSlot));
        list.add(generateReadWriteEntity("A01-CC.dev.endSlot", endSlot));
        miloService.writeToOpcWord(list);
        return Boolean.TRUE;
    }
    private ReadWriteEntity generateReadWriteEntity(String identifier, int value) {
        ReadWriteEntity readWriteEntity = new ReadWriteEntity();
        readWriteEntity.setIdentifier(identifier);
        readWriteEntity.setValue(value);
        return readWriteEntity;
    }
}