格式修正

This commit is contained in:
lsymicc
2025-11-28 08:42:42 +08:00
parent 25bcc67edb
commit f80481c93d
12 changed files with 143 additions and 30 deletions

View File

@@ -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>

View File

@@ -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 {

View File

@@ -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>

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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()));

View File

@@ -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);

View File

@@ -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 = "部门编号")

View File

@@ -161,6 +161,11 @@ public class OutStockoutServiceImpl implements IOutStockoutService
return stringBuilder.toString();
}
/**
* 分配出库单据
* @param stockoutId
* @return
*/
@Override
public AjaxResult autoAllot(String stockoutId) {

View File

@@ -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;
}

View File

@@ -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());

View File

@@ -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
{
/**