diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/JobStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/JobStatisticsController.java new file mode 100644 index 0000000..43a19db --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/JobStatisticsController.java @@ -0,0 +1,36 @@ +package com.ruoyi.api.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.api.service.IJobStatisticsService; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 作业统计 Controller + */ +@RestController +@RequestMapping("/api") +public class JobStatisticsController { + + @Autowired + private IJobStatisticsService jobStatisticsService; + + /** + * 获取统计数据,包含: + * 1. 当日入库和出库数量统计 + * 2. 货位状态统计 + * 3. 当前任务列表 + */ + @GetMapping("/daily") + public AjaxResult getDailyStatistics() { + Map result = jobStatisticsService.getDailyStatistics(); + return AjaxResult.success(result); + } +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/mapper/JobStatisticsMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/api/mapper/JobStatisticsMapper.java new file mode 100644 index 0000000..7db96da --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/mapper/JobStatisticsMapper.java @@ -0,0 +1,37 @@ +package com.ruoyi.api.mapper; + +import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + +/** + * 作业统计 Mapper 接口 + */ +public interface JobStatisticsMapper { + + /** + * 查询当日入库数量(inOrOut < 20) + * + * @param createTime 创建日期 + * @return 入库数量 + */ + public int selectDailyInCount(@Param("createTime") String createTime); + + /** + * 查询当日出库数量(inOrOut >= 20) + * + * @param createTime 创建日期 + * @return 出库数量 + */ + public int selectDailyOutCount(@Param("createTime") String createTime); + + /** + * 查询当月每日入库出库统计 + * + * @param year 年份 + * @param month 月份 + * @return 每日入库出库统计列表 + */ + public List> selectMonthlyStatistics(@Param("year") int year, @Param("month") int month); + +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IJobStatisticsService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IJobStatisticsService.java new file mode 100644 index 0000000..5a4cdf8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IJobStatisticsService.java @@ -0,0 +1,20 @@ +package com.ruoyi.api.service; + +import com.ruoyi.common.core.domain.AjaxResult; +import java.util.Map; + +/** + * 作业统计 Service 接口 + */ +public interface IJobStatisticsService { + + /** + * 获取统计数据,包含: + * 1. 当日入库和出库数量统计 + * 2. 货位状态统计 + * 3. 当前任务列表 + * + * @return 统计结果 + */ + public Map getDailyStatistics(); +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/JobStatisticsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/JobStatisticsServiceImpl.java new file mode 100644 index 0000000..ff01129 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/JobStatisticsServiceImpl.java @@ -0,0 +1,91 @@ +package com.ruoyi.api.service.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.api.service.IJobStatisticsService; +import com.ruoyi.api.mapper.JobStatisticsMapper; +import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper; +import com.ruoyi.job.mydojob.mapper.MydoJobMapper; +import com.ruoyi.job.mydojob.domain.MydoJob; + +/** + * 作业统计 Service 实现 + */ +@Service +public class JobStatisticsServiceImpl implements IJobStatisticsService { + + @Autowired + private JobStatisticsMapper jobStatisticsMapper; + + @Autowired + private BasCargoSpaceMapper basCargoSpaceMapper; + + @Autowired + private MydoJobMapper mydoJobMapper; + + /** + * 获取当日入库和出库数量统计 + */ + @Override + public Map getDailyStatistics() { + // 获取当前日期 + String today = DateUtils.getDate(); + + // 查询当日入库数量 + int inCount = jobStatisticsMapper.selectDailyInCount(today); + + // 查询当日出库数量 + int outCount = jobStatisticsMapper.selectDailyOutCount(today); + + // 获取货位状态统计 + List> statusCounts = basCargoSpaceMapper.selectStatusCount(); + List> cargoSpaceStatus = new ArrayList<>(); + Map statusNameMap = new HashMap<>(); + statusNameMap.put("1", "空货位"); + statusNameMap.put("2", "满货位"); + statusNameMap.put("3", "入库已分配"); + statusNameMap.put("4", "出库已分配"); + statusNameMap.put("5", "入库需盘点"); + statusNameMap.put("6", "出库需盘点"); + + for (Map.Entry entry : statusNameMap.entrySet()) { + Map item = new HashMap<>(); + String status = entry.getKey(); + item.put("name", entry.getValue()); + item.put("value", 0); + for (Map count : statusCounts) { + if (status.equals(String.valueOf(count.get("status")))) { + item.put("value", count.get("count")); + break; + } + } + cargoSpaceStatus.add(item); + } + + // 获取当前任务列表 + List currentTasks = mydoJobMapper.selectCurrentTasks(); + + // 获取当前年月 + int year = Integer.parseInt(DateUtils.dateTimeNow("yyyy")); + int month = Integer.parseInt(DateUtils.dateTimeNow("MM")); + + // 获取当月每日统计数据 + List> dailyStats = jobStatisticsMapper.selectMonthlyStatistics(year, month); + + // 返回统计结果 + Map result = new HashMap<>(); + result.put("drrk", String.valueOf(inCount)); + result.put("drck", String.valueOf(outCount)); + result.put("cargoSpaceStatus", cargoSpaceStatus); + result.put("currentTask", currentTasks); + result.put("statistic", dailyStats); + return result; + } + + +} \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java index e1433a1..47fe9e5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import java.util.List; +import java.util.Map; /** * 库存信息Mapper接口 @@ -61,5 +62,10 @@ public interface BasCargoSpaceMapper extends BaseMapper */ public int deleteBasCargoSpaceByCargoSpaceIds(String[] cargoSpaceIds); - + /** + * 查询不同状态的货位数量统计 + * + * @return 状态统计结果列表 + */ + public List> selectStatusCount(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/mapper/MydoJobMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/mapper/MydoJobMapper.java index 035af2c..95468aa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/mapper/MydoJobMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/mapper/MydoJobMapper.java @@ -9,8 +9,14 @@ import com.ruoyi.job.mydojob.domain.MydoJob; * @author ruoyi * @date 2025-05-23 */ -public interface MydoJobMapper +public interface MydoJobMapper { + /** + * 查询当前任务列表 + * + * @return 当前任务列表 + */ + public List selectCurrentTasks(); /** * 查询任务表 * diff --git a/ruoyi-admin/src/main/resources/mapper/api/JobStatisticsMapper.xml b/ruoyi-admin/src/main/resources/mapper/api/JobStatisticsMapper.xml new file mode 100644 index 0000000..709a9d8 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/api/JobStatisticsMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml index 2ba6c5c..48ebff8 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml @@ -141,4 +141,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml index 033f30f..5098ec1 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobMapper.xml @@ -196,4 +196,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{jobId} + + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index ac59916..258a340 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -115,6 +115,7 @@ public class SecurityConfig // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html","/changeLanguage", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**","/pda/**").permitAll() + .antMatchers("/api/**").permitAll() // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated(); }) diff --git a/ruoyi-ui/.env.development b/ruoyi-ui/.env.development index 302ecd1..99643ed 100644 --- a/ruoyi-ui/.env.development +++ b/ruoyi-ui/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VUE_APP_TITLE = 若依管理系统 +VUE_APP_TITLE = ForTucky WMS system # 开发环境配置 ENV = 'development' diff --git a/ruoyi-ui/src/assets/logo/logo.png b/ruoyi-ui/src/assets/logo/logo.png index e263760..8bf68ed 100644 Binary files a/ruoyi-ui/src/assets/logo/logo.png and b/ruoyi-ui/src/assets/logo/logo.png differ diff --git a/ruoyi-ui/src/assets/logo/logo1.png b/ruoyi-ui/src/assets/logo/logo1.png new file mode 100644 index 0000000..e263760 Binary files /dev/null and b/ruoyi-ui/src/assets/logo/logo1.png differ diff --git a/ruoyi-ui/src/lang/en.js b/ruoyi-ui/src/lang/en.js index 9d9f1ec..58fd951 100644 --- a/ruoyi-ui/src/lang/en.js +++ b/ruoyi-ui/src/lang/en.js @@ -1,12 +1,14 @@ // en.js export default { + login: { - title: 'RuoYi Login Form', + title: 'FORTUCKY WMS SYSTEM', logIn: 'Login in', username: 'Username', password: 'Password', code: 'Code', - rememberMe: 'Remember Me' + rememberMe: 'Remember Me', + bottom:'Copyright © 2025 ForTucky All Rights Reserved.400-1882-319' }, tagsView: { refresh: 'Refresh', @@ -627,6 +629,7 @@ export default { }, viewsMain: { + systemTitle: 'RuoYi Admin', title: 'homePage', unfinishedInboundTask: 'Unfinished Inbound Task Overview', taskKey: 'Task Key', diff --git a/ruoyi-ui/src/lang/zh.js b/ruoyi-ui/src/lang/zh.js index 5e125e3..c159650 100644 --- a/ruoyi-ui/src/lang/zh.js +++ b/ruoyi-ui/src/lang/zh.js @@ -5,12 +5,13 @@ import 'core-js/features/symbol' export default { login: { - title: '若依后台管理系统', + title: '福莱瑞达WMS系统', logIn: '登录', username: '账号', password: '密码', code: '验证码', - rememberMe: '记住密码' + rememberMe: '记住密码', + bottom:'Copyright © 2025 ForTucky All Rights Reserved.400-1882-319' }, tagsView: { refresh: '刷新', @@ -633,6 +634,24 @@ export default { }, + viewsMain: { + systemTitle: '福莱瑞达管理系统', + title: '首页', + unfinishedInboundTask: '未完成入库任务概览', + taskKey: '任务键值', + unfinishedInboundTaskName: '未完成入库任务', + totalUnfinishedCount: '全部未完成数量', + todayUnfinishedCount: '今日未完成数量', + finishedInboundTask: '已完成入库任务概览', + finishedInboundTaskName: '已完成入库任务', + totalFinishedCount: '全部已完成数量', + todayFinishedCount: '今日已完成数量', + unfinishedOutboundTask: '未完成出库任务概览', + unfinishedOutboundTaskName: '未完成出库任务', + finishedOutboundTask: '已完成出库任务概览', + finishedOutboundTaskName: '已完成出库任务' + }, + searchViewStockSecure: { stockId: '库存ID', cargoSpaceId: '货位ID', diff --git a/ruoyi-ui/src/utils/dynamicTitle.js b/ruoyi-ui/src/utils/dynamicTitle.js index 1b57efb..b754c66 100644 --- a/ruoyi-ui/src/utils/dynamicTitle.js +++ b/ruoyi-ui/src/utils/dynamicTitle.js @@ -1,13 +1,14 @@ import store from '@/store' import defaultSettings from '@/settings' +import i18n from '@/lang' /** * 动态修改标题 */ export function useDynamicTitle() { if (store.state.settings.dynamicTitle) { - document.title = store.state.settings.title + ' - ' + defaultSettings.title + document.title = store.state.settings.title + ' - ' + i18n.t(defaultSettings.title) } else { - document.title = defaultSettings.title + document.title = i18n.t(defaultSettings.title) } } \ No newline at end of file diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue index afda156..4cfa618 100644 --- a/ruoyi-ui/src/views/login.vue +++ b/ruoyi-ui/src/views/login.vue @@ -57,7 +57,7 @@ diff --git a/ruoyi-ui/src/views/tool/build/index.vue b/ruoyi-ui/src/views/tool/build/index.vue index 5849b34..ecf405a 100644 --- a/ruoyi-ui/src/views/tool/build/index.vue +++ b/ruoyi-ui/src/views/tool/build/index.vue @@ -147,7 +147,7 @@ import { makeUpHtml, vueTemplate, vueScript, cssStyle } from '@/utils/generator/ import { makeUpJs } from '@/utils/generator/js' import { makeUpCss } from '@/utils/generator/css' import drawingDefault from '@/utils/generator/drawingDefault' -import logo from '@/assets/logo/logo.png' +import logo from '@/assets/logo/logo1.png' import CodeTypeDialog from './CodeTypeDialog' import DraggableItem from './DraggableItem'