Lius
2025-05-21 d0b97b5655a6cac1efbda08dad1d3019ed973923
设备日志批量导出
已添加4个文件
已修改17个文件
448 ■■■■■ 文件已修改
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentRunningSectionController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceCompletedJob.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStartWorkJob.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentWorklineMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentEndWork.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStartWork.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentRunningSectionController.java
@@ -4,14 +4,11 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.mdc.dto.EquipmentMachingDto;
import org.jeecg.modules.mdc.dto.MdcEquipmentRunningSectionDto;
import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection;
import org.jeecg.modules.mdc.entity.MdcNoplanClose;
import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService;
import org.jeecg.modules.mdc.service.IMdcEquipmentWorkLineService;
import org.jeecg.modules.mdc.vo.MdcEquipmentRunningSectionVo;
@@ -66,6 +63,11 @@
        return equipmentRunningSectionService.exportXls(equipmentRunningSectionVo);
    }
    @RequestMapping(value = "/batchExportLogXls")
    public ModelAndView batchExportLogXls(HttpServletRequest request, MdcEquipmentRunningSectionVo equipmentRunningSectionVo) {
        return equipmentRunningSectionService.batchExportXls(equipmentRunningSectionVo);
    }
    @ApiOperation(value = "设备日志-历史查询", notes = "设备日志-历史查询")
    @GetMapping("/logCharts")
    public Result<List<Map<String, Object>>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo){
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySchedule.java
@@ -25,7 +25,7 @@
     * ä¸»é”®
     */
    @ApiModelProperty(value = "主键")
    private String medId;
    private String mesId;
    /**
     * å•å…ƒ
     */
@@ -87,10 +87,15 @@
    @ApiModelProperty(value = "工序号")
    private String opreationSeqNo;
    /**
     * æ´¾å·¥æ—¥æœŸ
     * è®¡åˆ’开始时间
     */
    @ApiModelProperty(value = "派工日期")
    private String dispatchDate;
    @ApiModelProperty(value = "计划开始时间")
    private String planStartTime;
    /**
     * è®¡åˆ’结束时间
     */
    @ApiModelProperty(value = "计划结束时间")
    private String planEndTime;
    /**
     * è®¾å¤‡ç¼–号
     */
@@ -109,4 +114,7 @@
    @TableField(exist = false)
    @ApiModelProperty(value = "是否完成")
    private String qualifiedStatus;
    @TableField(exist = false)
    private String productName;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentDaySummary.java
@@ -21,7 +21,7 @@
    /**
     * ä¸»é”®
     */
    private String medId;
    private String mesId;
    /**
     * å•å…ƒ
     */
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceCompletedJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,130 @@
package org.jeecg.modules.mdc.job;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.DateUtils;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule;
import org.jeecg.modules.mdc.service.IEquipmentWorkLineService;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.util.CxfClientUtil;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdc.vo.WsEquipmentEndWork;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @Author: Lius
 * @CreateTime: 2025-04-29
 * @Description: å®Œå·¥ä»»åŠ¡
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class WebServiceCompletedJob implements Job {
    /**
     * url
     */
    @Value("${webservice2.url}")
    private String url;
    /**
     * namespace
     */
    @Value("${webservice2.namespace}")
    private String namespace;
    /**
     * method
     */
    @Value("${webservice2.endWorkMethod}")
    private String method;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    @Lazy
    private RedisUtil redisUtil;
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
    @Resource
    private IEquipmentWorkLineService equipmentWorkLineService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("WebService上报完工任务 WebServiceCompletedJob start!  æ—¶é—´:" + DateUtils.now());
        long startTime = System.currentTimeMillis();
        try {
            List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC"));
            if (mdcEquipmentList != null && !mdcEquipmentList.isEmpty()) {
                for (MdcEquipment mdcEquipment : mdcEquipmentList) {
                    if (redisUtil.hasKey("work:" + mdcEquipment.getEquipmentId())) {
                        MdcEquipmentDaySchedule mdcEquipmentDaySchedule = (MdcEquipmentDaySchedule) redisUtil.get("work:" + mdcEquipment.getEquipmentId());
                        String productName = mdcEquipmentDaySchedule.getProductName();
                        Map<String, Object> dataProductName = equipmentWorkLineService.getDataProductName(mdcEquipment.getSaveTableName());
                        if (dataProductName != null && !dataProductName.isEmpty()) {
                            if (dataProductName.containsKey("productname")) {
                                String proName = dataProductName.get("productname") == null ? "" : dataProductName.get("productname").toString();
                                if (!productName.equals(proName)) {
                                    //完工
                                    WsEquipmentEndWork wsEquipmentEndWork = new WsEquipmentEndWork();
                                    wsEquipmentEndWork.setMesId(mdcEquipmentDaySchedule.getMesId());
                                    wsEquipmentEndWork.setWorkshop(mdcEquipmentDaySchedule.getWorkshop());
                                    wsEquipmentEndWork.setProcessProgress("100");
                                    wsEquipmentEndWork.setTaskCode(mdcEquipmentDaySchedule.getTaskCode());
                                    wsEquipmentEndWork.setOpreationSeqNo(mdcEquipmentDaySchedule.getOpreationSeqNo());
                                    wsEquipmentEndWork.setMdsItemCode(mdcEquipmentDaySchedule.getMdsItemCode());
                                    wsEquipmentEndWork.setEquipmentId(mdcEquipment.getEquipmentId());
                                    wsEquipmentEndWork.setProcessNumber(mdcEquipmentDaySchedule.getBatchNum());
                                    Date date = dataProductName.get("collecttime") == null ? null : (Date) dataProductName.get("collecttime");
                                    wsEquipmentEndWork.setEndProcessTime(date);
                                    String s = JSONObject.toJSONString(wsEquipmentEndWork);
                                    log.info("上报完工数据 ===== " + s);
                                    String result = CxfClientUtil.invokeService(url, s, namespace, method);
                                    log.info("上报完工结果 ===== " + result);
                                    if (result.contains("成功")) {
//                                        mdcEquipmentDaySchedule.setProductName(productName);
                                        //开工设备删除redis
                                        redisUtil.del("work:" + mdcEquipment.getEquipmentId());
                                    }
                                }
                            }
                        }
                    }
                }
            }
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStartWorkJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,135 @@
package org.jeecg.modules.mdc.job;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule;
import org.jeecg.modules.mdc.service.IEquipmentWorkLineService;
import org.jeecg.modules.mdc.service.IMdcEquipmentDayScheduleService;
import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.mdc.util.CxfClientUtil;
import org.jeecg.modules.mdc.util.DateUtils;
import org.jeecg.modules.mdc.util.ThrowableUtil;
import org.jeecg.modules.mdc.vo.WsEquipmentStartWork;
import org.jeecg.modules.quartz.entity.QuartzJob;
import org.jeecg.modules.quartz.entity.SysQuartzLog;
import org.jeecg.modules.quartz.service.IQuartzJobService;
import org.jeecg.modules.quartz.service.ISysQuartzLogService;
import org.quartz.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @Author: Lius
 * @CreateTime: 2025-04-29
 * @Description: å¼€å·¥ä»»åŠ¡
 */
@PersistJobDataAfterExecution
@DisallowConcurrentExecution
@Slf4j
public class WebServiceStartWorkJob implements Job {
    /**
     * url
     */
    @Value("${webservice2.url}")
    private String url;
    /**
     * namespace
     */
    @Value("${webservice2.namespace}")
    private String namespace;
    /**
     * method
     */
    @Value("${webservice2.startWorkMethod}")
    private String method;
    @Resource
    private IQuartzJobService quartzJobService;
    @Resource
    private ISysQuartzLogService sysQuartzLogService;
    @Resource
    private IMdcEquipmentDayScheduleService mdcEquipmentDayScheduleService;
    @Resource
    private IMdcEquipmentService mdcEquipmentService;
    @Resource
    @Lazy
    private RedisUtil redisUtil;
    @Resource
    private IEquipmentWorkLineService equipmentWorkLineService;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        SysQuartzLog quartzLog = new SysQuartzLog();
        quartzLog.setCreateTime(new Date());
        List<QuartzJob> byJobClassName = this.quartzJobService.findByJobClassName(this.getClass().getName());
        if (byJobClassName != null && !byJobClassName.isEmpty()) {
            quartzLog.setJobId(byJobClassName.get(0).getId());
        }
        log.info("WebService上报开工任务 WebServiceStartWorkJob start!  æ—¶é—´:" + DateUtils.getNow());
        long startTime = System.currentTimeMillis();
        try {
            List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC"));
            if (mdcEquipmentList != null && !mdcEquipmentList.isEmpty()) {
                for (MdcEquipment mdcEquipment : mdcEquipmentList) {
                    if (!redisUtil.hasKey("work:" + mdcEquipment.getEquipmentId())) {
                        MdcEquipmentDaySchedule mdcEquipmentDaySchedule = mdcEquipmentDayScheduleService.selectLast(mdcEquipment.getEquipmentId());
                        if (mdcEquipmentDaySchedule != null) {
                            //查询设备单表零件号
                            Map<String, Object> dataList = equipmentWorkLineService.getDataProductName(mdcEquipment.getSaveTableName());
                            if (dataList != null) {
                                if (dataList.containsKey("productname")) {
                                    String productName = dataList.get("productname") == null ? "" : dataList.get("productname").toString();
                                    if (productName.contains(mdcEquipmentDaySchedule.getMdsItemCode())) {
                                        log.info("验证自动开工开始,设备编号为 ====== " + mdcEquipment.getEquipmentId());
                                        WsEquipmentStartWork wsEquipmentStartWork = new WsEquipmentStartWork();
                                        wsEquipmentStartWork.setMesId(mdcEquipmentDaySchedule.getMesId());
                                        wsEquipmentStartWork.setEquipmentId(mdcEquipmentDaySchedule.getEquipmentId());
                                        wsEquipmentStartWork.setWorkshop(mdcEquipmentDaySchedule.getWorkshop());
                                        wsEquipmentStartWork.setTaskCode(mdcEquipmentDaySchedule.getTaskCode());
                                        wsEquipmentStartWork.setOpreationSeqNo(mdcEquipmentDaySchedule.getOpreationSeqNo());
                                        //获取开工时间
                                        Date date = dataList.get("collecttime") == null ? null : (Date) dataList.get("collecttime");
                                        wsEquipmentStartWork.setStartProcessTime(date);
                                        String s = JSONObject.toJSONString(wsEquipmentStartWork);
                                        log.info("上报开工数据 ===== " + s);
                                        String result = CxfClientUtil.invokeService(url, s, namespace, method);
                                        log.info("上报开工结果 ===== " + result);
                                        if (result.contains("成功")) {
                                            mdcEquipmentDaySchedule.setProductName(productName);
                                            //开工设备存入redis
                                            redisUtil.set("work:" + mdcEquipment.getEquipmentId(), mdcEquipmentDaySchedule);
                                        }
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            quartzLog.setIsSuccess(0);
        } catch (Exception e) {
            quartzLog.setIsSuccess(-1);
            quartzLog.setExceptionDetail(ThrowableUtil.getStackTrace(e));
        }
        long endTime = System.currentTimeMillis();
        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
        sysQuartzLogService.save(quartzLog);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/EquipmentWorklineMapper.java
@@ -48,4 +48,8 @@
    @InterceptorIgnore(tenantLine = "1")
    Map<String, Object> getDataList(@Param("tableName") String saveTableName);
    @InterceptorIgnore(tenantLine = "1")
    Map<String, Object> getDataProductName(@Param("tableName") String saveTableName);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcEquipmentDayScheduleMapper.java
@@ -9,4 +9,6 @@
public interface MdcEquipmentDayScheduleMapper extends BaseMapper<MdcEquipmentDaySchedule> {
    IPage<MdcEquipmentDaySchedule> pageList(@Param("vo") MdcEquipmentDayScheduleVo mdcEquipmentDayScheduleVo, Page<MdcEquipmentDaySchedule> page);
    MdcEquipmentDaySchedule selectLast(@Param("equipmentId") String equipmentId);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/EquipmentWorklineMapper.xml
@@ -25,4 +25,8 @@
    <select id="getDataList" resultType="java.util.Map">
        select top 1 ${tableName}.* from ${tableName} order by CollectTime  desc
    </select>
    <select id="getDataProductName" resultType="java.util.Map">
        select top 1 ${tableName}.* from ${tableName} where productname != '' order by CollectTime  desc
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentDayScheduleMapper.xml
@@ -16,11 +16,15 @@
                            ON t2.id = t3.equipment_id
                 INNER JOIN mdc_production t4
                            ON t3.production_id = t4.id
        WHERE TO_CHAR(t1.dispatch_date, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
        WHERE TO_CHAR(t1.create_time, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
          AND t4.parent_id = #{vo.productionId}
          <if test="vo.proChildId != null and vo.proChildId != ''">
              AND t4.id = #{vo.proChildId}
          </if>
        ORDER BY t1.dispatch_date DESC
        ORDER BY t1.create_time DESC
    </select>
    <select id="selectLast" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentDaySchedule">
        SELECT TOP 1 * FROM mdc_equipment_day_schedule WHERE equipment_id = #{equipmentId} ORDER BY create_time DESC
    </select>
</mapper>
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IEquipmentWorkLineService.java
@@ -59,4 +59,7 @@
     * @return
     */
    Map<String, Object> getDataList(String saveTableName);
    Map<String, Object> getDataProductName(String saveTableName);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentDayScheduleService.java
@@ -7,5 +7,8 @@
import org.jeecg.modules.mdc.vo.MdcEquipmentDayScheduleVo;
public interface IMdcEquipmentDayScheduleService extends IService<MdcEquipmentDaySchedule> {
    IPage<MdcEquipmentDaySchedule> pageList(MdcEquipmentDayScheduleVo mdcEquipmentDayScheduleVo, Page<MdcEquipmentDaySchedule> page);
    MdcEquipmentDaySchedule selectLast(String equipmentId);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcEquipmentRunningSectionService.java
@@ -94,4 +94,11 @@
     */
    ModelAndView exportXls(MdcEquipmentRunningSectionVo equipmentRunningSectionVo);
    /**
     * æ—¶é—´æ®µå¯¼å‡º
     * @param equipmentRunningSectionVo
     * @return
     */
    ModelAndView batchExportXls(MdcEquipmentRunningSectionVo equipmentRunningSectionVo);
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/EquipmentWorkLineServiceImpl.java
@@ -80,6 +80,15 @@
        }
    }
    @Override
    public Map<String, Object> getDataProductName(String saveTableName) {
        try {
            return equipmentWorkLineMapper.getDataProductName(saveTableName);
        } catch (Exception e) {
            return null;
        }
    }
    private List<EquipmentMachingDto> convertData(List<Map<String, Object>> list) {
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
        List<EquipmentMachingDto> dto = new ArrayList<>();
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentDayScheduleServiceImpl.java
@@ -47,4 +47,9 @@
        }
        return mdcEquipmentDayScheduleIPage;
    }
    @Override
    public MdcEquipmentDaySchedule selectLast(String equipmentId) {
        return this.baseMapper.selectLast(equipmentId);
    }
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -752,6 +752,31 @@
        return mv;
    }
    @Override
    public ModelAndView batchExportXls(MdcEquipmentRunningSectionVo equipmentRunningSectionVo) {
        ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
        List<MdcEquipmentRunningSectionDto> mdcEquipmentRunningSectionDtos = new ArrayList<>();
        if (StringUtils.isNotBlank(equipmentRunningSectionVo.getStartTime())  && StringUtils.isNotBlank(equipmentRunningSectionVo.getEndTime()) ) {
            Date startDate = DateUtils.toDate(equipmentRunningSectionVo.getStartTime(), DateUtils.STR_DATE);
            Date endDate = DateUtils.toDate(equipmentRunningSectionVo.getEndTime(), DateUtils.STR_DATE);
            List<String> datesStringList = DateUtils.getDatesStringList(startDate, endDate);
            datesStringList.forEach(date -> {
                equipmentRunningSectionVo.setCollectTimeStr(date);
                List<MdcEquipmentRunningSectionDto> equipmentRunningSectionDtos = this.logList(equipmentRunningSectionVo);
                if (equipmentRunningSectionDtos != null && !equipmentRunningSectionDtos.isEmpty()) {
                    mdcEquipmentRunningSectionDtos.addAll(equipmentRunningSectionDtos);
                }
            });
        }
        // å¯¼å‡ºæ–‡ä»¶åç§°
        mv.addObject(NormalExcelConstants.FILE_NAME, "设备日志");
        mv.addObject(NormalExcelConstants.CLASS, MdcEquipmentRunningSectionDto.class);
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("设备日志列表数据", "导出人:" + user.getRealname(), "设备日志"));
        mv.addObject(NormalExcelConstants.DATA_LIST, mdcEquipmentRunningSectionDtos);
        return mv;
    }
    private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) {
        Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>();
        List<MdcEquipmentRunningSectionDto> normal = new ArrayList<>();
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/util/CxfClientUtil.java
@@ -15,7 +15,6 @@
     * åŠ¨æ€è°ƒç”¨
     */
    public static String invokeService(String url, String data, String namespace, String method) throws Exception {
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient(url);
        QName opName = new QName(namespace, method);
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySchedule.java
@@ -14,7 +14,7 @@
    /**
     * ä¸»é”®
     */
    private String medId;
    private String mesId;
    /**
     * å•å…ƒ
     */
@@ -76,4 +76,13 @@
     */
    private String taskType;
    /**
     * è®¡åˆ’开始时间
     */
    private String planStartTime;
    /**
     * è®¡åˆ’结束时间
     */
    private String planEndTime;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/EquipmentDaySummary.java
@@ -13,7 +13,7 @@
    /**
     * ä¸»é”®
     */
    private String medId;
    private String mesId;
    /**
     * å•å…ƒ
     */
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentEndWork.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package org.jeecg.modules.mdc.vo;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.Date;
/**
 * @Author: Lius
 * @CreateTime: 2025-05-16
 * @Description: å®Œå·¥
 */
@Data
public class WsEquipmentEndWork {
    private String mesId;
    private String workshop;
    private String equipmentId;
    private String mdsItemCode;
    private String taskCode;
    private String opreationSeqNo;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date endProcessTime;
    private String processProgress;
    private String processNumber;
}
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStartWork.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package org.jeecg.modules.mdc.vo;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.Date;
/**
 * @Author: Lius
 * @CreateTime: 2025-05-16
 * @Description: å¼€å·¥
 */
@Data
public class WsEquipmentStartWork {
    private String mesId;
    private String workshop;
    private String equipmentId;
    private String mdsItemCode;
    private String taskCode;
    private String opreationSeqNo;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date startProcessTime;
}
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
@@ -83,7 +83,7 @@
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driverClassName: dm.jdbc.driver.DmDriver
      url: jdbc:dm://192.168.1.118:5236/?LXZN_MDC_420&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
      url: jdbc:dm://LOCALHOST:5236/?LXZN_MDC_420&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
      username: LXZN_MDC_420
      password: 123
  #redis é…ç½®
@@ -237,3 +237,8 @@
  namespace: http://service.server.webservice.example.com
  statusMethod: equipmentStatus
  rateMethod: equipmentRate
webservice2:
  url: 20.10.193.21:9308/webservice/mes/equipment/v1/mdcProcessTask2MEs.asmx?wsdl
  namespace: http://service.server.webservice.example.com
  startWorkMethod: equipmentStart
  endWorkMethod: equipmentEnd