库存页面 入库页面手动完成和手动作废

This commit is contained in:
liuhanqing
2025-05-24 11:36:18 +08:00
parent 9559511e56
commit 673d836794
20 changed files with 1839 additions and 62 deletions

View File

@@ -23,7 +23,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
/**
* 任务表Controller
*
*
* @author ruoyi
* @date 2025-05-23
*/
@@ -101,4 +101,26 @@ public class MydoJobController extends BaseController
{
return toAjax(mydoJobService.deleteMydoJobByJobIds(jobIds));
}
/**
* 手动作废任务表
*/
@PreAuthorize("@ss.hasPermi('job:mydoJob:manualInvalidation')")
@Log(title = "任务表", businessType = BusinessType.DELETE)
@PostMapping("/manualInvalidation")
public AjaxResult manualInvalidation(@RequestBody MydoJob mydoJob)
{
return mydoJobService.manualInvalidation(mydoJob);
}
/**
* 手动完成任务表
*/
@PreAuthorize("@ss.hasPermi('job:mydoJob:manualCompleted')")
@Log(title = "任务表", businessType = BusinessType.DELETE)
@PostMapping("/manualCompleted")
public AjaxResult manualCompleted(@RequestBody MydoJob mydoJob)
{
return mydoJobService.manualCompleted(mydoJob);
}
}

View File

