diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/point/SchBasePointController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/point/SchBasePointController.java index 3ed26571..b9769922 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/point/SchBasePointController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/controller/point/SchBasePointController.java @@ -139,5 +139,13 @@ public class SchBasePointController { } return new ResponseEntity<>(HttpStatus.OK); } + + @PostMapping("/outUnLock") + @Log("发货区解锁") + //("发货区解锁") + public ResponseEntity outUnLock(@RequestBody JSONObject whereJson) { + basePointService.outUnLock(whereJson); + return new ResponseEntity<>( HttpStatus.OK); + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java index d407976e..bfc30b1e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/ISchBasePointService.java @@ -62,4 +62,10 @@ public interface ISchBasePointService extends IService { * @param jo */ void taskOperate(JSONObject jo); + + /** + * 发货区解锁 + * @param whereJson + */ + void outUnLock(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java index dcc8bbe3..6a750e3f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/scheduler_manage/service/point/impl/SchBasePointServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.wms.scheduler_manage.service.point.impl; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -17,6 +18,7 @@ import org.nl.common.enums.StatusEnum; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.common.utils.DateUtil; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; @@ -25,8 +27,10 @@ import org.nl.wms.scheduler_manage.service.region.ISchBaseRegionService; import org.nl.wms.scheduler_manage.service.region.dao.SchBaseRegion; 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.IOSEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -220,4 +224,26 @@ public class SchBasePointServiceImpl extends ServiceImpl listDao = new ArrayList<>(); + for (int i = 0; i < data.size(); i++) { + JSONObject json = data.getJSONObject(i); + + json.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")); + json.put("vehicle_code",""); + json.put("update_id",SecurityUtils.getCurrentUserId()); + json.put("update_name",SecurityUtils.getCurrentNickName()); + json.put("update_time", new Date()); + + listDao.add(JSONObject.toJavaObject(json, SchBasePoint.class)); + } + + this.updateBatchById(listDao); + + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java index bfa636f4..3c9e467a 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java @@ -439,6 +439,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() .eq(SchBasePoint::getIs_delete, IOSEnum.IS_USED.code("否")) .eq(SchBasePoint::getIs_used, IOSEnum.IS_USED.code("是")) + .eq(SchBasePoint::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) .eq(SchBasePoint::getRegion_code, PDAEnum.REGION_CODE.code("发货区域")) .orderByAsc(SchBasePoint::getPoint_code) @@ -460,9 +461,16 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() + .set(SchBasePoint::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁")) + .eq(SchBasePoint::getPoint_code, pointDao.getPoint_code()) + ); + // 2.2 生成任务 PointEvent event = PointEvent.builder() .type(AcsTaskEnum.TASK_STRUCT_CP_OUT) @@ -480,6 +488,21 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl disList = iostorinvdisCpService.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdisCp::getIostorinv_id, disDao.getIostorinv_id()) + .eq(StIvtIostorinvdisCp::getStoragevehicle_code, disDao.getStoragevehicle_code()) + ); + + for (StIvtIostorinvdisCp row : disList) { + iostorinvdtlCpService.update( + new UpdateWrapper().lambda() + .set(StIvtIostorinvdtlCp::getRemark_ext, "已设置站点") + .eq(StIvtIostorinvdtlCp::getIostorinvdtl_id, row.getIostorinvdtl_id()) + ); + } + } // 3.更新分配表 iostorinvdisCpService.update( @@ -534,10 +557,14 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl pointList.size()) throw new BadRequestException("发货区点位不足!"); + for (String struct_code : disMapList.keySet()) { StIvtIostorinvdisCp disDao = disMapList.get(struct_code).get(0); @@ -581,11 +608,30 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() + .set(SchBasePoint::getLock_type, IOSEnum.LOCK_TYPE.code("出库锁")) + .eq(SchBasePoint::getPoint_code, dao.getPoint_code()) + ); + break; } } } + // 6.更新明细为已设置站点 - remark_ext + for (List disList : disMapList.values()) { + disList.forEach(item -> { + iostorinvdtlCpService.update( + new UpdateWrapper().lambda() + .set(StIvtIostorinvdtlCp::getRemark_ext, "已设置站点") + .eq(StIvtIostorinvdtlCp::getIostorinvdtl_id, item.getIostorinvdtl_id()) + ); + }); + + } + } @Override @@ -663,6 +709,15 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() + .set(SchBasePoint::getVehicle_code,dao.getStoragevehicle_code() ) + .eq(SchBasePoint::getPoint_code, dao.getPoint_code()) + ); + } } // 5.更新箱记录表为出库 @@ -751,6 +806,8 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() .eq(StIvtIostorinvdisCp::getTask_id, task_id),false); @@ -785,6 +842,13 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() + .set(SchBasePoint::getVehicle_code, taskDao.getVehicle_code()) + .eq(SchBasePoint::getPoint_code, taskDao.getPoint_code3()) + ); + } else if (status.equals(AcsTaskEnum.STATUS_START.getCode())) { // 更新任务为执行中 iSchBaseTaskService.update( @@ -804,6 +868,13 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl().lambda() + .set(SchBasePoint::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .eq(SchBasePoint::getPoint_code, taskDao.getPoint_code3()) + ); } } diff --git a/mes/qd/src/views/wms/scheduler_manage/point/point.js b/mes/qd/src/views/wms/scheduler_manage/point/point.js index 7a781111..3c3c8b82 100644 --- a/mes/qd/src/views/wms/scheduler_manage/point/point.js +++ b/mes/qd/src/views/wms/scheduler_manage/point/point.js @@ -68,4 +68,12 @@ export function changeLock(data) { }) } -export default { add, edit, del, changeActive, findPoints, getPoint, getRegion, changeUsed, changeLock } +export function outUnLock(data) { + return request({ + url: 'api/point/outUnLock', + method: 'post', + data: data + }) +} + +export default { add, edit, del, changeActive, findPoints, getPoint, getRegion, changeUsed, changeLock, outUnLock } diff --git a/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue index b693f5e1..07874f24 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productOut/DivDialog.vue @@ -124,8 +124,9 @@ - - + + +
@@ -243,7 +244,7 @@ export default { name: 'DivDialog', components: { StructIvt }, mixins: [crud()], - dicts: ['IO_BILL_STATUS', 'work_status', 'PCS_DELIVER_TYPE'], + dicts: ['IO_BILL_STATUS', 'work_status', 'PCS_SAL_TYPE'], props: { dialogShow: { type: Boolean, @@ -319,13 +320,22 @@ export default { crudSectattr.getSect({ 'stor_id': this.storId }).then(res => { this.sects = res.content }) - const area_type = 'A1_FH01' - crudPoint.getPoint({ 'area_type': area_type }).then(res => { - this.pointList = res - }) + this.getPoint() this.mstrow.stor_id = this.defaultList[0] this.mstrow.sect_id = this.defaultList[1] }, + getPoint() { + const area_type = 'A1_FH01' + crudPoint.getPoint({ 'area_type': area_type }).then(res => { + this.pointList = [] + + for (const item of res) { + if (item.lock_type === '0') { + this.pointList.push(item) + } + } + }) + }, close() { this.$refs['form2'].resetFields() this.tabledis = [] @@ -336,7 +346,7 @@ export default { return this.dict.label.IO_BILL_STATUS[row.bill_status] }, formatSourceType(row, column) { - return this.dict.label.PCS_DELIVER_TYPE[row.source_bill_type] + return this.dict.label.PCS_SAL_TYPE[row.base_bill_type] }, quality_scodeFormat(row, column) { return this.dict.label.ST_QUALITY_SCODE[row.quality_scode] @@ -473,6 +483,7 @@ export default { this.queryTableDtl() this.tabledis = [] this.form2.point_code = '' + this.getPoint() }).finally(() => { this.loadingSetAllPoint = false }) @@ -484,6 +495,7 @@ export default { this.queryTableDtl() this.tabledis = [] this.form2.point_code = '' + this.getPoint() }).finally(() => { this.loadingSetAllPoint = false }) diff --git a/mes/qd/src/views/wms/storage_manage/product/productOutRegion/index.vue b/mes/qd/src/views/wms/storage_manage/product/productOutRegion/index.vue new file mode 100644 index 00000000..aa578184 --- /dev/null +++ b/mes/qd/src/views/wms/storage_manage/product/productOutRegion/index.vue @@ -0,0 +1,131 @@ + + + +