修改电子标签修改前置条件

This commit is contained in:
liuhanqing
2025-07-23 09:31:52 +08:00
parent 32bd28aa83
commit 597bb18b97
17 changed files with 144 additions and 76 deletions

View File

@@ -1,5 +1,6 @@
package com.ruoyi.api.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.ruoyi.api.domain.GenAgvSchedulingTaskRequest;
@@ -49,12 +50,14 @@ public class ToWcsServiceImpl implements IToWcsService {
List<String> list = new ArrayList<>();
list.add("21");
list.add("23");
list.add("25");
mydoJobParam.setInOutIds(list);
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("3");
outMydoJob.setStartTime(DateUtil.formatDateTime(DateUtil.date()));
mydoJobService.updateMydoJob(outMydoJob);
}
}

View File

@@ -64,6 +64,9 @@ public class CheckStockin extends BaseEntity
/** 部门编码 */
@Excel(name = "部门编码")
private String departmentNo;
@Excel(name = "部门名称")
private String departmentName;
/** 客户编码 */
@Excel(name = "客户编码")
@@ -99,6 +102,7 @@ public class CheckStockin extends BaseEntity
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

View File

@@ -18,6 +18,7 @@ import com.ruoyi.bas.basJobId.service.IBasJobIdService;
import com.ruoyi.check.stockcheck.domain.CheckStockVo;
import com.ruoyi.check.stockcheckdetail.domain.CheckStockinDetail;
import com.ruoyi.check.stockcheckdetail.service.ICheckStockinDetailService;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.UUID;
@@ -75,6 +76,7 @@ public class CheckStockinServiceImpl implements ICheckStockinService
* @return 盘库单据主信息
*/
@Override
@DataScope(warehouseAlias = "bw")
public List<CheckStockin> selectCheckStockinList(CheckStockin checkStockin)
{
return checkStockinMapper.selectCheckStockinList(checkStockin);

View File

@@ -3,6 +3,7 @@ package com.ruoyi.check.stockcheckfinish.service.impl;
import java.util.List;
import com.ruoyi.check.stockcheck.domain.CheckStockin;
import com.ruoyi.common.annotation.DataScope;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.check.stockcheckfinish.mapper.CheckStockinFinishMapper;
@@ -94,6 +95,7 @@ public class CheckStockinFinishServiceImpl implements ICheckStockinFinishService
}
@Override
@DataScope(warehouseAlias = "bw")
public List<CheckStockin> selectCheckStockinList(CheckStockin checkStockin) {
return checkStockinFinishMapper.selectCheckStockinList(checkStockin);
}

View File

@@ -12,11 +12,11 @@ import com.ruoyi.job.mydojob.domain.MydoJob;
* @author ruoyi
* @date 2025-05-23
*/
public interface MydoJobMapper
public interface MydoJobMapper
{
/**
* 查询当前任务列表
*
*
* @return 当前任务列表
*/
public List<MydoJob> selectCurrentTasks();
@@ -71,4 +71,6 @@ public interface MydoJobMapper
void insertHistory(String jobId);
void pointOut(HashMap<String, Object> map);
MydoJob selectByTrayCode(String trayCode);
}

View File

@@ -86,4 +86,6 @@ public interface IMydoJobService
AjaxResult OuthandInvalidation(String [] jobIds);
AjaxResult pointOut(String [] stockIds);
MydoJob selectMydoJobByTrayCode(String trayCode);
}

View File

@@ -485,4 +485,9 @@ public class MydoJobServiceImpl implements IMydoJobService {
return AjaxResult.success(Stringbuilder.toString());
}
@Override
public MydoJob selectMydoJobByTrayCode(String trayCode) {
return mydoJobMapper.selectByTrayCode(trayCode);
}
}

View File

@@ -62,4 +62,6 @@ public interface MydoJobDetailMapper
void insertHistory(String jobId);
void deleteMydoJobDetailByJobId(String jobId);
List<MydoJobDetail> selectMydoJobDetailListByJobId(String jobId);
}

View File

@@ -62,4 +62,6 @@ public interface IMydoJobDetailService
void insertHistory(String jobId);
void deleteMydoJobDetailByJobId(String jobId);
List<MydoJobDetail> selectMydoJobDetailListByJobId(String jobId);
}

View File