@@ -5,15 +5,15 @@ import com.ruoyi.job.mydojob.domain.MydoJob;
/**
* 任务表Mapper接口
*
*
* @author ruoyi
* @date 2025-05-23
*/
public interface MydoJobMapper
public interface MydoJobMapper
{
/**
* 查询任务表
*
*
* @param jobId 任务表主键
* @return 任务表
*/
@@ -21,7 +21,7 @@ public interface MydoJobMapper
/**
* 查询任务表列表
*
*
* @param mydoJob 任务表
* @return 任务表集合
*/
@@ -29,7 +29,7 @@ public interface MydoJobMapper
/**
* 新增任务表
*
*
* @param mydoJob 任务表
* @return 结果
*/
@@ -37,7 +37,7 @@ public interface MydoJobMapper
/**
* 修改任务表
*
*
* @param mydoJob 任务表
* @return 结果
*/
@@ -45,7 +45,7 @@ public interface MydoJobMapper
/**
* 删除任务表
*
*
* @param jobId 任务表主键
* @return 结果
*/
@@ -53,9 +53,11 @@ public interface MydoJobMapper
/**
* 批量删除任务表
*
*
* @param jobIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteMydoJobByJobIds(String[] jobIds);
void insertHistory(String jobId);
}

View File

@@ -1,19 +1,21 @@
package com.ruoyi.job.mydojob.service;
import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.job.mydojob.domain.MydoJob;
/**
* 任务表Service接口
*
*
* @author ruoyi
* @date 2025-05-23
*/
public interface IMydoJobService
public interface IMydoJobService
{
/**
* 查询任务表
*
*
* @param jobId 任务表主键
* @return 任务表
*/
@@ -21,7 +23,7 @@ public interface IMydoJobService
/**
* 查询任务表列表
*
*
* @param mydoJob 任务表
* @return 任务表集合
*/
@@ -29,7 +31,7 @@ public interface IMydoJobService
/**
* 新增任务表
*
*
* @param mydoJob 任务表
* @return 结果
*/
@@ -37,7 +39,7 @@ public interface IMydoJobService
/**
* 修改任务表
*
*
* @param mydoJob 任务表
* @return 结果
*/
@@ -45,7 +47,7 @@ public interface IMydoJobService
/**
* 批量删除任务表
*
*
* @param jobIds 需要删除的任务表主键集合
* @return 结果
*/
@@ -53,9 +55,23 @@ public interface IMydoJobService
/**
* 删除任务表信息
*
*
* @param jobId 任务表主键
* @return 结果
*/
public int deleteMydoJobByJobId(String jobId);
/**
* 手动作废任务
* @param mydoJob
* @return
*/
AjaxResult manualInvalidation(MydoJob mydoJob);
/**
* 手动完成任务
* @param mydoJob
* @return
*/
AjaxResult manualCompleted(MydoJob mydoJob);
}

View File

@@ -1,16 +1,27 @@
package com.ruoyi.job.mydojob.service.impl;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import com.ruoyi.bas.basJobId.service.IBasJobIdService;
import com.ruoyi.bas.taskNo.service.IBasTaskNoService;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService;
import com.ruoyi.stock.stock.domain.BasStock;
import com.ruoyi.stock.stock.service.IBasStockService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.job.mydojob.mapper.MydoJobMapper;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import org.springframework.transaction.annotation.Transactional;
/**
* 任务表Service业务层处理
@@ -27,6 +38,13 @@ public class MydoJobServiceImpl implements IMydoJobService
private IBasJobIdService basJobIdService;
@Autowired
private IBasTaskNoService basTaskNoService;
@Autowired
private IMydoJobDetailService mydoJobDetailService;
@Autowired
private IInStockinDetailService inStockinDetailService;
@Autowired
private IBasStockService basStockService;
/**
* 查询任务表
@@ -102,4 +120,95 @@ public class MydoJobServiceImpl implements IMydoJobService
{
return mydoJobMapper.deleteMydoJobByJobId(jobId);
}
/**
* 手动作废任务表
*/
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult manualInvalidation(MydoJob mydoJob) {
String jobId = mydoJob.getJobId();
MydoJob job = selectMydoJobByJobId(jobId);
if (job == null){
return AjaxResult.warn("任务不存在");
}
MydoJobDetail param = new MydoJobDetail();
param.setJobId(jobId);
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
String inOrOutDId = mydoJobDetail.getInOrOutDId();
InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId);
BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum());
BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity());
BigDecimal subtract = stockInNum.subtract(jobInNum);
inStockinDetail.setScanNum(Convert.toStr(subtract));
inStockinDetailService.updateInStockinDetail(inStockinDetail);
}
mydoJob.setStatus("5");
updateMydoJob(mydoJob);
//插入历史表
insertHistory(mydoJob.getJobId());
return AjaxResult.success();
}
/**
* 插入历史表
* @param jobId
*/
private void insertHistory(String jobId) {
mydoJobMapper.insertHistory(jobId);
mydoJobDetailService.insertHistory(jobId);
mydoJobMapper.deleteMydoJobByJobId(jobId);
mydoJobDetailService.deleteMydoJobDetailByJobId(jobId);
}
/**
* 手动完成任务表
*/
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult manualCompleted(MydoJob mydoJob) {
//插入库存
String jobId = mydoJob.getJobId();
MydoJob job = selectMydoJobByJobId(jobId);
if (job == null){
return AjaxResult.warn("任务不存在");
}
MydoJobDetail param = new MydoJobDetail();
param.setJobId(jobId);
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
if (CollUtil.isNotEmpty(mydoJobDetails)){
List<BasStock> list = new ArrayList<>();
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
list.add(getStockByInStockinDetail(mydoJobDetail,job));
}
basStockService.insertBasStockList(list);
mydoJob.setStatus("4");
updateMydoJob(mydoJob);
//插入历史表
insertHistory(mydoJob.getJobId());
}
return AjaxResult.success();
}
private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail,MydoJob mydoJob) {
BasStock stock = new BasStock();
stock.setStockId(basJobIdService.getJobId("KC"));
stock.setCargoSpaceId(mydoJob.getCargoSpaceId());
stock.setStockStatus("1");
stock.setProductStatus("1");
stock.setLotNo(mydoJobDetail.getLotNo());
stock.setInDate(DateUtils.getDate());
stock.setProductGuid(mydoJobDetail.getProductGuid());
stock.setQuantity(mydoJobDetail.getInQuantity());
stock.setJobId(mydoJob.getJobId());
stock.setTrayCode(mydoJob.getTrayCode());
stock.setInClassId(mydoJob.getClassId());
stock.setWarehouseId(mydoJob.getWarehouseId());
stock.setStackingId(mydoJobDetail.getStackingId());
return stock;
}
}

