yangbin
2025-05-20 1cbbb341d22e3c46b15af65b6f97d738bae7ca95
自动化
已修改5个文件
247 ■■■■■ 文件已修改
lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/controller/MsiWebapiJsonController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/mapper/MsiWebapiJsonMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/service/IMsiWebapiJsonService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/service/impl/MsiWebapiJsonServiceImpl.java 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
@@ -85,6 +85,48 @@
            return new SimpleDateFormat("yyyy");
        }
    };
    public static final String STR_DATE = "yyyy-MM-dd";
    public static final String STRDATE = "yyyyMMdd";
    public static final String STR_YEAR_MONTH = "yyyy-MM";
    public static final String STRYEARMONTH = "yyyyMM";
    public static final String STR_DATE_TIME = "yyyy-MM-dd HH:mm:ss.SSS";
    public static final String STR_DATE_TIME_SMALL = "yyyy-MM-dd HH:mm:ss";
    public static final String STR_DD_MM_YYYY = "dd/MM/yyyy HH:mm:ss";
    public static final String STR_DATE_TIME_MIN = "yyyy-MM-dd HH:mm";
    public static final String STR_DATE_TIME_HOUR = "yyyy-MM-dd HH";
    public static final String STR_DATE_TIME_FULL = "yyyyMMddHHmmssSSS";
    public static final String STR_HHMMSS = "HH:mm:ss";
    public static final String STR_HHMM = "HH:mm";
    public static String format(Date date, String format) {
        SimpleDateFormat df = new SimpleDateFormat(format);
        return df.format(date);
    }
    public static String formattedDate(String dateString, String dateformat, String format) {
        // 定义原始日期字符串和其格式
        SimpleDateFormat originalFormat = new SimpleDateFormat(dateformat);
        // 定义目标日期格式
        SimpleDateFormat targetFormat = new SimpleDateFormat(format);
        try {
            // 解析原始日期字符串
            Date date = originalFormat.parse(dateString);
            // 将日期格式化为目标格式
            String formattedDate = targetFormat.format(date);
            // 输出转换后的日期字符串
            System.out.println(formattedDate);
            return formattedDate;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 以毫秒表示的时间
     */
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/controller/MsiWebapiJsonController.java
@@ -1,5 +1,6 @@
package org.jeecg.modules.msi.webapi.controller;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference;
import io.swagger.annotations.Api;
@@ -15,6 +16,7 @@
import org.jeecg.modules.msi.webapi.service.IMsiWebapiJsonService;
import org.jeecg.modules.msi.webapi.vo.MachineEquipentInfo;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -27,31 +29,31 @@
@RequestMapping("/msi/webapi")
public class MsiWebapiJsonController extends JeecgController<MsiWebapiJsonEntity, IMsiWebapiJsonService> {
    @AutoLog(value = "自动化线数据接收")
    @ApiOperation(value = "自动化线数据接收 ", notes = "自动化线数据接收")
    @PostMapping(value = "/receiveAutomation")
    public Result<?> receiveSaveMsiWebApiJson(String data) {
    @RequestMapping(value = "/receiveAutomation")
    public Result<?> receiveSaveMsiWebApiJson(@RequestBody List<MachineEquipentInfo> data) {
        MsiWebapiJsonEntity entity = new MsiWebapiJsonEntity();
        if (StringUtils.isBlank(data)) {
        if (StringUtils.isBlank(data.toString())) {
            return Result.error("数据为空","");
        }
        entity.setModuleType("MDC");
        entity.setWebapiInfo(data);
        entity.setWebapiInfo(data.toString());
        //后续进行其他业务关联
        JsonMapper mapper = new JsonMapper();
        try {
            List<MachineEquipentInfo> machineInfoList = mapper.fromJson(data, new TypeReference<List<MachineEquipentInfo>>(){});
            for (MachineEquipentInfo machineInfo : machineInfoList) {
            //List<MachineEquipentInfo> machineInfoList = mapper.fromJson(data, new TypeReference<List<MachineEquipentInfo>>(){});
            for (MachineEquipentInfo machineInfo : data) {
                System.out.println(machineInfo);
                // Add additional processing logic here for each item
                //解析数据
                service.saveTableAutomationOne(data);
            }
        } catch (IOException e) {
        } catch (Exception e) {
            log.error("JSON parsing error: {}", e.getMessage());
            return Result.error("数据异常", e.getMessage());
        }
        service.save(entity);
        return Result.OK("接收成功");
    }
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/mapper/MsiWebapiJsonMapper.java
@@ -5,4 +5,6 @@
import org.jeecg.modules.msi.webapi.entity.MsiWebapiJsonEntity;
public interface MsiWebapiJsonMapper extends BaseMapper<MsiWebapiJsonEntity> {
}
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/service/IMsiWebapiJsonService.java
@@ -2,6 +2,18 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.msi.webapi.entity.MsiWebapiJsonEntity;
import org.jeecg.modules.msi.webapi.vo.MachineEquipentInfo;
import java.util.List;
public interface IMsiWebapiJsonService  extends IService<MsiWebapiJsonEntity> {
    /**
     * 解析单条数据保存到单表
     * @param machineInfo
     * @return
     */
    boolean saveTableAutomationOne(List<MachineEquipentInfo> data);
}
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/service/impl/MsiWebapiJsonServiceImpl.java
@@ -1,11 +1,178 @@
package org.jeecg.modules.msi.webapi.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.msi.webapi.entity.MsiWebapiJsonEntity;
import org.jeecg.modules.msi.webapi.mapper.MsiWebapiJsonMapper;
import org.jeecg.modules.msi.webapi.service.IMsiWebapiJsonService;
import org.jeecg.modules.msi.webapi.vo.DetailedListVo;
import org.jeecg.modules.msi.webapi.vo.MachineEquipentInfo;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class MsiWebapiJsonServiceImpl extends ServiceImpl<MsiWebapiJsonMapper, MsiWebapiJsonEntity> implements IMsiWebapiJsonService {
    @Override
    public boolean saveTableAutomationOne(List<MachineEquipentInfo> data) {
        if (data ==null || data.isEmpty()) {
            return false;
        }
        List<String> listStatus = new ArrayList<>();
        List<String> listParameter = new ArrayList<>();
        for (MachineEquipentInfo machineInfo : data) {
            System.out.println(machineInfo);
            String stutus = listSqls(machineInfo);
            if (stutus != null && !stutus.equals("")) {
                listStatus.add(stutus);
            }
            String parameter = listSqlParameter(machineInfo);
            if (parameter != null && !parameter.equals("")) {
                listParameter.add(parameter);
            }
        }
        //状态数据
        return false;
    }
    /**
     *  插入到EquipmentLog
     * @param machineInfo
     * @return
     */
    public String listSqlParameter(MachineEquipentInfo machineInfo) {
        String listSqls = null;
        List<DetailedListVo> itemList = machineInfo.getItemList();
        Map<String ,DetailedListVo> itemMap = new HashMap<String ,DetailedListVo>();
        for (DetailedListVo item: itemList) {
            itemMap.put(item.getItemName(),item);
        }
        String sql = "insert into ";
        sql = sql + "ZDH_" + machineInfo.getMachineNo() + " ";
        sql = sql + "(EquipmentID,EquipmentName,CollectTime,runningStatus,spindleSpeed,feedRatio,runDuration,spindleDuration,progName,progStatus,toolNo) values (  ";
        //EquipmentID
        if (machineInfo.getMachineNo() == null ||  machineInfo.getMachineNo().equals("")) {
            return null;
        } else {
            sql = sql + "'" + machineInfo.getMachineNo() + "', ";
        }
        //EquipmentName
        sql = sql + null + ", ";
        //CollectTime
        if (machineInfo.getEndTime() != null) {
            sql = sql + "'" + DateUtils.formattedDate(machineInfo.getEndTime(),DateUtils.STR_DD_MM_YYYY,DateUtils.STR_DATE_TIME_SMALL) + "', ";
        } else {
            sql = sql + "'" + DateUtils.format(DateUtils.getDate(),DateUtils.STR_DATE_TIME) + "', ";
        }
        //runningStatus
        if (itemMap.containsKey("runningStatus")) {
            sql = sql + "'" + itemMap.get("runningStatus").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
        }
        //spindleSpeed
        if (itemMap.containsKey("spindleSpeed")) {
            sql = sql + "'" + itemMap.get("spindleSpeed").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
        }
        //runDuration
        if (itemMap.containsKey("runDuration")) {
            sql = sql + "'" + itemMap.get("runDuration").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
        }
        //spindleDuration
        if (itemMap.containsKey("spindleDuration")) {
            sql = sql + "'" + itemMap.get("spindleDuration").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
        }
        //progName
        if (itemMap.containsKey("spindleSpeed")) {
            sql = sql + "'" + itemMap.get("spindleSpeed").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
        }
        //progStatus
        if (itemMap.containsKey("progStatus")) {
            sql = sql + "'" + itemMap.get("progStatus").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
        }
        //toolNo
        if (itemMap.containsKey("toolNo")) {
            sql = sql + "'" + itemMap.get("toolNo").getItemValue() + "'  ";
        } else {
            sql = sql + null;
        }
        sql = sql + "); \n";
        if (StringUtils.isBlank(listSqls) ) {
            listSqls = sql;
        } else {
            listSqls += sql;
        }
        return listSqls;
    }
    /**
     *  插入到EquipmentLog
     * @param machineInfo
     * @return
     */
    public String listSqls(MachineEquipentInfo machineInfo) {
        String listSqls = null;
        List<DetailedListVo> itemList = machineInfo.getItemList();
        String sql = "insert into EquipmentLog (EquipmentID,EquipmentName,CollectTime,Oporation,Alarm) values ( ";
        if (machineInfo.getMachineNo() == null) {
            return null;
        } else {
            sql = sql + "'" + machineInfo.getMachineNo() + "', ";
        }
        sql = sql + null + ", ";
        if (machineInfo.getEndTime() != null) {
            sql = sql + "'" + DateUtils.formattedDate(machineInfo.getEndTime(),DateUtils.STR_DD_MM_YYYY,DateUtils.STR_DATE_TIME_SMALL) + "', ";
        } else {
            return null;
        }
        Map<String ,DetailedListVo> itemMap = new HashMap<String ,DetailedListVo>();
        for (DetailedListVo item: itemList) {
            itemMap.put(item.getItemName(),item);
        }
        if (itemMap.containsKey("runningStatus")) {
            int oporation = 0;
            switch (itemMap.get("runningStatus").getItemValue()) {
                case "0" : oporation =0;break;
                case "1" : oporation =2;break;
                case "2" : oporation =3;break;
                case "3" : oporation =2;break;
                case "4" : oporation =2;break;
                case "10" : oporation =2;break;
                case "13" : oporation =2;break;
                case "14" : oporation =2;break;
                case "10001" : oporation =2;break;
                default: break;
            }
            sql = sql + " " + oporation  + ", ";
        } else {
            return null;
        }
        sql = sql + null +   " ); \n";
        if (StringUtils.isBlank(listSqls) ) {
            listSqls = sql;
        }
        return listSqls;
    }
}