| | |
| | | package com.vincent.rsf.server.manager.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.vincent.rsf.framework.common.R; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.manager.controller.params.IsptOrderParam; |
| | |
| | | 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; |
| | |
| | | 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)); |
| | | .eq(!Objects.isNull(params.get("asnCode")) && StringUtils.isNotBlank(params.get("asnCode").toString()), AsnOrder::getCode, StringUtils.isNotBlank(params.get("asnCode").toString()) ? params.get("asnCode").toString() : null)); |
| | | return asnOrders; |
| | | } |
| | | |
| | |
| | | |
| | | @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); |
| | | } |
| | |
| | | throw new CoolException("明细保存失败!!"); |
| | | } |
| | | } |
| | | if (!this.saveBatch(qlyInspects)) { |
| | | throw new CoolException("质检单保存失败!!"); |
| | | if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>().in(AsnOrder::getId, param.getIds()).set(AsnOrder::getNtyStatus, 1))) { |
| | | throw new CoolException("报检状态修改失败!!"); |
| | | } |
| | | return R.ok("保存成功!!"); |
| | | } |