| | |
| | | import com.ruoyi.inspect.service.InsOrderService; |
| | | import com.ruoyi.inspect.service.InsReportService; |
| | | import com.ruoyi.inspect.service.RawMaterialOrderService; |
| | | import com.ruoyi.inspect.vo.ProductVo; |
| | | import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper; |
| | | import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours; |
| | | import com.ruoyi.system.mapper.UserMapper; |
| | |
| | | public class RawMaterialOrderServiceImpl implements RawMaterialOrderService { |
| | | |
| | | private StandardTreeMapper standardTreeMapper; |
| | | |
| | | private IfsInventoryQuantityMapper ifsInventoryQuantityMapper; |
| | | |
| | | private UserMapper userMapper; |
| | | |
| | | private InsOrderService insOrderService; |
| | | |
| | | private InsOrderMapper insOrderMapper; |
| | | |
| | | private InsSampleMapper insSampleMapper; |
| | | |
| | | private final NumberGenerator<InsOrder> numberGenerator; |
| | | |
| | | private InsReportService insReportService; |
| | | |
| | | private WechatProperty wechatProperty; |
| | | |
| | | private ThreadPoolTaskExecutor threadPoolTaskExecutor; |
| | | |
| | | private InsProductMapper insProductMapper; |
| | | |
| | | private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; |
| | | |
| | | private IfsApiUtils ifsApiUtils; |
| | |
| | | if(!validateValue){ |
| | | throw new ErrorException("报检失败,非法的销售订单分类枚举"); |
| | | } |
| | | validateUpdateBatchNo(ifsInventoryQuantity); |
| | | //批次号字母转大写 |
| | | ifsInventoryQuantity.setUpdateBatchNo(ifsInventoryQuantity.getUpdateBatchNo().toUpperCase(Locale.ROOT)); |
| | | ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate() |
| | |
| | | WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message); |
| | | }); |
| | | return 1; |
| | | } |
| | | |
| | | /** |
| | | * 校验外购订单报检的批次号是否重复 |
| | | * @param ifsInventoryQuantity |
| | | */ |
| | | public void validateUpdateBatchNo(IfsInventoryQuantity ifsInventoryQuantity){ |
| | | if(StringUtils.equals(ifsInventoryQuantity.getOrderType(),OrderType.WG.getValue())){ |
| | | //查询历史记录 |
| | | Long count = ifsInventoryQuantityMapper.selectCount(Wrappers.<IfsInventoryQuantity>lambdaQuery() |
| | | .eq(IfsInventoryQuantity::getContract,ifsInventoryQuantity.getContract()) |
| | | .eq(IfsInventoryQuantity::getPartNo,ifsInventoryQuantity.getPartNo()) |
| | | .eq(IfsInventoryQuantity::getUpdateBatchNo,ifsInventoryQuantity.getUpdateBatchNo()) |
| | | .eq(IfsInventoryQuantity::getOrderType,OrderType.WG.getValue()) |
| | | .ne(IfsInventoryQuantity::getState,0) |
| | | ); |
| | | if(count>0){ |
| | | throw new RuntimeException("报检失败,零件"+ifsInventoryQuantity.getPartNo()+"所报检的批次号【"+ifsInventoryQuantity.getUpdateBatchNo()+"】已存在!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | insOrderMapper.updateById(insOrder); |
| | | |
| | | // 添加工时 |
| | | addAuxiliary(insOrder, ifsInventoryQuantity); |
| | | // addAuxiliary(insOrder, ifsInventoryQuantity); |
| | | |
| | | // todo: ifs直接移库 |
| | | insReportService.isRawMaterial(insOrder,true,true); |
| | |
| | | insOrderMapper.insert(insOrder); |
| | | |
| | | // 添加工时 |
| | | addAuxiliary(insOrder, ifsInventoryQuantity); |
| | | // addAuxiliary(insOrder, ifsInventoryQuantity); |
| | | |
| | | // todo: ifs直接移库 |
| | | insReportService.isRawMaterial(insOrder,true,true); |
| | |
| | | if(!OrderType.validateValue(ifsInventoryQuantity.getOrderType())){ |
| | | throw new ErrorException("新增报检信息失败,非法的销售订单分类枚举"); |
| | | } |
| | | validateUpdateBatchNo(ifsInventoryQuantity); |
| | | ifsInventoryQuantityMapper.insert(ifsInventoryQuantity); |
| | | } |
| | | |
| | |
| | | insOrderMapper.updateById(insOrder); |
| | | |
| | | // 添加工时 |
| | | addAuxiliary(insOrder, ifsInventoryQuantity); |
| | | // addAuxiliary(insOrder, ifsInventoryQuantity); |
| | | |
| | | return insOrder.getId(); |
| | | } |
| | |
| | | |
| | | } |
| | | } |
| | | //查询检验项记录 |
| | | List<Long> ifsIds = ifsByOverList.stream().map(IfsInventoryQuantitySupplierDto::getId).collect(Collectors.toList()); |
| | | List<ProductVo> inspectList = insProductMapper.selectInspectListByIfsIfs(ifsIds); |
| | | |
| | | |
| | | response.setContentType("application/vnd.ms-excel"); |
| | |
| | | //新建ExcelWriter |
| | | ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); |
| | | //获取sheet0对象 |
| | | WriteSheet mainSheet = EasyExcel.writerSheet(0, "原材料检测信息导出").head(IfsInventoryQuantitySupplierDto.class).build(); |
| | | WriteSheet mainSheet = EasyExcel.writerSheet(0, "原材料检测信息总览").head(IfsInventoryQuantitySupplierDto.class).build(); |
| | | WriteSheet inspectSheet = EasyExcel.writerSheet(1, "原材料检测数据详情").head(ProductVo.class).build(); |
| | | |
| | | //向sheet0写入数据 传入空list这样只导出表头 |
| | | excelWriter.write(ifsByOverList, mainSheet); |
| | | excelWriter.write(inspectList, inspectSheet); |
| | | //关闭流 |
| | | excelWriter.finish(); |
| | | } catch (IOException e) { |