View File

@@ -5,15 +5,15 @@ import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
/**
* 子任务Mapper接口
*
*
* @author ruoyi
* @date 2025-05-22
*/
public interface MydoJobDetailMapper
public interface MydoJobDetailMapper
{
/**
* 查询子任务
*
*
* @param jobDetailId 子任务主键
* @return 子任务
*/
@@ -21,7 +21,7 @@ public interface MydoJobDetailMapper
/**
* 查询子任务列表
*
*
* @param mydoJobDetail 子任务
* @return 子任务集合
*/
@@ -29,7 +29,7 @@ public interface MydoJobDetailMapper
/**
* 新增子任务
*
*
* @param mydoJobDetail 子任务
* @return 结果
*/
@@ -37,7 +37,7 @@ public interface MydoJobDetailMapper
/**
* 修改子任务
*
*
* @param mydoJobDetail 子任务
* @return 结果
*/
@@ -45,7 +45,7 @@ public interface MydoJobDetailMapper
/**
* 删除子任务
*
*
* @param jobDetailId 子任务主键
* @return 结果
*/
@@ -53,9 +53,13 @@ public interface MydoJobDetailMapper
/**
* 批量删除子任务
*
*
* @param jobDetailIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteMydoJobDetailByJobDetailIds(String[] jobDetailIds);
void insertHistory(String jobId);
void deleteMydoJobDetailByJobId(String jobId);
}

View File

@@ -58,4 +58,8 @@ public interface IMydoJobDetailService
* @return 结果
*/
public int deleteMydoJobDetailByJobDetailId(String jobDetailId);
void insertHistory(String jobId);
void deleteMydoJobDetailByJobId(String jobId);
}

View File

@@ -9,19 +9,19 @@ import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService;
/**
* 子任务Service业务层处理
*
*
* @author ruoyi
* @date 2025-05-22
*/
@Service
public class MydoJobDetailServiceImpl implements IMydoJobDetailService
public class MydoJobDetailServiceImpl implements IMydoJobDetailService
{
@Autowired
private MydoJobDetailMapper mydoJobDetailMapper;
/**
* 查询子任务
*
*
* @param jobDetailId 子任务主键
* @return 子任务
*/
@@ -33,7 +33,7 @@ public class MydoJobDetailServiceImpl implements IMydoJobDetailService
/**
* 查询子任务列表
*
*
* @param mydoJobDetail 子任务
* @return 子任务
*/
@@ -45,7 +45,7 @@ public class MydoJobDetailServiceImpl implements IMydoJobDetailService
/**
* 新增子任务
*
*
* @param mydoJobDetail 子任务
* @return 结果
*/
@@ -57,7 +57,7 @@ public class MydoJobDetailServiceImpl implements IMydoJobDetailService
/**
* 修改子任务
*
*
* @param mydoJobDetail 子任务
* @return 结果
*/
@@ -69,7 +69,7 @@ public class MydoJobDetailServiceImpl implements IMydoJobDetailService
/**
* 批量删除子任务
*
*
* @param jobDetailIds 需要删除的子任务主键
* @return 结果
*/
@@ -81,7 +81,7 @@ public class MydoJobDetailServiceImpl implements IMydoJobDetailService
/**
* 删除子任务信息
*
*
* @param jobDetailId 子任务主键
* @return 结果
*/
@@ -90,4 +90,14 @@ public class MydoJobDetailServiceImpl implements IMydoJobDetailService
{
return mydoJobDetailMapper.deleteMydoJobDetailByJobDetailId(jobDetailId);
}
@Override
public void insertHistory(String jobId) {
mydoJobDetailMapper.insertHistory(jobId);
}
@Override
public void deleteMydoJobDetailByJobId(String jobId) {
mydoJobDetailMapper.deleteMydoJobDetailByJobId(jobId);
}
}