From 7638eedd1bd500eb1f81addb97769c4dace4492a Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Thu, 19 Mar 2026 08:46:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9..................?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ruoyi/MyStartupRunner.java | 14 ++ .../service/impl/BasWarehouseServiceImpl.java | 24 +++ .../controller/OutMydoJobController.java | 2 +- .../service/impl/MydoJobServiceImpl.java | 12 +- .../domain/ViewHandAllotStock.java | 11 ++ .../ViewInJobFlow/domain/ViewInJobFlow.java | 23 ++- .../domain/ViewStockDetail.java | 1 + .../stock/controller/BasStockController.java | 2 +- .../ruoyi/stock/stock/domain/BasStock.java | 2 + .../stock/stock/domain/BasStockSummary.java | 1 + .../stock/stock/service/IBasStockService.java | 2 +- .../service/impl/BasStockServiceImpl.java | 43 ++++- .../src/main/resources/application.yml | 2 +- .../mapper/out/ViewHandAllotStockMapper.xml | 6 + .../mapper/search/ViewInJobFlowMapper.xml | 8 +- .../mapper/search/ViewStockDetailMapper.xml | 5 + .../resources/mapper/stock/BasStockMapper.xml | 4 + ruoyi-ui/src/views/in/job/index.vue | 153 ++++++++++++------ ruoyi-ui/src/views/job/outJobManagement.vue | 2 +- ruoyi-ui/src/views/kpi/spacePlan/index.vue | 51 +++--- .../src/views/search/ViewInJobFlow/index.vue | 2 + .../views/search/ViewStockDetail/index.vue | 19 ++- ruoyi-ui/src/views/stock/management/index.vue | 10 +- ruoyi-ui/src/views/stock/pointOut.vue | 96 ++++++++--- 24 files changed, 379 insertions(+), 116 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java b/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java new file mode 100644 index 0000000..ddff0fc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/MyStartupRunner.java @@ -0,0 +1,14 @@ +package com.ruoyi; + +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +@Component +public class MyStartupRunner implements CommandLineRunner { + + @Override + public void run(String... args) throws Exception { + // 这里编写项目启动后要执行的方法逻辑 + System.out.println("项目启动成功后自动执行此方法"); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java index 1cfdb49..448dbec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/warehouse/service/impl/BasWarehouseServiceImpl.java @@ -1,15 +1,21 @@ package com.ruoyi.bas.warehouse.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import com.ruoyi.bas.warehouse.domain.BasWarehouse; import com.ruoyi.bas.warehouse.mapper.BasWarehouseMapper; import com.ruoyi.bas.warehouse.service.IBasWarehouseService; import com.ruoyi.common.annotation.DataScope; +import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.service.ISysRoleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** * 仓库管理Service业务层处理 @@ -47,6 +53,24 @@ public class BasWarehouseServiceImpl implements IBasWarehouseService //@DataScope public List selectBasWarehouseList(BasWarehouse basWarehouse) { + if (!"admin".equals(SecurityUtils.getUsername())){ + LoginUser loginUser = SecurityUtils.getLoginUser(); + List roles = loginUser.getUser().getRoles(); + if (CollUtil.isEmpty(roles)) { + //如果未设置角色 ,直接返回空列表 + return new ArrayList<>(); + } + Optional role1 = roles.stream().filter(x -> "role1".equals(x.getRoleKey())).findFirst(); + Optional role2 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); + Optional role3 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); + Optional role4 = roles.stream().filter(x -> "role4".equals(x.getRoleKey())).findFirst(); + if (role1.isPresent()||role3.isPresent()){ + basWarehouse.setWarehouseId("02"); + } + if (role2.isPresent()||role4.isPresent()){ + basWarehouse.setWarehouseId("01"); + } + } return basWarehouseMapper.selectBasWarehouseList(basWarehouse); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/controller/OutMydoJobController.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/controller/OutMydoJobController.java index 146b26a..192dcc7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/controller/OutMydoJobController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/controller/OutMydoJobController.java @@ -64,7 +64,7 @@ public class OutMydoJobController extends BaseController { return mydoJobService.OuthandInvalidation(jobIds); } - @PreAuthorize("@ss.hasPermi('job:outmydoJob:pointOut')") + @PreAuthorize("@ss.hasAnyPermi('job:outmydoJob:pointOut,job:outmydoJob:pointOut1,job:outmydoJob:pointOut2')") @Log(title = "指定货位出库", businessType = BusinessType.INSERT) @RequestMapping("/pointOut") public AjaxResult pointOut(@RequestParam("stockIds")String[] stockIds,@RequestParam("exitId")String exitId,@RequestParam("type")String type) 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 450324f..6a04e6b 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 @@ -261,11 +261,13 @@ public class MydoJobServiceImpl implements IMydoJobService { for (MydoJobDetail mydoJobDetail : mydoJobDetails) { String inOrOutDId = mydoJobDetail.getInOrOutDId(); InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByStockinDetailId(inOrOutDId); - BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); - BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity()); - BigDecimal subtract = stockInNum.subtract(jobInNum); - inStockinDetail.setScanNum(Convert.toStr(subtract)); - inStockinDetailService.updateInStockinDetail(inStockinDetail); + if(inStockinDetail != null){ + BigDecimal stockInNum = Convert.toBigDecimal(inStockinDetail.getScanNum()); + BigDecimal jobInNum = Convert.toBigDecimal(mydoJobDetail.getInQuantity()); + BigDecimal subtract = stockInNum.subtract(jobInNum); + inStockinDetail.setScanNum(Convert.toStr(subtract)); + inStockinDetailService.updateInStockinDetail(inStockinDetail); + } } //修改货位状态 if (StrUtil.isNotEmpty(mydoJob.getCargoSpaceId())) { 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 655131e..23e9817 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 @@ -1,6 +1,8 @@ package com.ruoyi.out.handAllotStock.domain; import java.math.BigDecimal; +import java.util.List; + import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; @@ -173,6 +175,15 @@ public class ViewHandAllotStock extends BaseEntity private String theTypeName; private String deptName; + private List trayCodeList; + + public List getTrayCodeList() { + return trayCodeList; + } + + public void setTrayCodeList(List trayCodeList) { + this.trayCodeList = trayCodeList; + } public String getDeptName() { return deptName; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/domain/ViewInJobFlow.java b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/domain/ViewInJobFlow.java index 5ff3c55..9c6b1f2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/domain/ViewInJobFlow.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewInJobFlow/domain/ViewInJobFlow.java @@ -68,8 +68,12 @@ public class ViewInJobFlow extends BaseEntity /** 托盘条码 */ @Excel(name = "托盘条码") private String trayCode; - @Excel(name = "货位") + @Excel(name = "部门") + private String deptName; +// @Excel(name = "货位") private String cargoSpaceId; + @Excel(name = "货位名称") + private String cargoSpaceName; /** 物料编码 */ @Excel(name = "物料编码") @@ -179,6 +183,23 @@ public class ViewInJobFlow extends BaseEntity private String dateStart; private String dateEnd; + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getCargoSpaceName() { + return cargoSpaceName; + } + + public void setCargoSpaceName(String cargoSpaceName) { + this.cargoSpaceName = cargoSpaceName; + } + public String getCargoSpaceId() { return cargoSpaceId; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/domain/ViewStockDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/domain/ViewStockDetail.java index 7a110f8..db2eb2e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/domain/ViewStockDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/search/ViewStockDetail/domain/ViewStockDetail.java @@ -148,6 +148,7 @@ public class ViewStockDetail extends BaseEntity private String outside; private String spare4; private String model; + private String deptName; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/controller/BasStockController.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/controller/BasStockController.java index 6ae61be..8623b14 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/controller/BasStockController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/controller/BasStockController.java @@ -105,7 +105,7 @@ public class BasStockController extends BaseController @PutMapping("/updateStockDept") public AjaxResult updateBasStockDept(@RequestBody BasStock basStock) { - return toAjax(basStockService.updateBasStockDept(basStock)); + return basStockService.updateBasStockDept(basStock); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStock.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStock.java index d37748a..15a4f36 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStock.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/domain/BasStock.java @@ -217,6 +217,8 @@ public class BasStock extends BaseEntity { private String cargoNo; @Excel(name = "备注",sort=31) private String remark; + @Excel(name = "部门",sort=32) + private String deptName; private List warehouseIdList; } 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 4d7666c..0e6630c 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 @@ -21,4 +21,5 @@ public class BasStockSummary { private String theType; private String theTypeName; private String issDouble; + private String deptName; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java index bd72495..30de663 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java @@ -85,5 +85,5 @@ public interface IBasStockService List selectBasStockSummary(BasStock basStock); - int updateBasStockDept(BasStock basStock); + AjaxResult updateBasStockDept(BasStock basStock); } 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 5f784e7..d6793f3 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 @@ -9,6 +9,7 @@ import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.bas.cargoSpace.service.IBasCargoSpaceService; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysRole; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.service.IInStockinService; @@ -404,14 +405,14 @@ public class BasStockServiceImpl implements IBasStockService Optional first = roles.stream().filter(x -> "role1".equals(x.getRoleKey())).findFirst(); if (first.isPresent()){ //二联合普通人员 - basStock.setModel(SecurityUtils.getDeptId().toString()); + //basStock.setModel(SecurityUtils.getDeptId().toString()); warehouseIdList.add("02"); warehouseIdList.add("03"); } Optional first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); if (first1.isPresent()){ //三联合普通人员 - basStock.setModel(SecurityUtils.getDeptId().toString()); + //basStock.setModel(SecurityUtils.getDeptId().toString()); warehouseIdList.add("01"); } Optional first2 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); @@ -431,8 +432,42 @@ public class BasStockServiceImpl implements IBasStockService } @Override - public int updateBasStockDept(BasStock basStock) { - return basStockMapper.updateBasStockDept(basStock); + public AjaxResult updateBasStockDept(BasStock basStock) { + if (!"admin".equals(SecurityUtils.getUsername())) { + SysUser user = SecurityUtils.getLoginUser().getUser(); + List roles = user.getRoles(); + if (CollUtil.isEmpty(roles)) { + return AjaxResult.warn("未设置角色"); + } + Optional role3 = roles.stream().filter(x -> "role3".equals(x.getRoleKey())).findFirst(); + Optional role4 = roles.stream().filter(x -> "role4".equals(x.getRoleKey())).findFirst(); + if (role3.isPresent() || role4.isPresent()) { + //仓库管理员 + return AjaxResult.success(basStockMapper.updateBasStockDept(basStock)); + } + Optional role1 = roles.stream().filter(x -> "role1".equals(x.getRoleKey())).findFirst(); + Optional role2 = roles.stream().filter(x -> "role2".equals(x.getRoleKey())).findFirst(); + if (role1.isPresent() || role2.isPresent()) { + //判断是不是自己名下托盘 + BasStock basStockParam = new BasStock(); + basStockParam.setWarehouseId(basStock.getWarehouseId()); + basStockParam.setTrayCode(basStock.getTrayCode()); + List basStockSummaries = basStockMapper.selectBasStockSummary(basStockParam); + if (CollUtil.isEmpty(basStockSummaries)) { + return AjaxResult.warn("非本部门托盘,无法操作"); + } else { + BasStockSummary basStockSummary = basStockSummaries.get(0); + String model = basStockSummary.getModel(); + if (!model.equals(SecurityUtils.getDeptId().toString())) { + return AjaxResult.warn("非本部门托盘,无法操作"); + } + return AjaxResult.success(basStockMapper.updateBasStockDept(basStock)); + } + } + throw new RuntimeException("当前角色暂无操作功能"); + } else { + return AjaxResult.success(basStockMapper.updateBasStockDept(basStock)); + } } /** diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index f43fc25..fc97c91 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -34,7 +34,7 @@ server: # 日志配置 logging: level: - com.ruoyi: debug + com.ruoyi: error org.springframework: warn # 用户配置 diff --git a/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml index d49b5de..d65f428 100644 --- a/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/out/ViewHandAllotStockMapper.xml @@ -105,6 +105,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and the_platoon = #{thePlatoon} and the_column = #{theColumn} and the_floor = #{theFloor} + + AND tray_code IN + + #{trayCode} + + ${params.warehouseDataScope} diff --git a/ruoyi-admin/src/main/resources/mapper/search/ViewInJobFlowMapper.xml b/ruoyi-admin/src/main/resources/mapper/search/ViewInJobFlowMapper.xml index eade581..c0d3f16 100644 --- a/ruoyi-admin/src/main/resources/mapper/search/ViewInJobFlowMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/search/ViewInJobFlowMapper.xml @@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -47,10 +48,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select job_detail_id, job_id, task_no, status, in_or_out, tray_code,cargo_space_id, create_time, start_time, finish_time, entrance_id, warehouse_id, product_id, product_name, parent_id, price, cargo_no, unit, spec, remark, productType, systemItem, productCtm, productCtu, upperNum, limitNum, enableFlag, quantity, lot_no, in_or_out_id, in_or_out_d_id, priceTotal, origin, turnovertype, account, purpose, units, contract, cases, quality, managementNo,department_id from view_in_job_flow vijf + select job_detail_id, job_id, task_no, status, in_or_out, tray_code,cargo_space_id,cargo_space_name, create_time, start_time, finish_time, entrance_id, warehouse_id, product_id, product_name, parent_id, price, cargo_no, unit, spec, remark, productType, systemItem, productCtm, productCtu, upperNum, limitNum, enableFlag, quantity, lot_no, in_or_out_id, in_or_out_d_id, priceTotal, origin, turnovertype, account, purpose, units, contract, cases, quality, managementNo,department_id,dept_name from view_in_job_flow vijf @@ -89,6 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and bs.stock_id = #{stockId} and (bs.model = #{model} or bs.model is null or bs.model = '') + and sd.dept_name =#{deptName} and bs.cargo_space_id = #{cargoSpaceId} and bs.stock_status = #{stockStatus} and bs.lot_no = #{lotNo} diff --git a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml index 0e9a27f..bb53483 100644 --- a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml @@ -351,10 +351,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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 + left join sys_dept sd on bs.model = sd.dept_id WHERE bcs.status = '2' and (bs.model = #{model} or bs.model is null or bs.model = '') + + and sd.dept_name = #{deptName} + and bs.warehouse_id = #{warehouseId} diff --git a/ruoyi-ui/src/views/in/job/index.vue b/ruoyi-ui/src/views/in/job/index.vue index f514cfe..096a4c5 100644 --- a/ruoyi-ui/src/views/in/job/index.vue +++ b/ruoyi-ui/src/views/in/job/index.vue @@ -44,21 +44,6 @@ placeholder="请选择结束日期"> - - - - - - - - - - - - - - - 搜索 重置 @@ -96,6 +81,16 @@ @click="openEditTrayDialog" >修改托盘码 + + 修改部门 + @@ -141,35 +136,6 @@ - - - - - - @@ -207,6 +173,28 @@ + + + + + + + + + + + + + + @@ -218,7 +206,7 @@ import {listWarehouse} from "@/api/bas/warehouse"; export default { name: "MydoJob", - dicts: ['execution_phase_type', 'in_job_type', 'on_line_type', 'mydo_job_status','product_type','origin_type','account_type','turnover_type','purpose_type','quality_type'], + dicts: ['execution_phase_type', 'in_job_type', 'on_line_type', 'mydo_job_status','product_type','origin_type','account_type','turnover_type','purpose_type','quality_type','sl_dept','el_dept'], data() { return { // 遮罩层 @@ -295,6 +283,15 @@ export default { { required: true, message: "托盘码不能为空", trigger: "blur" } ] }, + // 部门修改弹窗 + deptOpen: false, + deptTitle: "", + deptForm: {}, + deptRules: { + departmentId: [ + { required: true, message: "部门不能为空", trigger: "change" } + ] + }, } }, created() { @@ -312,6 +309,16 @@ export default { } }); }, + getDeptDictOptions(row) { + const wid = String(row && row.warehouseId != null ? row.warehouseId : "").padStart(2, "0") + if (wid === "01" ) { + return this.dict.type.sl_dept || [] + } + if (wid === "02" || wid === "03") { + return this.dict.type.el_dept || [] + } + return this.dict.type.sl_dept || [] + }, /** 查询任务表列表 */ getList() { this.loading = true @@ -466,6 +473,62 @@ export default { ...this.queryParams }, `mydoJob_${new Date().getTime()}.xlsx`) }, + openEditDeptDialog() { + if (this.ids.length === 0) { + this.$modal.msgError("请选择要修改的任务"); + return; + } + if (this.ids.length > 1) { + this.$modal.msgError("一次只能修改一条任务"); + return; + } + const jobId = this.ids[0]; + const row = this.mydoJobList.find(item => item.jobId === jobId); + if (!row) { + this.$modal.msgError("未找到选中任务数据"); + return; + } + if (row.status !== '1') { + this.$modal.msgError("只能修改未执行的任务"); + return; + } + this.deptForm = { + jobId: row.jobId, + departmentId: row.departmentId, + warehouseId: row.warehouseId + }; + this.deptTitle = "修改任务部门"; + this.deptOpen = true; + }, + cancelDept() { + this.deptOpen = false; + this.resetDeptForm(); + }, + resetDeptForm() { + this.deptForm = { + jobId: null, + departmentId: null, + warehouseId: null + }; + this.resetForm("deptForm"); + }, + submitDeptForm() { + this.$refs["deptForm"].validate(valid => { + if (!valid) { + return; + } + const row = this.mydoJobList.find(item => item.jobId === this.deptForm.jobId); + // 构造更新对象,只包含需要更新的字段和主键,或者根据后端要求传全量 + // 这里为了安全起见,我们拷贝原对象并覆盖 departmentId + const updatedRow = Object.assign({}, row, { departmentId: this.deptForm.departmentId }); + + updateMydoJob(updatedRow).then(() => { + this.$modal.msgSuccess("修改成功"); + this.deptOpen = false; + this.getList(); + }); + }); + }, /** 行点击事件处理 */ handleRowClick(row) { // 设置当前选中行 diff --git a/ruoyi-ui/src/views/job/outJobManagement.vue b/ruoyi-ui/src/views/job/outJobManagement.vue index 01919e5..7e85c71 100644 --- a/ruoyi-ui/src/views/job/outJobManagement.vue +++ b/ruoyi-ui/src/views/job/outJobManagement.vue @@ -136,7 +136,7 @@ - + diff --git a/ruoyi-ui/src/views/kpi/spacePlan/index.vue b/ruoyi-ui/src/views/kpi/spacePlan/index.vue index be43080..9551d55 100644 --- a/ruoyi-ui/src/views/kpi/spacePlan/index.vue +++ b/ruoyi-ui/src/views/kpi/spacePlan/index.vue @@ -4,7 +4,7 @@ - + import * as echarts from 'echarts' -import {getRoadways, getPlatoons, getChartData, getChartMag} from "@/api/kpi/spacePlan" +import {getChartData, getChartMag, getPlatoons, getRoadways} from "@/api/kpi/spacePlan" import {listWarehouse} from "@/api/bas/warehouse"; -import VueI18n from 'vue-i18n'; export default { name: 'SpacePlan', @@ -46,10 +45,10 @@ export default { return { // 查询参数 queryParams: { - warehouseId: '01', - roadwayId: '1', + warehouseId: '', + roadwayId: '', thePlatoon: '', - platoon: '1', + platoon: '', specifications: '', quantity_x: '', quantity_j: '', @@ -86,17 +85,17 @@ export default { outCargo: [], theLocked: [] }, - queryWarehouseParam:{ + queryWarehouseParam: { pageNum: 1, pageSize: 99, - typeData:[1] + typeData: [1] } } }, mounted() { -this.getWarehouseList() + this.getWarehouseList() this.initCharts() - this.handleWarehouseChange() + //this.handleWarehouseChange() }, methods: { /** 查询仓库列表 */ @@ -104,8 +103,17 @@ this.getWarehouseList() listWarehouse(this.queryWarehouseParam).then(response => { this.warehouseOptions = response.rows; + this.queryParams.warehouseId = response.rows[0].warehouseId + // 获取巷道列表 + getRoadways(this.queryParams).then(response => { + const roadways = response.data.data + if (roadways && roadways.length > 0) { + this.roadwayOptions = roadways + this.queryParams.roadwayId = roadways[0].value + this.handleRoadwayChange() + } + }) }); - // this.warehouseOptions = [{warehouseId: "01", warehouseName: "仓库1"}, {warehouseId: "02", warehouseName: "仓库2"}]; }, // 初始化图表 initCharts() { @@ -215,32 +223,32 @@ this.getWarehouseList() { // 图例:空位 name: '空位', - itemStyle: { color: '#AEEEEE' } + itemStyle: {color: '#AEEEEE'} }, { // 图例:满位 name: '满位', - itemStyle: { color: '#FF9900' } + itemStyle: {color: '#FF9900'} }, { // 图例:入库分配 name: '入库分配', - itemStyle: { color: '#FFFF00' } + itemStyle: {color: '#FFFF00'} }, { // 图例:出库分配 name: '出库分配', - itemStyle: { color: '#FF0000' } + itemStyle: {color: '#FF0000'} }, { // 图例:入库需盘点 name: '入库需盘点', - itemStyle: { color: '#FF0000' } + itemStyle: {color: '#FF0000'} }, { // 图例:出库需盘点 name: '出库需盘点', - itemStyle: { color: '#0000FF' } + itemStyle: {color: '#0000FF'} } ], textStyle: { @@ -326,10 +334,9 @@ this.getWarehouseList() formatTooltip(params) { if (params.seriesName !== '满位') { // 排 - if (this.$i18n.locale ==='zh-cn') { + if (this.$i18n.locale === 'zh-cn') { return params.seriesName + '
排' + this.queryParams.thePlatoon + '列' + (params.data[0] + 1) + '层' + (params.data[1] + 1); - } - else{ + } else { return params.seriesName + '
' + this.queryParams.thePlatoon + '排 ' + (params.data[0] + 1) + '列 ' + (params.data[1] + 1) + '层'; } @@ -371,8 +378,8 @@ this.getWarehouseList() tooltip: { formatter: (p) => { if (p.seriesName === params.seriesName && - p.data[0] === params.data[0] && - p.data[1] === params.data[1]) { + p.data[0] === params.data[0] && + p.data[1] === params.data[1]) { return str; } return this.formatTooltip(p); diff --git a/ruoyi-ui/src/views/search/ViewInJobFlow/index.vue b/ruoyi-ui/src/views/search/ViewInJobFlow/index.vue index c6da4a0..0a0be30 100644 --- a/ruoyi-ui/src/views/search/ViewInJobFlow/index.vue +++ b/ruoyi-ui/src/views/search/ViewInJobFlow/index.vue @@ -112,6 +112,8 @@
+ + diff --git a/ruoyi-ui/src/views/search/ViewStockDetail/index.vue b/ruoyi-ui/src/views/search/ViewStockDetail/index.vue index 19a217c..4c96ff1 100644 --- a/ruoyi-ui/src/views/search/ViewStockDetail/index.vue +++ b/ruoyi-ui/src/views/search/ViewStockDetail/index.vue @@ -168,6 +168,14 @@ />
--> + + + --> - + @@ -310,6 +311,8 @@ + + + 搜索 @@ -115,7 +115,7 @@ > - + diff --git a/ruoyi-ui/src/views/stock/pointOut.vue b/ruoyi-ui/src/views/stock/pointOut.vue index a661592..d2ca1f2 100644 --- a/ruoyi-ui/src/views/stock/pointOut.vue +++ b/ruoyi-ui/src/views/stock/pointOut.vue @@ -66,6 +66,20 @@ @keyup.enter.native="handleQuery" /> + + + + + - + + >指定货位出库 + --> + + 出来看看 出来看看 + @click="handleSouthOut" + v-hasPermi="['job:outmydoJob:pointOut1']" + >出库端出库 + + + 入库端出库 @@ -112,7 +146,7 @@ - + @@ -268,6 +302,7 @@ export default { quantity: null, jobId: null, trayCode: null, + trayCodeList: [], outQuantity: null, stockinDetailId: null, stockinId: null, @@ -319,8 +354,9 @@ export default { } }, created() { - this.getList() - this.getWarehouseList(); + //this.getList() + //this.getWarehouseList(); + this.loading = false }, methods: { /** 获取仓库列表 */ @@ -332,11 +368,12 @@ export default { /** 查询库存信息列表 */ getList() { this.loading = true - listManagement(this.queryParams).then(response => { - this.managementList = response.rows - this.total = response.total - this.loading = false - }) + // 直接传递 queryParams,axios 会将 trayCodeList 数组正确序列化 + listManagement(this.queryParams).then(response => { + this.managementList = response.rows + this.total = response.total + this.loading = false + }) }, // 取消按钮 cancel() { @@ -382,7 +419,10 @@ export default { resetQuery() { this.resetForm("queryForm") this.queryParams.inDate = null - this.handleQuery() + this.queryParams.trayCodeList = [] + this.managementList = [] + this.total = 0 + //this.handleQuery() }, // 多选框选中数据 handleSelectionChange(selection) { @@ -436,14 +476,34 @@ export default { this.$modal.msgSuccess("删除成功") }).catch(() => {}) }, + /** 出库端出库按钮操作 */ + handleSouthOut() { + if (this.ids.length === 0) { + this.$modal.msgError("请至少选择一行数据"); + return; + } + this.doPointOut('2', '2'); // 出库端出库 exitId: '2', type: '2' + }, + /*二联合出库按钮*/ + handleNormalOut() { + if (this.ids.length === 0) { + this.$modal.msgError("请至少选择一行数据"); + return; + } + this.doPointOut('1', '2'); + }, + /** 入库端出库按钮操作 */ + handleNorthOut() { + if (this.ids.length === 0) { + this.$modal.msgError("请至少选择一行数据"); + return; + } + this.doPointOut('1', '2'); // 入库端出库 exitId: '1', type: '2' + }, /** 指定货位出库按钮操作 */ pointOut() { this.handlePointOutOperation('1'); }, - /** 出来看看按钮操作 */ - pointOut1() { - this.handlePointOutOperation('2'); - }, handlePointOutOperation(type) { this.currentOperationType = type;