#
zjj
2024-07-11 e0c8b1913123939b5adcff3da4a81cadff95e002
#
7个文件已修改
3个文件已添加
191 ■■■■■ 已修改文件
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/LedApiController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/AxisBean.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/WorkChartAxis.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/vo/LocChartPie.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/LocMapper.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/LedApiController.java
@@ -3,14 +3,19 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.Arith;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.wcs.core.domain.dto.AxisBean;
import com.zy.asrs.wcs.core.domain.dto.WorkChartAxis;
import com.zy.asrs.wcs.core.domain.vo.LocChartPie;
import com.zy.asrs.wcs.core.entity.BasConveyorSta;
import com.zy.asrs.wcs.core.entity.BasShuttle;
import com.zy.asrs.wcs.core.entity.Loc;
import com.zy.asrs.wcs.core.service.BasConveyorStaService;
import com.zy.asrs.wcs.core.service.BasShuttleService;
import com.zy.asrs.wcs.core.service.LocService;
import com.zy.asrs.wcs.core.service.TaskService;
import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol;
import com.zy.asrs.wcs.system.controller.BaseController;
import io.swagger.models.auth.In;
@@ -21,9 +26,8 @@
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@RequestMapping("/monitor")
@@ -36,6 +40,101 @@
    private BasShuttleService basShuttleService;
    @Autowired
    private LocService locService;
    @Autowired
    private TaskService taskService;
    @GetMapping("/loc/rep")
    public R monitorLocRep(){
        List<Map<String, Object>> pie = new ArrayList<>();
        LocChartPie locUseRate = locService.getLocUseRate();
        if(locUseRate!=null) {
            Map<String, Object> map = new HashMap<>();
            map.put("name", "在库");
            map.put("value", locUseRate.getFqty());
            pie.add(map);
            Map<String, Object> map1 = new HashMap<>();
            map1.put("name", "空");
            map1.put("value", locUseRate.getOqty());
            pie.add(map1);
            Map<String, Object> map2 = new HashMap<>();
            map2.put("name", "使用");
            map2.put("value", locUseRate.getUqty());
            pie.add(map2);
            Map<String, Object> map3 = new HashMap<>();
            map3.put("name", "禁用");
            map3.put("value", locUseRate.getXqty());
            pie.add(map3);
        }
        // 总库位数
        Integer total = (int) Arith.add(0, locUseRate.getFqty(), locUseRate.getOqty(), locUseRate.getUqty(), locUseRate.getXqty());
        // 使用中
        Integer used = locUseRate.getFqty() + locUseRate.getUqty();
        // 库位使用率
        double usedDivides = Arith.divides(3, used, total);
        double usedPr = Arith.multiplys(1, usedDivides, 100);
        return R.ok(
                Cools.add("pie", pie)
                        .add("stockCunt", locUseRate.getFqty())
                        .add("emptyCount", locUseRate.getOqty())
                        .add("noneCount", locUseRate.getXqty())
                        .add("total", total)
                        .add("used", used)
                        .add("usedPr", usedPr)
        );
    }
    @GetMapping("/line/charts")
    public R locIoLineCharts(){
        Map<String,Object> map=new HashMap<String, Object>();
        List<AxisBean> list = new ArrayList<AxisBean>();
        List<WorkChartAxis> listChart = taskService.selectByLineCharts();
        if(listChart!=null) {
            ArrayList<Integer> data1 = new ArrayList<Integer>();
            ArrayList<Integer> data2 = new ArrayList<Integer>();
            SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.DATE, -12);
            for(int i=0;i<12;i++) {
                boolean flag = true;
                calendar.add(Calendar.DATE, 1);
                String str = sf.format(calendar.getTime());
                for(WorkChartAxis workChart : listChart) {
                    if(str.equals(workChart.getYmd())) {
                        data1.add(workChart.getInqty());
                        data2.add(workChart.getOutqty());
                        flag = false;
                        break;
                    }
                }
                if(flag) {
                    data1.add(0);
                    data2.add(0);
                }
            }
            AxisBean inqty = new AxisBean();
            inqty.setName("入库数量");
            Integer[] array1 = new Integer[data1.size()];
            inqty.setData(data1.toArray(array1));
            list.add(inqty);
            AxisBean outqty = new AxisBean();
            outqty.setName("出库数量");
            Integer[] array2 = new Integer[data2.size()];
            outqty.setData(data2.toArray(array2));
            list.add(outqty);
        }
        map.put("rows",list);
        return R.ok(map);
    }
    @GetMapping("/date")
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/AxisBean.java
New file
@@ -0,0 +1,16 @@
package com.zy.asrs.wcs.core.domain.dto;
import lombok.Data;
/**
 * 曲线图表json键
 * @author admin
 *
 */
