| | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int addInsOrder(List<SampleProductDto> list, InsOrder insOrder) { |
| | | initOutsourceOrderSource(insOrder); |
| | | // todo: 下单判断抽样计划的唯一性 |
| | | if (insOrder.getQuarterItemId() != null) { |
| | | Long quarterItemCount = insOrderMapper.selectCount(Wrappers.<InsOrder>lambdaQuery() |
| | |
| | | .notIn(InsOrder::getState, -1, 2, 3)); |
| | | if (quarterItemCount > 0) { |
| | | throw new ErrorException("该抽样计划已被绑定过"); |
| | | } |
| | | } |
| | | IfsInventoryQuantity ifsInventoryQuantity = null; |
| | | if (insOrder.getIfsInventoryId() != null) { |
| | | ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId()); |
| | | if (ifsInventoryQuantity != null) { |
| | | insOrder.setTypeSource(outsourceOrderFlowService.resolveTypeSource( |
| | | ifsInventoryQuantity.getOrderType(), ifsInventoryQuantity.getMaterialProp(), insOrder.getTypeSource())); |
| | | } else if (insOrder.getTypeSource() != null) { |
| | | throw new ErrorException("找不到销售订单信息"); |
| | | } |
| | | } |
| | | insOrder.setState(0); |
| | |
| | | }); |
| | | |
| | | //原材料下单或外购成品下单 |
| | | if (Objects.nonNull(insOrder.getTypeSource()) && Objects.nonNull(insOrder.getIfsInventoryId())) { |
| | | if (insOrder.getTypeSource() != null && ifsInventoryQuantity != null) { |
| | | // 委托人就是报检人, 生产单位就是供应商单位 |
| | | IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId()); |
| | | Integer declareUserId = ifsInventoryQuantity.getDeclareUserId(); |
| | | User user = userMapper.selectById(declareUserId); |
| | | if (user == null) { |
| | |
| | | // 详情同时返回有效处理流程,供检测页面统一选择布局及校验规则。 |
| | | if (ifsOrderVO != null) { |
| | | ifsOrderVO.setFlowOrderType(ifsOrderVO.getIfsOrderType()); |
| | | if (ifsOrderVO.getIfsInventoryId() != null) { |
| | | if (ifsOrderVO.getIfsInventoryId() != null && outsourceOrderFlowService.isOutsource(ifsOrderVO.getIfsOrderType())) { |
| | | IfsInventoryQuantity quantity = ifsInventoryQuantityMapper.selectById(ifsOrderVO.getIfsInventoryId()); |
| | | if (quantity != null) { |
| | | ifsOrderVO.setFlowOrderType(outsourceOrderFlowService.resolve(quantity.getOrderType(), quantity.getMaterialProp())); |
| | |
| | | List<Map<Integer, Object>> list2 = insOrderMapper.selectReportModelByOrderId(id, laboratory); |
| | | map.put("reportModel", list2); |
| | | return map; |
| | | } |
| | | |
| | | /** 保存前读取真实销售订单,纠正外协下单来源,避免前端缓存影响实验室分配。 */ |
| | | private void initOutsourceOrderSource(InsOrder insOrder) { |
| | | if (insOrder.getIfsInventoryId() == null) { |
| | | return; |
| | | } |
| | | IfsInventoryQuantity quantity = ifsInventoryQuantityMapper.selectById(insOrder.getIfsInventoryId()); |
| | | if (quantity == null) { |
| | | throw new ErrorException("找不到销售订单信息"); |
| | | } |
| | | insOrder.setTypeSource(outsourceOrderFlowService.resolveTypeSource( |
| | | quantity.getOrderType(), quantity.getMaterialProp(), insOrder.getTypeSource())); |
| | | } |
| | | |
| | | @Override |
| | |
| | | public String moveRawMaterial(IfsInventoryQuantity inventoryQuantity) { |
| | | //查询ifs订单详情 |
| | | IfsInventoryQuantity one = ifsInventoryQuantityMapper.selectById(inventoryQuantity.getId()); |
| | | String flowOrderType = outsourceOrderFlowService.isOutsource(one.getOrderType()) |
| | | ? outsourceOrderFlowService.resolve(one.getOrderType(), one.getMaterialProp()) |
| | | : inventoryQuantity.getOrderType(); |
| | | String toLocation; |
| | | // 登记采购检验结果STD |
| | | if (one.getIsRegister().equals(0)) { |
| | |
| | | //1.根据ifs域获取对应库位配置 |
| | | IfsProperties properties = ifsApiUtils.getPropByContract(one.getContract()); |
| | | //2.判断订单类型是否为原材料 |
| | | if(StringUtils.equals(outsourceOrderFlowService.resolve(one.getOrderType(), one.getMaterialProp()), OrderType.RAW.getValue())){ |
| | | if(StringUtils.equals(flowOrderType, OrderType.RAW.getValue())){ |
| | | toLocation = properties.getRawQualifiedLocation(); |
| | | }else{ |
| | | toLocation = properties.getProductQualifiedLocation(); |