格式修正
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('inbound.qualityCheck.title') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('inbound.qualityCheck.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -25,6 +26,7 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('inbound.emptyPalletBox.title') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('inbound.emptyPalletBox.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -34,6 +36,7 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('inbound.inorder.title') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('inbound.inorder.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -43,6 +46,7 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('inbound.bindMsg.title') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('inbound.bindMsg.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -52,6 +56,7 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('inbound.backIn.title') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('inbound.backIn.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -70,7 +75,7 @@ export default {
|
||||
navigateTo(url) {
|
||||
tab.navigateTo(url)
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -93,16 +98,18 @@ export default {
|
||||
background-color: #fff;
|
||||
padding: 32rpx;
|
||||
border-radius: 16rpx;
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.18);
|
||||
transition: all 0.3s ease;
|
||||
animation: slideInFromRight 0.3s ease-out forwards;
|
||||
opacity: 0;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-4rpx);
|
||||
box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.12);
|
||||
transform: translateY(0rpx);
|
||||
box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.52);
|
||||
}
|
||||
|
||||
&:active {
|
||||
transform: translateY(0);
|
||||
transform: translateY(0) scale(0.95);
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
}
|
||||
@@ -151,9 +158,29 @@ export default {
|
||||
}
|
||||
|
||||
.desc {
|
||||
font-size: 26rpx;
|
||||
color: #7f8c8d;
|
||||
font-size: 24rpx;
|
||||
color: #99a9aa;
|
||||
letter-spacing: 0.5rpx;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes slideInFromRight {
|
||||
from {
|
||||
transform: translateX(100%);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translateX(0);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.function-item:nth-child(1) { animation-delay: 0.1s; }
|
||||
.function-item:nth-child(2) { animation-delay: 0.2s; }
|
||||
.function-item:nth-child(3) { animation-delay: 0.3s; }
|
||||
.function-item:nth-child(4) { animation-delay: 0.4s; }
|
||||
.function-item:nth-child(5) { animation-delay: 0.5s; }
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
@@ -293,7 +293,7 @@ export default {
|
||||
|
||||
&.expanded {
|
||||
color: #909399;
|
||||
transform: translateY(-50%) rotate(180deg);
|
||||
transform: translateY(-50%) rotate(0deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -309,10 +309,11 @@ export default {
|
||||
border-bottom: 1px solid #EBEEF5;
|
||||
|
||||
.check-all-button {
|
||||
background-color: #409EFF;
|
||||
// background-color: #409EFF;
|
||||
background: linear-gradient(to bottom, #6cd3ff 0%, #3c80ff 70%,);
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 4rpx;
|
||||
border-radius: 10rpx;
|
||||
padding: 12rpx 24rpx;
|
||||
font-size: 26rpx;
|
||||
cursor: pointer;
|
||||
@@ -360,10 +361,11 @@ export default {
|
||||
}
|
||||
|
||||
.check-button {
|
||||
background-color: #409EFF;
|
||||
// background-color: #409EFF;
|
||||
background: linear-gradient(to bottom, #6cd3ff 0%, #3c80ff 70%,);
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 4rpx;
|
||||
border-radius: 10rpx;
|
||||
padding: 12rpx 24rpx;
|
||||
font-size: 26rpx;
|
||||
cursor: pointer;
|
||||
@@ -404,10 +406,10 @@ export default {
|
||||
}
|
||||
|
||||
.material-status {
|
||||
font-size: 26rpx;
|
||||
font-size: 20rpx;
|
||||
padding: 4rpx 12rpx;
|
||||
border-radius: 4rpx;
|
||||
background-color: #e6a23c;
|
||||
border-radius: 30rpx;
|
||||
background-color: #ffaa00;
|
||||
color: #fff;
|
||||
|
||||
&.status-checked {
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('outbound.emptyPalletBox.title') }}</text>
|
||||
<text class="desc">{{ $t('outbound.emptyPalletBox.desc') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('outbound.emptyPalletBox.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="function-item" @click="navigateTo('/pages/out/pkout')">
|
||||
@@ -16,7 +17,8 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('outbound.pkout.title') }}</text>
|
||||
<text class="desc">{{ $t('outbound.pkout.desc') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('outbound.pkout.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="function-item" @click="navigateTo('/pages/out/ckMakeSureByTray')">
|
||||
@@ -25,7 +27,8 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('outbound.ckMakeSureByTray.title') }}</text>
|
||||
<text class="desc">{{ $t('outbound.ckMakeSureByTray.desc') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('outbound.ckMakeSureByTray.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="function-item" @click="navigateTo('/pages/out/bindShell')">
|
||||
@@ -34,7 +37,8 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('outbound.bindShelf.title') }}</text>
|
||||
<text class="desc">{{ $t('outbound.bindShelf.desc') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('outbound.bindShelf.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="function-item" @click="navigateTo('/pages/out/errorout')">
|
||||
@@ -43,7 +47,8 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('outbound.exception.title') }}</text>
|
||||
<text class="desc">{{ $t('outbound.exception.desc') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('outbound.exception.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="function-item" @click="navigateTo('/pages/out/move')">
|
||||
@@ -52,7 +57,8 @@
|
||||
</view>
|
||||
<view class="function-text">
|
||||
<text class="title">{{ $t('outbound.move.title') }}</text>
|
||||
<text class="desc">{{ $t('outbound.move.desc') }}</text>
|
||||
<br/>
|
||||
<text class="desc">{{ $t('outbound.move.desc') }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -95,6 +101,8 @@ export default {
|
||||
border-radius: 16rpx;
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
transition: all 0.3s ease;
|
||||
animation: slideInFromBottom 0.3s ease-out forwards;
|
||||
opacity: 0;
|
||||
|
||||
&:hover {
|
||||
transform: translateY(-4rpx);
|
||||
@@ -150,4 +158,23 @@ export default {
|
||||
letter-spacing: 0.5rpx;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideInFromBottom {
|
||||
from {
|
||||
transform: translateY(100%);
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.function-item:nth-child(1) { animation-delay: 0.1s; }
|
||||
.function-item:nth-child(2) { animation-delay: 0.2s; }
|
||||
.function-item:nth-child(3) { animation-delay: 0.3s; }
|
||||
.function-item:nth-child(4) { animation-delay: 0.4s; }
|
||||
.function-item:nth-child(5) { animation-delay: 0.5s; }
|
||||
.function-item:nth-child(6) { animation-delay: 0.6s; }
|
||||
|
||||
</style>
|
||||
|
||||
@@ -215,16 +215,20 @@ export default {
|
||||
.action-button {
|
||||
font-size: 24rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 4rpx;
|
||||
border-radius: 10rpx;
|
||||
border: none;
|
||||
color: #fff;
|
||||
|
||||
&.in-button {
|
||||
background-color: #4285f4;
|
||||
// background-color: #4285f4;
|
||||
// background: linear-gradient(to bottom, #6ea8f4 0%, #3e59f4 70%);
|
||||
background: linear-gradient(to bottom, #75d98d 0%, #2c9a36 70%);
|
||||
}
|
||||
|
||||
&.out-button {
|
||||
background-color: #34a853;
|
||||
// background-color: #34a853;
|
||||
// background: linear-gradient(to bottom, #75d98d 0%, #34a853 70%);
|
||||
background: linear-gradient(to bottom, #ffd165 0%, #e3900a 70%);
|
||||
}
|
||||
|
||||
&:active {
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
*/
|
||||
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
|
||||
@EnableScheduling
|
||||
@MapperScan("com.ruoyi.**.mapper")
|
||||
public class RuoYiApplication
|
||||
{
|
||||
public static void main(String[] args)
|
||||
|
||||
@@ -72,6 +72,7 @@ public class ToWcsServiceImpl implements IToWcsService {
|
||||
List<MydoJob> outMydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
for (MydoJob outMydoJob : outMydoJobs) {
|
||||
RequestLog requestLog = requestLogService.getRequestLog(PUSH_OUT_MYDO_JOB, JSONUtil.toJsonStr(outMydoJob), "推送出库任务");
|
||||
//推送成功更新任务状态
|
||||
if ("1".equals(requestLog.getIsSuccessful())){
|
||||
outMydoJob.setStatus("2");
|
||||
//outMydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||
|
||||
@@ -67,6 +67,8 @@ public class ToWmsServiceImpl implements IToWmsService {
|
||||
|
||||
@Override
|
||||
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
|
||||
|
||||
//托盘号查找任务
|
||||
MydoJob mydoJobParam = new MydoJob();
|
||||
mydoJobParam.setTrayCode(requestEnter.getTrayCode());
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobListApi(mydoJobParam);
|
||||
|
||||
@@ -5,6 +5,8 @@ import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -31,7 +33,7 @@ public class OutStockout extends BaseEntity
|
||||
|
||||
/** 创建时间 */
|
||||
@Excel(name = "创建时间")
|
||||
private String createDate;
|
||||
private String createDate = LocalDateTime.now().toString().replace("T", " ");
|
||||
|
||||
/** 部门编号 */
|
||||
@Excel(name = "部门编号")
|
||||
|
||||
@@ -161,6 +161,11 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 分配出库单据
|
||||
* @param stockoutId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult autoAllot(String stockoutId) {
|
||||
|
||||
|
||||
@@ -23,10 +23,16 @@ public class TrayCodeMakeSure {
|
||||
private String exitId;
|
||||
|
||||
private String pickId;
|
||||
//拣选详情列表
|
||||
/**
|
||||
* 拣选详情列表
|
||||
*/
|
||||
private List<MydoJobDetail> mydoJobDetailList;
|
||||
//盘点详情列表
|
||||
/**
|
||||
* 盘点详情列表
|
||||
*/
|
||||
private List<MydoJobDetail> materials;
|
||||
//异常详情列表
|
||||
/**
|
||||
* 异常详情列表
|
||||
*/
|
||||
private List<MydoJobDetail> materialDetails;
|
||||
}
|
||||
|
||||
@@ -433,13 +433,22 @@ public class PdaServiceImp implements PdaService {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 盘点出库确认
|
||||
* @param trayCodeMakeSure
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult checkMakeSure(TrayCodeMakeSure trayCodeMakeSure) {
|
||||
|
||||
//获取盘点出库料箱
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(trayCodeMakeSure.getTrayCode());
|
||||
if (mydoJob == null) {
|
||||
return AjaxResult.warn(MessageUtils.message("warn.message"));
|
||||
}
|
||||
|
||||
//获取库区编码
|
||||
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(mydoJob.getWarehouseId());
|
||||
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMaterials();
|
||||
if (CollUtil.isNotEmpty(mydoJobDetailList)) {
|
||||
@@ -458,6 +467,7 @@ public class PdaServiceImp implements PdaService {
|
||||
checkCommitRecord.setSpare3(mydoJobDetail.getOutQuantity());
|
||||
checkCommitRecordService.insertCheckCommitRecord(checkCommitRecord);
|
||||
|
||||
//修改spare3:1-盘点完成
|
||||
mydoJobDetail.setSpare3("1");
|
||||
mydoJobDetailService.updateMydoJobDetail(mydoJobDetail);
|
||||
if ("2".equals(basWarehouse.getWarehouseType())){
|
||||
@@ -465,11 +475,15 @@ public class PdaServiceImp implements PdaService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//获取【盘点完成】的作业
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(mydoJob.getJobId());
|
||||
if (mydoJobDetails.stream().allMatch(x -> "1".equals(x.getSpare3()))) {
|
||||
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
|
||||
|
||||
//执行【盘点确认出库】过程
|
||||
pdaMapper.checkMakeSure(map);
|
||||
//iToWcsService.pushInMydoJob();
|
||||
String result = map.get("v_result").toString();
|
||||
@@ -495,6 +509,7 @@ public class PdaServiceImp implements PdaService {
|
||||
List<TagTask> tagTasks = tagTaskService.selectTagTaskList(param);
|
||||
if (CollUtil.isNotEmpty(tagTasks)) {
|
||||
TagTask tagTask = tagTasks.get(0);
|
||||
//更新状态2:已拣选
|
||||
tagTask.setStatus("2");
|
||||
tagTaskService.updateTagTask(tagTask);
|
||||
}
|
||||
@@ -508,12 +523,18 @@ public class PdaServiceImp implements PdaService {
|
||||
* @param basWarehouse
|
||||
*/
|
||||
private void deleteTagTask(TrayCodeMakeSure trayCodeMakeSure, BasWarehouse basWarehouse, MydoJob mydoJob) {
|
||||
|
||||
//校验【仓库类型】和【任务类型】
|
||||
if ("2".equals(basWarehouse.getWarehouseType()) && "23".equals(mydoJob.getInOrOut())) {
|
||||
|
||||
//获取电子标签工位的容器条码
|
||||
BasTag basTag = basTagService.selectBasTagByTrayCode(trayCodeMakeSure.getTrayCode());
|
||||
if (ObjUtil.isNotNull(basTag)){
|
||||
basTag.setTrayCode("");
|
||||
//更新下发完成: 0-否 1-是
|
||||
basTag.setSendCompleted("0");
|
||||
basTagService.updateBasTag(basTag);
|
||||
|
||||
//删除电子标签
|
||||
TagTask param = new TagTask();
|
||||
param.setTagId(basTag.getId());
|
||||
@@ -552,6 +573,11 @@ public class PdaServiceImp implements PdaService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库异常
|
||||
* @param trayCodeMakeSure
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult outException(TrayCodeMakeSure trayCodeMakeSure) {
|
||||
@@ -564,9 +590,10 @@ public class PdaServiceImp implements PdaService {
|
||||
}
|
||||
List<MydoJobDetail> pickInfoList = trayCodeMakeSure.getMaterialDetails();
|
||||
|
||||
//获取异常出库任务
|
||||
MydoJob mydoJob = mydoJobList.get(0);
|
||||
|
||||
//判断拣选数量
|
||||
//获取作业子表记录 - 判断拣选数量
|
||||
MydoJobDetail param = new MydoJobDetail();
|
||||
param.setJobId(mydoJob.getJobId());
|
||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||
@@ -575,10 +602,13 @@ public class PdaServiceImp implements PdaService {
|
||||
|
||||
String stockOutId = "";
|
||||
|
||||
//获取指定jobid下的作业的所有明细
|
||||
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||
//修改拣选数量
|
||||
|
||||
//已存在该作业明细
|
||||
Optional<MydoJobDetail> first = pickInfoList.stream().filter(x -> x.getJobDetailId().equals(mydoJobDetail.getJobDetailId())).findFirst();
|
||||
if (first.isPresent()) {
|
||||
//修改拣选数量
|
||||
mydoJobDetail.setPickQuantity(first.get().getPickQuantity());
|
||||
mydoJobDetailService.updateMydoJobDetail(mydoJobDetail);
|
||||
}
|
||||
@@ -586,7 +616,10 @@ public class PdaServiceImp implements PdaService {
|
||||
//修改单据实际分配数量
|
||||
BigDecimal pickQuantity = Convert.toBigDecimal(mydoJobDetail.getPickQuantity());
|
||||
BigDecimal outQuantity = Convert.toBigDecimal(mydoJobDetail.getOutQuantity());
|
||||
//出库数量-拣选数量
|
||||
BigDecimal subQuantity = outQuantity.subtract(pickQuantity);
|
||||
|
||||
//***************更新出库单明细***************
|
||||
//修改分配数量为 当前分配数量-缺失数量
|
||||
OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(mydoJobDetail.getInOrOutDId());
|
||||
outStockoutDetail.setAllotQuantity(outStockoutDetail.getAllotQuantity().subtract(subQuantity));
|
||||
@@ -606,6 +639,7 @@ public class PdaServiceImp implements PdaService {
|
||||
//将数据存入中间表
|
||||
insertPickSubmitData(mydoJob, mydoJobDetail);
|
||||
}
|
||||
|
||||
//生成回流任务,标记productStatus为异常状态
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.pda.trayMsg.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.ruoyi.pda.trayMsg.domain.TrayMsg;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* trayMsgMapper接口
|
||||
@@ -9,6 +10,7 @@ import com.ruoyi.pda.trayMsg.domain.TrayMsg;
|
||||
* @author ruoyi
|
||||
* @date 2025-06-11
|
||||
*/
|
||||
@Component
|
||||
public interface TrayMsgMapper
|
||||
{
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user