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 f1082b2..d1c587a 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 @@ -32,6 +32,7 @@ import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService; import com.ruoyi.pda.domain.TrayCodeMakeSure; import com.ruoyi.pda.service.PdaService; import com.ruoyi.stock.stock.domain.BasStock; +import com.ruoyi.stock.stock.mapper.BasStockMapper; import com.ruoyi.stock.stock.service.IBasStockService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -76,6 +77,8 @@ public class MydoJobServiceImpl implements IMydoJobService { private IToWcsService iToWcsService; @Autowired private ITransferBillCallbackService transferBillCallbackService; + @Autowired + private BasStockMapper basStockMapper; /** @@ -361,12 +364,12 @@ public class MydoJobServiceImpl implements IMydoJobService { List mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(mydoJobDetail); for (MydoJobDetail detail : mydoJobDetails) { //修改库存的出库数量 - BasStock basStock = basStockService.selectBasStockByStockId(detail.getStockId()); + BasStock basStock = basStockMapper.selectBasStockByStockId(detail.getStockId()); if (basStock != null) { BigDecimal outQuantity = Convert.toBigDecimal(basStock.getOutQuantity()); BigDecimal substract = outQuantity.subtract(Convert.toBigDecimal(detail.getOutQuantity())); basStock.setOutQuantity(String.valueOf(substract)); - basStockService.updateBasStock(basStock); + basStockMapper.updateBasStock(basStock); } //修改单据数量 OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(detail.getInOrOutDId()); @@ -388,12 +391,12 @@ public class MydoJobServiceImpl implements IMydoJobService { updateMydoJob(job); insertHistory(jobId); //通知wcs - AjaxResult ajaxResult = iToWcsService.cancelTaskByTaskNo(job.getTaskNo()); - if (ajaxResult.isSuccess()) { - return AjaxResult.success(); - } else { - throw new RuntimeException(Convert.toStr(ajaxResult.get("msg"))); - } +// AjaxResult ajaxResult = iToWcsService.cancelTaskByTaskNo(job.getTaskNo()); +// if (ajaxResult.isSuccess()){ +// return AjaxResult.success(); +// }else { +// throw new RuntimeException(Convert.toStr(ajaxResult.get("msg"))); +// } } } catch (Exception e) { @@ -401,7 +404,7 @@ public class MydoJobServiceImpl implements IMydoJobService { log.error("任务处理异常", e); return AjaxResult.error(); } - return AjaxResult.error(); + return AjaxResult.success(); } @Override diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/controller/ViewHandAllotStockController.java b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/controller/ViewHandAllotStockController.java new file mode 100644 index 0000000..50dff3c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/controller/ViewHandAllotStockController.java @@ -0,0 +1,104 @@ +package com.ruoyi.out.handAllotStock.controller; + +import java.util.List; +import jakarta.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.handAllotStock.domain.ViewHandAllotStock; +import com.ruoyi.out.handAllotStock.service.IViewHandAllotStockService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 手动分配库存Controller + * + * @author ruoyi + * @date 2025-09-16 + */ +@RestController +@RequestMapping("/out/handAllotStock") +public class ViewHandAllotStockController extends BaseController +{ + @Autowired + private IViewHandAllotStockService viewHandAllotStockService; + + /** + * 查询手动分配库存列表 + */ + @PreAuthorize("@ss.hasPermi('out:handAllotStock:list')") + @GetMapping("/list") + public TableDataInfo list(ViewHandAllotStock viewHandAllotStock) + { + startPage(); + List list = viewHandAllotStockService.selectViewHandAllotStockList(viewHandAllotStock); + return getDataTable(list); + } + + /** + * 导出手动分配库存列表 + */ + @PreAuthorize("@ss.hasPermi('out:handAllotStock:export')") + @Log(title = "手动分配库存", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ViewHandAllotStock viewHandAllotStock) + { + List list = viewHandAllotStockService.selectViewHandAllotStockList(viewHandAllotStock); + ExcelUtil util = new ExcelUtil(ViewHandAllotStock.class); + util.exportExcel(response, list, "手动分配库存数据"); + } + + /** + * 获取手动分配库存详细信息 + */ + @PreAuthorize("@ss.hasPermi('out:handAllotStock:query')") + @GetMapping(value = "/{stockId}") + public AjaxResult getInfo(@PathVariable("stockId") String stockId) + { + return success(viewHandAllotStockService.selectViewHandAllotStockByStockId(stockId)); + } + + /** + * 新增手动分配库存 + */ + @PreAuthorize("@ss.hasPermi('out:handAllotStock:add')") + @Log(title = "手动分配库存", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ViewHandAllotStock viewHandAllotStock) + { + return toAjax(viewHandAllotStockService.insertViewHandAllotStock(viewHandAllotStock)); + } + + /** + * 修改手动分配库存 + */ + @PreAuthorize("@ss.hasPermi('out:handAllotStock:edit')") + @Log(title = "手动分配库存", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ViewHandAllotStock viewHandAllotStock) + { + return toAjax(viewHandAllotStockService.updateViewHandAllotStock(viewHandAllotStock)); + } + + /** + * 删除手动分配库存 + */ + @PreAuthorize("@ss.hasPermi('out:handAllotStock:remove')") + @Log(title = "手动分配库存", businessType = BusinessType.DELETE) + @DeleteMapping("/{stockIds}") + public AjaxResult remove(@PathVariable String[] stockIds) + { + return toAjax(viewHandAllotStockService.deleteViewHandAllotStockByStockIds(stockIds)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/domain/ViewHandAllotStock.java b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/domain/ViewHandAllotStock.java new file mode 100644 index 0000000..d2120b9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/domain/ViewHandAllotStock.java @@ -0,0 +1,579 @@ +package com.ruoyi.out.handAllotStock.domain; + +import java.math.BigDecimal; +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; + +/** + * 手动分配库存对象 view_hand_allot_stock + * + * @author ruoyi + * @date 2025-09-16 + */ +public class ViewHandAllotStock extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 库存编码 */ + @Excel(name = "库存编码") + private String stockId; + + /** 货位编码 */ + @Excel(name = "货位编码") + private String cargoSpaceId; + + /** 库存状态 */ + @Excel(name = "库存状态") + private String stockStatus; + + /** 物品状态 */ + @Excel(name = "物品状态") + private String productStatus; + + /** 批次号 */ + @Excel(name = "批次号") + private String lotNo; + + /** 入库时间 */ + @Excel(name = "入库时间") + private String inDate; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String backDate; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String productGuid; + + /** 数量 */ + @Excel(name = "数量") + private BigDecimal quantity; + + /** 作业编码 */ + @Excel(name = "作业编码") + private String jobId; + + /** 托盘条码 */ + @Excel(name = "托盘条码") + private String trayCode; + + /** 出库数量 */ + @Excel(name = "出库数量") + private String outQuantity; + + /** 入库子单号 */ + @Excel(name = "入库子单号") + private String stockinDetailId; + + /** 入库单号 */ + @Excel(name = "入库单号") + private String stockinId; + + /** 入库类型 */ + @Excel(name = "入库类型") + private String inType; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String inClassId; + + /** 仓库编码 */ + @Excel(name = "仓库编码") + private String warehouseId; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String stackingId; + + /** 规格 */ + @Excel(name = "规格") + private String spare1; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String spare2; + + /** 单位 */ + @Excel(name = "单位") + private String spare3; + + /** 型号 */ + @Excel(name = "型号") + private String spare4; + + /** 颜色 */ + @Excel(name = "颜色") + private String spare5; + + /** 序列号 */ + @Excel(name = "序列号") + private String spare6; + + /** 品号 */ + @Excel(name = "品号") + private String productId; + + /** 品名 */ + @Excel(name = "品名") + private String productName; + + /** 电压 */ + @Excel(name = "电压") + private String voltage; + + /** 功率 */ + @Excel(name = "功率") + private String power; + + /** 相位 */ + @Excel(name = "相位") + private String phase; + + /** 净重 */ + @Excel(name = "净重") + private BigDecimal netWeight; + + /** 毛重 */ + @Excel(name = "毛重") + private BigDecimal grossWeight; + + /** 分销 */ + @Excel(name = "分销") + private String distribution; + + /** 机型 */ + @Excel(name = "机型") + private String model; + + /** 订单号 */ + @Excel(name = "订单号") + private String orderId; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String spare7; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String spare8; + + /** 货位名称 */ + @Excel(name = "货位名称") + private String cargoSpaceName; + + public void setStockId(String stockId) + { + this.stockId = stockId; + } + + public String getStockId() + { + return stockId; + } + + public void setCargoSpaceId(String cargoSpaceId) + { + this.cargoSpaceId = cargoSpaceId; + } + + public String getCargoSpaceId() + { + return cargoSpaceId; + } + + public void setStockStatus(String stockStatus) + { + this.stockStatus = stockStatus; + } + + public String getStockStatus() + { + return stockStatus; + } + + public void setProductStatus(String productStatus) + { + this.productStatus = productStatus; + } + + public String getProductStatus() + { + return productStatus; + } + + public void setLotNo(String lotNo) + { + this.lotNo = lotNo; + } + + public String getLotNo() + { + return lotNo; + } + + public void setInDate(String inDate) + { + this.inDate = inDate; + } + + public String getInDate() + { + return inDate; + } + + public void setBackDate(String backDate) + { + this.backDate = backDate; + } + + public String getBackDate() + { + return backDate; + } + + public void setProductGuid(String productGuid) + { + this.productGuid = productGuid; + } + + public String getProductGuid() + { + return productGuid; + } + + public void setQuantity(BigDecimal quantity) + { + this.quantity = quantity; + } + + public BigDecimal getQuantity() + { + return quantity; + } + + public void setJobId(String jobId) + { + this.jobId = jobId; + } + + public String getJobId() + { + return jobId; + } + + public void setTrayCode(String trayCode) + { + this.trayCode = trayCode; + } + + public String getTrayCode() + { + return trayCode; + } + + public void setOutQuantity(String outQuantity) + { + this.outQuantity = outQuantity; + } + + public String getOutQuantity() + { + return outQuantity; + } + + public void setStockinDetailId(String stockinDetailId) + { + this.stockinDetailId = stockinDetailId; + } + + public String getStockinDetailId() + { + return stockinDetailId; + } + + public void setStockinId(String stockinId) + { + this.stockinId = stockinId; + } + + public String getStockinId() + { + return stockinId; + } + + public void setInType(String inType) + { + this.inType = inType; + } + + public String getInType() + { + return inType; + } + + public void setInClassId(String inClassId) + { + this.inClassId = inClassId; + } + + public String getInClassId() + { + return inClassId; + } + + public void setWarehouseId(String warehouseId) + { + this.warehouseId = warehouseId; + } + + public String getWarehouseId() + { + return warehouseId; + } + + public void setStackingId(String stackingId) + { + this.stackingId = stackingId; + } + + public String getStackingId() + { + return stackingId; + } + + 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; + } + + public void setSpare4(String spare4) + { + this.spare4 = spare4; + } + + public String getSpare4() + { + return spare4; + } + + public void setSpare5(String spare5) + { + this.spare5 = spare5; + } + + public String getSpare5() + { + return spare5; + } + + public void setSpare6(String spare6) + { + this.spare6 = spare6; + } + + public String getSpare6() + { + return spare6; + } + + public void setProductId(String productId) + { + this.productId = productId; + } + + public String getProductId() + { + return productId; + } + + public void setProductName(String productName) + { + this.productName = productName; + } + + public String getProductName() + { + return productName; + } + + public void setVoltage(String voltage) + { + this.voltage = voltage; + } + + public String getVoltage() + { + return voltage; + } + + public void setPower(String power) + { + this.power = power; + } + + public String getPower() + { + return power; + } + + public void setPhase(String phase) + { + this.phase = phase; + } + + public String getPhase() + { + return phase; + } + + public void setNetWeight(BigDecimal netWeight) + { + this.netWeight = netWeight; + } + + public BigDecimal getNetWeight() + { + return netWeight; + } + + public void setGrossWeight(BigDecimal grossWeight) + { + this.grossWeight = grossWeight; + } + + public BigDecimal getGrossWeight() + { + return grossWeight; + } + + public void setDistribution(String distribution) + { + this.distribution = distribution; + } + + public String getDistribution() + { + return distribution; + } + + public void setModel(String model) + { + this.model = model; + } + + public String getModel() + { + return model; + } + + public void setOrderId(String orderId) + { + this.orderId = orderId; + } + + public String getOrderId() + { + return orderId; + } + + public void setSpare7(String spare7) + { + this.spare7 = spare7; + } + + public String getSpare7() + { + return spare7; + } + + public void setSpare8(String spare8) + { + this.spare8 = spare8; + } + + public String getSpare8() + { + return spare8; + } + + public void setCargoSpaceName(String cargoSpaceName) + { + this.cargoSpaceName = cargoSpaceName; + } + + public String getCargoSpaceName() + { + return cargoSpaceName; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("stockId", getStockId()) + .append("cargoSpaceId", getCargoSpaceId()) + .append("stockStatus", getStockStatus()) + .append("productStatus", getProductStatus()) + .append("lotNo", getLotNo()) + .append("inDate", getInDate()) + .append("backDate", getBackDate()) + .append("productGuid", getProductGuid()) + .append("quantity", getQuantity()) + .append("jobId", getJobId()) + .append("trayCode", getTrayCode()) + .append("outQuantity", getOutQuantity()) + .append("stockinDetailId", getStockinDetailId()) + .append("stockinId", getStockinId()) + .append("inType", getInType()) + .append("inClassId", getInClassId()) + .append("warehouseId", getWarehouseId()) + .append("stackingId", getStackingId()) + .append("spare1", getSpare1()) + .append("spare2", getSpare2()) + .append("spare3", getSpare3()) + .append("spare4", getSpare4()) + .append("spare5", getSpare5()) + .append("spare6", getSpare6()) + .append("productId", getProductId()) + .append("productName", getProductName()) + .append("voltage", getVoltage()) + .append("power", getPower()) + .append("phase", getPhase()) + .append("netWeight", getNetWeight()) + .append("grossWeight", getGrossWeight()) + .append("distribution", getDistribution()) + .append("model", getModel()) + .append("orderId", getOrderId()) + .append("spare7", getSpare7()) + .append("spare8", getSpare8()) + .append("cargoSpaceName", getCargoSpaceName()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/mapper/ViewHandAllotStockMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/mapper/ViewHandAllotStockMapper.java new file mode 100644 index 0000000..feac8ac --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/mapper/ViewHandAllotStockMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.out.handAllotStock.mapper; + +import java.util.List; +import com.ruoyi.out.handAllotStock.domain.ViewHandAllotStock; + +/** + * 手动分配库存Mapper接口 + * + * @author ruoyi + * @date 2025-09-16 + */ +public interface ViewHandAllotStockMapper +{ + /** + * 查询手动分配库存 + * + * @param stockId 手动分配库存主键 + * @return 手动分配库存 + */ + public ViewHandAllotStock selectViewHandAllotStockByStockId(String stockId); + + /** + * 查询手动分配库存列表 + * + * @param viewHandAllotStock 手动分配库存 + * @return 手动分配库存集合 + */ + public List selectViewHandAllotStockList(ViewHandAllotStock viewHandAllotStock); + + /** + * 新增手动分配库存 + * + * @param viewHandAllotStock 手动分配库存 + * @return 结果 + */ + public int insertViewHandAllotStock(ViewHandAllotStock viewHandAllotStock); + + /** + * 修改手动分配库存 + * + * @param viewHandAllotStock 手动分配库存 + * @return 结果 + */ + public int updateViewHandAllotStock(ViewHandAllotStock viewHandAllotStock); + + /** + * 删除手动分配库存 + * + * @param stockId 手动分配库存主键 + * @return 结果 + */ + public int deleteViewHandAllotStockByStockId(String stockId); + + /** + * 批量删除手动分配库存 + * + * @param stockIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteViewHandAllotStockByStockIds(String[] stockIds); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/service/IViewHandAllotStockService.java b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/service/IViewHandAllotStockService.java new file mode 100644 index 0000000..7efad3c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/service/IViewHandAllotStockService.java @@ -0,0 +1,61 @@ +package com.ruoyi.out.handAllotStock.service; + +import java.util.List; +import com.ruoyi.out.handAllotStock.domain.ViewHandAllotStock; + +/** + * 手动分配库存Service接口 + * + * @author ruoyi + * @date 2025-09-16 + */ +public interface IViewHandAllotStockService +{ + /** + * 查询手动分配库存 + * + * @param stockId 手动分配库存主键 + * @return 手动分配库存 + */ + public ViewHandAllotStock selectViewHandAllotStockByStockId(String stockId); + + /** + * 查询手动分配库存列表 + * + * @param viewHandAllotStock 手动分配库存 + * @return 手动分配库存集合 + */ + public List selectViewHandAllotStockList(ViewHandAllotStock viewHandAllotStock); + + /** + * 新增手动分配库存 + * + * @param viewHandAllotStock 手动分配库存 + * @return 结果 + */ + public int insertViewHandAllotStock(ViewHandAllotStock viewHandAllotStock); + + /** + * 修改手动分配库存 + * + * @param viewHandAllotStock 手动分配库存 + * @return 结果 + */ + public int updateViewHandAllotStock(ViewHandAllotStock viewHandAllotStock); + + /** + * 批量删除手动分配库存 + * + * @param stockIds 需要删除的手动分配库存主键集合 + * @return 结果 + */ + public int deleteViewHandAllotStockByStockIds(String[] stockIds); + + /** + * 删除手动分配库存信息 + * + * @param stockId 手动分配库存主键 + * @return 结果 + */ + public int deleteViewHandAllotStockByStockId(String stockId); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/service/impl/ViewHandAllotStockServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/service/impl/ViewHandAllotStockServiceImpl.java new file mode 100644 index 0000000..622b4f6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/handAllotStock/service/impl/ViewHandAllotStockServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.out.handAllotStock.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.out.handAllotStock.mapper.ViewHandAllotStockMapper; +import com.ruoyi.out.handAllotStock.domain.ViewHandAllotStock; +import com.ruoyi.out.handAllotStock.service.IViewHandAllotStockService; + +/** + * 手动分配库存Service业务层处理 + * + * @author ruoyi + * @date 2025-09-16 + */ +@Service +public class ViewHandAllotStockServiceImpl implements IViewHandAllotStockService +{ + @Autowired + private ViewHandAllotStockMapper viewHandAllotStockMapper; + + /** + * 查询手动分配库存 + * + * @param stockId 手动分配库存主键 + * @return 手动分配库存 + */ + @Override + public ViewHandAllotStock selectViewHandAllotStockByStockId(String stockId) + { + return viewHandAllotStockMapper.selectViewHandAllotStockByStockId(stockId); + } + + /** + * 查询手动分配库存列表 + * + * @param viewHandAllotStock 手动分配库存 + * @return 手动分配库存 + */ + @Override + public List selectViewHandAllotStockList(ViewHandAllotStock viewHandAllotStock) + { + return viewHandAllotStockMapper.selectViewHandAllotStockList(viewHandAllotStock); + } + + /** + * 新增手动分配库存 + * + * @param viewHandAllotStock 手动分配库存 + * @return 结果 + */ + @Override + public int insertViewHandAllotStock(ViewHandAllotStock viewHandAllotStock) + { + return viewHandAllotStockMapper.insertViewHandAllotStock(viewHandAllotStock); + } + + /** + * 修改手动分配库存 + * + * @param viewHandAllotStock 手动分配库存 + * @return 结果 + */ + @Override + public int updateViewHandAllotStock(ViewHandAllotStock viewHandAllotStock) + { + return viewHandAllotStockMapper.updateViewHandAllotStock(viewHandAllotStock); + } + + /** + * 批量删除手动分配库存 + * + * @param stockIds 需要删除的手动分配库存主键 + * @return 结果 + */ + @Override + public int deleteViewHandAllotStockByStockIds(String[] stockIds) + { + return viewHandAllotStockMapper.deleteViewHandAllotStockByStockIds(stockIds); + } + + /** + * 删除手动分配库存信息 + * + * @param stockId 手动分配库存主键 + * @return 结果 + */ + @Override + public int deleteViewHandAllotStockByStockId(String stockId) + { + return viewHandAllotStockMapper.deleteViewHandAllotStockByStockId(stockId); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/controller/OutStockoutController.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/controller/OutStockoutController.java index 1f74e23..f53e452 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/controller/OutStockoutController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/controller/OutStockoutController.java @@ -137,4 +137,15 @@ public class OutStockoutController extends BaseController { public AjaxResult autoAllot(@RequestParam("stockoutId") String stockoutId) { return outStockoutService.autoAllot(stockoutId); } + + /** + * 手动分配 + */ + @PreAuthorize("@ss.hasPermi('out:outStockout:manualAllot')") + @Log(title = "出库单手动分配", businessType = BusinessType.OTHER) + @GetMapping("/manualAllot") + public AjaxResult manualAllot(@RequestParam("stockList") String[] stockList, @RequestParam("stockoutDetailId") String stockoutDetailId) { + return outStockoutService.manualAllot(stockList, stockoutDetailId); + + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java index da296dd..c5c4496 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/mapper/OutStockoutMapper.java @@ -66,4 +66,6 @@ public interface OutStockoutMapper void autoAllot(HashMap map); OutStockout selectOutStockoutByStockoutId(String stockoutId); + + void manualAllot(HashMap map); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java index 0bfc274..94b2787 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/IOutStockoutService.java @@ -71,4 +71,6 @@ public interface IOutStockoutService AjaxResult autoAllot(String stockoutId); List selectOutStockoutListApi(OutStockout outStockoutParam); + + AjaxResult manualAllot(String[] stockList,String stockoutDetailId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java index 7958bdf..57bd90e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/outStockout/service/impl/OutStockoutServiceImpl.java @@ -197,4 +197,23 @@ public class OutStockoutServiceImpl implements IOutStockoutService public List selectOutStockoutListApi(OutStockout outStockout) { return outStockoutMapper.selectOutStockoutList(outStockout); } + + @Override + public AjaxResult manualAllot(String[] stockList, String stockoutDetailId) { + HashMap map = new HashMap<>(); + StringBuilder stringBuilder = new StringBuilder(); + for (String stock : stockList) { + map.put("v_stockout_detail_id", stockoutDetailId); + map.put("v_stock_id", stock); + outStockoutMapper.manualAllot(map); + toWcsService.pushOutMydoJob(); + if (!"10".equals(map.get("v_result"))){ + stringBuilder.append(",").append(map.get("v_resultString")); + } + } + if (!StrUtil.isEmpty(stringBuilder.toString())){ + return AjaxResult.warn(stringBuilder.toString()); + } + return AjaxResult.success(); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/out/OutStockoutMapper.xml b/ruoyi-admin/src/main/resources/mapper/out/OutStockoutMapper.xml index 1f8379f..039f7ef 100644 --- a/ruoyi-admin/src/main/resources/mapper/out/OutStockoutMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/out/OutStockoutMapper.xml @@ -159,6 +159,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) } + + + + + and stock_id = #{stockId} + and cargo_space_id = #{cargoSpaceId} + and stock_status = #{stockStatus} + and product_status = #{productStatus} + and lot_no = #{lotNo} + and in_date = #{inDate} + and back_date = #{backDate} + and product_guid = #{productGuid} + and quantity = #{quantity} + and job_id = #{jobId} + and tray_code = #{trayCode} + and out_quantity = #{outQuantity} + and stockin_detail_id = #{stockinDetailId} + and stockin_id = #{stockinId} + and in_type = #{inType} + and in_class_id = #{inClassId} + and warehouse_id = #{warehouseId} + and stacking_id = #{stackingId} + and spare1 = #{spare1} + and spare2 = #{spare2} + and spare3 = #{spare3} + and spare4 = #{spare4} + and spare5 = #{spare5} + and spare6 = #{spare6} + and product_id = #{productId} + and product_name like concat('%', #{productName}, '%') + and voltage = #{voltage} + and power = #{power} + and phase = #{phase} + and net_weight = #{netWeight} + and gross_weight = #{grossWeight} + and distribution = #{distribution} + and model = #{model} + and order_id = #{orderId} + and spare7 = #{spare7} + and spare8 = #{spare8} + and cargo_space_name like concat('%', #{cargoSpaceName}, '%') + + + + + + + insert into view_hand_allot_stock + + stock_id, + cargo_space_id, + stock_status, + product_status, + lot_no, + in_date, + back_date, + product_guid, + quantity, + job_id, + tray_code, + out_quantity, + stockin_detail_id, + stockin_id, + in_type, + in_class_id, + warehouse_id, + stacking_id, + spare1, + spare2, + spare3, + spare4, + spare5, + spare6, + product_id, + product_name, + voltage, + power, + phase, + net_weight, + gross_weight, + distribution, + model, + order_id, + spare7, + spare8, + cargo_space_name, + + + #{stockId}, + #{cargoSpaceId}, + #{stockStatus}, + #{productStatus}, + #{lotNo}, + #{inDate}, + #{backDate}, + #{productGuid}, + #{quantity}, + #{jobId}, + #{trayCode}, + #{outQuantity}, + #{stockinDetailId}, + #{stockinId}, + #{inType}, + #{inClassId}, + #{warehouseId}, + #{stackingId}, + #{spare1}, + #{spare2}, + #{spare3}, + #{spare4}, + #{spare5}, + #{spare6}, + #{productId}, + #{productName}, + #{voltage}, + #{power}, + #{phase}, + #{netWeight}, + #{grossWeight}, + #{distribution}, + #{model}, + #{orderId}, + #{spare7}, + #{spare8}, + #{cargoSpaceName}, + + + + + update view_hand_allot_stock + + cargo_space_id = #{cargoSpaceId}, + stock_status = #{stockStatus}, + product_status = #{productStatus}, + lot_no = #{lotNo}, + in_date = #{inDate}, + back_date = #{backDate}, + product_guid = #{productGuid}, + quantity = #{quantity}, + job_id = #{jobId}, + tray_code = #{trayCode}, + out_quantity = #{outQuantity}, + stockin_detail_id = #{stockinDetailId}, + stockin_id = #{stockinId}, + in_type = #{inType}, + in_class_id = #{inClassId}, + warehouse_id = #{warehouseId}, + stacking_id = #{stackingId}, + spare1 = #{spare1}, + spare2 = #{spare2}, + spare3 = #{spare3}, + spare4 = #{spare4}, + spare5 = #{spare5}, + spare6 = #{spare6}, + product_id = #{productId}, + product_name = #{productName}, + voltage = #{voltage}, + power = #{power}, + phase = #{phase}, + net_weight = #{netWeight}, + gross_weight = #{grossWeight}, + distribution = #{distribution}, + model = #{model}, + order_id = #{orderId}, + spare7 = #{spare7}, + spare8 = #{spare8}, + cargo_space_name = #{cargoSpaceName}, + + where stock_id = #{stockId} + + + + delete from view_hand_allot_stock where stock_id = #{stockId} + + + + delete from view_hand_allot_stock where stock_id in + + #{stockId} + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/out/outStockout.js b/ruoyi-ui/src/api/out/outStockout.js index c9ecf0e..2c4fe6a 100644 --- a/ruoyi-ui/src/api/out/outStockout.js +++ b/ruoyi-ui/src/api/out/outStockout.js @@ -67,5 +67,31 @@ export function getOutStockoutDetail(query) { }) } +// 查询手动分配库存列表 +export function listOut(query) { + return request({ + url: '/out/handAllotStock/list', + method: 'get', + params: query + }) +} + export function manualAllot(params) + { + const searchParams = new URLSearchParams(); + if (Array.isArray(params.stockList)) { + params.stockList.forEach(stock => searchParams.append('stockList', stock.stockId)); + } + if (params.stockoutDetailId) { + searchParams.append('stockoutDetailId', params.stockoutDetailId); + } + + return request({ + url: '/out/outStockout/manualAllot?' + searchParams.toString(), + method: 'get' + }) + } + + + diff --git a/ruoyi-ui/src/views/job/outJobManagement.vue b/ruoyi-ui/src/views/job/outJobManagement.vue index c8e3dc2..a424afc 100644 --- a/ruoyi-ui/src/views/job/outJobManagement.vue +++ b/ruoyi-ui/src/views/job/outJobManagement.vue @@ -21,25 +21,25 @@ /> - - - + + + + + + + + - - - - - + + + + + + + + + + - - - - - + + + + + + + + + + + + + + 搜索 @@ -124,19 +124,22 @@ - + - - - - - + + + + + + + + + + + - @@ -154,9 +157,21 @@ - - + + + + + + + + + + + + + + - + + @@ -173,8 +174,8 @@ - + @@ -186,17 +187,16 @@ --> - + + + + + + + @@ -213,15 +213,105 @@ + + + + + + + + 计划数量: + {{ selectedDetailRows.length > 0 ? selectedDetailRows[0].quantity : 0 }} + + + 已选库存数量: + {{ selectedStockQuantity }} + + + 剩余可分配: + {{ remainingQuantity }} + + + + + + + + + + + + + + + + + 搜索 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +