王佳豪
2021-05-29 dfd61f47ab99e875d6dbac51e96ef27b7d882d51
src/main/java/zy/cloud/wms/manager/controller/ConsoleController.java
@@ -7,7 +7,11 @@
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import zy.cloud.wms.common.web.BaseController;
import zy.cloud.wms.manager.entity.WrkSts;
import zy.cloud.wms.manager.service.WrkStsService;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
@@ -19,6 +23,8 @@
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private WrkStsService wrkStsService;
    /**
     * 当天数据:select * from tableName where datediff(day, 字段名,getdate())=0
@@ -40,16 +46,99 @@
        Integer usersQty = jdbcTemplate.queryForObject("select count(*) from sys_user", Integer.class);
        Integer deptQty = jdbcTemplate.queryForObject("select count(*) from sys_dept", Integer.class);
        Integer optQty = jdbcTemplate.queryForObject("select count(*) from sys_operate_log", Integer.class);
        return R.ok().add(Cools
                .add("combQtyDay", Optional.ofNullable(combQtyDay).orElse(0)) // 组托数量(当天)
                .add("combQty、", Optional.ofNullable(combQty).orElse(0)) // 组托数量
                .add("combQty", Optional.ofNullable(combQty).orElse(0)) // 组托数量
                .add("matQty", Optional.ofNullable(matQty).orElse(0)) // 物料数量
                .add("nodeQty、", Optional.ofNullable(nodeQty).orElse(0)) // 货位数量
                .add("nodeQty", Optional.ofNullable(nodeQty).orElse(0)) // 货位数量
                .add("pakoutQty", Optional.ofNullable(pakoutQty).orElse(0)) // 总出库单数
                .add("pakoutQtyMonth、", Optional.ofNullable(pakoutQtyMonth).orElse(0)) // 总出库单数(当月)
                .add("pakoutQtyMonth", Optional.ofNullable(pakoutQtyMonth).orElse(0)) // 出库单数(当月)
                .add("usersQty", Optional.ofNullable(usersQty).orElse(0)) // 用户数量
                .add("deptQty", Optional.ofNullable(deptQty).orElse(0)) // 部门数量
                .add("optQty", Optional.ofNullable(optQty).orElse(0)) // 操作次数
        );
    }
    @RequestMapping(value = "/body/auth")
    public R body() {
        // 组托
        List<Map<String, Object>> combList = jdbcTemplate.queryForList("select top 10 * from man_comb where 1=1 order by create_time desc");
        for (int i=0;i<combList.size();i++) {
            Object create_time = combList.get(i).get("create_time");
            combList.get(i).put("time", String.valueOf(create_time).substring(5, 16));
            combList.get(i).put("active", String.valueOf(combList.get(i).get("io_status")).equals("4")?"":"active");
        }
        // 拣货单
        List<Map<String, Object>> pakoutList = jdbcTemplate.queryForList("select top 5 * from man_pakout where 1=1 order by create_time desc");
        for (int i=0;i<pakoutList.size();i++) {
            pakoutList.get(i).put("no", i+1);
            String wrk_sts = String.valueOf(pakoutList.get(i).get("wrk_sts"));
            switch (wrk_sts) {
                case "1":
                    pakoutList.get(i).put("style", "text-warning");
                    break;
                case "2":
                    pakoutList.get(i).put("style", "text-danger");
                    break;
                case "3":
                    pakoutList.get(i).put("style", "text-success");
                    break;
                default:
                    pakoutList.get(i).put("style", "text-info");
                    break;
            }
            WrkSts wrkSts = wrkStsService.selectById(Integer.parseInt(wrk_sts));
            if (null != wrkSts) {
                pakoutList.get(i).put("wrkStsName", wrkSts.getStsName());
            }
        }
        // 安全库存警告
        List<Map<String, Object>> safeQuaList = jdbcTemplate.queryForList("select\n" +
                "top 5\n" +
                "mp.node_id,\n" +
                "mp.node_name,\n" +
                "mp.matnr,\n" +
                "mp.maktx,\n" +
                "mp.safe_qua,\n" +
                "ISNULL(ls.amount, 0) as amount,\n" +
                "(mp.safe_qua - isnull(ls.amount, 0)) as dValue\n" +
                "from man_prior mp\n" +
                "left join\n" +
                "(\n" +
                "    select\n" +
                "    node_id,\n" +
                "    matnr,\n" +
                "    sum(anfme) as amount\n" +
                "    from man_loc_detl\n" +
                "    group by node_id, matnr\n" +
                ") as ls on ls.node_id = mp.node_id and ls.matnr = mp.matnr\n" +
                "where 1=1\n" +
                "and mp.safe_qua > ls.amount or ls.amount is null\n" +
                "order by (mp.safe_qua - isnull(ls.amount, 0)) desc");
        for (int i=0;i<safeQuaList.size();i++) {
            safeQuaList.get(i).put("no", i+1);
            if (Cools.isEmpty(safeQuaList.get(i).get("dValue"))){
                safeQuaList.get(i).put("dValue", safeQuaList.get(i).get("safe_qua"));
            }
        }
        // 库存滞留
        List<Map<String, Object>> retentionList = jdbcTemplate.queryForList("select top 7 CONVERT(decimal, DATEDIFF(second, man_loc_detl.create_time, GETDATE()) / 86400.0, 9) AS stayDays, * from man_loc_detl order by create_time desc");
        for (int i=0;i<retentionList.size();i++) {
            retentionList.get(i).put("no", i+1);
            Object create_time = retentionList.get(i).get("create_time");
            retentionList.get(i).put("createTime", String.valueOf(create_time).substring(0, 11));
        }
        return R.ok().add(Cools
                .add("combList", combList) // 组托最新动态
                .add("pakoutList", pakoutList) // 最新拣货单
                .add("safeQuaList", safeQuaList) // 安全库存警告
                .add("retentionList", retentionList) // 库存滞留数据
        );
    }