手持机

This commit is contained in:
张怡蓉
2025-09-10 15:03:51 +08:00
parent 94e3a9d000
commit 0e82934fc3
38 changed files with 905 additions and 131 deletions

View File

@@ -8,12 +8,23 @@
config: {}
},
onLaunch: function() {
this.initApp()
this.initApp(),
// 初始化 tabBar 文本
this.updateTabBarText()
// 监听语言变化事件
uni.$on('languageChanged', () => {
this.updateTabBarText()
})
},
onShow: function() {
// 检查应用状态,确保从后台恢复时状态一致
this.checkAppState()
},
onDestroy() {
// 移除事件监听器
uni.$off('languageChanged')
},
methods: {
// 初始化应用
initApp() {
@@ -62,6 +73,32 @@
}
},
updateTabBarText() {
// 使用 nextTick 确保 DOM 更新完成
this.$nextTick(() => {
try {
// 设置工作台 tabBar 项
uni.setTabBarItem({
index: 0,
text: this.$t('tabBar.workbench')
})
// 设置任务 tabBar 项
uni.setTabBarItem({
index: 1,
text: this.$t('tabBar.task')
})
// 设置我的 tabBar 项
uni.setTabBarItem({
index: 2,
text: this.$t('tabBar.mine')
})
} catch (error) {
console.error('更新 tabBar 文本失败:', error)
}
})
}
}

View File

@@ -56,3 +56,11 @@ export function getCodeImg() {
timeout: 20000
})
}
//检查更新
export function updateUrl(){
return request({
url: '/system/app/version',
method: 'get'
})
}

View File