@@ -111,4 +111,9 @@ public class MydoJobDetailServiceImpl implements IMydoJobDetailService
public void deleteMydoJobDetailByJobId(String jobId) {
mydoJobDetailMapper.deleteMydoJobDetailByJobId(jobId);
}
@Override
public List<MydoJobDetail> selectMydoJobDetailListByJobId(String jobId) {
return mydoJobDetailMapper.selectMydoJobDetailListByJobId(jobId);
}
}

View File

@@ -12,6 +12,8 @@ import com.ruoyi.bas.port.domain.BasProductPort;
import com.ruoyi.bas.port.mapper.BasProductPortMapper;
import com.ruoyi.bas.tag.domain.BasTag;
import com.ruoyi.bas.tag.service.IBasTagService;
import com.ruoyi.bas.warehouse.domain.BasWarehouse;
import com.ruoyi.bas.warehouse.service.IBasWarehouseService;
import com.ruoyi.check.commit.domain.CheckCommitRecord;
import com.ruoyi.check.commit.service.ICheckCommitRecordService;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -89,6 +91,8 @@ public class PdaServiceImp implements PdaService {
private ITagTaskService tagTaskService;
@Autowired
private IBasTagService basTagService;
@Autowired
private IBasWarehouseService basWarehouseService;
/**
* 空托盘入库
@@ -234,7 +238,6 @@ public class PdaServiceImp implements PdaService {
}
MydoJobDetail mydoJobDetailParam = new MydoJobDetail();
mydoJobDetailParam.setJobId(mydoJobList.get(0).getJobId());
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
@@ -242,7 +245,7 @@ public class PdaServiceImp implements PdaService {
return AjaxResult.warn("子任务不存在");
}
//空托盘空料箱
if("21".equals(mydoJobList.get(0).getInOrOut()) || "22".equals(mydoJobList.get(0).getInOrOut())){
if ("21".equals(mydoJobList.get(0).getInOrOut()) || "22".equals(mydoJobList.get(0).getInOrOut())) {
return handleOutType2(trayCodeMakeSure, mydoJobDetails, mydoJobList.get(0));
}
@@ -277,6 +280,7 @@ public class PdaServiceImp implements PdaService {
*/
private AjaxResult handleOutType2(TrayCodeMakeSure trayCodeMakeSure, List<MydoJobDetail> mydoJobDetailList, MydoJob mydoJob) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(mydoJob.getWarehouseId());
//修改拣选数量
for (MydoJobDetail mydoJobDetail : mydoJobDetailList) {
//修改拣选数量
@@ -285,22 +289,7 @@ public class PdaServiceImp implements PdaService {
BigDecimal newPickQuantity = Convert.toBigDecimal(mydoJobDetail.getOutQuantity());*/
mydoJobDetail.setPickQuantity(mydoJobDetail.getOutQuantity());
mydoJobDetailService.updateMydoJobDetail(mydoJobDetail);
//修改电子标签
TagTask param = new TagTask();
param.setJobDetailId(mydoJobDetail.getJobDetailId());
List<TagTask> tagTasks = tagTaskService.selectTagTaskList(param);
if (CollUtil.isNotEmpty(tagTasks)) {
TagTask tagTask = tagTasks.get(0);
BigDecimal num = Convert.toBigDecimal(tagTask.getNum());
/*if (num.compareTo(newPickQuantity) == 0){*/
tagTask.setStatus("2");
tagTaskService.updateTagTask(tagTask);
/*}else {
tagTask.setNum(num.subtract(newPickQuantity).toString());
tagTaskService.updateTagTask(tagTask);
}*/
}
updateTagTaskStatus(mydoJobDetail,basWarehouse);
}
//判断拣选数量是否等于出库数量
MydoJobDetail mydoJobDetailParam = new MydoJobDetail();
@@ -308,6 +297,9 @@ public class PdaServiceImp implements PdaService {
List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity()));
if (flag) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
map.put("v_type", "1");
@@ -333,6 +325,7 @@ public class PdaServiceImp implements PdaService {
*/
private AjaxResult handleOutType1(TrayCodeMakeSure trayCodeMakeSure, List<MydoJobDetail> mydoJobDetailList, MydoJob mydoJob) {
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(mydoJob.getWarehouseId());
for (MydoJobDetail mydoJobDetail : mydoJobDetailList) {
@@ -371,14 +364,8 @@ public class PdaServiceImp implements PdaService {
outStockoutDetail.setAssignNum(outStockoutDetail.getAssignNum().add(Convert.toBigDecimal(mydoJobDetail.getPickQuantity())));
outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail);
//修改电子标签
TagTask param = new TagTask();
param.setJobDetailId(mydoJobDetail.getJobDetailId());
List<TagTask> tagTasks = tagTaskService.selectTagTaskList(param);
if (CollUtil.isNotEmpty(tagTasks)) {
TagTask tagTask = tagTasks.get(0);
tagTask.setStatus("2");
tagTaskService.updateTagTask(tagTask);
}
updateTagTaskStatus(mydoJobDetail, basWarehouse);
}
//判断拣选数量是否等于出库数量
@@ -387,17 +374,8 @@ public class PdaServiceImp implements PdaService {
List<MydoJobDetail> currentMydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetailParam);
boolean flag = currentMydoJobDetails.stream().allMatch(mydoJobDetail -> mydoJobDetail.getPickQuantity().equals(mydoJobDetail.getOutQuantity()));
if (flag) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
BasTag basTag = basTagService.selectBasTagByTrayCode(trayCodeMakeSure.getTrayCode());
//删除电子标签
TagTask param = new TagTask();
param.setTagId(basTag.getId());
List<TagTask> tagTasks = tagTaskService.selectTagTaskList(param);
if (CollUtil.isNotEmpty(tagTasks)) {
tagTaskService.deleteTagTaskByIds(tagTasks.stream()
.map(TagTask::getId)
.toArray(Long[]::new));
}
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
@@ -418,6 +396,11 @@ public class PdaServiceImp implements PdaService {
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult checkMakeSure(TrayCodeMakeSure trayCodeMakeSure) {
MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(trayCodeMakeSure.getTrayCode());
if (mydoJob == null) {
return AjaxResult.warn("任务不存在");
}
BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(mydoJob.getWarehouseId());
List<MydoJobDetail> mydoJobDetailList = trayCodeMakeSure.getMydoJobDetailList();
if (CollUtil.isNotEmpty(mydoJobDetailList)) {
boolean flag = mydoJobDetailList.stream().anyMatch(x -> StrUtil.isEmpty(x.getStockId()) && "0".equals(x.getInQuantity()));
@@ -433,25 +416,65 @@ public class PdaServiceImp implements PdaService {
checkCommitRecord.setSpare1(mydoJobDetail.getInOrOutDId());
checkCommitRecord.setSpare2(mydoJobDetail.getProductId());
checkCommitRecordService.insertCheckCommitRecord(checkCommitRecord);
//修改电子标签任务
TagTask param = new TagTask();
param.setJobDetailId(mydoJobDetail.getJobDetailId());
List<TagTask> tagTasks = tagTaskService.selectTagTaskList(param);
if (CollUtil.isNotEmpty(tagTasks)) {
TagTask tagTask = tagTasks.get(0);
tagTask.setStatus("2");
tagTaskService.updateTagTask(tagTask);
}
mydoJobDetail.setSpare3("1");
mydoJobDetailService.updateMydoJobDetail(mydoJobDetail);
updateTagTaskStatus(mydoJobDetail, basWarehouse);
}
}
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
pdaMapper.checkMakeSure(map);
String result = map.get("v_result").toString();
if ("10".equals(result)) {
return AjaxResult.success(map.get("v_resultmsg").toString());
} else {
return AjaxResult.warn(map.get("v_resultmsg").toString());
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailListByJobId(mydoJob.getJobId());
if (mydoJobDetails.stream().allMatch(x -> "1".equals(x.getSpare3()))) {
deleteTagTask(trayCodeMakeSure, basWarehouse);
HashMap<String, Object> map = new HashMap<>();
map.put("v_tray_code", trayCodeMakeSure.getTrayCode());
pdaMapper.checkMakeSure(map);
String result = map.get("v_result").toString();
if ("10".equals(result)) {
return AjaxResult.success(map.get("v_resultmsg").toString());
} else {
return AjaxResult.warn(map.get("v_resultmsg").toString());
}
}
return AjaxResult.success("盘点完成");
}
/**
* 修改电子标签数量
* @param mydoJobDetail
* @param basWarehouse
*/
private void updateTagTaskStatus(MydoJobDetail mydoJobDetail, BasWarehouse basWarehouse) {
if ("2".equals(basWarehouse.getWarehouseType())) {
//修改电子标签任务
TagTask param = new TagTask();
param.setJobDetailId(mydoJobDetail.getJobDetailId());
List<TagTask> tagTasks = tagTaskService.selectTagTaskList(param);
if (CollUtil.isNotEmpty(tagTasks)) {
TagTask tagTask = tagTasks.get(0);
tagTask.setStatus("2");
tagTaskService.updateTagTask(tagTask);
}
}
}
/**
* 删除电子标签
*
* @param trayCodeMakeSure
* @param basWarehouse
*/
private void deleteTagTask(TrayCodeMakeSure trayCodeMakeSure, BasWarehouse basWarehouse) {
if ("2".equals(basWarehouse.getWarehouseType())) {
BasTag basTag = basTagService.selectBasTagByTrayCode(trayCodeMakeSure.getTrayCode());
//删除电子标签
TagTask param = new TagTask();
param.setTagId(basTag.getId());
List<TagTask> tagTasks = tagTaskService.selectTagTaskList(param);
if (CollUtil.isNotEmpty(tagTasks)) {
tagTaskService.deleteTagTaskByIds(tagTasks.stream()
.map(TagTask::getId)
.toArray(Long[]::new));
}
}
}
@@ -692,16 +715,16 @@ public class PdaServiceImp implements PdaService {
public AjaxResult bindShelf(TrayCodeMakeSure trayCodeMakeSure) {
BasContainerDetails basContainerDetails = new BasContainerDetails();
basContainerDetails.setContainerId(trayCodeMakeSure.getContainerCode());
for(MydoJobDetail mydoJobDetail:trayCodeMakeSure.getMydoJobDetailList()){
for (MydoJobDetail mydoJobDetail : trayCodeMakeSure.getMydoJobDetailList()) {
basContainerDetails.setProductId(mydoJobDetail.getProductId());
List<BasContainerDetails> basContainerDetailsList = basContainerDetailsService.selectBasContainerDetailsList(basContainerDetails);
if(basContainerDetailsList.size()==0){
if (basContainerDetailsList.size() == 0) {
basContainerDetails.setProductName(mydoJobDetail.getExtraField().getMaterialDesc());
basContainerDetails.setQuantity(Convert.toLong(mydoJobDetail.getPickBindQuantity()));
basContainerDetailsService.insertBasContainerDetails(basContainerDetails);
}else{
} else {
basContainerDetails.setId(basContainerDetailsList.get(0).getId());
basContainerDetails.setQuantity(basContainerDetailsList.get(0).getQuantity()+Convert.toLong(mydoJobDetail.getPickBindQuantity()));
basContainerDetails.setQuantity(basContainerDetailsList.get(0).getQuantity() + Convert.toLong(mydoJobDetail.getPickBindQuantity()));
basContainerDetailsService.updateBasContainerDetails(basContainerDetails);
}
@@ -711,18 +734,16 @@ public class PdaServiceImp implements PdaService {
outPickSubmitParam.setExitId(trayCodeMakeSure.getExitId());
outPickSubmitParam.setProductId(mydoJobDetail.getProductId());
List<OutPickSubmit> outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam);
if( Integer.parseInt(outPickSubmits.get(0).getQuantit()) > Integer.parseInt(mydoJobDetail.getPickBindQuantity()) ){
outPickSubmitParam.setQuantit( String.valueOf(Integer.parseInt(outPickSubmits.get(0).getQuantit()) - Integer.parseInt(mydoJobDetail.getPickBindQuantity())));
outPickSubmitParam.setId(outPickSubmits.get(0).getId());
outPickSubmitService.updateOutPickSubmit(outPickSubmitParam);
}else{
outPickSubmitService.deleteOutPickSubmitById(outPickSubmits.get(0).getId());
}
if (Integer.parseInt(outPickSubmits.get(0).getQuantit()) > Integer.parseInt(mydoJobDetail.getPickBindQuantity())) {
outPickSubmitParam.setQuantit(String.valueOf(Integer.parseInt(outPickSubmits.get(0).getQuantit()) - Integer.parseInt(mydoJobDetail.getPickBindQuantity())));
outPickSubmitParam.setId(outPickSubmits.get(0).getId());
outPickSubmitService.updateOutPickSubmit(outPickSubmitParam);
} else {
outPickSubmitService.deleteOutPickSubmitById(outPickSubmits.get(0).getId());
}
}
return AjaxResult.success("绑定成功!");
}
}