diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java index e2c6d94..9eb1c65 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java @@ -5,6 +5,8 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; @@ -12,6 +14,8 @@ import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.bas.taskNo.service.IBasTaskNoService; +import com.ruoyi.check.difference.domain.CheckDifferenceRecord; +import com.ruoyi.check.difference.service.ICheckDifferenceRecordService; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; @@ -19,8 +23,10 @@ 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.domain.OutExceptionRecord; import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail; import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService; +import com.ruoyi.out.service.IOutExceptionRecordService; import com.ruoyi.stock.stock.domain.BasStock; import com.ruoyi.stock.stock.service.IBasStockService; import org.springframework.beans.factory.annotation.Autowired; @@ -55,6 +61,10 @@ public class MydoJobServiceImpl implements IMydoJobService { private IOutStockoutDetailService outStockoutDetailService; @Autowired private IBasCargoSpaceService basCargoSpaceService; + @Autowired + private ICheckDifferenceRecordService checkDifferenceRecordService; + @Autowired + private IOutExceptionRecordService outExceptionRecordService; /** @@ -138,6 +148,9 @@ public class MydoJobServiceImpl implements IMydoJobService { if (job == null) { return AjaxResult.warn("任务不存在"); } + if(!"1".equals(job.getStatus())) { + return AjaxResult.warn("任务已开始"); + } MydoJobDetail param = new MydoJobDetail(); param.setJobId(jobId); List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); @@ -181,88 +194,85 @@ public class MydoJobServiceImpl implements IMydoJobService { if (job == null) { return AjaxResult.warn("任务不存在"); } - if ("6".equals(job.getInOrOut())){ - //托盘盘点入库,放入原货位,直接修改货位状态,库存状态 + //入库作业 + MydoJobDetail param = new MydoJobDetail(); + param.setJobId(jobId); + List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); + BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); + if (CollUtil.isNotEmpty(mydoJobDetails)) { + List list = new ArrayList<>(); - //修改货位 - BasCargoSpace basCargoSpace = new BasCargoSpace(); - basCargoSpace.setStatus("8"); + if ("5".equals(job.getInOrOut()) || "6".equals(job.getInOrOut())) { + //查询盘点信息中的异常信息 + CheckDifferenceRecord checkDifferenceRecordParam = new CheckDifferenceRecord(); + checkDifferenceRecordParam.setTrayCode(job.getTrayCode()); + checkDifferenceRecordParam.setWarehouseId(job.getWarehouseId()); + List checkDifferenceRecords = checkDifferenceRecordService.selectCheckDifferenceRecordList(checkDifferenceRecordParam); + for (MydoJobDetail mydoJobDetail : mydoJobDetails) { + //如果存在盘点异常信息 根据托盘条码和物料id 筛选异常信息 + Optional first = checkDifferenceRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst(); + if (first.isPresent()) { + //生成盘点待审批库存 + BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, job, "2"); + list.add(stockByInStockinDetail); + //修改异常记录中的库存id + CheckDifferenceRecord checkDifferenceRecord = first.get(); + checkDifferenceRecord.setStockId(stockByInStockinDetail.getStockId()); + checkDifferenceRecordService.updateCheckDifferenceRecord(checkDifferenceRecord); + + } else { + //正常库存 + list.add(getStockByInStockinDetail(mydoJobDetail, job, "1")); + } + + } + } else { + //查找是否存在异常信息 + OutExceptionRecord outExceptionRecordParam = new OutExceptionRecord(); + outExceptionRecordParam.setTrayCode(job.getTrayCode()); + outExceptionRecordParam.setWarehouseId(job.getWarehouseId()); + List outExceptionRecords = outExceptionRecordService.selectOutExceptionRecordList(outExceptionRecordParam); + for (MydoJobDetail mydoJobDetail : mydoJobDetails) { + Optional first = outExceptionRecords.stream().filter(x -> x.getTrayCode().equals(job.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst(); + if (first.isPresent()){ + //生成异常库存 + BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, job, "2"); + list.add(stockByInStockinDetail); + //修改异常记录中的库存id + OutExceptionRecord outExceptionRecord = first.get(); + outExceptionRecord.setStockId(stockByInStockinDetail.getStockId()); + outExceptionRecordService.updateOutExceptionRecord(outExceptionRecord); + }else { + //正常库存 + list.add(getStockByInStockinDetail(mydoJobDetail, job, "1")); + } + } + //删除异常库存记录 + Long[] outExceptionIds = (Long[]) outExceptionRecords.stream().map(OutExceptionRecord::getOutGuid).toArray(); + if (outExceptionIds.length>0){ + outExceptionRecordService.deleteOutExceptionRecordByOutGuids(outExceptionIds); + } + + } + + + //修改货位状态 + basCargoSpace.setStatus("2"); basCargoSpace.setTrayCode(job.getTrayCode()); basCargoSpace.setCargoSpaceId(job.getCargoSpaceId()); basCargoSpaceService.updateBasCargoSpace(basCargoSpace); + //插入库存信息 + basStockService.insertBasStockList(list); - //修改物料状态 - BasStock basStockParam = new BasStock(); - basStockParam.setTrayCode(job.getTrayCode()); - List basStocks = basStockService.selectBasStockList(basStockParam); - for (BasStock basStock : basStocks) { - basStock.setProductStatus("2"); - basStockService.updateBasStock(basStock); - } - - //插入历史表 + //结束任务 + mydoJob.setStatus("4"); + updateMydoJob(mydoJob); + // 插入任务历史表 删除任务 insertHistory(mydoJob.getJobId()); return AjaxResult.success(); - - }else if ("5".equals(job.getInOrOut())){ - //料箱盘点入库 - MydoJobDetail param = new MydoJobDetail(); - param.setJobId(jobId); - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); - if (CollUtil.isNotEmpty(mydoJobDetails)) { - List list = new ArrayList<>(); - for (MydoJobDetail mydoJobDetail : mydoJobDetails) { - list.add(getStockByInStockinDetail(mydoJobDetail, job,"2")); - } - basStockService.insertBasStockList(list); - mydoJob.setStatus("4"); - updateMydoJob(mydoJob); - //修改货位 - BasCargoSpace basCargoSpace = new BasCargoSpace(); - basCargoSpace.setStatus("8"); - basCargoSpace.setTrayCode(job.getTrayCode()); - basCargoSpace.setCargoSpaceId(job.getCargoSpaceId()); - basCargoSpaceService.updateBasCargoSpace(basCargoSpace); - //插入历史表 - insertHistory(mydoJob.getJobId()); - } - return AjaxResult.success(); - }else { - //正常入库作业 - MydoJobDetail param = new MydoJobDetail(); - param.setJobId(jobId); - List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param); - BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()); - if (CollUtil.isNotEmpty(mydoJobDetails)) { - List list = new ArrayList<>(); - //修改货位 - if ("7".equals(basCargoSpace.getStatus())){ - //异常待盘点 - basCargoSpace.setStatus("7"); - for (MydoJobDetail mydoJobDetail : mydoJobDetails) { - //修改库存状态为异常 - list.add(getStockByInStockinDetail(mydoJobDetail, job,"3")); - } - }else if ("3".equals(basCargoSpace.getStatus())){ - //正常入库 - basCargoSpace.setStatus("2"); - for (MydoJobDetail mydoJobDetail : mydoJobDetails) { - //修改库存状态为正常 - list.add(getStockByInStockinDetail(mydoJobDetail, job,"1")); - } - } - basCargoSpace.setTrayCode(job.getTrayCode()); - basCargoSpace.setCargoSpaceId(job.getCargoSpaceId()); - basCargoSpaceService.updateBasCargoSpace(basCargoSpace); - - basStockService.insertBasStockList(list); - mydoJob.setStatus("4"); - updateMydoJob(mydoJob); - //插入历史表 - insertHistory(mydoJob.getJobId()); - } - return AjaxResult.success(); + } else { + return AjaxResult.warn("子任务不存在"); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/controller/OutExceptionRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/out/controller/OutExceptionRecordController.java new file mode 100644 index 0000000..40d4104 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/controller/OutExceptionRecordController.java @@ -0,0 +1,104 @@ +package com.ruoyi.out.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.out.domain.OutExceptionRecord; +import com.ruoyi.out.service.IOutExceptionRecordService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 出库异常Controller + * + * @author ruoyi + * @date 2025-07-01 + */ +@RestController +@RequestMapping("/out/exception") +public class OutExceptionRecordController extends BaseController +{ + @Autowired + private IOutExceptionRecordService outExceptionRecordService; + + /** + * 查询出库异常列表 + */ + @PreAuthorize("@ss.hasPermi('out:exception:list')") + @GetMapping("/list") + public TableDataInfo list(OutExceptionRecord outExceptionRecord) + { + startPage(); + List list = outExceptionRecordService.selectOutExceptionRecordList(outExceptionRecord); + return getDataTable(list); + } + + /** + * 导出出库异常列表 + */ + @PreAuthorize("@ss.hasPermi('out:exception:export')") + @Log(title = "出库异常", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, OutExceptionRecord outExceptionRecord) + { + List list = outExceptionRecordService.selectOutExceptionRecordList(outExceptionRecord); + ExcelUtil util = new ExcelUtil(OutExceptionRecord.class); + util.exportExcel(response, list, "出库异常数据"); + } + + /** + * 获取出库异常详细信息 + */ + @PreAuthorize("@ss.hasPermi('out:exception:query')") + @GetMapping(value = "/{outGuid}") + public AjaxResult getInfo(@PathVariable("outGuid") Long outGuid) + { + return success(outExceptionRecordService.selectOutExceptionRecordByOutGuid(outGuid)); + } + + /** + * 新增出库异常 + */ + @PreAuthorize("@ss.hasPermi('out:exception:add')") + @Log(title = "出库异常", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody OutExceptionRecord outExceptionRecord) + { + return toAjax(outExceptionRecordService.insertOutExceptionRecord(outExceptionRecord)); + } + + /** + * 修改出库异常 + */ + @PreAuthorize("@ss.hasPermi('out:exception:edit')") + @Log(title = "出库异常", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody OutExceptionRecord outExceptionRecord) + { + return toAjax(outExceptionRecordService.updateOutExceptionRecord(outExceptionRecord)); + } + + /** + * 删除出库异常 + */ + @PreAuthorize("@ss.hasPermi('out:exception:remove')") + @Log(title = "出库异常", businessType = BusinessType.DELETE) + @DeleteMapping("/{outGuids}") + public AjaxResult remove(@PathVariable Long[] outGuids) + { + return toAjax(outExceptionRecordService.deleteOutExceptionRecordByOutGuids(outGuids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/domain/OutExceptionRecord.java b/ruoyi-admin/src/main/java/com/ruoyi/out/domain/OutExceptionRecord.java new file mode 100644 index 0000000..f14a228 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/domain/OutExceptionRecord.java @@ -0,0 +1,142 @@ +package com.ruoyi.out.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 出库异常对象 out_exception_record + * + * @author ruoyi + * @date 2025-07-01 + */ +public class OutExceptionRecord extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 出库异常id */ + private Long outGuid; + + /** 仓库id */ + @Excel(name = "仓库id") + private String warehouseId; + + /** 库存id */ + @Excel(name = "库存id") + private String stockId; + + /** 托盘 */ + @Excel(name = "托盘") + private String trayCode; + + /** 物料id */ + @Excel(name = "物料id") + private String productId; + + /** 备用1 */ + @Excel(name = "备用1") + private String spare1; + + /** 备用2 */ + @Excel(name = "备用2") + private String spare2; + + /** 备用3 */ + @Excel(name = "备用3") + private String spare3; + + public void setOutGuid(Long outGuid) + { + this.outGuid = outGuid; + } + + public Long getOutGuid() + { + return outGuid; + } + + public void setWarehouseId(String warehouseId) + { + this.warehouseId = warehouseId; + } + + public String getWarehouseId() + { + return warehouseId; + } + + public void setStockId(String stockId) + { + this.stockId = stockId; + } + + public String getStockId() + { + return stockId; + } + + public void setTrayCode(String trayCode) + { + this.trayCode = trayCode; + } + + public String getTrayCode() + { + return trayCode; + } + + public void setProductId(String productId) + { + this.productId = productId; + } + + public String getProductId() + { + return productId; + } + + public void setSpare1(String spare1) + { + this.spare1 = spare1; + } + + public String getSpare1() + { + return spare1; + } + + public void setSpare2(String spare2) + { + this.spare2 = spare2; + } + + public String getSpare2() + { + return spare2; + } + + public void setSpare3(String spare3) + { + this.spare3 = spare3; + } + + public String getSpare3() + { + return spare3; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("outGuid", getOutGuid()) + .append("warehouseId", getWarehouseId()) + .append("stockId", getStockId()) + .append("trayCode", getTrayCode()) + .append("productId", getProductId()) + .append("spare1", getSpare1()) + .append("spare2", getSpare2()) + .append("spare3", getSpare3()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/mapper/OutExceptionRecordMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/out/mapper/OutExceptionRecordMapper.java new file mode 100644 index 0000000..b2a655e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/mapper/OutExceptionRecordMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.out.mapper; + +import java.util.List; +import com.ruoyi.out.domain.OutExceptionRecord; + +/** + * 出库异常Mapper接口 + * + * @author ruoyi + * @date 2025-07-01 + */ +public interface OutExceptionRecordMapper +{ + /** + * 查询出库异常 + * + * @param outGuid 出库异常主键 + * @return 出库异常 + */ + public OutExceptionRecord selectOutExceptionRecordByOutGuid(Long outGuid); + + /** + * 查询出库异常列表 + * + * @param outExceptionRecord 出库异常 + * @return 出库异常集合 + */ + public List selectOutExceptionRecordList(OutExceptionRecord outExceptionRecord); + + /** + * 新增出库异常 + * + * @param outExceptionRecord 出库异常 + * @return 结果 + */ + public int insertOutExceptionRecord(OutExceptionRecord outExceptionRecord); + + /** + * 修改出库异常 + * + * @param outExceptionRecord 出库异常 + * @return 结果 + */ + public int updateOutExceptionRecord(OutExceptionRecord outExceptionRecord); + + /** + * 删除出库异常 + * + * @param outGuid 出库异常主键 + * @return 结果 + */ + public int deleteOutExceptionRecordByOutGuid(Long outGuid); + + /** + * 批量删除出库异常 + * + * @param outGuids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteOutExceptionRecordByOutGuids(Long[] outGuids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/service/IOutExceptionRecordService.java b/ruoyi-admin/src/main/java/com/ruoyi/out/service/IOutExceptionRecordService.java new file mode 100644 index 0000000..85ef77c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/service/IOutExceptionRecordService.java @@ -0,0 +1,61 @@ +package com.ruoyi.out.service; + +import java.util.List; +import com.ruoyi.out.domain.OutExceptionRecord; + +/** + * 出库异常Service接口 + * + * @author ruoyi + * @date 2025-07-01 + */ +public interface IOutExceptionRecordService +{ + /** + * 查询出库异常 + * + * @param outGuid 出库异常主键 + * @return 出库异常 + */ + public OutExceptionRecord selectOutExceptionRecordByOutGuid(Long outGuid); + + /** + * 查询出库异常列表 + * + * @param outExceptionRecord 出库异常 + * @return 出库异常集合 + */ + public List selectOutExceptionRecordList(OutExceptionRecord outExceptionRecord); + + /** + * 新增出库异常 + * + * @param outExceptionRecord 出库异常 + * @return 结果 + */ + public int insertOutExceptionRecord(OutExceptionRecord outExceptionRecord); + + /** + * 修改出库异常 + * + * @param outExceptionRecord 出库异常 + * @return 结果 + */ + public int updateOutExceptionRecord(OutExceptionRecord outExceptionRecord); + + /** + * 批量删除出库异常 + * + * @param outGuids 需要删除的出库异常主键集合 + * @return 结果 + */ + public int deleteOutExceptionRecordByOutGuids(Long[] outGuids); + + /** + * 删除出库异常信息 + * + * @param outGuid 出库异常主键 + * @return 结果 + */ + public int deleteOutExceptionRecordByOutGuid(Long outGuid); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/service/impl/OutExceptionRecordServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/service/impl/OutExceptionRecordServiceImpl.java new file mode 100644 index 0000000..bb3826a --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/service/impl/OutExceptionRecordServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.out.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.out.mapper.OutExceptionRecordMapper; +import com.ruoyi.out.domain.OutExceptionRecord; +import com.ruoyi.out.service.IOutExceptionRecordService; + +/** + * 出库异常Service业务层处理 + * + * @author ruoyi + * @date 2025-07-01 + */ +@Service +public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService +{ + @Autowired + private OutExceptionRecordMapper outExceptionRecordMapper; + + /** + * 查询出库异常 + * + * @param outGuid 出库异常主键 + * @return 出库异常 + */ + @Override + public OutExceptionRecord selectOutExceptionRecordByOutGuid(Long outGuid) + { + return outExceptionRecordMapper.selectOutExceptionRecordByOutGuid(outGuid); + } + + /** + * 查询出库异常列表 + * + * @param outExceptionRecord 出库异常 + * @return 出库异常 + */ + @Override + public List selectOutExceptionRecordList(OutExceptionRecord outExceptionRecord) + { + return outExceptionRecordMapper.selectOutExceptionRecordList(outExceptionRecord); + } + + /** + * 新增出库异常 + * + * @param outExceptionRecord 出库异常 + * @return 结果 + */ + @Override + public int insertOutExceptionRecord(OutExceptionRecord outExceptionRecord) + { + return outExceptionRecordMapper.insertOutExceptionRecord(outExceptionRecord); + } + + /** + * 修改出库异常 + * + * @param outExceptionRecord 出库异常 + * @return 结果 + */ + @Override + public int updateOutExceptionRecord(OutExceptionRecord outExceptionRecord) + { + return outExceptionRecordMapper.updateOutExceptionRecord(outExceptionRecord); + } + + /** + * 批量删除出库异常 + * + * @param outGuids 需要删除的出库异常主键 + * @return 结果 + */ + @Override + public int deleteOutExceptionRecordByOutGuids(Long[] outGuids) + { + return outExceptionRecordMapper.deleteOutExceptionRecordByOutGuids(outGuids); + } + + /** + * 删除出库异常信息 + * + * @param outGuid 出库异常主键 + * @return 结果 + */ + @Override + public int deleteOutExceptionRecordByOutGuid(Long outGuid) + { + return outExceptionRecordMapper.deleteOutExceptionRecordByOutGuid(outGuid); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java index 7a34801..a7fb1d4 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/mapper/PdaMapper.java @@ -19,4 +19,6 @@ public interface PdaMapper { void outMakeSure(HashMap map); void checkMakeSure(HashMap map); + + void outMakeSureException(HashMap map); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java index bfa04c5..7f65253 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java @@ -311,6 +311,12 @@ public class PdaServiceImp implements PdaService { newBasContainerDetails.setQuantity(Convert.toLong(mydoJobDetail.getPickQuantity())); basContainerDetailsService.insertBasContainerDetails(newBasContainerDetails); } + + //修改单据实际数量 + String inOrOutDId = mydoJobDetailOld.getInOrOutDId(); + OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(inOrOutDId); + outStockoutDetail.setAssignNum(outStockoutDetail.getAssignNum().add(Convert.toBigDecimal(mydoJobDetail.getPickQuantity()))); + outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail); } //判断拣选数量是否等于出库数量 @@ -391,11 +397,11 @@ public class PdaServiceImp implements PdaService { stockOutId = outStockoutDetail.getStockoutId(); outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail); } - //生成回流任务,返回原库位,标记货位为异常待盘点状态 + //生成回流任务,标记productStatus为异常状态 HashMap map = new HashMap<>(); map.put("v_tray_code", trayCodeMakeSure.getTrayCode()); - map.put("v_type", "2"); - pdaMapper.outMakeSure(map); + map.put("v_type", "1"); + pdaMapper.outMakeSureException(map); String result = map.get("v_result").toString(); if ("10".equals(result)) { //自动分配 diff --git a/ruoyi-admin/src/main/resources/mapper/out/OutExceptionRecordMapper.xml b/ruoyi-admin/src/main/resources/mapper/out/OutExceptionRecordMapper.xml new file mode 100644 index 0000000..a005529 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/out/OutExceptionRecordMapper.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + select out_guid, warehouse_id, stock_id, tray_code, product_id, spare1, spare2, spare3 from out_exception_record + + + + + + + + insert into out_exception_record + + warehouse_id, + stock_id, + tray_code, + product_id, + spare1, + spare2, + spare3, + + + #{warehouseId}, + #{stockId}, + #{trayCode}, + #{productId}, + #{spare1}, + #{spare2}, + #{spare3}, + + + + + update out_exception_record + + warehouse_id = #{warehouseId}, + stock_id = #{stockId}, + tray_code = #{trayCode}, + product_id = #{productId}, + spare1 = #{spare1}, + spare2 = #{spare2}, + spare3 = #{spare3}, + + where out_guid = #{outGuid} + + + + delete from out_exception_record where out_guid = #{outGuid} + + + + delete from out_exception_record where out_guid in + + #{outGuid} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml b/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml index 26445f6..39ab822 100644 --- a/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/pda/PdaMapper.xml @@ -75,4 +75,11 @@ #{v_resultmsg,mode=OUT,jdbcType=VARCHAR} )} + diff --git a/ruoyi-ui/src/api/out/exception.js b/ruoyi-ui/src/api/out/exception.js new file mode 100644 index 0000000..a0a12d6 --- /dev/null +++ b/ruoyi-ui/src/api/out/exception.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询出库异常列表 +export function listException(query) { + return request({ + url: '/out/exception/list', + method: 'get', + params: query + }) +} + +// 查询出库异常详细 +export function getException(outGuid) { + return request({ + url: '/out/exception/' + outGuid, + method: 'get' + }) +} + +// 新增出库异常 +export function addException(data) { + return request({ + url: '/out/exception', + method: 'post', + data: data + }) +} + +// 修改出库异常 +export function updateException(data) { + return request({ + url: '/out/exception', + method: 'put', + data: data + }) +} + +// 删除出库异常 +export function delException(outGuid) { + return request({ + url: '/out/exception/' + outGuid, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/out/exception/index.vue b/ruoyi-ui/src/views/out/exception/index.vue new file mode 100644 index 0000000..f7b2507 --- /dev/null +++ b/ruoyi-ui/src/views/out/exception/index.vue @@ -0,0 +1,329 @@ + + +