@@ -37,6 +37,10 @@ export default {
// 切换语言
this.$i18n.locale = selectedLang
this.currentIndex = index
// 通知 App.vue 更新 tabBar
uni.$emit('languageChanged');
// 提示用户
uni.showToast({

View File

@@ -1,4 +1,12 @@
{
"tabBar": {
"workbench": "workbench",
"task": "task",
"mine": "mine"
},
"dict":{
"port_type": {
"a1": "Cache Point",

View File

@@ -1,4 +1,12 @@
{
"tabBar": {
"workbench": "工作台",
"task": "任务",
"mine": "我的"
},
"dict": {
"port_type": {
"a1": "缓存点位",

View File

@@ -14,7 +14,10 @@
"autoclose" : true,
"delay" : 0
},
"modules" : {},
"modules" : {
"Camera" : {},
"Barcode" : {}
},
"distribute" : {
"android" : {
"permissions" : [
@@ -32,7 +35,11 @@
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>"
]
},
"ios" : {

View File

@@ -111,6 +111,14 @@ export default {
// 获取待处理任务数量
this.getPendingTaskCount()
},
onShow() {
// 根据当前语言动态设置标题
const currentLanguage = this.$i18n.locale;
const title = this.$t('tabBar.workbench');
uni.setNavigationBarTitle({
title: title
});
},
methods: {
navigateTo(url) {
uni.navigateTo({

View File

@@ -93,6 +93,14 @@
return uni.getSystemInfoSync().windowHeight - 50
}
},
onShow() {
// 根据当前语言动态设置标题
const currentLanguage = this.$i18n.locale;
const title = this.$t('tabBar.mine');
uni.setNavigationBarTitle({
title: title
});
},
methods: {
handleToInfo() {
this.$tab.navigateTo('/pages/mine/info/index')

View File

@@ -1,19 +1,19 @@
<template>
<view class="setting-container" :style="{height: `${windowHeight}px`}">
<view class="menu-list">
<!-- <view class="list-cell list-cell-arrow" @click="handleToPwd">
<!-- <view class="list-cell list-cell-arrow" @click="handleToPwd">
<view class="menu-item-box">
<view class="iconfont icon-password menu-icon"></view>
<view>修改密码</view>
</view>
</view>
</view> -->
<view class="list-cell list-cell-arrow" @click="handleToUpgrade">
<view class="menu-item-box">
<view class="iconfont icon-refresh menu-icon"></view>
<view>检查更新</view>
</view>
</view>
<view class="list-cell list-cell-arrow" @click="handleCleanTmp">
<!-- <view class="list-cell list-cell-arrow" @click="handleCleanTmp">
<view class="menu-item-box">
<view class="iconfont icon-clean menu-icon"></view>
<view>清理缓存</view>
@@ -37,6 +37,7 @@
</template>
<script>
import {updateUrl} from '@/api/login'
export default {
data() {
return {
@@ -47,24 +48,32 @@
handleToPwd() {
this.$tab.navigateTo('/pages/mine/pwd/index')
},
handleToUpgrade() {
const currentVersion = getApp().globalData.config.appInfo.version;
async handleToUpgrade() {
// const currentVersion = getApp().globalData.config.appInfo.version;
this.$modal.confirm(`是否下载安装包?`).then(async () => {
// 从服务器获取最新版本信息
uni.request({
url:'/system/app/version',
method: 'GET',
success: (res) => {
if (res.data.code === 200) {
const latestVersion = res.data.data.version;
const downloadUrl = res.data.data.downloadUrl;
const response = await updateUrl()
console.log(response)
if (response.code === 200) {
// const latestVersion = res.data.data.version;
const downloadUrl = response.data.downloadUrl;
if (this.compareVersion(currentVersion, latestVersion) >= 0) {
this.$modal.showToast('当前已是最新版本');
if (downloadUrl == '' || downloadUrl == null) {
this.$modal.showToast('获取下载路径失败!');
} else {
this.$modal.confirm(`发现新版本${latestVersion},是否立即更新?`).then(() => {
let fullDownloadUrl = downloadUrl;
const serverSettings = uni.getStorageSync('serverSettings');
if (serverSettings) {
const settings = JSON.parse(serverSettings);
fullDownloadUrl = `http://${settings.ip}:${settings.port}${downloadUrl}`;
}
// 下载更新包
const downloadTask = uni.downloadFile({
url: downloadUrl,
url: fullDownloadUrl,
success: (res) => {
if (res.statusCode === 200) {
// 安装更新
@@ -92,18 +101,16 @@
this.$modal.showToast(`正在下载:${progress}%`);
}
});
}).catch(() => {
this.$modal.showToast('已取消更新');
});
}
} else {
this.$modal.showToast('获取版本信息失败');
}
},
fail: () => {
this.$modal.showToast('检查更新失败,请检查网络');
}
});
}).catch(() => {
this.$modal.showToast('已取消更新');
});
},
// 版本号比较方法
compareVersion(v1, v2) {

View File

@@ -73,6 +73,14 @@ export default {
created() {
this.fetchTasks()
},
onShow() {
// 根据当前语言动态设置标题
const currentLanguage = this.$i18n.locale;
const title = this.$t('tabBar.task');
uni.setNavigationBarTitle({
title: title
});
},
methods: {
async fetchTasks() {
try {

View File

@@ -9,11 +9,13 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Locale;
/**
* 仓库管理Controller
@@ -35,6 +37,11 @@ public class BasWarehouseController extends BaseController
@GetMapping("/list")
public TableDataInfo list(BasWarehouse basWarehouse)
{
// 检查当前请求使用的语言包
Locale currentLocale = LocaleContextHolder.getLocale();
System.out.println("当前请求使用的语言包: " + currentLocale);
logger.info("当前请求使用的语言包: " + currentLocale);
startPage();
List<BasWarehouse> list = basWarehouseService.selectBasWarehouseList(basWarehouse);
return getDataTable(list);

View File

@@ -105,6 +105,26 @@ public class InStockin extends BaseEntity
private List<String> typeData;
private String beginTime;
private String endTime;
public String getBeginTime() {
return beginTime;
}
public void setBeginTime(String beginTime) {
this.beginTime = beginTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public List<String> getTypeData() {
return typeData;
}

View File

@@ -134,6 +134,26 @@ public class MydoJob extends BaseEntity
private String createLeftTime;
private String createRightTime;
private String beginCreateTime;
private String endCreateTime;
public String getBeginCreateTime() {
return beginCreateTime;
}
public void setBeginCreateTime(String beginCreateTime) {
this.beginCreateTime = beginCreateTime;
}
public String getEndCreateTime() {
return endCreateTime;
}
public void setEndCreateTime(String endCreateTime) {
this.endCreateTime = endCreateTime;
}
public String getCreateLeftTime() {
return createLeftTime;

View File

@@ -2,6 +2,7 @@ package com.ruoyi.out.outStockout.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.out.outStockout.domain.OutStockoutVo;
@@ -9,6 +10,7 @@ import com.ruoyi.out.outStockoutFinish.domain.OutStockoutFinish;
import com.ruoyi.out.outStockoutFinish.service.IOutStockoutFinishService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.BeanUtils;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -41,6 +43,7 @@ public class OutStockoutController extends BaseController {
@PreAuthorize("@ss.hasPermi('out:outStockout:list')")
@GetMapping("/list")
public TableDataInfo list(OutStockout outStockout) {
startPage();
List<OutStockout> list = new ArrayList<>();
if(Integer.parseInt(outStockout.getStatus())<4){

View File

@@ -93,6 +93,8 @@ public class OutStockout extends BaseEntity
private List<String> typeData;
public List<String> getTypeData() {
return typeData;
}

View File

@@ -1,6 +1,6 @@
package com.ruoyi.receive.stockin.domain;
import com.ruoyi.bas.BasProduct.domain.BasProduct;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
@@ -105,6 +105,26 @@ public class ReceiveStockin extends BaseEntity
private String lotNo;
private String materialDesc;
private String beginTime;
private String endTime;
public String getBeginTime() {
return beginTime;
}
public void setBeginTime(String beginTime) {
this.beginTime = beginTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getLotNo() {
return lotNo;
}

View File

@@ -1,8 +1,10 @@
package com.ruoyi.web.controller.system;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -53,6 +55,7 @@ public class SysLoginController
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
loginBody.getUuid());
ajax.put(Constants.TOKEN, token);
return ajax;
}
@@ -98,7 +101,9 @@ public class SysLoginController
@GetMapping("/changeLanguage")
public AjaxResult changeLanguage(String lang)
{
// 检查当前请求使用的语言包
Locale currentLocale = LocaleContextHolder.getLocale();
System.out.println("当前修改请求使用的语言包: " + currentLocale);
return AjaxResult.success();
}
}

View File

@@ -0,0 +1,461 @@
#错误消息
not.null=* 必须填写
user.jcaptcha.error=验证码错误
user.jcaptcha.expire=验证码已失效
user.not.exists=用户不存在/密码错误
user.password.not.match=用户不存在/密码错误
user.password.retry.limit.count=密码输入错误{0}次
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
user.password.delete=对不起,您的账号已被删除
user.blocked=用户已封禁,请联系管理员
role.blocked=角色已封禁,请联系管理员
login.blocked=很遗憾,访问IP已被列入系统黑名单
user.logout.success=退出成功
length.not.valid=长度必须在{min}到{max}个字符之间
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
user.password.not.valid=* 5-50个字符
user.email.not.valid=邮箱格式错误
user.mobile.phone.number.not.valid=手机号格式错误
user.login.success=登录成功
user.register.success=注册成功
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
##文件上传消息
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
upload.filename.exceed.length=上传的文件名最长{0}个字符
##权限
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
#返回信息国际化
ajax.result.success=操作成功
ajax.result.fail=操作失败
table.result.success=查询成功11111
#2wms message
2wms.result1=作业请求成功
2wms.result2=没有该作业
#warn message
warn.message=任务不存在
warn.message1=任务已开始
warn.message13=任务未开始
warn.message2=子任务不存在
warn.message3=暂不支持的任务类型
warn.message4=单据不存在
warn.message5=单据状态未审核
warn.message6=此用户无权限操作该仓库物料,或物料不存在
warn.message7=同一托盘不能绑定不同仓库的物料
warn.message8=新增库存,存在为0的数量
warn.message9=请选择仓库
warn.message10=请选择提供绑定数量
warn.message11=请选择绑定容器
warn.message12=绑定数量不能大于实际数量
#error message
error.message1=托盘码不能为空
error.message2=作业号不能为空
error.message3=拣选工位不能为空
error.message4=没有该拣选工位绑定的电子标签
error.message5=容器码不能为空
error.message6=起始点位不能为空
error.message7=目标点位不能为空
error.message8=物料已存在
error.message9=没有货位
error.message10=库存非正常状态
error.message11=没有该料架
error.message12=作业类型错误
error.message13=请选择质检项
error.message14=只能完成正执行的作业
error.message15=没有找到该库存
error.message16=物料不能为空
error.message17=取消ctu任务失败
error.message18=仓库不存在
error.message19=请选择高架库货位
error.message20=此仓库没有空余货位
error.message21=单据状态非未执行状态!
error.message23=单据状态未执行状态!
error.message22=请选择出口
error.message24=导入数据为空
error.message25=此区域没有空托盘库存
error.message26=此区域没有空托盘库存或此用户没有该区域权限
error.message27=单据不存在
error.message28=任务不存在
error.message29=未质检完成
error.message30=无质检信息
error.message31=此起点无料架,请检查
#ViewStockWarning
search.ViewStockWarning.stockId=Stock ID
search.ViewStockWarning.cargoSpaceId=Cargo Space ID
search.ViewStockWarning.stockStatus=Stock Status
search.ViewStockWarning.productStatus=Product Status
search.ViewStockWarning.lotNo=Lot Number
search.ViewStockWarning.inDate=In Date
search.ViewStockWarning.backDate=Back Date
search.ViewStockWarning.productGuid=Product GUID
search.ViewStockWarning.quantity=Quantity
search.ViewStockWarning.jobId=Job ID
search.ViewStockWarning.trayCode=Tray Code
search.ViewStockWarning.outQuantity=Out Quantity
search.ViewStockWarning.stockinDetailId=Stock In Detail ID
search.ViewStockWarning.stockinId=Stock In ID
search.ViewStockWarning.inType=In Type
search.ViewStockWarning.inClassId=In Class ID
search.ViewStockWarning.warehouseId=Warehouse ID
search.ViewStockWarning.stackingId=Stacking ID
search.ViewStockWarning.spare1=Stock Warning Flag
search.ViewStockWarning.productId=Product ID
search.ViewStockWarning.warehouseName=Warehouse Name
search.ViewStockWarning.address=Address
search.ViewStockWarning.cDesc=Description
search.ViewStockWarning.warehouseKind=Warehouse Kind
search.ViewStockWarning.warehouseType=Warehouse Type
search.ViewStockWarning.isCurrent=Is Current
search.ViewStockWarning.price=Price
search.ViewStockWarning.unit=Unit
search.ViewStockWarning.spec=Specification
search.ViewStockWarning.enName=English Name
search.ViewStockWarning.weight=Weight
search.ViewStockWarning.longMM=Length MM
search.ViewStockWarning.wide=Width MM
search.ViewStockWarning.hight=Height MM
search.ViewStockWarning.volume=Volume m³
search.ViewStockWarning.productName=Product Name
search.ViewStockWarning.cargoSpaceName=Cargo Space Name
search.ViewStockWarning.roadwayId=Roadway ID
search.ViewStockWarning.cargoAreaId=Cargo Area ID
search.ViewStockWarning.theType=Cargo Type
search.ViewStockWarning.theTypeName=Cargo Type Name
search.ViewStockWarning.thePlatoon=Row
search.ViewStockWarning.theColumn=Column
search.ViewStockWarning.theFloor=Floor
search.ViewStockWarning.cargoStatus=Cargo Status
search.ViewStockWarning.locked=Locked
search.ViewStockWarning.cargoHight=Cargo Height
search.ViewStockWarning.issDouble=Is Double
search.ViewStockWarning.groupCodingNo=Group Coding No
search.ViewStockWarning.groupCoding=Group Coding
search.ViewStockWarning.cargoSpaceLogo=Cargo Space Logo
search.ViewStockWarning.thisCargoArea=This Cargo Area
#ViewStockSecure
search.ViewStockSecure.stockId=Stock ID
search.ViewStockSecure.cargoSpaceId=Cargo Space ID
search.ViewStockSecure.stockStatus=Stock Status
search.ViewStockSecure.productStatus=Product Status
search.ViewStockSecure.lotNo=Lot Number
search.ViewStockSecure.inDate=In Date
search.ViewStockSecure.backDate=Back Date
search.ViewStockSecure.productGuid=Product GUID
search.ViewStockSecure.quantity=Quantity
search.ViewStockSecure.jobId=Job ID
search.ViewStockSecure.trayCode=Tray Code
search.ViewStockSecure.outQuantity=Out Quantity
search.ViewStockSecure.stockinDetailId=Stock In Detail ID
search.ViewStockSecure.stockinId=Stock In ID
search.ViewStockSecure.inType=In Type
search.ViewStockSecure.inClassId=In Class ID
search.ViewStockSecure.warehouseId=Warehouse ID
search.ViewStockSecure.stackingId=Stack Type ID
search.ViewStockSecure.spare1=Stock Warning Flag
search.ViewStockSecure.productId=Product ID
search.ViewStockSecure.warehouseName=Warehouse Name
search.ViewStockSecure.address=Address
search.ViewStockSecure.cDesc=Description
search.ViewStockSecure.warehouseKind=Warehouse Kind
search.ViewStockSecure.warehouseType=Warehouse Type
search.ViewStockSecure.isCurrent=Is Current
search.ViewStockSecure.price=Price
search.ViewStockSecure.unit=Unit
search.ViewStockSecure.spec=Specification
search.ViewStockSecure.enName=English Name
search.ViewStockSecure.weight=Weight
search.ViewStockSecure.longMM=Length MM
search.ViewStockSecure.wide=Width MM
search.ViewStockSecure.hight=Height MM
search.ViewStockSecure.volume=Volume m³
search.ViewStockSecure.productName=Product Name
search.ViewStockSecure.cargoSpaceName=Cargo Space Name
search.ViewStockSecure.roadwayId=Roadway ID
search.ViewStockSecure.cargoAreaId=Cargo Area ID
search.ViewStockSecure.theType=Type
search.ViewStockSecure.theTypeName=Type Name
search.ViewStockSecure.thePlatoon=Platoon
search.ViewStockSecure.theColumn=Column
search.ViewStockSecure.theFloor=Floor
search.ViewStockSecure.cargoStatus=Cargo Status
search.ViewStockSecure.locked=Locked
search.ViewStockSecure.cargoHight=Cargo Height
search.ViewStockSecure.issDouble=Is Double
search.ViewStockSecure.groupCodingNo=Group Coding No
search.ViewStockSecure.groupCoding=Group Coding
search.ViewStockSecure.cargoSpaceLogo=Cargo Space Logo
search.ViewStockSecure.thisCargoArea=This Cargo Area
#ViewFlatWarehouseOutFlow
search.ViewFlatWarehouseOutFlow.inOrOut=In/Out Type
search.ViewFlatWarehouseOutFlow.inOrOutSotckId=In/Out Main Document ID
search.ViewFlatWarehouseOutFlow.inOrOutSotckDetailId=In/Out Sub Document ID
search.ViewFlatWarehouseOutFlow.productGuid=Product GUID
search.ViewFlatWarehouseOutFlow.productId=Product ID
search.ViewFlatWarehouseOutFlow.quantity=In/Out Quantity
search.ViewFlatWarehouseOutFlow.createMan=Creator
search.ViewFlatWarehouseOutFlow.warehouseId=Warehouse ID
search.ViewFlatWarehouseOutFlow.warehouseName=Warehouse Name
search.ViewFlatWarehouseOutFlow.address=Address
search.ViewFlatWarehouseOutFlow.cDesc=Description
search.ViewFlatWarehouseOutFlow.warehouseKind=Warehouse Kind
search.ViewFlatWarehouseOutFlow.warehouseType=Warehouse Type
search.ViewFlatWarehouseOutFlow.isCurrent=Is Current
search.ViewFlatWarehouseOutFlow.productName=Product Name
search.ViewFlatWarehouseOutFlow.spec=Specification
search.ViewFlatWarehouseOutFlow.unit=Unit
search.ViewFlatWarehouseOutFlow.price=Price
search.ViewFlatWarehouseOutFlow.spare1=English Name
search.ViewFlatWarehouseOutFlow.spare2=Net Weight
search.ViewFlatWarehouseOutFlow.spare5=Length MM
search.ViewFlatWarehouseOutFlow.spare6=Width MM
search.ViewFlatWarehouseOutFlow.spare7=Height MM
search.ViewFlatWarehouseOutFlow.spare8=Volume m³
search.ViewFlatWarehouseOutFlow.remark=Remark
# ViewFlatWarehouseInFlow
search.ViewFlatWarehouseInFlow.inOrOut=In/Out Type
search.ViewFlatWarehouseInFlow.inOrOutSotckId=In/Out Main Document ID
search.ViewFlatWarehouseInFlow.inOrOutSotckDetailId=In/Out Sub Document ID
search.ViewFlatWarehouseInFlow.productGuid=Product GUID
search.ViewFlatWarehouseInFlow.productId=Product ID
search.ViewFlatWarehouseInFlow.quantity=Quantity
search.ViewFlatWarehouseInFlow.createMan=Creator
search.ViewFlatWarehouseInFlow.warehouseId=Warehouse ID
search.ViewFlatWarehouseInFlow.warehouseName=Warehouse Name
search.ViewFlatWarehouseInFlow.address=Warehouse Address
search.ViewFlatWarehouseInFlow.cDesc=Warehouse Description
search.ViewFlatWarehouseInFlow.warehouseKind=Warehouse Level
search.ViewFlatWarehouseInFlow.warehouseType=Warehouse Type
search.ViewFlatWarehouseInFlow.isCurrent=Is Available
search.ViewFlatWarehouseInFlow.productName=Product Name
search.ViewFlatWarehouseInFlow.spec=Specification
search.ViewFlatWarehouseInFlow.unit=Unit
search.ViewFlatWarehouseInFlow.price=Price
search.ViewFlatWarehouseInFlow.spare1=English Name
search.ViewFlatWarehouseInFlow.spare2=Net Weight per Unit
search.ViewFlatWarehouseInFlow.spare5=Length MM
search.ViewFlatWarehouseInFlow.spare6=Width MM
search.ViewFlatWarehouseInFlow.spare7=Height MM
search.ViewFlatWarehouseInFlow.spare8=Volume m³
search.ViewFlatWarehouseInFlow.remark=Remark
# ViewInJobFlow
search.ViewInJobFlow.jobId=Job ID
search.ViewInJobFlow.jobDetailId=Job Detail ID
search.ViewInJobFlow.status=Status
search.ViewInJobFlow.taskNo=Task Number
search.ViewInJobFlow.trayCode=Tray Code
search.ViewInJobFlow.roadwayId=Roadway ID
search.ViewInJobFlow.cargoSpaceId=Cargo Space ID
search.ViewInJobFlow.cargoSpaceName=Cargo Space Name
search.ViewInJobFlow.thePlatoon=Row
search.ViewInJobFlow.theColumn=Column
search.ViewInJobFlow.theFloor=Floor
search.ViewInJobFlow.priority=Priority
search.ViewInJobFlow.executionPhase=Execution Phase
search.ViewInJobFlow.inOrOut=Job Type
search.ViewInJobFlow.entranceId=Entrance ID
search.ViewInJobFlow.productId=Product ID
search.ViewInJobFlow.lotNo=Lot Number
search.ViewInJobFlow.stackingId=Stacking ID
search.ViewInJobFlow.stockStatus=Stock Status
search.ViewInJobFlow.inQuantity=In Quantity
search.ViewInJobFlow.inOrOutId=Document ID
search.ViewInJobFlow.inOrOutDId=Sub Document ID
search.ViewInJobFlow.startTime=Start Time
search.ViewInJobFlow.finishTime=Finish Time
search.ViewInJobFlow.warehouseId=Warehouse ID
search.ViewInJobFlow.productName=Product Name
search.ViewInJobFlow.spec=Specification
search.ViewInJobFlow.unit=Unit
search.ViewInJobFlow.price=Price
search.ViewInJobFlow.spare1=English Name
search.ViewInJobFlow.spare2=Net Weight per Unit
search.ViewInJobFlow.spare5=Length MM
search.ViewInJobFlow.spare6=Width MM
search.ViewInJobFlow.spare7=Height MM
search.ViewInJobFlow.spare8=Volume m³
search.ViewInJobFlow.remark=Remark
#ViewOutJobFlow
search.ViewOutJobFlow.jobId=Job ID
search.ViewOutJobFlow.jobDetailId=Job Detail ID
search.ViewOutJobFlow.status=Status
search.ViewOutJobFlow.taskNo=Task Number
search.ViewOutJobFlow.trayCode=Tray Code
search.ViewOutJobFlow.roadwayId=Roadway ID
search.ViewOutJobFlow.cargoSpaceId=Cargo Space ID
search.ViewOutJobFlow.cargoSpaceName=Cargo Space Name
search.ViewOutJobFlow.thePlatoon=Row
search.ViewOutJobFlow.theColumn=Column
search.ViewOutJobFlow.theFloor=Floor
search.ViewOutJobFlow.priority=Priority
search.ViewOutJobFlow.executionPhase=Execution Phase
search.ViewOutJobFlow.inOrOut=Job Type
search.ViewOutJobFlow.exitId=Exit ID
search.ViewOutJobFlow.productId=Product ID
search.ViewOutJobFlow.lotNo=Lot Number
search.ViewOutJobFlow.stackingId=Stacking ID
search.ViewOutJobFlow.stockStatus=Stock Status
search.ViewOutJobFlow.outQuantity=Out Quantity
search.ViewOutJobFlow.giveNum=Return Quantity
search.ViewOutJobFlow.inOrOutId=Document ID
search.ViewOutJobFlow.inOrOutDId=Sub Document ID
search.ViewOutJobFlow.startTime=Start Time
search.ViewOutJobFlow.finishTime=Finish Time
search.ViewOutJobFlow.warehouseId=Warehouse ID
search.ViewOutJobFlow.productName=Product Name
search.ViewOutJobFlow.spec=Specification
search.ViewOutJobFlow.unit=Unit
search.ViewOutJobFlow.customerName=Customer Name
search.ViewOutJobFlow.price=Price
search.ViewOutJobFlow.spare1=English Name
search.ViewOutJobFlow.spare2=Net Weight per Unit
search.ViewOutJobFlow.spare5=Length MM
search.ViewOutJobFlow.spare6=Width MM
search.ViewOutJobFlow.spare7=Height MM
search.ViewOutJobFlow.spare8=Volume m³
search.ViewOutJobFlow.remark=Remark
# ViewStockoutHistory
search.ViewStockoutHistory.stockoutId=Stockout ID
search.ViewStockoutHistory.warehouseId=Warehouse ID
search.ViewStockoutHistory.outType=Out Type
search.ViewStockoutHistory.createDate=Create Date
search.ViewStockoutHistory.createManId=Creator ID
search.ViewStockoutHistory.status=Status
search.ViewStockoutHistory.stockoutSource=Stockout Source
search.ViewStockoutHistory.exitId=Exit Type
search.ViewStockoutHistory.stockoutDetailId=Stockout Detail ID
search.ViewStockoutHistory.productId=Product ID
search.ViewStockoutHistory.productName=Product Name
search.ViewStockoutHistory.lotNo=Lot Number
search.ViewStockoutHistory.quantity=Out Quantity
search.ViewStockoutHistory.allotQuantity=Allot Quantity
search.ViewStockoutHistory.assignNum=Assign Number
search.ViewStockoutHistory.erpStockoutId=ERP Stockout ID
search.ViewStockoutHistory.entryid=Customer Code
search.ViewStockoutHistory.customerName=Customer Name
search.ViewStockoutHistory.spec=Specification
search.ViewStockoutHistory.unit=Unit
search.ViewStockoutHistory.price=Price
search.ViewStockoutHistory.spare1=English Name
search.ViewStockoutHistory.spare2=Net Weight per Unit
search.ViewStockoutHistory.spare5=Length MM
search.ViewStockoutHistory.spare6=Width MM
search.ViewStockoutHistory.spare7=Height MM
search.ViewStockoutHistory.spare8=Volume m³
search.ViewStockoutHistory.remark=Remark
# ViewStockinHistory
search.ViewStockinHistory.stockinGuid=Stockin GUID
search.ViewStockinHistory.stockinId=Stockin ID
search.ViewStockinHistory.inType=In Type
search.ViewStockinHistory.createDate=Create Date
search.ViewStockinHistory.createManId=Creator
search.ViewStockinHistory.status=Status
search.ViewStockinHistory.warehouseId=Warehouse ID
search.ViewStockinHistory.finishDate=Finish Date
search.ViewStockinHistory.erpBill=ERP Bill
search.ViewStockinHistory.stockSource=Stock Source
search.ViewStockinHistory.departmentNo=Department No
search.ViewStockinHistory.classNo=Class No
search.ViewStockinHistory.supplierNo=Supplier No
search.ViewStockinHistory.supplierName=Supplier Name
search.ViewStockinHistory.simpleName=Simple Name
search.ViewStockinHistory.contactName=Contact Name
search.ViewStockinHistory.contactNumber=Contact Number
search.ViewStockinHistory.address=Supplier Address
search.ViewStockinHistory.stockinDetailId=Stockin Detail ID
search.ViewStockinHistory.lotNo=Lot Number
search.ViewStockinHistory.quantity=Planned Quantity
search.ViewStockinHistory.quantityX=Planned Boxes
search.ViewStockinHistory.quantityJ=Planned Pieces
search.ViewStockinHistory.assignNum=Actual Quantity
search.ViewStockinHistory.assignNumX=Actual Boxes
search.ViewStockinHistory.assignNumJ=Actual Pieces
search.ViewStockinHistory.scanNum=Scan Quantity
search.ViewStockinHistory.scanNumX=Scan Boxes
search.ViewStockinHistory.scanNumJ=Scan Pieces
search.ViewStockinHistory.printDate=In Date
search.ViewStockinHistory.stockStatus=Stock Status
search.ViewStockinHistory.price=Price
search.ViewStockinHistory.productId=Product ID
search.ViewStockinHistory.productName=Product Name
search.ViewStockinHistory.unit=Unit
search.ViewStockinHistory.spec=Specification
search.ViewStockinHistory.spare1=English Name
search.ViewStockinHistory.spare2=Net Weight per Unit
search.ViewStockinHistory.spare5=Length MM
search.ViewStockinHistory.spare6=Width MM
search.ViewStockinHistory.spare7=Height MM
search.ViewStockinHistory.spare8=Volume m³
search.ViewStockinHistory.remark=Remark
# StockSummary
search.StockSummary.productId=Product ID
search.StockSummary.productName=Product Name
search.StockSummary.spec=Specification
search.StockSummary.unit=Unit
search.StockSummary.lotNo=Lot Number
search.StockSummary.warehouseName=Warehouse
search.StockSummary.quantity=Stock Quantity
search.StockSummary.price=Price
search.StockSummary.spare1=English Name
search.StockSummary.spare2=Net Weight per Unit
search.StockSummary.spare5=Length MM
search.StockSummary.spare6=Width MM
search.StockSummary.spare7=Height MM
search.StockSummary.spare8=Volume m³
search.StockSummary.remark=Remark
search.StockSummary.cargoSpaceName=Cargo Space Name
# ViewStockDetail
search.ViewStockDetail.onlyIdentity=ID
search.ViewStockDetail.stockId=Stock ID
search.ViewStockDetail.cargoSpaceId=Cargo Space ID
search.ViewStockDetail.trayCode=Tray Code
search.ViewStockDetail.quantity=Quantity
search.ViewStockDetail.jobId=Job ID
search.ViewStockDetail.lotNo=Lot Number
search.ViewStockDetail.stockinDetailId=Stock In Detail ID
search.ViewStockDetail.inDate=In Date
search.ViewStockDetail.warehouseId=Warehouse
search.ViewStockDetail.stackingId=Stacking ID
search.ViewStockDetail.cargoSpaceName=Cargo Space Name
search.ViewStockDetail.roadwayId=Roadway ID
search.ViewStockDetail.cargoSpaceStatus=Cargo Space Status
search.ViewStockDetail.locked=Locked
search.ViewStockDetail.productId=Product ID
search.ViewStockDetail.productName=Product Name
search.ViewStockDetail.spec=Specification
search.ViewStockDetail.unit=Unit
search.ViewStockDetail.price=Price
search.ViewStockDetail.spare1=English Name
search.ViewStockDetail.spare2=Net Weight per Unit
search.ViewStockDetail.spare5=Length MM
search.ViewStockDetail.spare6=Width MM
search.ViewStockDetail.spare7=Height MM
search.ViewStockDetail.spare8=Volume m³
search.ViewStockDetail.remark=Remark
search.ViewStockDetail.stockStatus=Stock Status
search.ViewStockDetail.productStatus=Product Status

View File

@@ -115,7 +115,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="stockinId != null and stockinId != ''"> and is2.stockin_id = #{stockinId}</if>
<if test="inType != null and inType != ''"> and is2.in_type = #{inType}</if>
<if test="createDate != null and createDate != ''"> and is2.create_date = #{createDate}</if>
<if test="beginTime != null and beginTime != ''"> and is2.create_date &gt;= #{beginTime}</if>
<if test="endTime != null and endTime != ''"> and is2.create_date &lt;= #{endTime}</if>
<if test="createManId != null and createManId != ''"> and is2.create_man_id = #{createManId}</if>
<if test="status != null and status != ''"> and is2.status = #{status}</if>
<if test="warehouseId != null and warehouseId != ''"> and is2.warehouse_id = #{warehouseId}</if>
@@ -126,6 +127,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="customerNo != null and customerNo != ''"> and is2.customer_no = #{customerNo}</if>
<if test="classNo != null and classNo != ''"> and is2.class_no = #{classNo}</if>
<if test="supplierNo != null and supplierNo != ''"> and is2.supplier_no = #{supplierNo}</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName},'%')</if>
<if test="spare1 != null and spare1 != ''"> and is2.spare1 = #{spare1}</if>
<if test="spare2 != null and spare2 != ''"> and is2.spare2 = #{spare2}</if>
<if test="spare3 != null and spare3 != ''"> and is2.spare3 = #{spare3}</if>

View File

@@ -66,7 +66,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="stockinId != null and stockinId != ''"> and is2.stockin_id = #{stockinId}</if>
<if test="inType != null and inType != ''"> and is2.in_type = #{inType}</if>
<if test="createDate != null and createDate != ''"> and is2.create_date = #{createDate}</if>
<if test="beginTime != null and beginTime != ''"> and is2.create_date &gt;= #{beginTime}</if>
<if test="endTime != null and endTime != ''"> and is2.create_date &lt;= #{endTime}</if>
<if test="createManId != null and createManId != ''"> and is2.create_man_id = #{createManId}</if>
<if test="status != null and status != ''"> and is2.status = #{status}</if>
<if test="warehouseId != null and warehouseId != ''"> and is2.warehouse_id = #{warehouseId}</if>
@@ -77,6 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="customerNo != null and customerNo != ''"> and is2.customer_no = #{customerNo}</if>
<if test="classNo != null and classNo != ''"> and is2.class_no = #{classNo}</if>
<if test="supplierNo != null and supplierNo != ''"> and is2.supplier_no = #{supplierNo}</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName},'%')</if>
<if test="spare1 != null and spare1 != ''"> and is2.spare1 = #{spare1}</if>
<if test="spare2 != null and spare2 != ''"> and is2.spare2 = #{spare2}</if>
<if test="spare4 != null and spare4 != ''"> and is2.spare4 = #{spare4}</if>

View File

@@ -123,6 +123,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="priority != null "> and mj.priority = #{priority}</if>
<if test="executionPhase != null and executionPhase != ''"> and mj.execution_phase = #{executionPhase}</if>
<if test="inOrOut != null and inOrOut != ''"> and mj.in_or_out = #{inOrOut}</if>
<if test="beginCreateTime != null and beginCreateTime != ''"> and mj.create_time &gt;= #{beginCreateTime}</if>
<if test="endCreateTime != null and endCreateTime != ''"> and mj.create_time &lt;= #{endCreateTime}</if>
<if test="startTime != null and startTime != ''"> and mj.start_time like concat('%', #{startTime}, '%')</if>
<if test="finishTime != null and finishTime != ''"> and mj.finish_time like concat('%', #{finishTime}, '%')</if>
<if test="entranceId != null and entranceId != ''"> and mj.entrance_id = #{entranceId}</if>

View File

@@ -77,6 +77,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="priority != null "> and mj.priority = #{priority}</if>
<if test="executionPhase != null and executionPhase != ''"> and mj.execution_phase = #{executionPhase}</if>
<if test="inOrOut != null and inOrOut != ''"> and mj.in_or_out = #{inOrOut}</if>
<if test="beginCreateTime != null and beginCreateTime != ''"> and mj.create_time &gt;= #{beginCreateTime}</if>
<if test="endCreateTime != null and endCreateTime != ''"> and mj.create_time &lt;= #{endCreateTime}</if>
<if test="startTime != null and startTime != ''"> and mj.start_time like concat('%', #{startTime}, '%')</if>
<if test="finishTime != null and finishTime != ''"> and mj.finish_time like concat('%', #{finishTime}, '%')</if>
<if test="entranceId != null and entranceId != ''"> and mj.entrance_id like concat('%',#{entranceId},'%')</if>

View File

@@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="stockoutGuid != null and stockoutGuid != ''"> and o.stockout_guid = #{stockoutGuid}</if>
<if test="stockoutId != null and stockoutId != ''"> and o.stockout_id = #{stockoutId}</if>
<if test="outType != null and outType != ''"> and o.out_type = #{outType}</if>
<if test="startDate != null and startDate != ''"> and o.create_date &gt;= #{startDate}</if>
<if test="finishDate != null and finishDate != ''"> and o.create_date &lt;= #{finishDate}</if>
<if test="departmentNo != null and departmentNo != ''"> and o.department_no = #{departmentNo}</if>

View File

@@ -116,7 +116,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="stockinId != null and stockinId != ''"> and rs.stockin_id = #{stockinId}</if>
<if test="inType != null and inType != ''"> and rs.in_type = #{inType}</if>
<if test="createDate != null and createDate != ''"> and rs.create_date = #{createDate}</if>
<if test="beginTime != null and beginTime != ''"> and rs.create_date &gt;= #{beginTime}</if>
<if test="endTime != null and endTime != ''"> and rs.create_date &lt;= #{endTime}</if>
<if test="createManId != null and createManId != ''"> and rs.create_man_id = #{createManId}</if>
<if test="status != null and status != ''"> and rs.status = #{status}</if>
<if test="warehouseId != null and warehouseId != ''"> and rs.warehouse_id = #{warehouseId}</if>

View File

@@ -68,7 +68,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="stockinId != null and stockinId != ''"> and rs.stockin_id = #{stockinId}</if>
<if test="inType != null and inType != ''"> and rs.in_type = #{inType}</if>
<if test="createDate != null and createDate != ''"> and rs.create_date = #{createDate}</if>
<if test="beginTime != null and beginTime != ''"> and rs.create_date &gt;= #{beginTime}</if>
<if test="endTime != null and endTime != ''"> and rs.create_date &lt;= #{endTime}</if>
<if test="createManId != null and createManId != ''"> and rs.create_man_id = #{createManId}</if>
<if test="status != null and status != ''"> and rs.status = #{status}</if>
<if test="warehouseId != null and warehouseId != ''"> and rs.warehouse_id = #{warehouseId}</if>

View File

@@ -34,6 +34,7 @@ public class I18nConfig implements WebMvcConfigurer
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
// 参数名
lci.setParamName("lang");
//获取修改完后的语言
return lci;
}

View File

@@ -115,7 +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/**","/api2wms/**","/api2wcs/**").permitAll()
.antMatchers("/api/**","/api2wms/**","/api2wcs/**","/common/download").permitAll()
// 除上面外的所有请求全部需要鉴权认证
.anyRequest().authenticated();
})

View File

@@ -2,6 +2,7 @@ package com.ruoyi.framework.web.service;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -28,6 +29,13 @@ import com.ruoyi.framework.manager.factory.AsyncFactory;
import com.ruoyi.framework.security.context.AuthenticationContextHolder;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
/**
* 登录校验方法
@@ -96,6 +104,7 @@ public class SysLoginService
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId());
// 生成token
return tokenService.createToken(loginUser);
}

View File

@@ -170,6 +170,8 @@ export default {
stockinId: '收货订单ID',
inputstockinId: '请输入收货订单ID',
supplierNo: '供应商编码',
supplierName: '供应商名称',
inputSupplierName: '请输入供应商名称',
selecInType: "请选择入库类型",
inputSupplierNo: '请输入供应商编码',
stockSource: '单据来源',
@@ -186,10 +188,12 @@ export default {
delet: '删除',
inType: '入库类型',
createDate: '建立时间',
startDate:'开始时间',
endDate:'结束时间',
createManName: '创建人',
warehouseName: '仓库',
departmentName: '部门',
supplierName: '供应商',
testing: '质检',
stockinDetailId: '子单ID',
lotNo: '批次号',
@@ -296,6 +300,8 @@ export default {
cartonNo: '箱号',
packingMethod: '包装方式',
createTime: "创建时间",
beginCreateTime: "开始时间",
endCreateTime: "结束时间",
selectPrintData: "请选择要操作的数据",
selectOnePrintData: "请选择一条任务",
operaSuccess: "操作成功",
@@ -343,6 +349,7 @@ export default {
createDate: '创建时间',
startDate: '开始时间',
finishDate: '确认时间',
endDate: '结束时间',
warehouseId: '仓库编号',
warehouseName: '仓库名称',
stockoutDetailId: '出库子单编号',

View File

@@ -170,6 +170,8 @@ export default {
stockinId: '收货订单ID',
inputstockinId: '请输入收货订单ID',
supplierNo: '供应商编码',
supplierName: '供应商名称',
inputSupplierName: '请输入供应商名称',
selecInType: "请选择入库类型",
inputSupplierNo: '请输入供应商编码',
stockSource: '单据来源',
@@ -186,10 +188,12 @@ export default {
delet: '删除',
inType: '入库类型',
createDate: '建立时间',
startDate:'开始时间',
endDate:'结束时间',
createManName: '创建人',
warehouseName: '仓库',
departmentName: '部门',
supplierName: '供应商',
testing: '质检',
stockinDetailId: '子单ID',
lotNo: '批次号',
@@ -296,6 +300,8 @@ export default {
cartonNo: '箱号',
packingMethod: '包装方式',
createTime: "创建时间",
beginCreateTime: "开始时间",
endCreateTime: "结束时间",
selectPrintData: "请选择要操作的数据",
selectOnePrintData: "请选择一条任务",
operaSuccess: "操作成功",
@@ -343,6 +349,7 @@ export default {
createDate: '创建时间',
startDate: '开始时间',
finishDate: '确认时间',
endDate: '结束时间',
warehouseId: '仓库编号',
warehouseName: '仓库名称',
stockoutDetailId: '出库子单编号',

View File

@@ -170,6 +170,8 @@ export default {
stockinId: '收货订单ID',
inputstockinId: '请输入收货订单ID',
supplierNo: '供应商编码',
supplierName: '供应商名称',
inputSupplierName: '请输入供应商名称',
selecInType: "请选择入库类型",
inputSupplierNo: '请输入供应商编码',
stockSource: '单据来源',
@@ -186,10 +188,13 @@ export default {
delet: '删除',
inType: '入库类型',
createDate: '建立时间',
startDate:'开始时间',
endDate:'结束时间',
createManName: '创建人',
warehouseName: '仓库',
departmentName: '部门',
supplierName: '供应商',
testing: '质检',
stockinDetailId: '子单ID',
lotNo: '批次号',
@@ -296,6 +301,10 @@ export default {
cartonNo: '箱号',
packingMethod: '包装方式',
createTime: "创建时间",
beginCreateTime: "开始时间",
endCreateTime: "结束时间",
selectPrintData: "请选择要操作的数据",
selectOnePrintData: "请选择一条任务",
operaSuccess: "操作成功",
@@ -343,6 +352,8 @@ export default {
createDate: '创建时间',
startDate: '开始时间',
finishDate: '确认时间',
endDate: '结束时间',
warehouseId: '仓库编号',
warehouseName: '仓库名称',
stockoutDetailId: '出库子单编号',

View File

@@ -56,7 +56,7 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('inJob.startTime')" prop="startTime">
<!-- <el-form-item :label="$t('inJob.startTime')" prop="startTime">
<el-date-picker clearable
v-model="queryParams.startTime"
type="date"
@@ -71,6 +71,17 @@
value-format="yyyy-MM-dd"
:placeholder="$t('inJob.selectFinishTime')">
</el-date-picker>
</el-form-item> -->
<el-form-item :label="$t('inJob.createTime')" prop="dateRange">
<el-date-picker
v-model="dateRange"
type="datetimerange"
range-separator="---"
:start-placeholder="$t('inJob.beginCreateTime')"
:end-placeholder="$t('inJob.endCreateTime')"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
/>
</el-form-item>
<el-form-item :label="$t('inJob.entranceId')" prop="entranceId">
<el-input
@@ -234,6 +245,8 @@ export default {
loading: true,
detailLoading:false,
warehouseOptions:[],
// 日期范围
dateRange: [],
// 选中数组
ids: [],
// 非单个禁用
@@ -284,7 +297,9 @@ export default {
classId: null,
warehouseId: null,
faultFlag: null,
inOut:"1"
inOut:"1",
beginCreateTime: null,
endCreateTime: null
},
queryDetailParams:{
pageNum: 1,
@@ -370,6 +385,14 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
// 处理日期范围
if (this.dateRange && this.dateRange.length > 0) {
this.queryParams.beginCreateTime = this.dateRange[0]
this.queryParams.endCreateTime = this.dateRange[1]
} else {
this.queryParams.beginCreateTime = null
this.queryParams.endCreateTime = null
}
// 清空子表数据和当前选中行
this.mydoJobDetailList = []
this.detailTotal = 0
@@ -379,6 +402,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
// 清空子表数据
this.mydoJobDetailList = [];

View File

@@ -20,8 +20,8 @@
</el-col>
<el-col :span="6">
<el-form-item :label="$t('receiveStockinAdd.supplier')" prop="supplierId">
<el-input
v-model="form.supplierName"
<el-input
v-model="form.supplierName"
:placeholder="$t('receiveStockinAdd.selectSupplier')"
@click.native="openSupplierSelector"
readonly
@@ -63,6 +63,17 @@
<el-table-column fixed :label="$t('receiveStockinAdd.productId')" align="left" prop="productId" /><!--物料编码-->
<el-table-column fixed :label="$t('receiveStockinAdd.productName')" align="left" prop="productName" /><!--物料名称-->
<el-table-column fixed :label="$t('receiveStockinAdd.spare1')" align="left" prop="spare1"/><!--英文描述-->
<el-table-column fixed :label="$t('receiveStockinAdd.quantity')" width="240" align="right">
<template slot-scope="scope">
<el-input-number
v-model="scope.row.quantity"
:min="1"
controls-position="right"
required="required"
@change="calculateTotal"
/>
</template>
</el-table-column>
<el-table-column :label="$t('receiveStockinAdd.unit')" align="left" prop="unit" /><!--单位-->
<el-table-column :label="$t('receiveStockinAdd.spare2')" align="right" prop="spare2" width="120px"/><!--单件净重KG-->
<el-table-column :label="$t('receiveStockinAdd.totalNetWeight')" width="120" align="right">
@@ -89,7 +100,7 @@
</template>
</el-table-column>
<el-table-column :label="$t('receiveStockinAdd.price')" align="right" prop="price" /><!--价格-->
<el-table-column :label="$t('receiveStockinAdd.remark')" align="center" prop="remark" /><!--描述-->
<!-- <el-table-column :label="$t('receiveStockinAdd.batchNumber')" width="120" align="center">
<template slot-scope="scope">
<el-input
@@ -99,17 +110,7 @@
/>
</template>
</el-table-column>-->
<el-table-column :label="$t('receiveStockinAdd.quantity')" width="120" align="right">
<template slot-scope="scope">
<el-input-number
v-model="scope.row.quantity"
:min="1"
controls-position="right"
required="required"
@change="calculateTotal"
/>
</template>
</el-table-column>
<el-table-column :label="$t('receiveStockinAdd.unitPrice')" width="120" align="left">
<template slot-scope="scope">
<el-input-number
@@ -126,6 +127,7 @@
<span>{{ (scope.row.quantity * scope.row.price).toFixed(2) }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('receiveStockinAdd.remark')" align="center" prop="remark" /><!--描述-->
<el-table-column :label="$t('receiveStockinAdd.operation')" width="100" align="center">
<template slot-scope="scope">
<el-button
@@ -200,7 +202,7 @@
<el-button @click="upload.open = false">{{ $t('receiveStockinAdd.cancel') }}</el-button>
</div>
</el-dialog>
<!-- 供应商选择对话框 -->
<el-dialog title="选择供应商" :visible.sync="supplierDialog" width="800px" append-to-body>
<el-form :model="supplierQueryParams" ref="supplierQueryForm" :inline="true">
@@ -227,7 +229,7 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetSupplierQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table
ref="supplierTable"
v-loading="supplierLoading"
@@ -247,7 +249,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="supplierTotal > 0"
:total="supplierTotal"
@@ -255,7 +257,7 @@
:limit.sync="supplierQueryParams.pageSize"
@pagination="getSupplierList"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmSelectSupplier">确定</el-button>
<el-button @click="cancelSelectSupplier">取消</el-button>
@@ -321,7 +323,7 @@ export default {
pageSize: 10,
supplierNo: null,
supplierName: null
},
// 物料列表
productList: [],
@@ -395,13 +397,13 @@ export default {
this.supplierOptions = response.rows;
});
},
/** 打开供应商选择对话框 */
openSupplierSelector() {
this.getSupplierListForDialog();
this.supplierDialog = true;
},
/** 获取供应商列表(对话框数据) */
getSupplierListForDialog() {
this.supplierLoading = true;
@@ -411,26 +413,26 @@ export default {
this.supplierLoading = false;
});
},
/** 供应商查询 */
handleSupplierQuery() {
this.supplierQueryParams.pageNum = 1;
this.getSupplierListForDialog();
},
/** 重置供应商查询 */
resetSupplierQuery() {
this.resetForm("supplierQueryForm");
// this.supplierQueryParams.useable = "0";
this.handleSupplierQuery();
},
/** 供应商行点击事件 */
handleSupplierRowClick(row) {
this.selectedSupplier = row;
this.$refs.supplierTable.setCurrentRow(row);
},
/** 确认选择供应商 */
confirmSelectSupplier() {
if (!this.selectedSupplier) {
@@ -441,7 +443,7 @@ export default {
this.form.supplierName = this.selectedSupplier.supplierName;
this.supplierDialog = false;
},
/** 取消选择供应商 */
cancelSelectSupplier() {
this.selectedSupplier = null;

View File

@@ -46,6 +46,18 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('inReceiveStockin.createDate')" prop="dateRange">
<el-date-picker
v-model="dateRange"
size="small"
type="datetimerange"
range-separator="---"
:start-placeholder="$t('inReceiveStockin.startDate')"
:end-placeholder="$t('inReceiveStockin.endDate')"
value-format="yyyy-MM-dd HH:mm:ss"
@change="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{$t('inReceiveStockin.search')}}</el-button><!--搜索-->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{$t('inReceiveStockin.reset')}}</el-button><!--重置-->
@@ -187,21 +199,15 @@
</el-row>
<el-table v-loading="detailLoading" :data="stockInDetailList" @selection-change="handleDetailSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column :label="$t('inReceiveStockin.stockinDetailId')" align="left" prop="stockinDetailId"/><!--子单ID-->
<el-table-column :label="$t('inReceiveStockin.stockinDetailId')" align="left" prop="stockinDetailId"/>
<!-- <el-table-column label="主单GUID" align="center" prop="stockinGuid" /> -->
<el-table-column :label="$t('inReceiveStockin.stockinId')" align="left" prop="stockinId"/><!--主单ID-->
<!-- <el-table-column :label="$t('inReceiveStockin.lotNo')" align="left" prop="lotNo"/>&lt;!&ndash;批次号&ndash;&gt;-->
<!-- <el-table-column label="物料ID" align="center" prop="productGuid"/>-->
<el-table-column :label="$t('inReceiveStockin.stockinId')" align="left" prop="stockinId"/>
<!-- <el-table-column :label="$t('inReceiveStockin.lotNo')" align="left" prop="lotNo"/>-->
<!-- <el-table-column :label="$t('inReceiveStockin.productGuid')" align="center" prop="productGuid"/>-->
<el-table-column :label="$t('inReceiveStockin.productId')" align="left" prop="productId"/><!--物料编码-->
<el-table-column :label="$t('inReceiveStockin.materialDesc')" align="left" prop="extraField.materialDesc"/><!--物料描述-->
<el-table-column :label="$t('inReceiveStockin.englishDesc')" align="left" prop="extraField.englishDesc"/><!--英文描述-->
<el-table-column :label="$t('inReceiveStockin.cartonNo')" align="left" prop="extraField.cartonNo"/><!--箱号-->
<el-table-column :label="$t('inReceiveStockin.packingMethod')" align="left" prop="extraField.packingMethod"/><!--包装方式-->
<!-- <el-table-column :label="$t('inReceiveStockin.grossWeight')" align="center" prop="extraField.grossWeight"/>&lt;!&ndash;毛重&ndash;&gt;-->
<el-table-column :label="$t('inReceiveStockin.netWeight')" align="right" width="120" prop="extraField.netWeight"/><!--净重-->
<!-- <el-table-column :label="$t('inReceiveStockin.totalPrice')" align="center" prop="extraField.totalPrice"/>&lt;!&ndash;总价格&ndash;&gt;-->
<!-- <el-table-column :label="$t('inReceiveStockin.totalNetWeight')" align="center" prop="extraField.totalNetWeight"/>&lt;!&ndash;总净重&ndash;&gt;-->
<el-table-column :label="$t('inReceiveStockin.quantity')" width="120" align="right"><!--计划数量-->
<el-table-column :label="$t('inReceiveStockin.quantity')" width="240" align="right"><!--计划数量-->
<template slot-scope="scope">
<el-input-number
v-model="scope.row.quantity"
@@ -211,6 +217,13 @@
/>
</template>
</el-table-column>
<el-table-column :label="$t('inReceiveStockin.cartonNo')" align="left" prop="extraField.cartonNo"/><!--箱号-->
<el-table-column :label="$t('inReceiveStockin.packingMethod')" align="left" prop="extraField.packingMethod"/><!--包装方式-->
<!-- <el-table-column :label="$t('inReceiveStockin.grossWeight')" align="center" prop="extraField.grossWeight"/>&lt;!&ndash;毛重&ndash;&gt;-->
<el-table-column :label="$t('inReceiveStockin.netWeight')" align="right" width="120" prop="extraField.netWeight"/><!--净重-->
<!-- <el-table-column :label="$t('inReceiveStockin.totalPrice')" align="center" prop="extraField.totalPrice"/>&lt;!&ndash;总价格&ndash;&gt;-->
<!-- <el-table-column :label="$t('inReceiveStockin.totalNetWeight')" align="center" prop="extraField.totalNetWeight"/>&lt;!&ndash;总净重&ndash;&gt;-->
<!-- <el-table-column label="计划数量(箱)" align="center" prop="quantityX" />
<el-table-column label="计划数量(件)" align="center" prop="quantityJ" />-->
<!-- <el-table-column label="参考单价" align="center" prop="price"/>-->
@@ -306,6 +319,7 @@ export default {
// 是否显示弹出层
open: false,
// 查询参数
dateRange: [],
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -327,7 +341,9 @@ export default {
customerNo: null,
classNo: null,
supplierNo: null,
materialDesc: null
materialDesc: null,
beginTime: null,
endTime: null
},
queryDetailParams: {
pageNum: 1,
@@ -399,10 +415,18 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
if (this.dateRange && this.dateRange.length === 2) {
this.queryParams.beginTime = this.dateRange[0]
this.queryParams.endTime = this.dateRange[1]
} else {
this.queryParams.beginTime = null
this.queryParams.endTime = null
}
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm")
this.handleQuery()
},

View File

@@ -61,6 +61,27 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('inReceiveStockin.supplierName')" prop="supplierName"><!--供应商名称-->
<el-input
v-model="queryParams.supplierName"
:placeholder="$t('inReceiveStockin.inputSupplierName')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('inReceiveStockin.createDate')" prop="dateRange">
<el-date-picker
v-model="dateRange"
size="small"
type="datetimerange"
range-separator="---"
:start-placeholder="$t('inReceiveStockin.startDate')"
:end-placeholder="$t('inReceiveStockin.endDate')"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{$t('inReceiveStockin.search')}}</el-button><!--搜索-->
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">{{$t('inReceiveStockin.reset')}}</el-button><!--重置-->
@@ -243,6 +264,7 @@ export default {
// 是否显示弹出层
open: false,
// 查询参数
dateRange: [],
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -259,6 +281,9 @@ export default {
customerNo: null,
classNo: null,
supplierNo: null,
supplierName:null,
beginTime: null,
endTime: null,
spare1: null,
spare2: null,
spare4: null,
@@ -344,10 +369,18 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
if (this.dateRange && this.dateRange.length > 0) {
this.queryParams.beginTime = this.dateRange[0]
this.queryParams.endTime = this.dateRange[1]
} else {
this.queryParams.beginTime = null
this.queryParams.endTime = null
}
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm")
this.handleQuery()
},

View File

@@ -41,21 +41,17 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('outJobManagement.startTime')" prop="startTime"> <!-- 开始时间 -->
<el-date-picker clearable
v-model="queryParams.startTime"
type="date"
value-format="yyyy-MM-dd"
:placeholder="$t('outJobManagement.selectStartTime')">
</el-date-picker>
</el-form-item>
<el-form-item :label="$t('outJobManagement.finishTime')" prop="finishTime"> <!-- 结束时间 -->
<el-date-picker clearable
v-model="queryParams.finishTime"
type="date"
value-format="yyyy-MM-dd"
:placeholder="$t('outJobManagement.selectFinishTime')">
<el-form-item :label="$t('outJobManagement.createTime')" prop="dateRange"> <!-- 创建时间 -->
<el-date-picker
v-model="dateRange"
type="datetimerange"
range-separator="---"
:start-placeholder="$t('outJobManagement.startTime')"
:end-placeholder="$t('outJobManagement.finishTime')"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
clearable
>
</el-date-picker>
</el-form-item>
@@ -156,7 +152,7 @@
<el-table-column :label="$t('outJobManagement.subDocumentId')" align="left" prop="inOrOutDId" /> <!-- 子单据ID -->
<el-table-column :label="$t('outJobManagement.materialCode')" align="left" prop="productId" /> <!-- 物料编码 -->
<el-table-column :label="$t('outJobManagement.materialDesc')" align="left" prop="extraField.materialDesc" /> <!-- 物料编码 -->
<el-table-column :label="$t('outJobManagement.outQuantity')" align="right" prop="outQuantity" /> <!-- 出库数量 -->
<el-table-column :label="$t('outJobManagement.outQuantity')" align="left" prop="outQuantity" /> <!-- 出库数量 -->
</el-table>
<pagination
@@ -205,6 +201,8 @@ export default {
title: "",
// 是否显示弹出层
open: false,
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
@@ -226,9 +224,8 @@ export default {
priority: null,
executionPhase: null,
inOrOut: null,
createTime: null,
startTime: null,
finishTime: null,
beginCreateTime: null,
endCreateTime: null,
entranceId: null,
exitId: null,
classId: null,
@@ -324,6 +321,14 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
// 处理日期范围
if (this.dateRange && this.dateRange.length > 0) {
this.queryParams.beginCreateTime = this.dateRange[0]
this.queryParams.endCreateTime = this.dateRange[1]
} else {
this.queryParams.beginCreateTime = null
this.queryParams.endCreateTime = null
}
// 清空子表数据和当前选中行
this.mydoJobDetailList = []
this.detailTotal = 0
@@ -335,6 +340,7 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm")
this.dateRange = []
this.handleQuery()
},
// 多选框选中数据

View File

@@ -32,7 +32,7 @@
</el-form-item>
<el-form-item :label="$t('outStockoutManage.customerName')" prop="customerName">
<el-input
v-model="queryParams.inputCustomerName"
v-model="queryParams.customerName"
:placeholder="$t('outStockoutManage.inputCustomerName')"
clearable
@keyup.enter.native="handleQuery"
@@ -40,27 +40,22 @@
</el-form-item>
<el-form-item :label="$t('outStockoutManage.productName')" prop="productName">
<el-input
v-model="queryParams.customerNo"
v-model="queryParams.productName"
:placeholder="$t('outStockoutManage.inputProductName')"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item :label="$t('outStockoutManage.startDate')" prop="startDate">
<el-date-picker clearable
v-model="queryParams.startDate"
type="date"
value-format="yyyy-MM-dd"
:placeholder="$t('outStockoutManage.selectStartDate')">
</el-date-picker>
</el-form-item>
<el-form-item :label="$t('outStockoutManage.finishDate')" prop="finishDate">
<el-date-picker clearable
v-model="queryParams.finishDate"
type="date"
value-format="yyyy-MM-dd"
:placeholder="$t('outStockoutManage.selectFinishDate')">
</el-date-picker>
<el-form-item :label="$t('outStockoutManage.createDate')" prop="dateRange">
<el-date-picker
v-model="dateRange"
type="datetimerange"
range-separator="---"
:start-placeholder="$t('outStockoutManage.startDate')"
:end-placeholder="$t('outStockoutManage.endDate')"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00', '23:59:59']"
/>
</el-form-item>
<el-form-item :label="$t('inReceiveStockin.warehouseId')" prop="warehouseId"><!--仓库-->
<el-select
@@ -125,16 +120,7 @@
v-hasPermi="['out:outStockout:autoAllot']"
>{{$t('outStockoutManage.autoAllot')}}</el-button> <!-- 自动分配 -->
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-s-tools"
size="mini"
@click="handleManualAllot"
v-hasPermi="['out:outStockout:manualAllot']"
>{{$t('outStockoutManage.manualAllot')}}</el-button> <!-- 手动分配 -->
</el-col>
</el-row>
<!-- 主表数据 -->
@@ -271,6 +257,8 @@ export default {
},
// 当前审核状态
currentAuditStatus: null,
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
@@ -346,6 +334,14 @@ export default {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
// 处理日期范围
if (this.dateRange && this.dateRange.length > 0) {
this.queryParams.startDate = this.dateRange[0]
this.queryParams.finishDate = this.dateRange[1]
} else {
this.queryParams.startDate = null
this.queryParams.finishDate = null
}
// 清空子表数据
this.outStockDetailList = []
this.detailTotal = 0
@@ -355,6 +351,7 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm("queryForm")
this.handleQuery()
},

View File

@@ -47,14 +47,14 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('stockManagement.inDate')" prop="startDate"><!-- 入库时间 -->
<el-date-picker clearable
v-model="queryParams.inDate"
type="date"
value-format="yyyy-MM-dd"
:placeholder="$t('stockManagement.inputInDate')">
</el-date-picker>
</el-form-item>
<!-- <el-form-item :label="$t('stockManagement.inDate')" prop="startDate">&lt;!&ndash; 入库时间 &ndash;&gt;-->
<!-- <el-date-picker clearable-->
<!-- v-model="queryParams.inDate"-->
<!-- type="date"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- :placeholder="$t('stockManagement.inputInDate')">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item :label="$t('stockManagement.trayCode')" prop="trayCode"><!-- 托盘条码 -->
<el-input
v-model="queryParams.trayCode"