出库部分

This commit is contained in:
张怡蓉
2025-05-26 15:04:35 +08:00
parent f1e9306e01
commit 7fef7dab41
18 changed files with 249 additions and 136 deletions

View File

@@ -8,12 +8,15 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojob.service.IMydoJobService;
import com.ruoyi.job.mydojobfinish.service.IMydoJobFinishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import static com.ruoyi.common.utils.PageUtils.startPage;
@@ -24,6 +27,8 @@ public class OutMydoJobController extends BaseController {
@Autowired
private IMydoJobService mydoJobService;
@Autowired
private IMydoJobFinishService mydoJobFinishService;
/**
* 查询任务表列表
@@ -34,7 +39,12 @@ public class OutMydoJobController extends BaseController {
{
startPage();
mydoJob.setInOut("2");
List<MydoJob> list = mydoJobService.selectMydoJobList(mydoJob);
List<MydoJob> list = new ArrayList<>();
if(Integer.parseInt(mydoJob.getStatus())<4) {
list = mydoJobService.selectMydoJobList(mydoJob);
}else{
list=mydoJobFinishService.selectMydoJobFinishListByMydoJob(mydoJob);
}
return getDataTable(list);
}
@@ -44,9 +54,9 @@ public class OutMydoJobController extends BaseController {
@PreAuthorize("@ss.hasPermi('job:outmydoJob:OuthandFinish')")
@Log(title = "出库手动完成", businessType = BusinessType.OTHER)
@RequestMapping("/OuthandFinish")
public AjaxResult manualCompleted(MydoJob mydoJob)
public AjaxResult manualCompleted(@RequestParam("jobIds")String[] jobIds)
{
return mydoJobService.OuthandFinish(mydoJob);
return mydoJobService.OuthandFinish(jobIds);
}
/**
@@ -55,9 +65,9 @@ public class OutMydoJobController extends BaseController {
@PreAuthorize("@ss.hasPermi('job:outmydoJob:OuthandInvalidation')")
@Log(title = "出库手动作废", businessType = BusinessType.OTHER)
@RequestMapping("/OuthandInvalidation")
public AjaxResult OuthandInvalidation(MydoJob mydoJob)
public AjaxResult OuthandInvalidation(@RequestParam("jobIds")String[] jobIds)
{
return mydoJobService.OuthandInvalidation(mydoJob);
return mydoJobService.OuthandInvalidation(jobIds);
}

View File

@@ -11,7 +11,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
* @author ruoyi
* @date 2025-05-23
*/
public class MydoJob extends BaseEntity
public class MydoJob
{
private static final long serialVersionUID = 1L;
@@ -83,6 +83,10 @@ public class MydoJob extends BaseEntity
@Excel(name = "任务类型",dictType = "in_or_out_type")
private String inOrOut;
/** 开始时间 */
@Excel(name = "创建时间")
private String createTime;
/** 开始时间 */
@Excel(name = "开始时间")
private String startTime;
@@ -113,6 +117,14 @@ public class MydoJob extends BaseEntity
private String inOut;
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getInOut() {
return inOut;
}

View File

@@ -78,9 +78,9 @@ public interface IMydoJobService
/**
* 出库手动完成
*/
AjaxResult OuthandFinish(MydoJob mydoJob);
AjaxResult OuthandFinish(String [] jobIds);
/**
* 出库手动作废
*/
AjaxResult OuthandInvalidation(MydoJob mydoJob);
AjaxResult OuthandInvalidation(String [] jobIds);
}

View File

@@ -1,7 +1,9 @@
package com.ruoyi.job.mydojob.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
@@ -14,6 +16,8 @@ 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.out.outStockoutDetail.domain.OutStockoutDetail;
import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService;
import com.ruoyi.stock.stock.domain.BasStock;
import com.ruoyi.stock.stock.service.IBasStockService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +26,7 @@ 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;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
/**
* 任务表Service业务层处理
@@ -30,8 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
* @date 2025-05-23
*/
@Service
public class MydoJobServiceImpl implements IMydoJobService
{
public class MydoJobServiceImpl implements IMydoJobService {
@Autowired
private MydoJobMapper mydoJobMapper;
@Autowired
@@ -44,6 +48,8 @@ public class MydoJobServiceImpl implements IMydoJobService
private IInStockinDetailService inStockinDetailService;
@Autowired
private IBasStockService basStockService;
@Autowired
private IOutStockoutDetailService outStockoutDetailService;
/**
@@ -53,8 +59,7 @@ public class MydoJobServiceImpl implements IMydoJobService
* @return 任务表
*/
@Override
public MydoJob selectMydoJobByJobId(String jobId)
{
public MydoJob selectMydoJobByJobId(String jobId) {
return mydoJobMapper.selectMydoJobByJobId(jobId);
}
@@ -65,8 +70,7 @@ public class MydoJobServiceImpl implements IMydoJobService
* @return 任务表
*/
@Override
public List<MydoJob> selectMydoJobList(MydoJob mydoJob)
{
public List<MydoJob> selectMydoJobList(MydoJob mydoJob) {
return mydoJobMapper.selectMydoJobList(mydoJob);
}
@@ -77,9 +81,8 @@ public class MydoJobServiceImpl implements IMydoJobService
* @return 结果
*/
@Override
public int insertMydoJob(MydoJob mydoJob)
{
mydoJob.setCreateTime(DateUtils.getNowDate());
public int insertMydoJob(MydoJob mydoJob) {
mydoJob.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
mydoJob.setJobId(basJobIdService.getJobId("RK"));
mydoJob.setTaskNo(Convert.toStr(basTaskNoService.getTaskNo("1")));
return mydoJobMapper.insertMydoJob(mydoJob);
@@ -92,8 +95,7 @@ public class MydoJobServiceImpl implements IMydoJobService
* @return 结果
*/
@Override
public int updateMydoJob(MydoJob mydoJob)
{
public int updateMydoJob(MydoJob mydoJob) {
return mydoJobMapper.updateMydoJob(mydoJob);
}
@@ -104,8 +106,7 @@ public class MydoJobServiceImpl implements IMydoJobService
* @return 结果
*/
@Override
public int deleteMydoJobByJobIds(String[] jobIds)
{
public int deleteMydoJobByJobIds(String[] jobIds) {
return mydoJobMapper.deleteMydoJobByJobIds(jobIds);
}
@@ -116,10 +117,10 @@ public class MydoJobServiceImpl implements IMydoJobService
* @return 结果
*/
@Override
public int deleteMydoJobByJobId(String jobId)
{
public int deleteMydoJobByJobId(String jobId) {
return mydoJobMapper.deleteMydoJobByJobId(jobId);
}
/**
* 手动作废任务表
*/
@@ -128,7 +129,7 @@ public class MydoJobServiceImpl implements IMydoJobService
public AjaxResult manualInvalidation(MydoJob mydoJob) {
String jobId = mydoJob.getJobId();
MydoJob job = selectMydoJobByJobId(jobId);
if (job == null){
if (job == null) {
return AjaxResult.warn("任务不存在");
}
MydoJobDetail param = new MydoJobDetail();
@@ -153,6 +154,7 @@ public class MydoJobServiceImpl implements IMydoJobService
/**
* 插入历史表
*
* @param jobId
*/
private void insertHistory(String jobId) {
@@ -172,16 +174,16 @@ public class MydoJobServiceImpl implements IMydoJobService
String jobId = mydoJob.getJobId();
MydoJob job = selectMydoJobByJobId(jobId);
if (job == null){
if (job == null) {
return AjaxResult.warn("任务不存在");
}
MydoJobDetail param = new MydoJobDetail();
param.setJobId(jobId);
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
if (CollUtil.isNotEmpty(mydoJobDetails)){
if (CollUtil.isNotEmpty(mydoJobDetails)) {
List<BasStock> list = new ArrayList<>();
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
list.add(getStockByInStockinDetail(mydoJobDetail,job));
list.add(getStockByInStockinDetail(mydoJobDetail, job));
}
basStockService.insertBasStockList(list);
mydoJob.setStatus("4");
@@ -193,7 +195,7 @@ public class MydoJobServiceImpl implements IMydoJobService
return AjaxResult.success();
}
private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail,MydoJob mydoJob) {
private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail, MydoJob mydoJob) {
BasStock stock = new BasStock();
stock.setStockId(basJobIdService.getJobId("KC"));
stock.setCargoSpaceId(mydoJob.getCargoSpaceId());
@@ -212,12 +214,39 @@ public class MydoJobServiceImpl implements IMydoJobService
}
@Override
public AjaxResult OuthandFinish(MydoJob mydoJob) {
public AjaxResult OuthandFinish(String[] jobIds) {
return null;
}
@Override
public AjaxResult OuthandInvalidation(MydoJob mydoJob) {
return null;
@Transactional(rollbackFor = Exception.class)
public AjaxResult OuthandInvalidation(String[] jobIds) {
try {
for (String jobId : jobIds) {
MydoJob job = selectMydoJobByJobId(jobId);
if (job == null) {
return AjaxResult.error("任务不存在");
}
MydoJobDetail mydoJobDetail = new MydoJobDetail();
mydoJobDetail.setJobId(jobId);
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail);
for (MydoJobDetail detail : mydoJobDetails) {
OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(detail.getInOrOutDId());
if (outStockoutDetail != null) {
BigDecimal allotQuantity = outStockoutDetail.getAllotQuantity();
BigDecimal substract = allotQuantity.subtract(Convert.toBigDecimal(detail.getOutQuantity()));
outStockoutDetail.setAllotQuantity(substract);
outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail);
}
}
job.setStatus("5");
insertHistory(jobId);
}
return AjaxResult.success();
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return AjaxResult.error("任务处理异常");
}
}
}

View File

@@ -1,7 +1,10 @@
package com.ruoyi.job.mydojobdetail.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.job.mydojobdetailfinish.service.IMydoJobDetailFinishService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -33,6 +36,8 @@ public class MydoJobDetailController extends BaseController
{
@Autowired
private IMydoJobDetailService mydoJobDetailService;
@Autowired
private IMydoJobDetailFinishService mydoJobDetailFinishService;
/**
* 查询子任务列表
@@ -42,7 +47,12 @@ public class MydoJobDetailController extends BaseController
public TableDataInfo list(MydoJobDetail mydoJobDetail)
{
startPage();
List<MydoJobDetail> list = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail);
List<MydoJobDetail> list = new ArrayList<>();
if(Integer.parseInt(mydoJobDetail.getStatus())<4) {
list = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail);
}else{
list = mydoJobDetailFinishService.selectMydoJobDetailFinishListByJobDetail(mydoJobDetail);
}
return getDataTable(list);
}

View File

@@ -119,7 +119,17 @@ public class MydoJobDetail extends BaseEntity
@Excel(name = "备用字段4")
private String spare4;
public void setJobDetailId(String jobDetailId)
private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public void setJobDetailId(String jobDetailId)
{
this.jobDetailId = jobDetailId;
}

View File

@@ -1,6 +1,8 @@
package com.ruoyi.job.mydojobdetailfinish.mapper;
import java.util.List;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
import com.ruoyi.job.mydojobdetailfinish.domain.MydoJobDetailFinish;
/**
@@ -27,6 +29,8 @@ public interface MydoJobDetailFinishMapper
*/
public List<MydoJobDetailFinish> selectMydoJobDetailFinishList(MydoJobDetailFinish mydoJobDetailFinish);
public List<MydoJobDetail> selectMydoJobDetailFinishListByJobId(String jobId);
/**
* 新增历史子作业
*

View File

@@ -1,6 +1,8 @@
package com.ruoyi.job.mydojobdetailfinish.service;
import java.util.List;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
import com.ruoyi.job.mydojobdetailfinish.domain.MydoJobDetailFinish;
/**
@@ -26,6 +28,7 @@ public interface IMydoJobDetailFinishService
* @return 历史子作业集合
*/
public List<MydoJobDetailFinish> selectMydoJobDetailFinishList(MydoJobDetailFinish mydoJobDetailFinish);
public List<MydoJobDetail> selectMydoJobDetailFinishListByJobDetail(MydoJobDetail mydoJobDetail);
/**
* 新增历史子作业

View File

@@ -1,6 +1,9 @@
package com.ruoyi.job.mydojobdetailfinish.service.impl;
import java.util.Collections;
import java.util.List;
import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.job.mydojobdetailfinish.mapper.MydoJobDetailFinishMapper;
@@ -43,6 +46,12 @@ public class MydoJobDetailFinishServiceImpl implements IMydoJobDetailFinishServi
return mydoJobDetailFinishMapper.selectMydoJobDetailFinishList(mydoJobDetailFinish);
}
@Override
public List<MydoJobDetail> selectMydoJobDetailFinishListByJobDetail(MydoJobDetail mydoJobDetail) {
String jobId = mydoJobDetail.getJobId();
return mydoJobDetailFinishMapper.selectMydoJobDetailFinishListByJobId(jobId);
}
/**
* 新增历史子作业
*

View File

@@ -1,6 +1,8 @@
package com.ruoyi.job.mydojobfinish.mapper;
import java.util.List;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojobfinish.domain.MydoJobFinish;
/**
@@ -27,6 +29,9 @@ public interface MydoJobFinishMapper
*/
public List<MydoJobFinish> selectMydoJobFinishList(MydoJobFinish mydoJobFinish);
public List<MydoJob> selectMydoJobFinishListByMydoJob(MydoJob mydoJob);
/**
* 新增历史主作业
*

View File

@@ -1,6 +1,8 @@
package com.ruoyi.job.mydojobfinish.service;
import java.util.List;
import com.ruoyi.job.mydojob.domain.MydoJob;
import com.ruoyi.job.mydojobfinish.domain.MydoJobFinish;
/**
@@ -27,6 +29,9 @@ public interface IMydoJobFinishService
*/
public List<MydoJobFinish> selectMydoJobFinishList(MydoJobFinish mydoJobFinish);
public List<MydoJob> selectMydoJobFinishListByMydoJob(MydoJob mydoJob);
/**
* 新增历史主作业
*

View File

@@ -1,7 +1,9 @@
package com.ruoyi.job.mydojobfinish.service.impl;
import java.util.Collections;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.job.mydojob.domain.MydoJob;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.job.mydojobfinish.mapper.MydoJobFinishMapper;
@@ -44,6 +46,11 @@ public class MydoJobFinishServiceImpl implements IMydoJobFinishService
return mydoJobFinishMapper.selectMydoJobFinishList(mydoJobFinish);
}
@Override
public List<MydoJob> selectMydoJobFinishListByMydoJob(MydoJob mydoJob) {
return mydoJobFinishMapper.selectMydoJobFinishListByMydoJob(mydoJob);
}
/**
* 新增历史主作业
*

View File

@@ -68,6 +68,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare4 != null and spare4 != ''"> and spare4 = #{spare4}</if>
</where>
</select>
<select id="selectMydoJobDetailFinishListByJobId" parameterType="String" resultMap="MydoJobDetailFinishResult">
<include refid="selectMydoJobDetailFinishVo"/>
where job_id = #{jobId}
</select>
<select id="selectMydoJobDetailFinishByJobDetailId" parameterType="String" resultMap="MydoJobDetailFinishResult">
<include refid="selectMydoJobDetailFinishVo"/>

View File

@@ -65,6 +65,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="faultFlag != null and faultFlag != ''"> and fault_flag = #{faultFlag}</if>
</where>
</select>
<select id="selectMydoJobFinishListByMydoJob" parameterType="MydoJob" resultMap="MydoJobFinishResult">
<include refid="selectMydoJobFinishVo"/>
<where>
<if test="jobId != null and jobId != ''"> and job_id = #{jobId}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
<if test="onLineType != null and onLineType != ''"> and on_line_type = #{onLineType}</if>
<if test="taskNo != null and taskNo != ''"> and task_no = #{taskNo}</if>
<if test="supplierId != null and supplierId != ''"> and supplier_id = #{supplierId}</if>
<if test="customerId != null and customerId != ''"> and customer_id = #{customerId}</if>
<if test="departmentId != null and departmentId != ''"> and department_id = #{departmentId}</if>
<if test="trayCode != null and trayCode != ''"> and tray_code = #{trayCode}</if>
<if test="roadwayId != null and roadwayId != ''"> and roadway_id = #{roadwayId}</if>
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if>
<if test="targetRoadwayId != null and targetRoadwayId != ''"> and target_roadway_id = #{targetRoadwayId}</if>
<if test="targetCargoSpaceId != null and targetCargoSpaceId != ''"> and target_cargo_space_id = #{targetCargoSpaceId}</if>
<if test="lineId != null and lineId != ''"> and line_id = #{lineId}</if>
<if test="workshopId != null and workshopId != ''"> and workshop_id = #{workshopId}</if>
<if test="priority != null "> and priority = #{priority}</if>
<if test="executionPhase != null and executionPhase != ''"> and execution_phase = #{executionPhase}</if>
<if test="inOrOut != null and inOrOut != ''"> and in_or_out = #{inOrOut}</if>
<if test="startTime != null and startTime != ''"> and start_time = #{startTime}</if>
<if test="finishTime != null and finishTime != ''"> and finish_time = #{finishTime}</if>
<if test="entranceId != null and entranceId != ''"> and entrance_id = #{entranceId}</if>
<if test="exitId != null and exitId != ''"> and exit_id = #{exitId}</if>
<if test="classId != null and classId != ''"> and class_id = #{classId}</if>
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
<if test="faultFlag != null and faultFlag != ''"> and fault_flag = #{faultFlag}</if>
</where>
</select>
<select id="selectMydoJobFinishByJobId" parameterType="String" resultMap="MydoJobFinishResult">
<include refid="selectMydoJobFinishVo"/>