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

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("绑定成功!");
}
}

View File

@@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="erpBill" column="erp_bill" />
<result property="stockSource" column="stock_source" />
<result property="departmentNo" column="department_no" />
<result property="departmentName" column="department_name" />
<result property="customerNo" column="customer_no" />
<result property="classNo" column="class_no" />
<result property="supplierNo" column="supplier_no" />
@@ -29,9 +30,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectCheckStockinVo">
select stock_guid, stock_check_id, check_type, create_date, create_man_id, status, cs.warehouse_id, finish_date, erp_bill, stock_source, department_no, customer_no, class_no, supplier_no, spare1, spare2, spare3, spare4, spare5 ,
bw.warehouse_name
bw.warehouse_name, sd.dept_name as department_name
from check_stockin cs
left join bas_warehouse bw on cs.warehouse_id = bw.warehouse_id
left join sys_dept sd on cs.department_no = sd.dept_id
</sql>
<select id="selectCheckStockinList" parameterType="CheckStockin" resultMap="CheckStockinResult">

View File

@@ -120,6 +120,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectMydoJobDetailVo"/>
where job_detail_id = #{jobDetailId}
</select>
<select id="selectMydoJobDetailListByJobId" resultMap="MydoJobDetailResult">
<include refid="selectMydoJobDetailVo"/>
where mjd.job_id = #{jobId}
</select>
<insert id="insertMydoJobDetail" parameterType="MydoJobDetail">
insert into mydo_job_detail

View File

@@ -225,4 +225,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{v_resultmsg,mode=OUT,jdbcType=VARCHAR}
)}
</select>
<select id="selectByTrayCode" resultMap="MydoJobResult">
<include refid="selectMydoJobVo"/>
where tray_code = #{trayCode}
</select>
</mapper>

View File

@@ -449,7 +449,8 @@ export default {
confirmSuccess: 'Confirm successful',
onlyReviewedCanConfirm: 'Only reviewed documents can be confirmed',
autoAllocation:'autoAllocation',
autoAllocationSuccess:"autoAllocationSuccess"
autoAllocationSuccess:"autoAllocationSuccess",
checkPort:'checkPort'
},
// ***************盘点入库作业*************
checkJobIn: {
@@ -590,7 +591,10 @@ export default {
grossWeight:"grossWeight",
onlyOneCanAutoAllocation:"onlyOneCanAutoAllocation",
outQuantity: 'outQuantity',
pickQuantity: 'pickQuantity'
pickQuantity: 'pickQuantity',
department: 'department',
createTime: 'createTime',
productId: 'productId',
},
// ****************盘点差异管理*****************
checkDifference: {

View File

@@ -429,7 +429,8 @@ export default {
onlyReviewedCanConfirm: '只有已审核的单据可以确认',
cargoSpaceName: '货位名称',
autoAllocation:'自动分配',
autoAllocationSuccess:"自动分配成功"
autoAllocationSuccess:"自动分配成功",
checkPort:'盘点出口'
},
// ***************盘点入库作业*************
checkJobIn: {
@@ -570,7 +571,10 @@ export default {
grossWeight:"毛重",
onlyOneCanAutoAllocation:"请选择一条分配单据",
outQuantity: '出库数量',
pickQuantity: '拣货数量'
pickQuantity: '拣货数量',
department: '部门',
createTime: '创建时间',
productId: '物料ID',
},
// ****************盘点差异管理*****************
checkDifference: {

View File

@@ -215,9 +215,9 @@
</template>
</el-table-column>
<el-table-column :label="$t('checkStockCheck.warehouseId')" align="left" prop="warehouseName" /> <!-- 仓库ID -->
<el-table-column :label="$t('checkStockCheck.stockSource')" align="left" prop="stockSource" /> <!-- 单据来源 -->
<el-table-column :label="$t('checkStockCheck.departmentNo')" align="left" prop="departmentNo" /> <!-- 部门编码 -->
<el-table-column :label="$t('checkStockCheck.createManId')" align="left" prop="createManId" /> <!-- 创建人 -->
<el-table-column :label="$t('checkStockCheck.checkPort')" align="left" prop="spare1" /> <!-- 盘点位置 -->
<el-table-column :label="$t('checkStockCheck.createDate')" align="left" prop="createDate" /> <!-- 建立时间 -->
<el-table-column :label="$t('checkStockCheck.finishDate')" align="left" prop="finishDate" /> <!-- 完成日期 -->
</el-table>
@@ -266,8 +266,8 @@
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelAudit">{{$t('outStockoutManage.confirmExit')}}</el-button>
<el-button type="primary" @click="submitAudit">{{$t('outStockoutManage.cancelExit')}}</el-button>
<el-button @click="cancelAudit">{{$t('outStockoutManage.cancelExit')}}</el-button>
<el-button type="primary" @click="submitAudit">{{$t('outStockoutManage.confirmExit')}}</el-button>
</div>
</el-dialog>
</div>