From d5d4f74b5cac8f338e60b5c8f521c342964bce45 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 24 May 2023 09:27:37 +0800 Subject: [PATCH] =?UTF-8?q?rev:=20=E4=BB=A3=E7=A0=81=E9=94=99=E4=B9=B1?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storage/SectattrController.java | 4 +- .../service/storage/dao/StIvtStructattr.java | 2 + .../impl/StIvtSectattrServiceImpl.java | 2 +- .../service/task/dao/SchBaseTask.java | 2 + .../IStivtlostorivnCpInController.java | 24 ++ .../iostorInv/IStIvtIostorinvCpService.java | 27 +++ .../iostorInv/dao/StIvtIostorinvdisCp.java | 2 + .../iostorInv/dao/StIvtIostorinvdtlCp.java | 2 + .../mapper/xml/StIvtIostorinvdtlCpMapper.xml | 2 +- .../impl/StIvtIostorinvCpServiceImpl.java | 226 +++++++++++++++++- .../util/impl/DivRuleCpServiceImpl.java | 3 +- mes/qd/src/api/wms/basedata/st/sectattr.js | 2 +- .../product/productIn/AddDialog.vue | 26 +- .../product/productIn/DivDialog.vue | 69 +++--- .../product/productIn/index.vue | 6 +- .../product/productIn/productin.js | 31 ++- 16 files changed, 356 insertions(+), 74 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java index 97e0db90..8b0df038 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/SectattrController.java @@ -72,10 +72,10 @@ public class SectattrController { return new ResponseEntity<>(HttpStatus.OK); } - @GetMapping("/getSect") + @PostMapping("/getSect") @Log("查询库区下拉框") @ApiOperation("查询库区下拉框") - public ResponseEntity querySect(@RequestBody(required = false) JSONObject query) { + public ResponseEntity querySect(@RequestBody JSONObject query) { List list = isectattrService.getSect(query); return new ResponseEntity<>(TableDataInfo.build(list), HttpStatus.OK); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java index 7fa3e8c8..97d11d6a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/dao/StIvtStructattr.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; @@ -18,6 +19,7 @@ import java.util.Date; * @since 2023-05-04 */ @Data +@Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @TableName("st_ivt_structattr") public class StIvtStructattr implements Serializable { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java index 96a9083c..b8a3a07f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtSectattrServiceImpl.java @@ -120,7 +120,7 @@ public class StIvtSectattrServiceImpl extends ServiceImpl(); for (Map map : sectList) { Map sect_cas = new HashMap<>(); - sect_cas.put("value", map.get("sect_id")); + sect_cas.put("value", String.valueOf(map.get("sect_id"))); sect_cas.put("label", map.get("sect_name")); sect_ja.add(sect_cas); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java index 47307911..897aeee2 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/task/dao/SchBaseTask.java @@ -7,6 +7,7 @@ import java.util.Date; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; /** *

@@ -17,6 +18,7 @@ import lombok.EqualsAndHashCode; * @since 2023-05-11 */ @Data +@Accessors(chain = true) @EqualsAndHashCode(callSuper = false) @TableName("sch_base_task") public class SchBaseTask implements Serializable { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java index 580a8248..457e6fc6 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpInController.java @@ -98,4 +98,28 @@ public class IStivtlostorivnCpInController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/unDivStruct") + @Log("取消分配") + @ApiOperation("取消分配") + public ResponseEntity unDivStruct(@RequestBody JSONObject whereJson){ + iStIvtIostorinvCpService.unDivStruct(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/setPoint") + @Log("设置起点") + @ApiOperation("设置起点") + public ResponseEntity setPoint(@RequestBody JSONObject whereJson){ + iStIvtIostorinvCpService.setPoint(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/confirm") + @Log("强制确认") + @ApiOperation("强制确认") + public ResponseEntity confirm(@RequestBody JSONObject whereJson){ + iStIvtIostorinvCpService.confirm(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java index 479c8aed..1ef898a0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpService.java @@ -117,4 +117,31 @@ public interface IStIvtIostorinvCpService extends IService { * } */ void divStruct(JSONObject whereJson); + + /** + * 取消分配 + * @param whereJson + * { + * 分配明细 + * } + */ + void unDivStruct(JSONObject whereJson); + + /** + * 设置起点 + * @param whereJson + * { + * 分配明细 + * } + */ + void setPoint(JSONObject whereJson); + + /** + * 强制确认 + * @param whereJson + * { + * "iostorinv_id": 主表标识 + * } + */ + void confirm(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java index 457de168..5ca546b0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdisCp.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -27,6 +28,7 @@ public class StIvtIostorinvdisCp implements Serializable { /** * 出入单分配标识 */ + @TableId private String iostorinvdis_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java index 8405ece2..22ec712c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/StIvtIostorinvdtlCp.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.*; import lombok.experimental.Accessors; @@ -25,6 +26,7 @@ public class StIvtIostorinvdtlCp implements Serializable { /** * 出入单明细标识 */ + @TableId private String iostorinvdtl_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml index c4c6e44b..5e4e5c63 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdtlCpMapper.xml @@ -76,7 +76,7 @@ AND mst.bill_code =#{bill_code} - AND mst.bill_code =#{iostorinv_id} + AND mst.iostorinv_id =#{iostorinv_id} order by dtl.seq_no ASC diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index a204117e..9ab1c117 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -1,7 +1,9 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -11,6 +13,8 @@ import io.jsonwebtoken.lang.Assert; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.publish.BussEventMulticaster; +import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -23,7 +27,15 @@ import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattr import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; +import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; +import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; +import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; +import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; +import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.basedata.service.record.dto.StIvtStructivtflowDto; +import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService; @@ -41,7 +53,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.*; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -79,6 +94,14 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl().lambda() + .eq(StIvtIostorinvdisCp::getIostorinvdis_id, whereJson.getString("iostorinvdis_id"))); + if (ObjectUtil.isNotEmpty(disDao.getStruct_code())) throw new BadRequestException("此明细已分配"); String struct_id = whereJson.getString("struct_id"); StIvtStructattr attrDao = new StIvtStructattr(); @@ -359,6 +386,196 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl().lambda() + .eq(StIvtIostorinvdisCp::getIostorinvdis_id, whereJson.getString("iostorinvdis_id")) + ); + if (ObjectUtil.isEmpty(disDao)) throw new BadRequestException("分配明细不存在!"); + + + SchBaseTask taskDao = iSchBaseTaskService.getOne( + new QueryWrapper().lambda() + .eq(SchBaseTask::getTask_id, disDao.getTask_id()) + .gt(SchBaseTask::getTask_status, TaskStatusEnum.START_AND_POINT.getCode()) + ); + if (ObjectUtil.isNotEmpty(taskDao)) throw new BadRequestException("任务已下发,不可取消!"); + + // 2.更新分配明细 + iStIvtIostorinvdisdtlCpService.update( + new StIvtIostorinvdisdtlCp() + .setStruct_name("") + .setStruct_code("") + .setStruct_id("") + .setSect_id("") + .setSect_code("") + .setSect_name(""), + new QueryWrapper().lambda() + .eq(StIvtIostorinvdisdtlCp::getIostorinvdis_id,disDao.getIostorinvdis_id()) + ); + + // 3.更新任务 + iSchBaseTaskService.update( + new SchBaseTask().setIs_delete(true), + new QueryWrapper().lambda() + .eq(SchBaseTask::getTask_id, disDao.getTask_id()) + .lt(SchBaseTask::getTask_status, TaskStatusEnum.ISSUE.getCode()) + ); + + // 解锁货位 + iStIvtStructattrService.update( + new StIvtStructattr() + .setLock_type("1") // TODO 暂时写死 + .setInv_code("") + .setInv_type("") + .setInv_id(""), + new QueryWrapper().lambda() + .eq(StIvtStructattr::getStruct_code, disDao.getStruct_code()) + ); + + // 4.更新分配 + iostorinvdisCpService.updateById( + disDao.setStruct_name("").setStruct_code("") + .setStruct_id("").setSect_id("") + .setSect_code("").setSect_name("") + .setPoint_id("").setPoint_code("") + .setPoint_name("") + ); + + // 5.更新明细 + StIvtIostorinvdtlCp dtlDao = iostorinvdtlCpService.getOne( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdtlCp::getIostorinvdtl_id, disDao.getIostorinvdtl_id()) + ); + + if (StrUtil.equals(dtlDao.getBill_status(), IOSEnum.BILL_STATUS.code("生成"))) { + throw new BadRequestException("没有可取消的分配明细!"); + } + + dtlDao.setAssign_qty(NumberUtil.sub(dtlDao.getAssign_qty(),disDao.getReal_qty())); + dtlDao.setUnassign_qty(disDao.getReal_qty()); + + if (dtlDao.getAssign_qty().doubleValue() == 0) { + dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + } else if (dtlDao.getAssign_qty().doubleValue() > 0) { + dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配中")); + } + + iostorinvdtlCpService.updateById(dtlDao); + + // 6.更新主表 + updateMst(dtlDao.getIostorinv_id()); + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void setPoint(JSONObject whereJson) { + StIvtIostorinvdisCp disDao = iostorinvdisCpService.getById(whereJson.getString("iostorinvdis_id")); + + // 1.校验是否设置过起点 + if (ObjectUtil.isNotEmpty(disDao.getPoint_id())) throw new BadRequestException("此明细已生成任务!"); + + // 2.下发任务 + SchBasePoint pointDao = iSchBasePointService.getOne( + new QueryWrapper().lambda() + .eq(SchBasePoint::getPoint_code, whereJson.getString("point_code")) + ); + + PointEvent event = PointEvent.builder() + .type(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND.getCode()) + .point_code1(disDao.getStruct_code()) + .point_code2(pointDao.getPoint_code()) + .callback((Consumer) disDao::setTask_id) + .build(); + BussEventMulticaster.Publish(event); + + // 3.更新分配表 + iostorinvdisCpService.updateById( + disDao.setPoint_id(pointDao.getPoint_id()) + .setPoint_code(pointDao.getPoint_code()) + .setPoint_name(pointDao.getPoint_name()) + ); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void confirm(JSONObject whereJson) { + + // 1.更新主表为完成 + StIvtIostorinvCp mstDao = this.getById(whereJson.getString("iostorinv_id")); + mstDao.setBill_status(IOSEnum.BILL_STATUS.code("完成")); + mstDao.setConfirm_id(SecurityUtils.getCurrentUserId()); + mstDao.setConfirm_name(SecurityUtils.getCurrentNickName()); + mstDao.setConfirm_time(DateUtil.now()); + this.updateById(mstDao); + + // 2.判断所有明细是否为分配完 + List dtlDaoList = iostorinvdtlCpService.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + + boolean is_dis = dtlDaoList.stream() + .anyMatch(row -> row.getBill_status().equals(IOSEnum.BILL_STATUS.code("分配完"))); + + if (!is_dis) throw new BadRequestException("请先分配单据!"); + + // 3.更新明细表为完成 + iostorinvdtlCpService.update( + new StIvtIostorinvdtlCp() + .setBill_status(IOSEnum.BILL_STATUS.code("完成")), + new QueryWrapper().lambda() + .eq(StIvtIostorinvdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + + // 3.更新任务为完成、更新库存 + List disDaoList = iostorinvdisCpService.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdisCp::getIostorinv_id, whereJson.getString("iostorinv_id")) + ); + + Map> collect = disDaoList.stream() + .collect(Collectors.groupingBy(StIvtIostorinvdisCp::getTask_id)); + + for (String task_id : collect.keySet()) { + // 1)更新任务为完成 + SchBaseTask taskDao = iSchBaseTaskService.getById(task_id); + // 已完成则不更新 + if (StrUtil.equals(taskDao.getTask_id(), TaskStatusEnum.FINISHED.getCode())) continue; + + taskDao.setTask_status(TaskStatusEnum.FINISHED.getCode()); + iSchBaseTaskService.updateById(taskDao); + + // 2)更新库存 + List disList = collect.get(task_id); + for (StIvtIostorinvdisCp dao : disList) { + // 根据托盘对应货位更新 + structivtflowService.recordStructivtFlow( + StIvtStructivtflowDto.builder() + .bill_code(mstDao.getBill_code()) + .change_type_scode(CHANGE_BILL_TYPE_ENUM.IOSTORINV_IN_SEND) + .bill_table("st_ivt_iostorinv_cp") + .material_id(dao.getMaterial_id()) + .pcsn(dao.getPcsn()) + .struct_code(dao.getStruct_code()) + .result_qty(dao.getReal_qty()) + .change_qty(dao.getReal_qty()) + .task_id(dao.getTask_id()) + .storagevehicle_code(dao.getStoragevehicle_code()) + .build() + ); + } + } + + } + @NotNull private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) { JSONArray rows = whereJson.getJSONArray("tableData"); @@ -493,6 +710,13 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl row.getBill_status().equals(IOSEnum.BILL_STATUS.code("生成"))); + + if (is_create) mstDao.setBill_status(IOSEnum.BILL_STATUS.code("生成")); + this.updateById(mstDao); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java index efd3bacf..c87e99be 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java @@ -45,7 +45,8 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { .isNull(StIvtStructattr::getStoragevehicle_code) .eq(StIvtStructattr::getIs_used, "1") //TODO 暂时写死 .eq(StIvtStructattr::getLock_type, "1") //TODO 暂时写死 - ); + .orderByAsc(StIvtStructattr::getStruct_code) + ,false); break; } diff --git a/mes/qd/src/api/wms/basedata/st/sectattr.js b/mes/qd/src/api/wms/basedata/st/sectattr.js index 5ffa83c6..2b5f2936 100644 --- a/mes/qd/src/api/wms/basedata/st/sectattr.js +++ b/mes/qd/src/api/wms/basedata/st/sectattr.js @@ -27,7 +27,7 @@ export function edit(data) { export function getSect(data) { return request({ url: 'api/sectattr/getSect', - method: 'get', + method: 'post', data }) } diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue index 16f02500..3036be26 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue @@ -62,28 +62,6 @@ /> - - - - - - - - - - { + crudStorattr.getStor({ 'stor_type': '4' }).then(res => { this.storlist = res.content }) }, diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/DivDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/DivDialog.vue index fda420da..38604026 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/DivDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/DivDialog.vue @@ -487,25 +487,6 @@ export default { row.qty = row.storage_qty this.bucketuniqueObj = row }, - divPoint() { - if (!this.form.point_code) { - this.crud.notify('请选择入库点', CRUD.NOTIFICATION_TYPE.INFO) - return - } - if (this.form.tableMater.length === 0) { - this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO) - return - } - crudProductIn.divPoint(this.form).then(res => { - crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id, 'open_flag': '1' }).then(res => { - this.openParam = res - }) - crudProductIn.getDisDtl(this.form.dtl_row).then(res => { - this.form.tableMater = res - this.crud.notify('设置起点成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) - }) - }) - }, divStruct() { if (this.dis_row === null) { this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO) @@ -519,17 +500,16 @@ export default { if (this.form.checked) { this.divBtn = true + debugger this.dis_row.stor_id = this.stor_id this.dis_row.sect_id = this.sect_id crudProductIn.divStruct(this.dis_row).then(res => { - /* crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id, 'open_flag': '1' }).then(res => { + crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => { this.openParam = res + this.form.tableMater = [] + this.dis_row = null + this.crud.notify('分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) }) - crudProductIn.getDisDtl(this.form.dtl_row).then(res => { - this.form.tableMater = res - this.divBtn = false - this.crud.notify('分配货位成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) - })*/ }).finally(() => { this.divBtn = false }) @@ -539,23 +519,36 @@ export default { } }, unDivStruct() { - if (this.form.tableMater.length <= 0) { - this.crud.notify('不存在载具明细!', CRUD.NOTIFICATION_TYPE.INFO) + if (this.dis_row === null) { + this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO) return } - const flag = this.form.tableMater.some(mater => !mater.struct_code) - if (flag) { - this.crud.notify('明细存在未分配货位!', CRUD.NOTIFICATION_TYPE.INFO) - return - } - // 如果勾选了,直接跳后台 - crudProductIn.unDivStruct(this.form).then(res => { - crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id, 'open_flag': '1' }).then(res => { + + crudProductIn.unDivStruct(this.dis_row).then(res => { + crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => { this.openParam = res + this.form.tableMater = [] + this.dis_row = null + this.crud.notify('取消成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) }) - crudProductIn.getDisDtl(this.form.dtl_row).then(res => { - this.form.tableMater = res - this.crud.notify('取消分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) + }) + }, + divPoint() { + if (!this.form.point_code) { + this.crud.notify('请选择入库点', CRUD.NOTIFICATION_TYPE.INFO) + return + } + if (this.dis_row === null) { + this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO) + return + } + this.dis_row.point_code = this.form.point_code + crudProductIn.setPoint(this.dis_row).then(res => { + crudProductIn.getIosInvDtl({ 'iostorinv_id': this.dis_row.iostorinv_id }).then(res => { + this.openParam = res + this.form.tableMater = [] + this.dis_row = null + this.crud.notify('操作成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) }) }) } diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/index.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/index.vue index e6b3397f..072d186d 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/index.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/index.vue @@ -235,7 +235,7 @@ import DateRangePicker from '@/components/DateRangePicker/index' import AddDialog from '@/views/wms/storage_manage/product/productIn/AddDialog' import DivDialog from '@/views/wms/storage_manage/product/productIn/DivDialog' import ViewDialog from '@/views/wms/storage_manage/product/productIn/ViewDialog' -import crudStorattr from '@/api/wms/basedata/st/storattr' +import crudStorattr, {getStor} from '@/views/wms/storage_manage/basedata/basedata' import { mapGetters } from 'vuex' export default { @@ -281,7 +281,7 @@ export default { } }, created() { - crudStorattr.queryStor().then(res => { + crudStorattr.getStor({ 'stor_type': '4' }).then(res => { this.storlist = res.content }) }, @@ -341,7 +341,7 @@ export default { this.crud.notify('请选择一条单据', CRUD.NOTIFICATION_TYPE.INFO) return } - crudProductIn.confirm(this.currentRow).then(res => { + crudProductIn.confirm({ 'iostorinv_id': this.currentRow.iostorinv_id }).then(res => { this.crud.notify('单据确认成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) this.crud.toQuery() }) diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/productin.js b/mes/qd/src/views/wms/storage_manage/product/productIn/productin.js index 5aaf216f..57dccafb 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/productin.js +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/productin.js @@ -66,7 +66,31 @@ export function getSect(data) { export function divStruct(data) { return request({ - url: '/api/stIvtSectattr/divStruct', + url: '/api/productIn/divStruct', + method: 'post', + data + }) +} + +export function unDivStruct(data) { + return request({ + url: '/api/productIn/unDivStruct', + method: 'post', + data + }) +} + +export function setPoint(data) { + return request({ + url: '/api/productIn/setPoint', + method: 'post', + data + }) +} + +export function confirm(data) { + return request({ + url: '/api/productIn/confirm', method: 'post', data }) @@ -81,5 +105,8 @@ export default { vehicleCheck, confirmvehicle, getSect, - divStruct + divStruct, + unDivStruct, + setPoint, + confirm }