Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
| | |
| | | deviceSite: 'deviceSite', |
| | | waitPakin: 'WaitPakin', |
| | | waitPakinItem: 'WaitPakinItem', |
| | | task: 'Task', |
| | | taskItem: 'TaskItem', |
| | | }, |
| | | table: { |
| | | field: { |
| | |
| | | qty: "qty", |
| | | batch: "batch", |
| | | }, |
| | | task: { |
| | | taskCode: "TaskCode", |
| | | taskStatus: "Status", |
| | | taskType: "Type", |
| | | orgLoc: "orgLoc", |
| | | orgSite: "orgSite", |
| | | targLoc: "targLoc", |
| | | targSite: "targSite", |
| | | barcode: "barcode", |
| | | robotCode: "robotCode", |
| | | exceStatus: "exceStatus", |
| | | expDesc: "expDesc", |
| | | sort: "sort", |
| | | expCode: "expCode", |
| | | startTime: "startTime", |
| | | endTime: "endTime", |
| | | }, |
| | | taskItem: { |
| | | taskId: "taskId", |
| | | orderId: "orderId", |
| | | orderType: "orderType", |
| | | orderItemId: "orderItemId", |
| | | sourceCode: "sourceCode", |
| | | matnrId: "matnrId", |
| | | maktx: "maktx", |
| | | matnrCode: "matnrCode", |
| | | unit: "unit", |
| | | anfme: "anfme", |
| | | batch: "batch", |
| | | spec: "spec", |
| | | model: "model", |
| | | }, |
| | | } |
| | | }, |
| | | page: { |
| | |
| | | waitPakinItem: '组拖档明细', |
| | | waitPakinLog: '组拖历史档', |
| | | waitPakinItemLog: '组拖历史档明细', |
| | | task: '任务工作档', |
| | | taskItem: '任务档明细', |
| | | }, |
| | | table: { |
| | | field: { |
| | |
| | | qty: "已完成", |
| | | batch: "批次", |
| | | }, |
| | | task: { |
| | | taskCode: "任务号", |
| | | taskStatus: "任务状态", |
| | | taskType: "任务类型", |
| | | orgLoc: "源库位", |
| | | orgSite: "源站点", |
| | | targLoc: "目标库位", |
| | | targSite: "目标站点", |
| | | barcode: "拖盘码", |
| | | robotCode: "机器编码", |
| | | exceStatus: "执行状态", |
| | | expDesc: "异常说明", |
| | | sort: "优先级", |
| | | expCode: "异常编码", |
| | | startTime: "开始时间", |
| | | endTime: "结束时间", |
| | | }, |
| | | taskItem: { |
| | | taskId: "taskId", |
| | | orderId: "订单ID", |
| | | orderType: "单据类型", |
| | | orderItemId: "订单明细ID", |
| | | sourceCode: "订单号", |
| | | matnrId: "物料ID", |
| | | maktx: "物料名称", |
| | | matnrCode: "物料编码", |
| | | unit: "单位", |
| | | anfme: "数量", |
| | | batch: "批次", |
| | | spec: "规格", |
| | | model: "型号", |
| | | }, |
| | | } |
| | | }, |
| | | page: { |
| | |
| | | import waitPakinItemLog from './waitPakinItemLog'; |
| | | import asnOrderLog from './asnOrderLog'; |
| | | import asnOrderItemLog from './asnOrderItemLog'; |
| | | import task from './task'; |
| | | import taskItem from './taskItem'; |
| | | |
| | | |
| | | const ResourceContent = (node) => { |
| | | switch (node.component) { |
| | |
| | | return waitPakinLog; |
| | | case 'waitPakinItemLog': |
| | | return waitPakinItemLog; |
| | | |
| | | |
| | | |
| | | case 'task': |
| | | return task; |
| | | case 'taskItem': |
| | | return taskItem; |
| | | |
| | | default: |
| | | return { |
| | |
| | | return R.ok(qlyInspectService.listByAsn(map)); |
| | | } |
| | | |
| | | @GetMapping("/qlyInspect/asn/list") |
| | | @PostMapping("/qlyInspect/asn/list") |
| | | @ApiOperation("获取待质检单") |
| | | @PreAuthorize("hasAuthority('manager:qlyInspect:list')") |
| | | public R getUnInspect() { |
| | | return R.ok(qlyInspectService.getUnInspect()); |
| | | public R getUnInspect(@RequestBody Map<String, Object> map) { |
| | | if (Objects.isNull(map)) { |
| | | return R.error("参数不能为空!!"); |
| | | } |
| | | return R.ok(qlyInspectService.getUnInspect(map)); |
| | | } |
| | | |
| | | @PostMapping("/qlyInspect/selected") |
| | | @ApiOperation("选择质检单据") |
| | | @PreAuthorize("hasAuthority('manager:qlyInspect:update')") |
| | | public R selectedOrder(IsptOrderParam param) { |
| | | public R selectedOrder(@RequestBody IsptOrderParam param) { |
| | | if (Objects.isNull(param)) { |
| | | throw new CoolException("参数不能为空!!"); |
| | | } |
| | | return qlyInspectService.saveSelected(param); |
| | | Long loginUserId = getLoginUserId(); |
| | | return qlyInspectService.saveSelected(param, loginUserId); |
| | | } |
| | | |
| | | |
New file |
| | |
| | | package com.vincent.rsf.server.manager.enums; |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @version 1.0 |
| | | * @title QlyIsptStatus |
| | | * @description |
| | | * @create 2025/3/31 15:38 |
| | | */ |
| | | public enum QlyIsptStatus { |
| | | //质检状态 |
| | | QLY_ISPT_STAS_ING("2", "质检中"), |
| | | QLY_ISPT_STAS_DONE("1", "质检完成"), |
| | | QLY_ISPT_STAS_HOLD("0", "待质检"), |
| | | QLY_ISPT_STAS_CLOSE("3", "关闭") |
| | | ; |
| | | |
| | | QlyIsptStatus(String val, String desc) { |
| | | this.val = val; |
| | | this.desc = desc; |
| | | } |
| | | |
| | | public String val; |
| | | public String desc; |
| | | } |
| | |
| | | |
| | | R allSave(QlyInspectAndItem params); |
| | | |
| | | List<AsnOrder> getUnInspect(); |
| | | List<AsnOrder> getUnInspect(Map<String, Object> map); |
| | | |
| | | R saveSelected(IsptOrderParam param); |
| | | R saveSelected(IsptOrderParam param, Long loginUserId); |
| | | } |
| | |
| | | import com.vincent.rsf.server.manager.entity.AsnOrder; |
| | | import com.vincent.rsf.server.manager.entity.AsnOrderItem; |
| | | import com.vincent.rsf.server.manager.entity.QlyIsptItem; |
| | | import com.vincent.rsf.server.manager.enums.QlyIsptStatus; |
| | | import com.vincent.rsf.server.manager.mapper.QlyInspectMapper; |
| | | import com.vincent.rsf.server.manager.entity.QlyInspect; |
| | | import com.vincent.rsf.server.manager.service.AsnOrderItemService; |
| | |
| | | * @return |
| | | * @time 2025/3/31 10:12 |
| | | */ |
| | | |
| | | @Override |
| | | public List<AsnOrder> getUnInspect() { |
| | | List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getStatus, 1).eq(AsnOrder::getNtyStatus, 0)); |
| | | public List<AsnOrder> getUnInspect(Map<String, Object> params) { |
| | | List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>() |
| | | .eq(AsnOrder::getStatus, 1) |
| | | .eq(!Objects.isNull(params.get("asnCode")), AsnOrder::getCode, !Objects.isNull(params.get("asnCode")) ? params.get("asnCode").toString() : "") |
| | | .eq(AsnOrder::getNtyStatus, 0)); |
| | | return asnOrders; |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @description 保存 |
| | | * @param |
| | | * @return |
| | | * @time 2025/3/31 14:54 |
| | | */ |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R saveSelected(IsptOrderParam param) { |
| | | public R saveSelected(IsptOrderParam param, Long loginUserId) { |
| | | if (Objects.isNull(param.getIds()) || param.getIds().isEmpty()) { |
| | | throw new CoolException("单据ID不能为空!!"); |
| | | } |
| | | List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()).eq(AsnOrder::getNtyStatus, 1)); |
| | | List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()).eq(AsnOrder::getNtyStatus, 0)); |
| | | if (asnOrders.isEmpty()) { |
| | | throw new CoolException("单据不存在!!"); |
| | | } |
| | |
| | | throw new CoolException("单据明细不存在!!"); |
| | | } |
| | | Map<Long, List<AsnOrderItem>> listMap = orderItems.stream().collect(Collectors.groupingBy(AsnOrderItem::getAsnId)); |
| | | List<QlyInspect> qlyInspects = new ArrayList<>(); |
| | | for (AsnOrder asnOrder : asnOrders) { |
| | | QlyInspect inspect = new QlyInspect(); |
| | | String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_INSPECT_CODE, null); |
| | | if (StringUtils.isBlank(ruleCode)) { |
| | | throw new CoolException("策略错误:请检查策略「" + SerialRuleCode.SYS_INSPECT_CODE + "」是否设置正确!!"); |
| | | } |
| | | inspect.setCode(ruleCode).setWkType(asnOrder.getWkType()).setAsnId(asnOrder.getId()).setCode(asnOrder.getCode()); |
| | | inspect.setCode(ruleCode) |
| | | .setWkType(asnOrder.getWkType()) |
| | | .setIsptStatus(QlyIsptStatus.QLY_ISPT_STAS_ING.val) |
| | | .setCreateBy(loginUserId) |
| | | .setAsnId(asnOrder.getId()) |
| | | .setAsnCode(asnOrder.getCode()); |
| | | /**获取单据明细*/ |
| | | List<AsnOrderItem> asnOrderItems = listMap.get(asnOrder.getId()); |
| | | if (Objects.isNull(asnOrderItems) || asnOrderItems.isEmpty()) { |
| | |
| | | QlyIsptItem isptItem = new QlyIsptItem(); |
| | | BeanUtils.copyProperties(orderItem, isptItem); |
| | | isptItem.setAsnItemId(orderItem.getId()) |
| | | .setIspectId(inspect.getId()) |
| | | .setRcptQty(orderItem.getQty()) |
| | | .setCreateBy(loginUserId) |
| | | .setDlyQty(orderItem.getAnfme()); |
| | | items.add(isptItem); |
| | | } |
| | | if (!qlyIsptItemService.saveBatch(items)) { |
| | | throw new CoolException("明细保存失败!!"); |
| | | } |
| | | } |
| | | if (!this.saveBatch(qlyInspects)) { |
| | | throw new CoolException("质检单保存失败!!"); |
| | | } |
| | | return R.ok("保存成功!!"); |
| | | } |
| | |
| | | .getOne(new LambdaQueryWrapper<SerialRule>() |
| | | .eq(SerialRule::getCode, code)); |
| | | if (Objects.isNull(serialRule)) { |
| | | |
| | | throw new CoolException("当前业务:" + code + ",编码规则不存在!!"); |
| | | } |
| | | SerialRuleItemService serialRuleItemService = SpringUtils.getBean(SerialRuleItemService.class); |
| | |
| | | if (Objects.isNull(start) || end == 0) { |
| | | buffer.append(str); |
| | | } else { |
| | | if (str.length() <= (end + start)) { |
| | | if (str.length() < (end + start)) { |
| | | throw new CoolException("截取字符起出字符串长度,请查看规则设定!!"); |
| | | } |
| | | //返回起始位置lenStr开始,终点位置为lenStr + len长度的字符串 |