diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 16f93441..bcd88c72 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -47,36 +47,34 @@ import java.util.function.Consumer; @Service @Slf4j -public class AcsToWmsServiceImpl implements AcsToWmsService{ +public class AcsToWmsServiceImpl implements AcsToWmsService { public static Map Task_Collent = new HashMap<>(); @Autowired @Lazy - private TaskService taskService; + private TaskService taskService; @Autowired - private CacheLineHandService cacheLineHandService; + private CacheLineHandService cacheLineHandService; @Autowired private IPdmProduceWorkorderService workorderService; - - @Override public Map apply(JSONObject param) { - Assert.notNull(param,"请求参数不能为空"); + Assert.notNull(param, "请求参数不能为空"); Map result = MapOf.of("status", HttpStatus.OK.value(), "message", "ACS向WMS申请任务成功!"); AcsTaskEnum taskEnum = AcsTaskEnum.getType(param.getString("type"), "REQUEST_"); try { - RedissonUtils.lock(()->{ + RedissonUtils.lock(() -> { //业务处理 Task_Collent.get(taskEnum).createTask(param); - },param.getString("type"),5); - }catch (Exception ex){ - log.error("acs申请任务失败:ex:{}",ex.getMessage()); + }, param.getString("type"), 5); + } catch (Exception ex) { + log.error("acs申请任务失败:ex:{}", ex.getMessage()); result.put("status", HttpStatus.BAD_REQUEST.value()); - result.put("message",ex.getMessage()); + result.put("message", ex.getMessage()); } return result; } @@ -85,12 +83,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ /** * 更新缓存线的点位实时任务信息 * ACS给WMS发送缓存线的实时任务编号 + * * @param jsonObject position_code:缓存线点位编码 task_code:任务编号 */ @Override public JSONObject receiveTaskIdToCacheLine(JSONObject jsonObject) { JSONObject result = new JSONObject(); - HashMap json = new HashMap<>(2); + HashMap json = new HashMap<>(2); try { String task_code = jsonObject.getString("task_code"); String positionCode = jsonObject.getString("position_code"); @@ -100,8 +99,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ json.put("task_code", task_code); //更新缓存线的点位实时任务信息 positionTab.update(json); - } - catch(Exception e) { + } catch (Exception e) { result.put("status", 400); result.put("message", e.getMessage()); } @@ -139,6 +137,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ .build(); BussEventMulticaster.Publish(event); + if (status.equals(AcsTaskEnum.STATUS_CANNEL.getCode())) { + taskDto.setIs_delete("1"); + taskService.update(taskDto); + } + /*AbstractAcsTask taskHandler = (AbstractAcsTask)SpringContextHolder.getBean(Class.forName(processing_class)); taskHandler.updateTaskStatus(row,status);*/ } catch (Exception e) { @@ -182,8 +185,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ public Map washOrderFinish(JSONObject param) { JSONObject result = new JSONObject(); try { - SpringContextHolder.getBean(WashMachineryTask.class).updateTaskStatus(param,StatusEnum.TASK_FINISH.getCode()); - } catch (Exception e){ + SpringContextHolder.getBean(WashMachineryTask.class).updateTaskStatus(param, StatusEnum.TASK_FINISH.getCode()); + } catch (Exception e) { result.put("status", 400); result.put("message", e.getMessage()); return result; @@ -200,18 +203,18 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ PdmProduceWorkorder workorder = new PdmProduceWorkorder(); workorder.setWorkorder_id(orderJson.getString("workorder_id")); workorder.setWorkorder_status(orderJson.getString("status")); - if (orderJson.getBigDecimal("real_qty") != null){ + if (orderJson.getBigDecimal("real_qty") != null) { workorder.setDq_real_qty(orderJson.getBigDecimal("real_qty")); } - if (orderJson.getString("status").equals(WorkerOrderEnum.PRODUCTING.getCode())){ + if (orderJson.getString("status").equals(WorkerOrderEnum.PRODUCTING.getCode())) { workorder.setRealproducestart_date(DateUtil.now()); } - if (orderJson.getString("status").equals(WorkerOrderEnum.COMPLETE.getCode())){ + if (orderJson.getString("status").equals(WorkerOrderEnum.COMPLETE.getCode())) { workorder.setWorkorder_status(WorkerOrderEnum.AUTO_COMPLETE.getCode()); workorder.setRealproduceend_date(DateUtil.now()); } workorderService.updateById(workorder); - } catch (Exception e){ + } catch (Exception e) { log.error("工单状态更新失败:{}", e.getMessage()); result.put("status", 400); result.put("message", e.getMessage()); @@ -235,11 +238,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ String start_time = param.getString("start_time"); String err_status_id = param.getString("error_code");//关联pdm_bi_devicerunerrorlink获取异常信息 JSONObject lastRecord = devRecordTab.query("device_code = '" + device_code + "' order by order_num desc limit 1").uniqueResult(0); - if (lastRecord!=null){ - lastRecord.put("end_time",DateUtil.now()); + if (lastRecord != null) { + lastRecord.put("end_time", DateUtil.now()); devRecordTab.update(lastRecord); } - devRecordTab.insert(MapOf.of("record_id", IdUtil.getStringId(),"device_code",device_code,"status_type",status_type,"start_time",start_time,"err_status_id",err_status_id)); + devRecordTab.insert(MapOf.of("record_id", IdUtil.getStringId(), "device_code", device_code, "status_type", status_type, "start_time", start_time, "err_status_id", err_status_id)); result.put("status", HttpStatus.OK.value()); result.put("message", "设备状态反馈成功"); return result; @@ -249,15 +252,15 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ @Async public void feedDevQty(Map param) { WQLObject deviceTab = WQLObject.getWQLObject("pdm_bi_device"); - if (CollectionUtils.isEmpty(param)){ + if (CollectionUtils.isEmpty(param)) { return; } Iterator iterator = param.keySet().iterator(); - while (iterator.hasNext()){ - String deviceCode = (String)iterator.next(); - if (!StringUtils.isEmpty(deviceCode)){ + while (iterator.hasNext()) { + String deviceCode = (String) iterator.next(); + if (!StringUtils.isEmpty(deviceCode)) { String qty = String.valueOf(param.get(deviceCode)); - deviceTab.update(MapOf.of("deviceinstor_qty",qty),"device_code = '"+deviceCode+"'"); + deviceTab.update(MapOf.of("deviceinstor_qty", qty), "device_code = '" + deviceCode + "'"); } } } @@ -265,7 +268,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ @Override public void feedcachelineVe(JSONObject param) { WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position"); - if (param == null|| StringUtils.isBlank(param.getString("device_code")) || StringUtils.isBlank(param.getString("vehicle_code"))){ + if (param == null || StringUtils.isBlank(param.getString("device_code")) || StringUtils.isBlank(param.getString("vehicle_code"))) { return; } String cachelineCode = param.getString("device_code"); @@ -273,17 +276,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ String[] collect = cacheVehicle.split(","); //order by layer_num,order_no ASC JSONArray cachePositions = positionTab.query("cacheLine_code = '" + cachelineCode + "' order by layer_num,order_no ASC").getResultJSONArray(0); - if (cachePositions.size() != collect.length){ + if (cachePositions.size() != collect.length) { throw new BadRequestException("缓存线位置数量与acs返回数量不一致"); } for (int i = 0; i < cachePositions.size(); i++) { JSONObject cachePosition = (JSONObject) cachePositions.get(i); String vehicleCode = collect[i]; - cachePosition.put("vehicle_code",vehicleCode.equals("0")?"": vehicleCode); - if (vehicleCode.equals("99999")){ + cachePosition.put("vehicle_code", vehicleCode.equals("0") ? "" : vehicleCode); + if (vehicleCode.equals("99999")) { cachePosition.put("err_type", StatusEnum.CACHE_POINT_ERROR.getCode()); } - positionTab.update(cachePosition,"position_code = '"+cachePosition.getString("position_code")+"'"); + positionTab.update(cachePosition, "position_code = '" + cachePosition.getString("position_code") + "'"); } //更新缓存线及缓存线载具表对应关系 cacheLineHandService.cacheLineMaterSync(param.getString("cacheline_code")); @@ -293,14 +296,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{ @Async public void feedOrderRealQty(JSONObject param) { WQLObject wo = WQLObject.getWQLObject("pdm_produce_workorder"); - if (CollectionUtils.isEmpty(param)){ + if (CollectionUtils.isEmpty(param)) { return; } Iterator iterator = param.keySet().iterator(); - while (iterator.hasNext()){ + while (iterator.hasNext()) { String workorderCode = iterator.next(); String real_qty = param.getString(workorderCode); - wo.update(MapOf.of("real_qty",real_qty),"workorder_code = '"+workorderCode+"'"); + wo.update(MapOf.of("real_qty", real_qty), "workorder_code = '" + workorderCode + "'"); } } } 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 3892844c..faf9c074 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 @@ -51,6 +51,7 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { .eq(StIvtStructattr::getStor_id, stor_id) .eq(StIvtStructattr::getSect_id, sect_id) .isNull(StIvtStructattr::getStoragevehicle_code) + .ne(StIvtStructattr::getStoragevehicle_code,"") .eq(StIvtStructattr::getIs_used, "1") //TODO 暂时写死 .eq(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) .orderByAsc(StIvtStructattr::getStruct_code) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java index 4d6e9371..2fa4223f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/StIvtCheckdtlBcp.java @@ -153,8 +153,7 @@ public class StIvtCheckdtlBcp implements Serializable { * 处理时间 */ private String process_time; - - private String task_id; + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml index 705d8020..48a0ce45 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/dao/mapper/xml/StIvtCheckdtlBcpMapper.xml @@ -9,12 +9,14 @@ struct.sect_code, mb.material_code, mb.material_name, - user1.person_name AS process_optname + user1.person_name AS process_optname, + ivt.unit_weight FROM st_ivt_checkdtl_bcp CheckDtl LEFT JOIN md_me_materialbase mb ON mb.material_id = CheckDtl.material_id LEFT JOIN st_ivt_structattr struct ON struct.struct_id = CheckDtl.struct_id LEFT JOIN sys_user user1 ON user1.user_id = CheckDtl.process_optid + LEFT JOIN st_ivt_structivt_bcp ivt ON ivt.struct_id = struct.struct_id 1=1 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java index 62d6a490..a7c5e36b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/check/impl/StIvtCheckmstBcpServiceImpl.java @@ -78,7 +78,8 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl pageQuery = this.page(page.build(), query.build()); TableDataInfo build = TableDataInfo.build(pageQuery); @@ -271,9 +272,14 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl) task_id -> dtl.setTask_id(task_id)) .build(); BussEventMulticaster.Publish(event); @@ -296,6 +301,9 @@ public class StIvtCheckmstBcpServiceImpl extends ServiceImpl().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id)); if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())) { + //完成 this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("完成"))); JSONObject mst_jo = new JSONObject(); mst_jo.put("iostorinv_id", mst.getIostorinv_id()); this.confirm(mst_jo); - } else { + } else if (status.equals(AcsTaskEnum.STATUS_FINISH.getCode())){ + //执行中 this.update(new UpdateWrapper().lambda().eq(StIvtIostorinvBcp::getTask_id, task_id) .set(StIvtIostorinvBcp::getWork_status, IOSEnum.WORK_STATUS.code("执行中"))); + }else { + // + } } diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/rawproductin.js b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/rawproductin.js index 16858bea..870bb336 100644 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/rawproductin.js +++ b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductIn/rawproductin.js @@ -67,21 +67,8 @@ export default { add, edit, del, - getType, - insertDtl, - getIODtl, - commit, - checkVehicle, - confirmvehicle, - getDisDtl, - divStruct, - unDivStruct, - divPoint, delDis, queryBoxMater, - bucketDtl, - updateTask, - confirmTask, confirm, queryStor, getDisTask diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue index e8aa5b13..7474aef5 100644 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog.vue @@ -47,6 +47,7 @@ v-model="form.biz_date" type="date" placeholder="选择日期" + align="center" style="width: 210px" value-format="yyyy-MM-dd" :disabled="crud.status.view > 0" @@ -236,7 +237,6 @@ @@ -287,11 +287,9 @@ export default { dialogVisible: false, materShow: false, billShow: false, - dtlShow: false, struct_id: '', sect_id: '', opendtlParam: null, - materType: '03', // 关键成品 storlist: [], sects: [], billtypelist: [], diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/DivDialog.vue b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/DivDialog.vue deleted file mode 100644 index 1ed81399..00000000 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/DivDialog.vue +++ /dev/null @@ -1,526 +0,0 @@ - - - - - - diff --git a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/index.vue b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/index.vue index e20f4166..1603b33a 100644 --- a/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/index.vue +++ b/mes/qd/src/views/wms/storage_manage/rawproduct/rawProductOut/index.vue @@ -75,6 +75,7 @@ type="daterange" value-format="yyyy-MM-dd HH:mm:ss" start-placeholder="开始日期" + align="center" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" @change="crud.toQuery" @@ -204,7 +205,6 @@ - @@ -218,17 +218,16 @@ import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' import DateRangePicker from '@/components/DateRangePicker/index' import AddDialog from '@/views/wms/storage_manage/rawproduct/rawProductOut/AddDialog' -import DivDialog from '@/views/wms/storage_manage/rawproduct/rawProductOut/DivDialog' import ViewDialog from '@/views/wms/storage_manage/rawproduct/rawProductOut/ViewDialog' import { mapGetters } from 'vuex' import crudStorattr from '@/views/wms/storage_manage/basedata/basedata' export default { name: 'RawProductOut', - components: { ViewDialog, AddDialog, crudOperation, rrOperation, udOperation, pagination, DateRangePicker, DivDialog }, + components: { ViewDialog, AddDialog, crudOperation, rrOperation, udOperation, pagination, DateRangePicker }, cruds() { return CRUD({ - title: '', + title: '原材料出库', optShow: { add: true, reset: true }, idField: 'iostorinv_id', url: '/api/out/stIvtIostorinvYl', @@ -243,16 +242,12 @@ export default { return { height: document.documentElement.clientHeight - 180 + 'px;', permission: {}, - dis_flag: true, confirm_flag: true, - disShow: false, viewShow: false, mstrow: {}, divShow: false, - openParam: [], currentRow: null, storlist: [], - storId: null } }, computed: { @@ -305,7 +300,6 @@ export default { }, handleCurrentChange(currentRow) { if (currentRow === null) { - this.dis_flag = true this.confirm_flag = true this.currentRow = {} } @@ -330,15 +324,6 @@ export default { stateFormat(row, column) { return this.dict.label.IO_BILL_STATUS[row.bill_status] }, - divOpen() { - crudProductIn.getIODtl({ 'bill_code': this.currentRow.bill_code, 'open_flag': '1' }).then(res => { - this.openParam = res - debugger - this.storId = this.currentRow.product_code - this.billType = this.currentRow.bill_type - this.divShow = true - }) - }, querytable() { this.onSelectAll() this.crud.toQuery() diff --git a/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductCheck/CheckDialog.vue b/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductCheck/CheckDialog.vue index 50dce987..8adb7369 100644 --- a/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductCheck/CheckDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/semiproduct/semiproductCheck/CheckDialog.vue @@ -386,7 +386,21 @@ export default { this.crud.notify('请先选中一条已存在的库存明细!', CRUD.NOTIFICATION_TYPE.INFO) return false } - check.issueTask(this.nowrow) + check.issueTask(this.nowrow).then(res => { + this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + check.getCheckDtl({ 'check_id': this.form.check_id }).then(res => { + this.tableData = res + // 将明细变成不可编辑 + for (let i = 0; i < this.tableData.length; i++) { + const row = this.tableData[i] + this.$set(row,'edit',false) + if (row.status > '04') { + row.edit = true + } + this.tableData.splice(i, 1, row) + } + }) + }) }, saveCheck() { if (this.tableData.length === 0) {