@Data
public class AxisBean {
    private String name;
    private Integer[] data;
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/dto/WorkChartAxis.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.wcs.core.domain.dto;
import lombok.Data;
/**
 * 入出库统计曲线图
 * @author admin
 * @date 2018年12月12日
 */
@Data
public class WorkChartAxis {
    private String ymd;
    private int inqty;
    private int outqty;
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/vo/LocChartPie.java
New file
@@ -0,0 +1,17 @@
package com.zy.asrs.wcs.core.domain.vo;
import lombok.Data;
/**
 * 库位占用百分比
 * @author admin
 * @date 2018年12月12日
 */
@Data
public class LocChartPie {
    private int fqty;
    private int oqty;
    private int uqty;
    private int xqty;
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/LocMapper.java
@@ -1,12 +1,15 @@
package com.zy.asrs.wcs.core.mapper;
import com.zy.asrs.wcs.core.domain.vo.LocChartPie;
import com.zy.asrs.wcs.core.entity.Loc;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface LocMapper extends BaseMapper<Loc> {
    @Select("select * from asr_loc_use_view")
    LocChartPie getLocUseRate();
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/mapper/TaskMapper.java
@@ -1,9 +1,11 @@
package com.zy.asrs.wcs.core.mapper;
import com.zy.asrs.wcs.core.domain.dto.WorkChartAxis;
import com.zy.asrs.wcs.core.entity.Task;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -54,4 +56,17 @@
    Task selectChargeWorking(Integer shuttleNo);
    @Select("SELECT\n" +
            "    ymd,\n" +
            "    SUM(sto_qty) AS inqty,\n" +
            "    SUM(ret_qty) AS outqty\n" +
            "FROM\n" +
            "    asr_sta_inout_view\n" +
            "WHERE\n" +
            "    ymd >= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 12 DAY), '%Y-%m-%d')\n" +
            "GROUP BY\n" +
            "    ymd\n" +
            "ORDER BY\n" +
            "    ymd;")
    List<WorkChartAxis> selectByLineCharts();
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/LocService.java
@@ -1,10 +1,12 @@
package com.zy.asrs.wcs.core.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wcs.core.domain.vo.LocChartPie;
import com.zy.asrs.wcs.core.entity.Loc;
public interface LocService extends IService<Loc> {
    Loc selectByLocNo(String locNo);
    LocChartPie getLocUseRate();
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/TaskService.java
@@ -1,6 +1,7 @@
package com.zy.asrs.wcs.core.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zy.asrs.wcs.core.domain.dto.WorkChartAxis;
import com.zy.asrs.wcs.core.entity.Task;
import org.apache.ibatis.annotations.Param;
@@ -52,4 +53,5 @@
    Task selectChargeWorking(Integer shuttleNo);
    List<WorkChartAxis> selectByLineCharts();
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/LocServiceImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wcs.core.domain.vo.LocChartPie;
import com.zy.asrs.wcs.core.mapper.LocMapper;
import com.zy.asrs.wcs.core.entity.Loc;
import com.zy.asrs.wcs.core.service.LocService;
@@ -19,4 +20,9 @@
        return this.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, locNo));
    }
    @Override
    public LocChartPie getLocUseRate() {
        return this.baseMapper.getLocUseRate();
    }
}
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/TaskServiceImpl.java
@@ -1,6 +1,7 @@
package com.zy.asrs.wcs.core.service.impl;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wcs.core.domain.dto.WorkChartAxis;
import com.zy.asrs.wcs.core.mapper.TaskMapper;
import com.zy.asrs.wcs.core.entity.Task;
import com.zy.asrs.wcs.core.model.enums.DeviceCtgType;
@@ -155,4 +156,9 @@
    public Task selectChargeWorking(Integer shuttleNo) {
        return this.baseMapper.selectChargeWorking(shuttleNo);
    }
    @Override
    public List<WorkChartAxis> selectByLineCharts() {
        return this.baseMapper.selectByLineCharts();
    }
}