From 695a065dc0cc90e6ce71efaeb5a4420605a5ab51 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Fri, 23 Jan 2026 14:46:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BAwms=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/impl/ToWcsServiceImpl.java | 12 +- .../com/ruoyi/job/mydojob/domain/MydoJob.java | 10 + .../service/impl/MydoJobServiceImpl.java | 5 +- .../kpi/service/impl/KpiServiceImpl.java | 42 +++ .../domain/ViewHandAllotStock.java | 10 + .../impl/ViewInJobFlowServiceImpl.java | 5 +- .../impl/ViewOutJobFlowServiceImpl.java | 5 +- .../impl/ViewStockDetailServiceImpl.java | 5 +- .../ViewTraycodeStaticController.java | 104 ++++++ .../domain/ViewTraycodeStatic.java | 203 ++++++++++ .../mapper/ViewTraycodeStaticMapper.java | 61 +++ .../service/IViewTraycodeStaticService.java | 61 +++ .../impl/ViewTraycodeStaticServiceImpl.java | 130 +++++++ .../stock/stock/domain/BasStockSummary.java | 1 + .../stock/stock/mapper/BasStockMapper.java | 2 + .../service/impl/BasStockServiceImpl.java | 81 +++- .../bas/cargoSpace/BasCargoSpaceMapper.xml | 2 +- .../mapper/in/InStockinDetailMapper.xml | 8 +- .../mapper/job/MydoJobFinishMapper.xml | 6 + .../mapper/out/ViewHandAllotStockMapper.xml | 3 +- .../mapper/search/ViewInJobFlowMapper.xml | 2 +- .../search/ViewTraycodeStaticMapper.xml | 109 ++++++ .../resources/mapper/stock/BasStockMapper.xml | 6 +- ruoyi-ui/src/api/search/traycodeStatic.js | 44 +++ ruoyi-ui/src/views/in/job/index.vue | 3 +- ruoyi-ui/src/views/job/outJobManagement.vue | 15 +- ruoyi-ui/src/views/out/outStockoutManage.vue | 8 +- .../views/search/ViewStockDetail/index.vue | 2 +- .../src/views/search/traycodeStatic/index.vue | 348 ++++++++++++++++++ ruoyi-ui/src/views/stock/management/index.vue | 131 ++++++- ruoyi-ui/src/views/stock/pointOut.vue | 13 +- 31 files changed, 1389 insertions(+), 48 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/controller/ViewTraycodeStaticController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/domain/ViewTraycodeStatic.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/mapper/ViewTraycodeStaticMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/IViewTraycodeStaticService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/impl/ViewTraycodeStaticServiceImpl.java create mode 100644 ruoyi-admin/src/main/resources/mapper/search/ViewTraycodeStaticMapper.xml create mode 100644 ruoyi-ui/src/api/search/traycodeStatic.js create mode 100644 ruoyi-ui/src/views/search/traycodeStatic/index.vue diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java index c3831b6..c1c4fc9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java @@ -66,7 +66,7 @@ public class ToWcsServiceImpl implements IToWcsService { @Override - @Scheduled(fixedDelay=1500) + //@Scheduled(fixedDelay=1500) public void pushOutMydoJob() { //查询所有未推送的料箱出库作业 MydoJob mydoJobParam = new MydoJob(); @@ -156,15 +156,6 @@ public class ToWcsServiceImpl implements IToWcsService { param.setWarehouseId(requestEnter.getWarehouseId()); List mydoJobs = mydoJobService.selectMydoJobListApi(param); if (CollUtil.isEmpty(mydoJobs)){ - /*//生成杂料入库任务 - TrayCodeMsg trayCodeMsg = new TrayCodeMsg(); - trayCodeMsg.setTrayCode(requestEnter.getTrayCode()); - trayCodeMsg.setWarehouseId(requestEnter.getWarehouseId()); - pdaService.zlin(trayCodeMsg); - mydoJobs = mydoJobService.selectMydoJobListApi(param); - if (CollUtil.isEmpty(mydoJobs)){ - return AjaxResult.error("杂料入库任务生成失败", requestEnter.getTrayCode()); - }*/ if ("02".equals(requestEnter.getWarehouseId())){ HashMap map = new HashMap<>(); map.put("v_tray_code", requestEnter.getTrayCode()); @@ -219,6 +210,7 @@ public class ToWcsServiceImpl implements IToWcsService { basCargoSpaceParam.setRule1(null); basCargoSpaceParam.setRule2(null); basCargoSpaceParam.setTheFloor(null); + basCargoSpaceParam.setCargoHight(null); basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam); if (ObjUtil.isNull(basCargoSpace)){ return AjaxResult.error("没有空货位"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java index 941896d..fb7df71 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/domain/MydoJob.java @@ -136,6 +136,16 @@ public class MydoJob extends BaseEntity private String productId; + private List warehouseIdList; + + public List getWarehouseIdList() { + return warehouseIdList; + } + + public void setWarehouseIdList(List warehouseIdList) { + this.warehouseIdList = warehouseIdList; + } + public String getProductId() { return productId; } 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 35e1afc..81fa6e3 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 @@ -116,16 +116,19 @@ public class MydoJobServiceImpl implements IMydoJobService { } if ("1".equals(mydoJob.getInOut()) || "3".equals(mydoJob.getInOut())){ //入库需要查看本部门任务 - mydoJob.setDepartmentId(Convert.toStr(SecurityUtils.getDeptId())); Optional first = roles.stream().filter(x -> "role1".equals(x.getRoleKey())).findFirst(); if (first.isPresent()){ //二联合普通人员 mydoJob.setWarehouseId("02"); + mydoJob.setDepartmentId(Convert.toStr(SecurityUtils.getDeptId())); + } Optional first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); if (first1.isPresent()){ //三联合普通人员 mydoJob.setWarehouseId("01"); + mydoJob.setDepartmentId(Convert.toStr(SecurityUtils.getDeptId())); + } Optional first2 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); if (first2.isPresent()){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/kpi/service/impl/KpiServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/kpi/service/impl/KpiServiceImpl.java index 0cbe248..0fa7c04 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/kpi/service/impl/KpiServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/kpi/service/impl/KpiServiceImpl.java @@ -1,18 +1,22 @@ package com.ruoyi.kpi.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.ruoyi.bas.cargoSpace.domain.BasCargoSpace; import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.utils.MessageUtils; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.job.mydojob.domain.MydoJob; import com.ruoyi.job.mydojobfinish.domain.MydoJobFinish; import com.ruoyi.job.mydojobfinish.mapper.MydoJobFinishMapper; import com.ruoyi.kpi.service.KpiService; import com.ruoyi.stock.stock.domain.BasStock; import com.ruoyi.stock.stock.mapper.BasStockMapper; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,6 +30,7 @@ import java.util.stream.Collectors; * @date 2025-05-21 */ @Service +@Slf4j public class KpiServiceImpl implements KpiService { @Autowired @@ -497,6 +502,43 @@ public class KpiServiceImpl implements KpiService mydoJobParam.setDateStart(startTime); mydoJobParam.setDateEnd(endTime); mydoJobParam.setInOut(inOut); + try { + if (!"admin".equals(SecurityUtils.getUsername())){ + List roles = SecurityUtils.getLoginUser().getUser().getRoles(); + if (CollUtil.isEmpty(roles)) { + //如果未设置角色 ,直接返回空列表 + return AjaxResult.error("没有权限!"); + } + ArrayList warehouseIdList = new ArrayList<>(); + Optional first = roles.stream().filter(x -> "role1".equals(x.getRoleKey())).findFirst(); + if (first.isPresent()){ + //二联合普通人员 + mydoJobParam.setDepartmentId(SecurityUtils.getDeptId().toString()); + warehouseIdList.add("02"); + warehouseIdList.add("03"); + } + Optional first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); + if (first1.isPresent()){ + //三联合普通人员 + mydoJobParam.setDepartmentId(SecurityUtils.getDeptId().toString()); + warehouseIdList.add("01"); + } + Optional first2 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); + if (first2.isPresent()){ + //二联合管理员 + warehouseIdList.add("02"); + warehouseIdList.add("03"); + } + Optional first3 = roles.stream().filter(x -> "role4".equals(x.getRoleKey())).findFirst(); + if (first3.isPresent()){ + //三联合管理员 + warehouseIdList.add("01"); + } + mydoJobParam.setWarehouseIdList(warehouseIdList); + } + }catch (Exception e){ + log.error(e.getMessage(),e); + } List datesBetween = DateUtil.rangeToList(DateUtil.parseDate(startTime), DateUtil.parseDate(endTime), DateField.DAY_OF_MONTH); List list = mydoJobFinishMapper.selectMydoJobFinishListByMydoJob(mydoJobParam); 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 index 380f9bf..655131e 100644 --- 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 @@ -172,6 +172,16 @@ public class ViewHandAllotStock extends BaseEntity private String theType; private String theTypeName; + private String deptName; + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + public String getTheType() { return theType; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/service/impl/ViewInJobFlowServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/service/impl/ViewInJobFlowServiceImpl.java index 57f93bb..2efbd0d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/service/impl/ViewInJobFlowServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/service/impl/ViewInJobFlowServiceImpl.java @@ -50,7 +50,6 @@ public class ViewInJobFlowServiceImpl implements IViewInJobFlowService public List selectViewInJobFlowList(ViewInJobFlow viewInJobFlow) { if (!"admin".equals(SecurityUtils.getUsername())){ - viewInJobFlow.setDepartmentId(SecurityUtils.getDeptId().toString()); List roles = SecurityUtils.getLoginUser().getUser().getRoles(); if (CollUtil.isEmpty(roles)) { //如果未设置角色 ,直接返回空列表 @@ -60,11 +59,15 @@ public class ViewInJobFlowServiceImpl implements IViewInJobFlowService if (first.isPresent()){ //二联合普通人员 viewInJobFlow.setWarehouseId("02"); + viewInJobFlow.setDepartmentId(SecurityUtils.getDeptId().toString()); + } Optional first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); if (first1.isPresent()){ //三联合普通人员 viewInJobFlow.setWarehouseId("01"); + viewInJobFlow.setDepartmentId(SecurityUtils.getDeptId().toString()); + } Optional first2 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); if (first2.isPresent()){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewOutJobFlow/service/impl/ViewOutJobFlowServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewOutJobFlow/service/impl/ViewOutJobFlowServiceImpl.java index 99c1aac..cf74d6f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewOutJobFlow/service/impl/ViewOutJobFlowServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewOutJobFlow/service/impl/ViewOutJobFlowServiceImpl.java @@ -50,7 +50,6 @@ public class ViewOutJobFlowServiceImpl implements IViewOutJobFlowService public List selectViewOutJobFlowList(ViewOutJobFlow viewOutJobFlow) { if (!"admin".equals(SecurityUtils.getUsername())){ - viewOutJobFlow.setDepartmentId(SecurityUtils.getDeptId().toString()); List roles = SecurityUtils.getLoginUser().getUser().getRoles(); if (CollUtil.isEmpty(roles)) { //如果未设置角色 ,直接返回空列表 @@ -60,11 +59,15 @@ public class ViewOutJobFlowServiceImpl implements IViewOutJobFlowService if (first.isPresent()){ //二联合普通人员 viewOutJobFlow.setWarehouseId("02"); + viewOutJobFlow.setDepartmentId(SecurityUtils.getDeptId().toString()); + } Optional first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); if (first1.isPresent()){ //三联合普通人员 viewOutJobFlow.setWarehouseId("01"); + viewOutJobFlow.setDepartmentId(SecurityUtils.getDeptId().toString()); + } Optional first2 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); if (first2.isPresent()){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/service/impl/ViewStockDetailServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/service/impl/ViewStockDetailServiceImpl.java index d0a449f..ad0294a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/service/impl/ViewStockDetailServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/service/impl/ViewStockDetailServiceImpl.java @@ -49,7 +49,6 @@ public class ViewStockDetailServiceImpl implements IViewStockDetailService public List selectViewStockDetailList(ViewStockDetail viewStockDetail) { if (!"admin".equals(SecurityUtils.getUsername())){ - viewStockDetail.setModel(SecurityUtils.getDeptId().toString()); List roles = SecurityUtils.getLoginUser().getUser().getRoles(); if (CollUtil.isEmpty(roles)) { //如果未设置角色 ,直接返回空列表 @@ -59,11 +58,15 @@ public class ViewStockDetailServiceImpl implements IViewStockDetailService if (first.isPresent()){ //二联合普通人员 viewStockDetail.setWarehouseId("02"); + viewStockDetail.setModel(SecurityUtils.getDeptId().toString()); + } Optional first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); if (first1.isPresent()){ //三联合普通人员 viewStockDetail.setWarehouseId("01"); + viewStockDetail.setModel(SecurityUtils.getDeptId().toString()); + } Optional first2 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); if (first2.isPresent()){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/controller/ViewTraycodeStaticController.java b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/controller/ViewTraycodeStaticController.java new file mode 100644 index 0000000..0b29e28 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/controller/ViewTraycodeStaticController.java @@ -0,0 +1,104 @@ +package com.ruoyi.search.traycodeStatic.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.search.traycodeStatic.domain.ViewTraycodeStatic; +import com.ruoyi.search.traycodeStatic.service.IViewTraycodeStaticService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 托盘统计Controller + * + * @author ruoyi + * @date 2026-01-23 + */ +@RestController +@RequestMapping("/search/traycodeStatic") +public class ViewTraycodeStaticController extends BaseController +{ + @Autowired + private IViewTraycodeStaticService viewTraycodeStaticService; + + /** + * 查询托盘统计列表 + */ + @PreAuthorize("@ss.hasPermi('search:traycodeStatic:list')") + @GetMapping("/list") + public TableDataInfo list(ViewTraycodeStatic viewTraycodeStatic) + { + startPage(); + List list = viewTraycodeStaticService.selectViewTraycodeStaticList(viewTraycodeStatic); + return getDataTable(list); + } + + /** + * 导出托盘统计列表 + */ + @PreAuthorize("@ss.hasPermi('search:traycodeStatic:export')") + @Log(title = "托盘统计", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ViewTraycodeStatic viewTraycodeStatic) + { + List list = viewTraycodeStaticService.selectViewTraycodeStaticList(viewTraycodeStatic); + ExcelUtil util = new ExcelUtil(ViewTraycodeStatic.class); + util.exportExcel(response, list, "托盘统计数据"); + } + + /** + * 获取托盘统计详细信息 + */ + @PreAuthorize("@ss.hasPermi('search:traycodeStatic:query')") + @GetMapping(value = "/{warehouseId}") + public AjaxResult getInfo(@PathVariable("warehouseId") String warehouseId) + { + return success(viewTraycodeStaticService.selectViewTraycodeStaticByWarehouseId(warehouseId)); + } + + /** + * 新增托盘统计 + */ + @PreAuthorize("@ss.hasPermi('search:traycodeStatic:add')") + @Log(title = "托盘统计", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ViewTraycodeStatic viewTraycodeStatic) + { + return toAjax(viewTraycodeStaticService.insertViewTraycodeStatic(viewTraycodeStatic)); + } + + /** + * 修改托盘统计 + */ + @PreAuthorize("@ss.hasPermi('search:traycodeStatic:edit')") + @Log(title = "托盘统计", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ViewTraycodeStatic viewTraycodeStatic) + { + return toAjax(viewTraycodeStaticService.updateViewTraycodeStatic(viewTraycodeStatic)); + } + + /** + * 删除托盘统计 + */ + @PreAuthorize("@ss.hasPermi('search:traycodeStatic:remove')") + @Log(title = "托盘统计", businessType = BusinessType.DELETE) + @DeleteMapping("/{warehouseIds}") + public AjaxResult remove(@PathVariable String[] warehouseIds) + { + return toAjax(viewTraycodeStaticService.deleteViewTraycodeStaticByWarehouseIds(warehouseIds)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/domain/ViewTraycodeStatic.java b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/domain/ViewTraycodeStatic.java new file mode 100644 index 0000000..e4146db --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/domain/ViewTraycodeStatic.java @@ -0,0 +1,203 @@ +package com.ruoyi.search.traycodeStatic.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; + +/** + * 托盘统计对象 view_traycode_static + * + * @author ruoyi + * @date 2026-01-23 + */ +public class ViewTraycodeStatic extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 仓库编码 */ + @Excel(name = "仓库编码") + private String warehouseId; + + /** 仓库名称 */ + @Excel(name = "仓库名称") + private String warehouseName; + + /** 货位编码 */ + @Excel(name = "货位编码") + private String cargoSpaceId; + + /** 货位名称 */ + @Excel(name = "货位名称") + private String cargoSpaceName; + + /** 巷道 */ + @Excel(name = "巷道") + private String roadwayId; + + /** 排 */ + @Excel(name = "排") + private Long thePlatoon; + + /** 列 */ + @Excel(name = "列") + private Long theColumn; + + /** 层 */ + @Excel(name = "层") + private Long theFloor; + + /** 托盘号 */ + @Excel(name = "托盘号") + private String trayCode; + + /** 部门 */ + @Excel(name = "部门") + private String model; + + /** 部门名称 */ + @Excel(name = "部门名称") + private String deptName; + + /** 入库时间 */ + @Excel(name = "入库时间") + private String inDate; + + public void setWarehouseId(String warehouseId) + { + this.warehouseId = warehouseId; + } + + public String getWarehouseId() + { + return warehouseId; + } + + public void setWarehouseName(String warehouseName) + { + this.warehouseName = warehouseName; + } + + public String getWarehouseName() + { + return warehouseName; + } + + public void setCargoSpaceId(String cargoSpaceId) + { + this.cargoSpaceId = cargoSpaceId; + } + + public String getCargoSpaceId() + { + return cargoSpaceId; + } + + public void setCargoSpaceName(String cargoSpaceName) + { + this.cargoSpaceName = cargoSpaceName; + } + + public String getCargoSpaceName() + { + return cargoSpaceName; + } + + public void setRoadwayId(String roadwayId) + { + this.roadwayId = roadwayId; + } + + public String getRoadwayId() + { + return roadwayId; + } + + public void setThePlatoon(Long thePlatoon) + { + this.thePlatoon = thePlatoon; + } + + public Long getThePlatoon() + { + return thePlatoon; + } + + public void setTheColumn(Long theColumn) + { + this.theColumn = theColumn; + } + + public Long getTheColumn() + { + return theColumn; + } + + public void setTheFloor(Long theFloor) + { + this.theFloor = theFloor; + } + + public Long getTheFloor() + { + return theFloor; + } + + public void setTrayCode(String trayCode) + { + this.trayCode = trayCode; + } + + public String getTrayCode() + { + return trayCode; + } + + public void setModel(String model) + { + this.model = model; + } + + public String getModel() + { + return model; + } + + public void setDeptName(String deptName) + { + this.deptName = deptName; + } + + public String getDeptName() + { + return deptName; + } + + public void setInDate(String inDate) + { + this.inDate = inDate; + } + + public String getInDate() + { + return inDate; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("warehouseId", getWarehouseId()) + .append("warehouseName", getWarehouseName()) + .append("cargoSpaceId", getCargoSpaceId()) + .append("cargoSpaceName", getCargoSpaceName()) + .append("roadwayId", getRoadwayId()) + .append("thePlatoon", getThePlatoon()) + .append("theColumn", getTheColumn()) + .append("theFloor", getTheFloor()) + .append("trayCode", getTrayCode()) + .append("model", getModel()) + .append("deptName", getDeptName()) + .append("inDate", getInDate()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/mapper/ViewTraycodeStaticMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/mapper/ViewTraycodeStaticMapper.java new file mode 100644 index 0000000..eedb6c7 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/mapper/ViewTraycodeStaticMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.search.traycodeStatic.mapper; + +import java.util.List; +import com.ruoyi.search.traycodeStatic.domain.ViewTraycodeStatic; + +/** + * 托盘统计Mapper接口 + * + * @author ruoyi + * @date 2026-01-23 + */ +public interface ViewTraycodeStaticMapper +{ + /** + * 查询托盘统计 + * + * @param warehouseId 托盘统计主键 + * @return 托盘统计 + */ + public ViewTraycodeStatic selectViewTraycodeStaticByWarehouseId(String warehouseId); + + /** + * 查询托盘统计列表 + * + * @param viewTraycodeStatic 托盘统计 + * @return 托盘统计集合 + */ + public List selectViewTraycodeStaticList(ViewTraycodeStatic viewTraycodeStatic); + + /** + * 新增托盘统计 + * + * @param viewTraycodeStatic 托盘统计 + * @return 结果 + */ + public int insertViewTraycodeStatic(ViewTraycodeStatic viewTraycodeStatic); + + /** + * 修改托盘统计 + * + * @param viewTraycodeStatic 托盘统计 + * @return 结果 + */ + public int updateViewTraycodeStatic(ViewTraycodeStatic viewTraycodeStatic); + + /** + * 删除托盘统计 + * + * @param warehouseId 托盘统计主键 + * @return 结果 + */ + public int deleteViewTraycodeStaticByWarehouseId(String warehouseId); + + /** + * 批量删除托盘统计 + * + * @param warehouseIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteViewTraycodeStaticByWarehouseIds(String[] warehouseIds); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/IViewTraycodeStaticService.java b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/IViewTraycodeStaticService.java new file mode 100644 index 0000000..54c2027 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/IViewTraycodeStaticService.java @@ -0,0 +1,61 @@ +package com.ruoyi.search.traycodeStatic.service; + +import java.util.List; +import com.ruoyi.search.traycodeStatic.domain.ViewTraycodeStatic; + +/** + * 托盘统计Service接口 + * + * @author ruoyi + * @date 2026-01-23 + */ +public interface IViewTraycodeStaticService +{ + /** + * 查询托盘统计 + * + * @param warehouseId 托盘统计主键 + * @return 托盘统计 + */ + public ViewTraycodeStatic selectViewTraycodeStaticByWarehouseId(String warehouseId); + + /** + * 查询托盘统计列表 + * + * @param viewTraycodeStatic 托盘统计 + * @return 托盘统计集合 + */ + public List selectViewTraycodeStaticList(ViewTraycodeStatic viewTraycodeStatic); + + /** + * 新增托盘统计 + * + * @param viewTraycodeStatic 托盘统计 + * @return 结果 + */ + public int insertViewTraycodeStatic(ViewTraycodeStatic viewTraycodeStatic); + + /** + * 修改托盘统计 + * + * @param viewTraycodeStatic 托盘统计 + * @return 结果 + */ + public int updateViewTraycodeStatic(ViewTraycodeStatic viewTraycodeStatic); + + /** + * 批量删除托盘统计 + * + * @param warehouseIds 需要删除的托盘统计主键集合 + * @return 结果 + */ + public int deleteViewTraycodeStaticByWarehouseIds(String[] warehouseIds); + + /** + * 删除托盘统计信息 + * + * @param warehouseId 托盘统计主键 + * @return 结果 + */ + public int deleteViewTraycodeStaticByWarehouseId(String warehouseId); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/impl/ViewTraycodeStaticServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/impl/ViewTraycodeStaticServiceImpl.java new file mode 100644 index 0000000..f2d9ae6 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/traycodeStatic/service/impl/ViewTraycodeStaticServiceImpl.java @@ -0,0 +1,130 @@ +package com.ruoyi.search.traycodeStatic.service.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import cn.hutool.core.collection.CollUtil; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.search.traycodeStatic.mapper.ViewTraycodeStaticMapper; +import com.ruoyi.search.traycodeStatic.domain.ViewTraycodeStatic; +import com.ruoyi.search.traycodeStatic.service.IViewTraycodeStaticService; + +/** + * 托盘统计Service业务层处理 + * + * @author ruoyi + * @date 2026-01-23 + */ +@Service +public class ViewTraycodeStaticServiceImpl implements IViewTraycodeStaticService +{ + @Autowired + private ViewTraycodeStaticMapper viewTraycodeStaticMapper; + + /** + * 查询托盘统计 + * + * @param warehouseId 托盘统计主键 + * @return 托盘统计 + */ + @Override + public ViewTraycodeStatic selectViewTraycodeStaticByWarehouseId(String warehouseId) + { + return viewTraycodeStaticMapper.selectViewTraycodeStaticByWarehouseId(warehouseId); + } + + /** + * 查询托盘统计列表 + * + * @param viewTraycodeStatic 托盘统计 + * @return 托盘统计 + */ + @Override + public List selectViewTraycodeStaticList(ViewTraycodeStatic viewTraycodeStatic) + { + if (!"admin".equals(SecurityUtils.getUsername())){ + List roles = SecurityUtils.getLoginUser().getUser().getRoles(); + if (CollUtil.isEmpty(roles)) { + //如果未设置角色 ,直接返回空列表 + return new ArrayList<>(); + } + Optional first = roles.stream().filter(x -> "role1".equals(x.getRoleKey())).findFirst(); + if (first.isPresent()){ + //二联合普通人员 + viewTraycodeStatic.setWarehouseId("02"); + viewTraycodeStatic.setModel(SecurityUtils.getDeptId().toString()); + + } + Optional first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); + if (first1.isPresent()){ + //三联合普通人员 + viewTraycodeStatic.setWarehouseId("01"); + viewTraycodeStatic.setModel(SecurityUtils.getDeptId().toString()); + + } + Optional first2 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); + if (first2.isPresent()){ + //二联合管理员 + viewTraycodeStatic.setWarehouseId("02"); + } + Optional first3 = roles.stream().filter(x -> "role4".equals(x.getRoleKey())).findFirst(); + if (first3.isPresent()){ + //三联合管理员 + viewTraycodeStatic.setWarehouseId("01"); + } + } + return viewTraycodeStaticMapper.selectViewTraycodeStaticList(viewTraycodeStatic); + } + + /** + * 新增托盘统计 + * + * @param viewTraycodeStatic 托盘统计 + * @return 结果 + */ + @Override + public int insertViewTraycodeStatic(ViewTraycodeStatic viewTraycodeStatic) + { + return viewTraycodeStaticMapper.insertViewTraycodeStatic(viewTraycodeStatic); + } + + /** + * 修改托盘统计 + * + * @param viewTraycodeStatic 托盘统计 + * @return 结果 + */ + @Override + public int updateViewTraycodeStatic(ViewTraycodeStatic viewTraycodeStatic) + { + return viewTraycodeStaticMapper.updateViewTraycodeStatic(viewTraycodeStatic); + } + + /** + * 批量删除托盘统计 + * + * @param warehouseIds 需要删除的托盘统计主键 + * @return 结果 + */ + @Override + public int deleteViewTraycodeStaticByWarehouseIds(String[] warehouseIds) + { + return viewTraycodeStaticMapper.deleteViewTraycodeStaticByWarehouseIds(warehouseIds); + } + + /** + * 删除托盘统计信息 + * + * @param warehouseId 托盘统计主键 + * @return 结果 + */ + @Override + public int deleteViewTraycodeStaticByWarehouseId(String warehouseId) + { + return viewTraycodeStaticMapper.deleteViewTraycodeStaticByWarehouseId(warehouseId); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStockSummary.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStockSummary.java index c5a28d8..4d7666c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStockSummary.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStockSummary.java @@ -20,4 +20,5 @@ public class BasStockSummary { private String theFloor; private String theType; private String theTypeName; + private String issDouble; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java index 47fa736..59a1219 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java @@ -73,4 +73,6 @@ public interface BasStockMapper List selectBasStockSummary(BasStock basStock); int updateBasStockDept(BasStock basStock); + + int selectCountByTrayCodeAndWarehouseId(String trayCode, String warehouseId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java index 240a124..884c5e3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java @@ -1,14 +1,17 @@ package com.ruoyi.stock.stock.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; -import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.in.stockindetail.domain.InStockinDetail; +import com.ruoyi.in.stockindetail.service.IInStockinDetailService; import com.ruoyi.stock.freeze.domain.BasStockFreezeRecord; import com.ruoyi.stock.freeze.service.IBasStockFreezeRecordService; import com.ruoyi.stock.maintain.domain.BasStockMaintainRecord; @@ -21,6 +24,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -45,6 +49,8 @@ public class BasStockServiceImpl implements IBasStockService private IBasCargoSpaceService basCargoSpaceService; @Autowired private IBasJobIdService basJobIdService; + @Autowired + private IInStockinDetailService stockinDetailService; /** * 查询库存信息 @@ -91,6 +97,7 @@ public class BasStockServiceImpl implements IBasStockService * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult insertBasStock(BasStock basStock) { if (!"admin".equals(SecurityUtils.getUsername())) { @@ -110,7 +117,33 @@ public class BasStockServiceImpl implements IBasStockService basStock.setModel(SecurityUtils.getDeptId().toString()); basStock.setProductStatus("1"); basStock.setInDate(DateUtil.formatDateTime(new Date())); - int i =basStockMapper.insertBasStock(basStock); + if (StrUtil.isNotEmpty(basStock.getStockinDetailId())) { + InStockinDetail inStockinDetail = stockinDetailService.selectInStockinDetailByStockinDetailId(basStock.getStockinDetailId()); + if (inStockinDetail != null) { + BigDecimal scanNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); + BigDecimal assignNum = Convert.toBigDecimal(inStockinDetail.getAssignNum()); + inStockinDetail.setScanNum(Convert.toStr(scanNum.add(Convert.toBigDecimal(basStock.getQuantity())))); + inStockinDetail.setAssignNum(Convert.toStr(assignNum.add(Convert.toBigDecimal(basStock.getQuantity())))); + stockinDetailService.updateInStockinDetail(inStockinDetail); + } + } + BasStock param = new BasStock(); + param.setWarehouseId(basStock.getWarehouseId()); + param.setTrayCode(basStock.getTrayCode()); + param.setProductId(basStock.getProductId()); + param.setOrderId(basStock.getOrderId()); + param.setPower(basStock.getPower()); + param.setDistribution(basStock.getDistribution()); + param.setSpare5(basStock.getSpare5()); + List basStocks = basStockMapper.selectBasStockList(param); + int i = 0; + if (CollUtil.isNotEmpty(basStocks)) { + BasStock oldStock = basStocks.get(0); + oldStock.setQuantity(Convert.toBigDecimal(oldStock.getQuantity()).add(Convert.toBigDecimal(basStock.getQuantity())).toString()); + i = basStockMapper.updateBasStock(oldStock); + } else { + i = basStockMapper.insertBasStock(basStock); + } if (i > 0){ return AjaxResult.success(); }else { @@ -202,6 +235,22 @@ public class BasStockServiceImpl implements IBasStockService BasStock oldBasStock = basStockMapper.selectBasStockByStockId(basStock.getStockId()); insertMaintainRecord(oldBasStock,basStock,"2"); insertFreezeRecord(oldBasStock,basStock); + String stockinDetailId = oldBasStock.getStockinDetailId(); + if (StrUtil.isNotEmpty(stockinDetailId)){ + InStockinDetail inStockinDetail = stockinDetailService.selectInStockinDetailByStockinDetailId(basStock.getStockinDetailId()); + if (inStockinDetail != null){ + BigDecimal scanNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); + BigDecimal assignNum = Convert.toBigDecimal(inStockinDetail.getAssignNum()); + BigDecimal oldQuantity = Convert.toBigDecimal(oldBasStock.getQuantity()); + BigDecimal newQuantity = Convert.toBigDecimal(basStock.getQuantity()); + BigDecimal subtract = newQuantity.subtract(oldQuantity); + BigDecimal newAssignNum = assignNum.subtract(subtract); + BigDecimal newScanNum = scanNum.subtract(subtract); + inStockinDetail.setScanNum(newScanNum.toString()); + inStockinDetail.setAssignNum(newAssignNum.toString()); + stockinDetailService.updateInStockinDetail(inStockinDetail); + } + } int i = basStockMapper.updateBasStock(basStock); if (i > 0){ return AjaxResult.success(); @@ -257,15 +306,33 @@ public class BasStockServiceImpl implements IBasStockService } } + String warehouseId = ""; + String trayCode = ""; for (String stockId : stockIds) { BasStock oldBasStock = basStockMapper.selectBasStockByStockId(stockId); insertMaintainRecord(oldBasStock,oldBasStock,"3"); + basStockMapper.deleteBasStockByStockId(stockId); + warehouseId = oldBasStock.getWarehouseId(); + trayCode = oldBasStock.getTrayCode(); + //判断是否是最后一件货物 + int count = basStockMapper.selectCountByTrayCodeAndWarehouseId(trayCode, warehouseId); + if (count == 0){ + BasStock ktpStock = new BasStock(); + ktpStock.setStockId(basJobIdService.getJobId("KC")); + ktpStock.setCargoSpaceId(oldBasStock.getCargoSpaceId()); + ktpStock.setStockStatus("1"); + ktpStock.setProductStatus("1"); + ktpStock.setProductGuid("KTP0001"); + ktpStock.setQuantity("1"); + ktpStock.setTrayCode(oldBasStock.getTrayCode()); + ktpStock.setOutQuantity("0"); + ktpStock.setWarehouseId(oldBasStock.getWarehouseId()); + ktpStock.setProductId("KTP0001"); + ktpStock.setModel(oldBasStock.getModel()); + basStockMapper.insertBasStock(ktpStock); + } } - int i = basStockMapper.deleteBasStockByStockIds(stockIds); - if (i > 0){ - return AjaxResult.success(); - } - return AjaxResult.error(); + return AjaxResult.success(); } /** diff --git a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml index defdbd9..16b96d2 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml @@ -184,7 +184,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and locked = 'N' and warehouse_id = #{warehouseId} and roadway_id = #{roadwayId} - and cargo_hight = #{cargoHight} + and cargo_hight = #{cargoHight}" and the_platoon = #{thePlatoon} and the_floor < #{theFloor} and the_floor >= #{theFloor} diff --git a/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml index 57deda7..d34b0c3 100644 --- a/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/in/InStockinDetailMapper.xml @@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select isd.stockin_detail_id, isd.stockin_guid, isd.stockin_id, isd.lot_no, isd.product_guid, - isd.product_id, isd.quantity, isd.quantity_x, isd.quantity_j, isd.price, bp.cargo_no, isd.remark, + isd.product_id, isd.quantity, (CAST(isd.quantity AS INT) - CAST(isd.scan_num AS INT)) as quantity_x, isd.quantity_j, isd.price, bp.cargo_no, isd.remark, isd.assign_num, isd.assign_num_x, isd.assign_num_j, isd.print_date, isd.stock_status, isd.supplier_id, isd.customer_id, bp.unit, bp.spec, isd.spare1, isd.spare2, isd.spare3, isd.spare4, isd.spare5, isd.spare6, isd.scan_num, isd.scan_num_x, isd.scan_num_j, @@ -94,8 +94,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and isd.spare2 = #{spare2} and isd.spare3 = #{spare3} and isd.spare4 = #{spare4} - and isd.spare5 = #{spare5} - and isd.spare6 = #{spare6} + and isd.spare5 like concat('%',#{spare5},'%') + and isd.spare6 like concat('%',#{spare6},'%') + and isd.spare7 like concat('%',#{spare7},'%') + and isd.spare9 like concat('%',#{spare9},'%') and isd.scan_num = #{scanNum} and isd.scan_num_x = #{scanNumX} and isd.scan_num_j = #{scanNumJ} diff --git a/ruoyi-admin/src/main/resources/mapper/job/MydoJobFinishMapper.xml b/ruoyi-admin/src/main/resources/mapper/job/MydoJobFinishMapper.xml index 382c9bf..a387df3 100644 --- a/ruoyi-admin/src/main/resources/mapper/job/MydoJobFinishMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/job/MydoJobFinishMapper.xml @@ -142,6 +142,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and mj.create_time >= #{dateStart} and mj.create_time <= #{dateEnd} + + and bs.warehouse_id in + + #{it} + + ${params.warehouseDataScope} diff --git a/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml index 2a7bede..d49b5de 100644 --- a/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml @@ -48,6 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -56,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" the_column, the_floor, the_type, - the_type_name from view_hand_allot_stock vhat + the_type_name,dept_name from view_hand_allot_stock vhat + + + and warehouse_id = #{warehouseId} + and warehouse_name like concat('%', #{warehouseName}, '%') + and cargo_space_id = #{cargoSpaceId} + and cargo_space_name like concat('%', #{cargoSpaceName}, '%') + and roadway_id = #{roadwayId} + and the_platoon = #{thePlatoon} + and the_column = #{theColumn} + and the_floor = #{theFloor} + and tray_code = #{trayCode} + and model = #{model} + and dept_name like concat('%', #{deptName}, '%') + and in_date = #{inDate} + + + + + + + insert into view_traycode_static + + warehouse_id, + warehouse_name, + cargo_space_id, + cargo_space_name, + roadway_id, + the_platoon, + the_column, + the_floor, + tray_code, + model, + dept_name, + in_date, + + + #{warehouseId}, + #{warehouseName}, + #{cargoSpaceId}, + #{cargoSpaceName}, + #{roadwayId}, + #{thePlatoon}, + #{theColumn}, + #{theFloor}, + #{trayCode}, + #{model}, + #{deptName}, + #{inDate}, + + + + + update view_traycode_static + + warehouse_name = #{warehouseName}, + cargo_space_id = #{cargoSpaceId}, + cargo_space_name = #{cargoSpaceName}, + roadway_id = #{roadwayId}, + the_platoon = #{thePlatoon}, + the_column = #{theColumn}, + the_floor = #{theFloor}, + tray_code = #{trayCode}, + model = #{model}, + dept_name = #{deptName}, + in_date = #{inDate}, + + where warehouse_id = #{warehouseId} + + + + delete from view_traycode_static where warehouse_id = #{warehouseId} + + + + delete from view_traycode_static where warehouse_id in + + #{warehouseId} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml index 68ec96d..e879a12 100644 --- a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml @@ -349,6 +349,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from bas_stock bs left join bas_cargo_space bcs on bs.cargo_space_id = bcs.cargo_space_id and bs.tray_code = bcs.tray_code left join bas_warehouse bw on bcs.warehouse_id = bw.warehouse_id + left join bas_product bp on bs.product_id = bp.product_id WHERE bcs.status = '2' and (bs.model = #{model} or bs.model is null or bs.model = '') @@ -381,7 +382,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bs.power like concat('%',#{power},'%') - and bs.product_name like concat('%',#{productName},'%') + and bp.product_name like concat('%',#{productName},'%') and bs.warehouse_id in @@ -392,4 +393,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + diff --git a/ruoyi-ui/src/api/search/traycodeStatic.js b/ruoyi-ui/src/api/search/traycodeStatic.js new file mode 100644 index 0000000..c44adb7 --- /dev/null +++ b/ruoyi-ui/src/api/search/traycodeStatic.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询托盘统计列表 +export function listTraycodeStatic(query) { + return request({ + url: '/search/traycodeStatic/list', + method: 'get', + params: query + }) +} + +// 查询托盘统计详细 +export function getTraycodeStatic(warehouseId) { + return request({ + url: '/search/traycodeStatic/' + warehouseId, + method: 'get' + }) +} + +// 新增托盘统计 +export function addTraycodeStatic(data) { + return request({ + url: '/search/traycodeStatic', + method: 'post', + data: data + }) +} + +// 修改托盘统计 +export function updateTraycodeStatic(data) { + return request({ + url: '/search/traycodeStatic', + method: 'put', + data: data + }) +} + +// 删除托盘统计 +export function delTraycodeStatic(warehouseId) { + return request({ + url: '/search/traycodeStatic/' + warehouseId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/in/job/index.vue b/ruoyi-ui/src/views/in/job/index.vue index fbbfa81..f514cfe 100644 --- a/ruoyi-ui/src/views/in/job/index.vue +++ b/ruoyi-ui/src/views/in/job/index.vue @@ -108,7 +108,7 @@ - + @@ -118,6 +118,7 @@ + diff --git a/ruoyi-ui/src/views/job/outJobManagement.vue b/ruoyi-ui/src/views/job/outJobManagement.vue index 9b8cd49..01919e5 100644 --- a/ruoyi-ui/src/views/job/outJobManagement.vue +++ b/ruoyi-ui/src/views/job/outJobManagement.vue @@ -127,7 +127,7 @@ --> - + @@ -136,14 +136,14 @@ - + - - - - - + + + @@ -151,6 +151,7 @@ + diff --git a/ruoyi-ui/src/views/out/outStockoutManage.vue b/ruoyi-ui/src/views/out/outStockoutManage.vue index e25932f..c24604c 100644 --- a/ruoyi-ui/src/views/out/outStockoutManage.vue +++ b/ruoyi-ui/src/views/out/outStockoutManage.vue @@ -124,7 +124,7 @@ - + - - - + + + + + + + +